Skip to content

Admin: new craft profession

Kit Oliynyk edited this page Oct 13, 2021 · 1 revision

Как добавить новую доп. профессию

Весь код, описывающий дополнительные профессии, находится в плагине 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-прога на мобе, реагирующая на фразу "хочу стать татуировщиком".

Другие примеры могут включать манипуляции с предметами или результат выполнения небольшого квеста.


Как добавить новое умение (устарело, заменено skedit)

Добавьте конфигурационный файл для умения

В Дримленд есть несколько типов умений: классовые, клановые, расовые, и т.д. Их конфигурационные файлы находятся в разных каталогах и плагинах. Для добавление нового скила-пустышки, который ничего не делает (его просто видно по команде 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, описывающую расовые плюшки.

Пример таких умений: увертка, быстрая поправка, медитация, кинжал.

  • Активные умения. Имеют соответствующую им команду, часто одноименную с умением, чья конфигурация (имена, позиция, флаги) описывается в отдельной секции.

Примеры: облако пыли - команда облакопыли, подкрадывание - команда красться и так далее.

  • Заклинания и молитвы. Колдуются с помощью команды колдовать. Имеют отдельную секцию конфигурации, описывающую тип и цели заклинания.

Примеры: благословение, адамантитовый голем

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

Clone this wiki locally