Создание игрока

Материал из Клуб любителей рогаликов
Перейти к: навигация, поиск

Эта статья была первоначально написана для Darren Hebden's RLNews

Раздел 1: Определение

Так, давайте предположим, что мы заполнили хорошую бесконечную темницу гадкими демоническими монстрами, кучами золота, и грудами пылающих мечей. Может быть у нас даже есть двигатель, чтобы сделать повсеместное прогуливание вокруг в этой большой темнице.

Теперь, что нам действительно нужно - имеется ли некоторый путь сделать, чтобы маленький '@' превратился в смелого авантюриста, с Геркулесовой силой и интеллектом в конкурирующем Hawking (или возможно недостаток того же самого...).

Сначала, нам нужно иметь некоторую основную статистику и атрибуты. Возможно нам нужно Имя, Раса, и Класс... Нам также нужны некоторые числа, чтобы представить силу героя, и интеллект, а также его другие важные атрибуты.

Теперь, в любом RL, статистика игрока колеблется вверх и вниз в течение игры, независимо от уровня или повреждений. Итак, мы должны представить каждую характеристику двумя числами - текущая и базовая характеристики:

class Stat
{
        public:
        int     Base;
        int     Current;
}

Все наши вычисления в игре должны быть основаны на текущем значении, но базовое значение позволит нам возвращать игроку первоначальное после поражения магическим эффектом или удара.

Имея основной класс атрибута, давайте продолжим и получим класс, чтобы хранить характеристику игрока:

class Player
{
        public:
        char    Name[256]; // имя
        int     Race;      // раса, 0=человек 1=эльф 2=лягушка...
        int     Class;     // класс, 0=воин 1=маг 2=турист...

        Stat    Str;       // сила
        Stat    Int;       // интеллект
        Stat    Dex;       // ловкость
        Stat    Hlt;       // здоровье
        Stat    Cha;       // харизма

        Stat    HP;        // hit points
        Stat    AR;        // класс брони
        Stat    SP;        // уровень маг. силы
};

Это должно быть хорошим отправным пунктом для разработки уникального представления персонажа для вашей RL...

Раздел 2: Создание

Фактическое создание символа выполняется назначением значения в каждый атрибут... Есть два основных пути сделать это: Произвольная Прокрутка и Распределение Пунктов.

Произвольная Прокрутка должна отображать всю статистику, и позволять игроку использовать клавишу "Прокрутить" ("Roll") для случайного присвоения чисел, скажем, между (1 и 100) к каждой основной характеристике. Игрок может продолжать прокрутку пока не получит ту комбинацию атрибутов, которую хочет.

Распределение Пунктов должно дать игроку множество пунктов, допустим 100, и позволять распространять их на атрибуты любым путем, который захочет игрок, таким образом позволяя игроку разрабатывать персонажа.

Обычно, выбор расы игрока влияет на статистику на некотором пути. Например, если наш выбранный игрок:

A Human - Без изменения; Люди должны быть стандартом.
An Elf - +2 Dex, -2 Str; Эльфы - быстрые, но более слабые, чем люди.
A Frog - +2 Int, -2 Cha; Лягушки - очевидно интеллектуальные, но безобразные...

Классы обычно ограничивают атрибуты...

Fighters - Без изменения; Все могут приобрести палку и поражать что-то...
Mage - По крайней мере 12 Int; Маг должен читать, по крайней мере...
Tourist - По крайней мере 12 Dex; Вы должны перемещаться быстрее...

Игроку можно давать некоторое основное снаряжение основываясь на его классе, и теперь '@' имеет все, что ему нужно, чтобы бить некоторых Kobolds!



Автор: Brian Bucklew
Источник: Creating A Player
Перевод: Сергей В. Ждановских [Alchemist], 15.05.2005