Skip to content

Дескрипшены

Дескрипшены - это описания для предметов, которые можно выдавать в игровой клиент. Вы можете дополнять или, наоборот, сужать описание исходя из различных параметров энтити. Например, для персонажей с высоким восприятием выводить дополнительную информацию о внешнем виде объекта. Ниже мы приведем пример дескрипшена:

test.yaml
main:
  text: |
    Вы видите офигеть какую крутую штуку.
    Очень загадочно.

for-smart:
  check:
    - attribute intelligence > 20
  text: |
    Если подумать, то не так уж и круто.

for-strong-or-vitaistic:
  check1:
    - attribute strength > 10
  check2:
    - skill vitaism > 15
  text: |
    Этим можно кого-нибудь ударить.

for-stupid-and-theurgy:
  check:
    - attribute intelligence < 10
    - skill theurgy > 15
  text: |
    Этим можно кого-нибудь обмануть.

for-undead:
  check:
    - tags undead
  text: |
    Это можно спрятать у себя в костях.
    Ну или между костей.

for-wooden-creatures:
  check:
    - tags elf,wooden_creature
  text: |
    Это напоминает вам листву. Хотя нет, вы просто любите листву.

for-cyborgs:
  check:
    - type cyborg
  text: |
    Это отличный проводник. На вкус как медь.
    Наверное, медный.

for-gms:
  check:
    - perms gm
  text: |
    [ГМ: Игрокам нельзя давать эту вещь.]

for-gods:
  check:
    - traits god
  text: |
    Вы ощущаете что-то божественное в этом.

Итак, разберемся с группами:

  1. Как можно догадаться, каждая группа - это дополнительный абзац текста, открываемый при тех или иных условиях.
  2. Первая группа обязана называться main. В ней может быть только поле text, в котором вы пишете описание, которое видно абсолютно всем.
  3. Все последующие группы могут называться как угодно, это для вашего удобства.

Теперь поговорим о содержимом группы.

  1. Внутри группы обязательно должны быть два блока - check и text. Текст должен быть только один, тогда как check может быть сколько угодно.
  2. Каждый чек означает из себя группу проверок, ВСЕ из которых должны быть выполнены. Внутри одного чека может быть сколько угодно проверок, и все из них должны быть успешным. Тогда чек считается пройденным.
  3. Чеков может быть несколько. Для того, чтобы текст был отображен, достаточно ОДНОГО из чеков. То есть, по сути, чеки имеют между собой имеют отношение ИЛИ.

Теперь поговорим о том, что внутри чека:

Глобально возможно два варианта:

В случае, если вам нужно проверить скилл, знание или атрибут, то вы пишете строку, в которой обязательно 4 элемента, разделенные пробелом. Выглядит это так: attribute strength > 10

  1. Первый элемент это то, что вы проверяете. Может быть attribute, skill или knowledge.
  2. Название проверяемого элемента с маленькой буквы.
  3. Оператор. Может быть >, < или =, а так же >= и <= Другие варианты невозможны.
  4. Число, которое проверяется с оператором.

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

  1. Первый элемент это ключевое слово tags, trait, type или perm.
  2. Второй элемент это, собственно, айдишники трейтов, тэгов, название типа или название пермишина. В случае трейтов, пермов или тэгов, можно сделать перечисление через запятую, но учтите, что это означает то, что требуются оба. Так же обратите внимание на то, что тут не должно быть лишних пробелов. Например, проверка, требующая одновременно тэга эльфа и лесного создания, может выглядит так: tags elf,wooden_creature.