-
Notifications
You must be signed in to change notification settings - Fork 15
Admin: new craft profession
Весь код, описывающий дополнительные профессии, находится в плагине craft.
Профайлы, описывающие дополнительные профессии, находятся в каталоге craft-professions.
- В заголовке указано имя класса, реализующее данную профессию. По умолчанию это CraftProfession.
<CraftProfession type="CraftProfession">
- Внутри элемента
help
содержится справка по этой профессии. Аттрибутkeyword
содержит необязательные ключевые слова, по которым дополнительно должна находиться эта статья справки:
<help level="-1" type="CraftProfessionHelp" keyword="TATTOO ТАТУИРОВКА">
- Опишите имена с падежами, в единственном (
rusName
) и множественном (mltName
) числе. - Элемент
baseExp
содержит базовый опыт на уровень. - Элемент
maxLevel
содержит, сколько всего уровней планируется в этой профессии.
После этого в мире наберите:
plug reload craft
и новая профессия станет видна в справке, а также доступна через Феню (читать ниже).
В корневом объекте есть метод .CraftProfession()
, создающий враппер вокруг доп. профессии и дающий доступ к ее полям и методам. Используйте метод api()
для просмотра полного списка полей и методов:
eval prof=.CraftProfession("tattooist")
eval ptc(prof.nameMlt)
eval ptc(prof.api())
Можно установить себе или тестовому персонажу 1й уровень новой профессии:
eval prof.setLevel(this, 1)
Затем набрать немного опыта:
eval prof.gainExp(this, 100)
И достичь следующего уровня мастерства в профессии, набрав ровно столько опыта, сколько оставалось до следующего уровня:
eval tnl=prof.getExpToLevel(ch)
eval prof.gainExp(this, tnl)
Для того, чтобы новая профессия стала доступна для всех, надо придумать и реализовать способ, которым персонажи смогут достичь 1го уровня мастерства. В случае татуировщика за это отвечает speech-прога на мобе, реагирующая на фразу "хочу стать татуировщиком".
Другие примеры могут включать манипуляции с предметами или результат выполнения небольшого квеста.
В Дримленд есть несколько типов умений: классовые, клановые, расовые, и т.д. Их конфигурационные файлы находятся в разных каталогах и плагинах. Для добавление нового скила-пустышки, который ничего не делает (его просто видно по команде slook
) достаточно добавить новый конфигурационный файл в соответствующий каталог и перегрузить соответствующий плагин (команда plugin reload
).
Типы умений:
- классовые: конфигурация в каталоге generic-skills, код - каталог groups, плагин genericskill_loader
- клановые: конфигурация в каталоге clan-skills, код - каталог clan/impl, плагин clan_impl
- древние языки: конфигурация в каталоге languages, код - languages/impl, плагин languages_impl
- доп. профессии: конфигурация в каталоге craft-skills, код - craft, плагин craft
- умения колоды: конфигурация в каталоге card-skills, код - cards, плагин cards
Умения бывают нескольких видов, в зависимости от их использования:
- Пустышки-аффекты. Обычно хранятся там же, где и классовые умения. Не принадлежат ни к одной профессии, и существуют только для того, чтобы можно было повесить на персонажа аффект с таким именем. Секция в их профайле, отвечающая за аффект, может быть пустая (по умолчанию), а может описывать свои сообщения при спадании аффекта.
Пример таких умений: коровье бешенство, алтарь.
-
Пассивные умения. Не имеют отдельной, связанной с ними команды или заклинания. В коде есть проверки на процент владения этим умением у персонажа, в результате этих проверок происходит или не происходит какое-то автоматическое действие. Их профайл содержит секцию
classes
, описывающую с какого уровня это умения появляется у той или иной профессии, а также секциюraceBonuses
, описывающую расовые плюшки.
Пример таких умений: увертка, быстрая поправка, медитация, кинжал.
- Активные умения. Имеют соответствующую им команду, часто одноименную с умением, чья конфигурация (имена, позиция, флаги) описывается в отдельной секции.
Примеры: облако пыли - команда облакопыли
, подкрадывание - команда красться
и так далее.
-
Заклинания и молитвы. Колдуются с помощью команды
колдовать
. Имеют отдельную секцию конфигурации, описывающую тип и цели заклинания.
Примеры: благословение, адамантитовый голем
Новые умения можно добавлять полностью по аналогии с существующими, заменяя имена, справку и флаги на нужные.