Spell linked spell: различия между версиями

Материал из Uwow
Перейти к навигации Перейти к поиску
(Новая страница: «ы»)
 
 
(не показано 7 промежуточных версий 2 участников)
Строка 1: Строка 1:
ы
<blockquote>'''spell_linked_spell - таблица линкования спелов, частично переписана для увеличения функционала'''</blockquote>
Структура таблицы:
 
===== spell_trigger =====
ID способности
 
===== spell_effect =====
ID, который будет срабатывать
 
===== type =====
    SPELL_LINK_CAST            = 0, // +: cast; -: remove
    SPELL_LINK_REMOVE          = 0,
    SPELL_LINK_ON_HIT          = 1,
    SPELL_LINK_AURA            = 2, // +: aura; -: immune
    SPELL_LINK_BEFORE_HIT      = 3,
    SPELL_LINK_AURA_HIT        = 4,
    SPELL_LINK_BEFORE_CAST      = 5,
    SPELL_LINK_PREPARE_CAST    = 6,
    SPELL_LINK_BEFORE_CHECK    = 7,
    SPELL_LINK_FINISH_CAST      = 8,
    SPELL_LINK_ON_ADD_TARGET    = 9,
    SPELL_LINK_FAILED_CAST      = 10,
 
===== caster =====
Кого брать за кастера? (данные берутся из GetUnitForLinkedSpell)
 
'''0 =''' ''нету''
 
'''1 =''' ''пет''
 
    '''2 =''' ''Владелец (овнер'')
 
    '''3 =''' ''Кастер''
 
    '''4 =''' ''Выбранный (цель)''
 
    '''5 =''' ''таргет''
 
    '''6 =''' ''текущая цель (victim)''
 
===== target =====
Кого брать за таргета? (данные в проверке HasAuraLinkedSpell)
 
'''0 =''' ''нету''
 
   <nowiki> </nowiki>'''1 =''' ''пет''
 
   <nowiki> </nowiki>'''2 =''' ''Владелец (овнер'')
 
   <nowiki> </nowiki>'''3 =''' ''Кастер''
 
   <nowiki> </nowiki>'''4 =''' ''Выбранный (цель)''
 
   <nowiki> </nowiki>'''5 =''' ''таргет''
 
   <nowiki> </nowiki>'''6 =''' ''текущая цель (victim)''
 
===== hastype, hastype2 =====
при hastalent != 0 будет проверять по заданному типу: (данные берутся из GetUnitForLinkedSpell)
 
<code>LINK_HAS_AURA_ON_CASTER       = 0,</code>
 
    <code>LINK_HAS_AURA_ON_TARGET       = 1,</code>
 
    <code>LINK_HAS_SPELL_ON_CASTER      = 2,</code>
 
    <code>LINK_HAS_AURA_ON_OWNER        = 3,</code>
 
    <code>LINK_HAS_AURATYPE             = 4,</code>
 
===== hastalent, hastalen2 =====
ID ауры или спела, который проверять по типу проверки (данные в проверке HasAuraLinkedSpell)
 
===== chance =====
Шанс срабатывания, если стоит >0
 
===== cooldown =====
Ставит КД на способность после срабатывания
 
===== hitmask =====
Маска хита, при каком типе хита срабатывать?
 
<code>SPELL_MISS_NONE                    '''= 0,  // hitmask = 1'''</code>
 
    <code>SPELL_MISS_MISS                    '''= 1,  // hitmask = 2'''</code>
 
    <code>SPELL_MISS_RESIST                  '''= 2,  // hitmask = 4'''</code>
 
    <code>SPELL_MISS_DODGE                   '''= 3,  // hitmask = 8'''</code>
 
    <code>SPELL_MISS_PARRY                   '''= 4,  // hitmask = 16'''</code>
 
    <code>SPELL_MISS_BLOCK                   '''= 5,  // hitmask = 32'''</code>
 
    <code>SPELL_MISS_EVADE                   '''= 6,  // hitmask = 64'''</code>
 
    <code>SPELL_MISS_IMMUNE                  '''= 7,  // hitmask = 128'''</code>
 
    <code>SPELL_MISS_IMMUNE2                 '''= 8,  // one of these 2 is MISS_TEMPIMMUNE,  hitmask = 256'''</code>
 
    <code>SPELL_MISS_DEFLECT                 '''= 9,  // hitmask = 512'''</code>
 
    <code>SPELL_MISS_ABSORB                  '''= 10, // hitmask = 1024'''</code>
 
    <code>SPELL_MISS_REFLECT                 '''= 11, // hitmask = 2048'''</code>
 
    <code>SPELL_MISS_MISFIRED                '''= 12, // hitmask = 4096'''</code>
 
===== removeMask =====
Маска мода удаления
 
<code>AURA_REMOVE_NONE                = 0,</code>
 
    <code>AURA_REMOVE_BY_DEFAULT          = 1, // scripted remove, remove by stack with aura with different ids and sc aura remove</code>
 
    <code>AURA_REMOVE_BY_CANCEL           = 2,</code>
 
    <code>AURA_REMOVE_BY_ENEMY_SPELL      = 3, // dispel and absorb aura destroy</code>
 
    <code>AURA_REMOVE_BY_EXPIRE           = 4, // aura duration has ended</code>
 
    <code>AURA_REMOVE_BY_DEATH            = 5,</code>
 
    <code>AURA_REMOVE_BY_MECHANIC         = 6,</code>
 
    <code>AURA_REMOVE_BY_DROP_CHARGERS    = 7, // aura remove by drop charges</code>
 
===== actiontype =====
Тип действия?
 
<code>LINK_ACTION_DEFAULT       = 0,</code>
 
    <code>LINK_ACTION_LEARN         = 1,</code>
 
    <code>LINK_ACTION_AURATYPE      = 2,</code>
 
    <code>LINK_ACTION_SPELLCOOLDOWN = 3,</code>
 
    <code>LINK_ACTION_CASTNOTRIGGER = 4,</code>
 
    <code>LINK_ACTION_ADDAURA       = 5,</code>
 
    <code>LINK_ACTION_CASTINAURA    = 6,</code>
 
<code>LINK_ACTION_CASTINAURA    = 6,</code>
 
    <code>LINK_ACTION_CHANGE_STACK     = 7,</code>
 
    <code>LINK_ACTION_REMOVE_COOLDOWN  = 8,</code>
 
    <code>LINK_ACTION_REMOVE_MOVEMENT  = 9, // RemoveMovementImpairingAuras</code>
 
    <code>LINK_ACTION_CHANGE_DURATION  = 10, // Mod Duration</code>
 
    <code>LINK_ACTION_CAST_DEST        = 11,</code>
 
    <code>LINK_ACTION_CHANGE_CHARGES   = 12,</code>

Текущая версия от 19:46, 26 апреля 2026

spell_linked_spell - таблица линкования спелов, частично переписана для увеличения функционала

Структура таблицы:
spell_trigger

ID способности

spell_effect

ID, который будет срабатывать

type
   SPELL_LINK_CAST             = 0, // +: cast; -: remove
   SPELL_LINK_REMOVE           = 0,
   SPELL_LINK_ON_HIT           = 1,
   SPELL_LINK_AURA             = 2, // +: aura; -: immune
   SPELL_LINK_BEFORE_HIT       = 3,
   SPELL_LINK_AURA_HIT         = 4,
   SPELL_LINK_BEFORE_CAST      = 5,
   SPELL_LINK_PREPARE_CAST     = 6,
   SPELL_LINK_BEFORE_CHECK     = 7,
   SPELL_LINK_FINISH_CAST      = 8,
   SPELL_LINK_ON_ADD_TARGET    = 9,
   SPELL_LINK_FAILED_CAST      = 10,
caster

Кого брать за кастера? (данные берутся из GetUnitForLinkedSpell)

0 = нету

1 = пет

    2 = Владелец (овнер)

    3 = Кастер

    4 = Выбранный (цель)

    5 = таргет

    6 = текущая цель (victim)

target

Кого брать за таргета? (данные в проверке HasAuraLinkedSpell)

0 = нету

    1 = пет

    2 = Владелец (овнер)

    3 = Кастер

    4 = Выбранный (цель)

    5 = таргет

    6 = текущая цель (victim)

hastype, hastype2

при hastalent != 0 будет проверять по заданному типу: (данные берутся из GetUnitForLinkedSpell)

LINK_HAS_AURA_ON_CASTER       = 0,

    LINK_HAS_AURA_ON_TARGET       = 1,

    LINK_HAS_SPELL_ON_CASTER      = 2,

    LINK_HAS_AURA_ON_OWNER        = 3,

    LINK_HAS_AURATYPE             = 4,

hastalent, hastalen2

ID ауры или спела, который проверять по типу проверки (данные в проверке HasAuraLinkedSpell)

chance

Шанс срабатывания, если стоит >0

cooldown

Ставит КД на способность после срабатывания

hitmask

Маска хита, при каком типе хита срабатывать?

SPELL_MISS_NONE                    = 0,  // hitmask = 1

    SPELL_MISS_MISS                    = 1,  // hitmask = 2

    SPELL_MISS_RESIST                  = 2,  // hitmask = 4

    SPELL_MISS_DODGE                   = 3,  // hitmask = 8

    SPELL_MISS_PARRY                   = 4,  // hitmask = 16

    SPELL_MISS_BLOCK                   = 5,  // hitmask = 32

    SPELL_MISS_EVADE                   = 6,  // hitmask = 64

    SPELL_MISS_IMMUNE                  = 7,  // hitmask = 128

    SPELL_MISS_IMMUNE2                 = 8,  // one of these 2 is MISS_TEMPIMMUNE,  hitmask = 256

    SPELL_MISS_DEFLECT                 = 9,  // hitmask = 512

    SPELL_MISS_ABSORB                  = 10, // hitmask = 1024

    SPELL_MISS_REFLECT                 = 11, // hitmask = 2048

    SPELL_MISS_MISFIRED                = 12, // hitmask = 4096

removeMask

Маска мода удаления

AURA_REMOVE_NONE                = 0,

    AURA_REMOVE_BY_DEFAULT          = 1, // scripted remove, remove by stack with aura with different ids and sc aura remove

    AURA_REMOVE_BY_CANCEL           = 2,

    AURA_REMOVE_BY_ENEMY_SPELL      = 3, // dispel and absorb aura destroy

    AURA_REMOVE_BY_EXPIRE           = 4, // aura duration has ended

    AURA_REMOVE_BY_DEATH            = 5,

    AURA_REMOVE_BY_MECHANIC         = 6,

    AURA_REMOVE_BY_DROP_CHARGERS    = 7, // aura remove by drop charges

actiontype

Тип действия?

LINK_ACTION_DEFAULT       = 0,

    LINK_ACTION_LEARN         = 1,

    LINK_ACTION_AURATYPE      = 2,

    LINK_ACTION_SPELLCOOLDOWN = 3,

    LINK_ACTION_CASTNOTRIGGER = 4,

    LINK_ACTION_ADDAURA       = 5,

    LINK_ACTION_CASTINAURA    = 6,

LINK_ACTION_CASTINAURA    = 6,

    LINK_ACTION_CHANGE_STACK     = 7,

    LINK_ACTION_REMOVE_COOLDOWN  = 8,

    LINK_ACTION_REMOVE_MOVEMENT  = 9, // RemoveMovementImpairingAuras

    LINK_ACTION_CHANGE_DURATION  = 10, // Mod Duration

    LINK_ACTION_CAST_DEST        = 11,

    LINK_ACTION_CHANGE_CHARGES   = 12,