• Новые темы в этом разделе публикуются автоматически при добавлении файла в менеджер ресурсов.
    Ручное создание новых тем невозможно.
Иконка ресурса

Мануал Skilldata.txt - формат и описание параметров

kick

Предвестник
Administrator
За веру и верность форуму
Отец-основатель
Сообщения
7 002
Розыгрыши
23
Решения
1
Репутация
6 369
Реакции
7 099
Баллы
2 688
skill_begin skill_name=[s_silence1] /* [사쁼냰삤] */ skill_id=1064 level=1 operate_type=A2 magic_level=40 effect={{p_block_spell}} is_magic=1 mp_consume1=7 mp_consume2=28 cast_range=600 effective_range=1100 skill_hit_time=4 skill_cool_time=0 skill_hit_cancel_time=0.5 reuse_delay=60 activate_rate=50 lv_bonus_rate=2 basic_property=men abnormal_time=30 abnormal_lv=1 abnormal_type=silence attribute=attr_derangement effect_point=-379 target_type=enemy_only affect_scope=single affect_limit={0;0} next_action=none abnormal_visual_effect=ave_silence debuff=1 ride_state={@ride_none;@ride_wind;@ride_star;@ride_twilight} skill_end
Описание параметров:
  • skill_begin - начало скилла
  • skill_name = [s_wyvern_breath] - название скилла (на которое ссылаются извне, например из itemdata)
  • /* [와이번 브레스] */ - Комментарий на корейском языке
  • skill_id = 4289 - ID Скилла
  • level = 1 - Уровень скилла
  • operate_type = P - пассивный, А1 или А2 - активный скилл.
SKILL_INSTANT=A1
SKILL_DURATION=A2
SKILL_DURATION_LEVEL_UP=A4
SKILL_SELFDURATION=A3
SKILL_PASSIVE=p
SKILL_TOGGLE=T
SKILL_CHANNELLING_INSTANCE=CA1
SKILL_CHANNELLING_DURATION=CA2
SKILL_CHANNELLING_DURATION_LEVEL_UP=CA5
SKILL_CHARGE_INSTANT=DA1
SKILL_CHARGE_DURATION=DA2
SKILL_AURA=AU
SKILL_AURA_ACTIVITY=A5
SKILL_GROUP_TOGGLE=TG
SKILL_BACK_STEP_INSTANT=DA3
SKILL_BACK_STEP_DURATION=DA4
SKILL_AURA_ACTIVITY2=A6
SKILL_PARTY_INSTANT=AP
SKILL_DUAL_PUMP1=DP1
SKILL_RACE_SPECIAL_PASSIVE=RP
SKILL_BLINK_INSTANT=DA5
SKILL_BACK_STEP_DURATION_WITH_TARGET_KNOCKBACK=DA6
  • magic_level = 60 - Уровень с которого персонаж может использовать данный скил
  • effect = - Что умеет скилл. Список эффектов.
  • operate_cond = {{op_wyvern}} - условия использования скилла
  • is_magic = 0 - скорость каста скилла и откат зависят от каст спида
  • is_magic = 1 - скорость каста скилла и откат зависят от атак спида
  • is_magic = 2 - фиксированые скорость каста скилла и откат ни от чего не зависят aka SOE, свиток воскрешения etc.
  • mp_consume2 = 400 - Сколько требует MP
  • cast_range = 700 - Дальность выстрела данным скиллом
  • effective_range = 1200 - Эффективная "дальность" атаки
  • skill_hit_time = 3.6 - Время каста скилла
  • skill_cool_time = 0 - фриз после каста, если поставить параметр "3" это будет значить что после каста скилла чар будет 3 секунды стоять как бы заморожен, нельзя будет двигаться, кастовать
  • skill_hit_cancel_time = 3.6 - в течении которого времени можно отменить каст скилла кнопкой Esc
  • reuse_delay = 6 - Откат скила
  • attribute = attr_fire - тип скилла (водяной, ветряной, темная атака например..)
  • effect_point = -1500 - используется для повышения эффективности аггра у мобов
  • target_type = wyvern_target - тип цели, на которую кастуется скилл. В данном случае только на другую виверну
  • affect_scope = wyvern_scope - как выбирается цель (одиночная, на себя, диапазон, аура)
  • affect_range = 200 - как выбирается цель (одиночная, на себя, диапазон, аура)
  • affect_object = wyvern_object - как выбирается цель (одиночная, на себя, диапазон, аура)
  • affect_limit = {0;0} - минимальное и максимальное количество обрабатываемых целей, если 0;0 то нет ограничения.
  • next_action = none - Выполнение команды после использовании скила
  • ride_state = {@ride_wyvern} - описывает, можно ли юзать скилл сидя на страйдере/виверне и так далее
  • skill_end - окончание скила
 
Последнее редактирование:
effect_point= есть инфа? я понял что отрицательное значение вводит в комбат, положительное не вводит.
 

effect_point= any info? I understood that a negative value enters into combat, a positive one does not.

Effect point is used in AI to add attack desire to PCs.
C++:
 EventHandler ATTACKED(attacker, damage, f0) {
        if (attacker.is_pc != 0 || IsInCategory(@summon_npc_group, attacker.class_id)) {

            f0 = 1.0 * damage / (myself.sm.level + 7) + f0 / 100 * (1.0 * [B]damage [/B]/ (myself.sm.level + 7));
        
            AddAttackDesire(attacker, @AMT_MOVE_TO_TARGET, f0 * 100);
          }

where:
  • damage = actual damage, in case of physical attack
  • damage = - effectpoint, in case of magical / physical attack skills (eg hydro blast, backstab)
  • damage = effectpoint, in case of buffs *
*The last case is used by event SEE_SPELL to add attack desire to healers / buffers / etc who cast a spell on NPC's top target:

C++:
 EventHandler SEE_SPELL(speller, skill_name_id, target, f0, i0) {
        if (Skill_GetEffectPoint(skill_name_id) > 0) {
            if (myself.p_state == PSTATE_ATTACK && myself.top_desire_target == target) {
                i0 = Skill_GetEffectPoint(skill_name_id);
                f0 = 0;

                f0 = 1.0 * i0 / (myself.sm.level + 7) + f0 / 100 * (1.0 * i0 / (myself.sm.level + 7));
                AddAttackDesire(speller, @AMT_MOVE_TO_TARGET, f0 * 150);
            }
 
Мои текущие изыскания по operate_type, может еще кто чем дополнит или укажет на возможные неточности в описаниях разных значений
Список актуален для хомки (287) - если и есть еще какие другие типы, то они в скиллдате хомки не задействованы.
Java:
package l2p.gameserver.enums.skills;

public enum OperateType implements IOperateType
{
    NONE(T_PASSIVE),
    A1(T_ACTIVE), // умения только с эффектами мгновенного действия
    A2(T_ACTIVE), // умения только эффектами длительного действия, так же могут быть и эффекты мгновенного действия
    A3(T_ACTIVE), // то же что и A2, но если есть self_effect, то он применяется только если есть цели для основного эффекта (?)
    A4(T_ACTIVE), // если на цели уже есть эффект от умения, то пытается наложить эффект от умения уровнем выше
    A5(T_ACTIVE), // умение, вызываемое специальной аурой
    A6(T_ACTIVE), // умение, вызываемое аурой синергии
    AP(T_ACTIVE), // используется в некоторых хербах (эффект херба действует на все пати?)
    CA1(T_ACTIVE | T_CHANNELING), // вызывает во время каста tick_effect, в первый раз через channeling_start после начала каста и потом с периодом в tick_interval
    CA2(T_ACTIVE | T_CHANNELING), // пытается наложить на цели эффекты умения из attached_skill, в первый раз через channeling_start после начала каста и потом с периодом в tick_interval
    CA5(T_ACTIVE | T_CHANNELING), // то же что и CA2, но каст прерывается с 100% шансом при получении урона кастующим
    DA1(T_ACTIVE), // то же что и A1, но с эффектом прыжка/чарджа вперед в начале каста
    DA2(T_ACTIVE), // то же что и A2, но с эффектом прыжка/чарджа вперед в начале каста
    DA3(T_ACTIVE), // то же что и A2, но с эффектом прыжка/чарджа назад в начале каста
    DP1(T_ACTIVE), // используется в умении вызова на дуэль 1 на 1 у тира (особенности?)
    AU(T_TOGGLE), // специальные ауры, периодически вызывающие другие умения, обычно умения A5/A6
    T(T_TOGGLE), // переключаемое умение
    TG(T_TOGGLE), // переключаемое умение, входящее в группу с другими такими умениями (одновременно может работать только одно умение из группы)
    P(T_PASSIVE), // пассивное умение
    RP(T_PASSIVE); // пассивное умение алхимии

    private final int _flags;
    private final boolean _active;
    private final boolean _toggle;
    private final boolean _passive;
    private final boolean _channeling;

    OperateType(int flags)
    {
        _flags = flags;
        _active = (flags & T_ACTIVE) == T_ACTIVE;
        _toggle = (flags & T_TOGGLE) == T_TOGGLE;
        _passive = (flags & T_PASSIVE) == T_PASSIVE;
        _channeling = (flags & T_CHANNELING) == T_CHANNELING;
    }

    public boolean checkFlag(int flag)
    {
        return (_flags & flag) == flag;
    }

    public boolean isActive()
    {
        return _active;
    }

    public boolean isToggle()
    {
        return _toggle;
    }

    public boolean isPassive()
    {
        return _passive;
    }

    public boolean isChanneling()
    {
        return _channeling;
    }
}
 
Последнее редактирование:
Забыл уточнить что направления прыжка для DA1/DA2/DA3 написанные в комментарии - это направления по умолчанию, если в скилле нет параметра charge_direction, который явно указывает куда прыгать.
Например при operate_type=DA2 и charge_direction=right будет прыжок к правому боку цели.

Еще, для CA1/CA2/CA5 в tick_interval длительность одного тика - 600мс, насчет channeling_start не уверен - там скорее всего обычные секунды.
 
Последнее редактирование:
Назад
Сверху