Глава 5. Описание общепринятых значений в скиллах (skill).
Данную главу - считаем найболее важной. Здесь не будут описаны те или иные значения, которые употреблялись выше (мы же не попугаи повторять несколько раз).
Любой скил, начинается с открытого тега <skill> и заканчивается - закрывающим тегом </skill>
Вот вам наглядный пример :
Код:
<skill id="ид_скила" levels="кол-во_уровней_скила" name="имя_скила">
описание скилла
</skill>
Итак приступим по пунктам.
а) Минимально необходимые теги (обязательные).
Как вы наверное догадались - у любого описания какого либо скила - должны быть какие-либо минимальные значения, чтобы его смог обработать ява код.
В скилах - выделяют ТРИ обязательных тега, без которых не произойдет прогрузка скила(ошибка в контролерах ява кода, из-за отсутсвия одного из них).
target="val" - Один из обязательных тегов. При его отсутствии - не будет работать не 1н скилл. Что он делает? Он определяет - на ково будет направлен тот или иной скил.
Возможные "val"(значения).
-TARGET_SELF - обозначает, что скилл будет использоватся исключительно на его владельца (в мире линягеров - селф баф и т д).
-TARGET_NONE - обозначает, что цель - неопределена (неизвестно на кого будет использовано и как).
-TARGET_ONE - обозначает, что цель вашего скила - тот кто в таргете.
-TARGET_AGGREMENT (не везде работает) - обозначает, что целью будет тот, кто вас бьет(не важно в таргете он или нет)
-TARGET_AREA - обозначает, что скилл будет массовым (сплеш)
Так же есть и другие значения, но они менее важны.
skillType - указывает на тип скилла. Тоесть, какой градировкой обозначен его ефект (в ядре). От типа скила - зависит его исполнение. Приведем некие примеры типов скилов :
-BUFF - обозначает, что скил имеет магический / физический тип, и выступает как "баф" - тоесть имеет время каста или использование.
-DEBUFF - обозначает, что скилл будет иметь какой либо маг / физ негативный ефект, у линягеров - дебаф.
Все рамки этих типов забиты в ядре.
А так же другие типы скилов, найти вы их сможете в вашем датапаке скилов (/data/stats/skill)
operateType - назначает тип скила по принципу - Active / Passive. Для использования, приняты значения :
-OP_ACTIVE - активный скилл, значит он может быть использован
-OP_PASSIVE - пассивный скил, скил с таким operateType не может быть использован (он пассивный).
б) Общепринятая орфография. В скилах, принято так, что большенство стандартных параметров(значений) - начинаются с тега <set >. Приведем наглядный пример :
Код:
<set name="тип_переменной" val="её_значение" />
в name - указывают "тип переменной", тоесть значение с которым будем работать. Вот как выглядит к примеру тэг "target".
Код:
<set name="target" val="TARGET_ONE" />
При таком использовании - мы видем, что назначается тип переменой - "target" со значением : "TARGET_ONE". Как это сработает - описано выше.
Аналогично и другие переменные приобретают подобный вид, такие как "operateType", "power" и другие.
Так же, есть еще здесь контейнерные теги, здесь орфография немного иная.
Не редко, для удобства использования левелов скилов (если он не один, а к примеру 15 и т.д) применяются "табличные значеня". Что же это такое? Ну к примеру, у нас есть скилл, который имеет 15 уровней прокачки и на каждом уровне - у него разная сила действия. Как же быть с этим? Для этого, мы используем некий контейнерный тег :
Код:
<table name="#тип_переменной"> val1 val2 val3 </table>
В таком случае, при использовании : "#тип_переменной" - будет использоватся табличная структура.
Не буду грузить теорией, обьясню вам это наглядно, на моём небольшом примере :
Код:
<skill id="1" levels="5" />
<table name="#power"> 10 20 30 40 50</table>
+ тут 3 нужных тега(обязательных)
......................
</skill>
Здесь нам интересно, как же будут использоватся значения в теге <table> ?! А очень просто. Здесь будет выполняться некое "условие". Как мы видем (параметр levels="5") что у скила есть 5 уровней прокачки. Если у игрока, скилл находится в состоянии level='1' (тоесть уровень изучения скила = 1), то будет принято ПЕРВОЕ значение из тега <table>. Если уровень скила будет level='3' у игрока, то будет выбрано третье значение из тега <table> (а тоесть, - "30"). Ну и так далее.
Вот и весь основной принцип орфографии.
в) Другие употребляемые теги в скиллах.
Не секрет, что переменных в скилах - уйма. Я постараюсь вам описать некоторые из них и слегка принцип их работы.
-power - отвечает за "силу" скила (тоесть сколько нанесет урона или на сколько ефективен)
-hitTime - отвечает за "скорость" нанесения того или иного скила (если баф - то скорость чтения, боевой - скорость удара)
-reuseDelay - отвечает за "скорость перезарядки" того или иного скила.
-hpconsume , mpconsume - сколько потребляет hp / mp тот или иной скилл
-castRage - это дальность использования того или иного скила (дистанция)
-isMagic, isDebuff, isBuff - это наводящие теги, могут иметь значение "true" и "false". Определяют - 'да' или 'нет'. К примеру, isMagic = true, обозначит скилл как "магический"
-efectRage - это радиус на который будет действовать скилл (к примеру у сплешевых скилов)
-agro - с какой силой агрить
И многие другие переменные, устанавливаем их роль самостоятельно (а то всё я расказываю а вы лодарничаете).
г) Значение <for> в скиллах.
Нередко, мы встречаем использование тега <for> </for> в наших скилах. Зачастую, данный тег используется для "добавления сложны действий" к скиллу. Если скил, имеет сложный вариант реализации - то зачастую, в тег <for> добавляют некоторые отдельные значения, которые реализованы в ЯДРЕ ява сервера l2. Самый важный тег для использования здесь - <effect ... / >.
Приведем пример использования тега <for> </for> и тега <effect> :
Код:
<skill id="ид" name="имя_скила">
+3 основных тега
......................
<for>
<effect name="тип_ефекта" val="значение" time="время" stackOrder="#переменная1" stackType="переменная_ядра">
</effect>
</for>
</skill>
Раскажем о каждой буковке ефекта нашего :
name - это тип ефекта используемого скилом. Все ефекты - реализованы скилом. В каждой сборке или ядре - свои ефекты. Их список вы можете составить калупаясь по файлам скилов.
val - это значение того или иного ефекта. Если это боевой ефект - то это его сила, если дебаф - то шанс прошождения (как и у бафа) ну и так далее.
time - это время действия того или иного ефекта.
StackOrder и stackType - это значения уже описаные в данном скиле(использование переменных) или же значения и переменные с ядра сервера.
Внимание! Некогда не вставляйте ефекты с 1ой сборки на другую - так как их в ядре той сборки просто может не быть (получите грабли).
Думаю со скилами мы с вами разрабрались, движемся дальше.
П.с. - argumentation - вам на досугу (изучение лично). Там сложного нечего нету.
копипаст с ач.