spell_proc

28 篇文章 0 订阅
7 篇文章 0 订阅

字段介绍

  • 这个表格包含了某些法术被激活的事件(或过程)信息
  • 此表中的所有法术都必须具有 SPELL_AURA_PROC_TRIGGER_SPELL(42)光环
  • 此表中的任何条目都将覆盖该法术的 DBC 条目中的触发设置

spell_proc

  • SpellId
    • 在事件中触发的法术 ID(对法术链的法术应使用等级为1的 - SpellID)
  • SchoolMask
    • 这个字段控制什么类型的法术可以触发这个效果。例如,只有当该法术的施放目标被暗影法术(法术34914)击中时才会触发
    • 取值参考源码 SharedDefines.h SpellSchoolMask 定义

    • 此值为位掩码,要应用多个,只需将他们相加
ValueMaskCommentName
10x01普通伤害SPELL_SCHOOL_NORMAL
20x02神圣伤害SPELL_SCHOOL_HOLY
40x04火焰伤害SPELL_SCHOOL_FIRE
80x08自然伤害SPELL_SCHOOL_NATURE
160x10冰霜伤害SPELL_SCHOOL_FROST
320x20暗影伤害SPELL_SCHOOL_SHADOW
640x40奥术伤害SPELL_SCHOOL_ARCANE
  • SpellFamilyName
    • 这个字段控制哪些类别的法术可以触发被触发的法术
    • 取值参考源码 SharedDefines.h SpellFamilyNames 定义
IDNameCommentComment
0SPELLFAMILY_GENERIC普通Generic
1SPELLFAMILY_UNK1事件、假日等Unk1 - events, holidays, ...
3SPELLFAMILY_MAGE法师Mage
4SPELLFAMILY_WARRIOR战士Warrior
5SPELLFAMILY_WARLOCK术士Warlock
6SPELLFAMILY_PRIEST牧师Priest
7SPELLFAMILY_DRUID德鲁伊Druid
8SPELLFAMILY_ROGUE盗贼Rogue
9SPELLFAMILY_HUNTER猎人Hunter
10SPELLFAMILY_PALADIN骑士Paladin
11SPELLFAMILY_SHAMAN萨满Shaman
12SPELLFAMILY_UNK2Unk2 - Silence resistance?
13SPELLFAMILY_POTION药剂Potion
15SPELLFAMILY_DEATHKNIGHT死亡骑士Death Knight
17SPELLFAMILY_PET宠物Pet
50

SPELLFAMILY_TOTEMS

图腾Totems
53SPELLFAMILY_MONK武僧Monk
57SPELLFAMILY_WARLOCK_PETWarLock Pet
66SPELLFAMILY_UNK66
71SPELLFAMILY_UNK71
78SPELLFAMILY_UNK78
91SPELLFAMILY_UNK91
100SPELLFAMILY_UNK100
107SPELLFAMILY_DEMON_HUNTER恶魔猎手Demon Hunter
224SPELLFAMILY_EVOKER唤魔师Evoker
  • SpellFamilyMask[0-2]
    • 这个字段控制哪些法术的 family flags 可以触发被触发的法术
    • 取值参考源码 SpellMgr.h SpellFamilyFlag 定义

SpellFamilyFlagMaskValueComment
SPELLFAMILYFLAG_ROGUE_VANISH0x000008002048Rogue(Vanish)
SPELLFAMILYFLAG_ROGUE_VAN_EVAS_SPRINT0x000008602144Rogue(Vanish, Evasion, Sprint)
SPELLFAMILYFLAG1_ROGUE_COLDB_SHADOWSTEP0x00000240576Rogue(Cold Blood, Shadowstep)
SPELLFAMILYFLAG_ROGUE_KICK0x0000001016Rogue(Kick)
SPELLFAMILYFLAG1_ROGUE_DISMANTLE0x001000001048576Rogue(Dismantle)
SPELLFAMILYFLAG_ROGUE_BLADE_FLURRY0x400000001073741824Rogue(Blade Flurry)
SPELLFAMILYFLAG1_ROGUE_BLADE_FLURRY0x000008002048Rogue(Blade Flurry)
SPELLFAMILYFLAG_WARRIOR_CHARGE0x000000011Warrior(Charge)
SPELLFAMILYFLAG_WARRIOR_SLAM0x002000002097152Warrior(Slam)
SPELLFAMILYFLAG_WARRIOR_EXECUTE0x20000000536870912Warrior(Execute)
SPELLFAMILYFLAG_WARRIOR_CONCUSSION_BLOW0x0400000067108864Warrior(Concussion,Blow)
SPELLFAMILYFLAG_WARLOCK_LIFETAP0x00040000262144Warlock(Lifetap)
SPELLFAMILYFLAG1_HUNTER_EXPLOSIVE_SHOT0x800000002147483648Hunter(Explosive Shot)
SPELLFAMILYFLAG2_DRUID_STARFALL0x00000100256Druid(Starfall)
SPELLFAMILYFLAG1_PALADIN_DIVINESTORM0x00020000131072Paladin(Divinestorm)
SPELLFAMILYFLAG_SHAMAN_FROST_SHOCK0x800000002147483648Shaman(Frost Shock)
SPELLFAMILYFLAG_SHAMAN_HEALING_STREAM0x000020008192Shaman(Healing Steam)
SPELLFAMILYFLAG_SHAMAN_MANA_SPRING0x0000400016384Shaman(Mana Spring)
SPELLFAMILYFLAG2_SHAMAN_LAVA_LASH0x000000044Shaman(Lava Lash)
SPELLFAMILYFLAG_SHAMAN_FIRE_NOVA0x28000000671088640Shaman(Fire Nava)
SPELLFAMILYFLAG_SHAMAN_TOTEM_EFFECTS0x0400000067108864Shaman(Totem Effects)
SPELLFAMILYFLAG_DK_DEATH_STRIKE0x0000001016Deathknight(Death Strike)
SPELLFAMILYFLAG_DK_DEATH_COIL0x000020008192Deathknight(Death Coil)
  • ProcFlags
    • 取值参考源码 SpellMgr.h ProcFlags 定义
    • 如果非零,将覆盖 DBC | DB2 中的原始法术 ProcFlags
    • 此值为位掩码,要应用多个,只需将他们相加
ValueFlagNameComment
10x00000001PROC_FLAG_KILLED00 Killed by agressor - not sure about this flag
20x00000002PROC_FLAG_KILL01 Kill target (in most cases need XP/Honor reward)
40x00000004PROC_FLAG_DONE_MELEE_AUTO_ATTACK02 Done melee auto attack
80x00000008PROC_FLAG_TAKEN_MELEE_AUTO_ATTACK03 Taken melee auto attack
160x00000010PROC_FLAG_DONE_SPELL_MELEE_DMG_CLASS04 Done attack by Spell that has dmg class melee
320x00000020PROC_FLAG_TAKEN_SPELL_MELEE_DMG_CLASS05 Taken attack by Spell that has dmg class melee
640x00000040PROC_FLAG_DONE_RANGED_AUTO_ATTACK06 Done ranged auto attack
1280x00000080PROC_FLAG_TAKEN_RANGED_AUTO_ATTACK07 Taken ranged auto attack
2560x00000100PROC_FLAG_DONE_SPELL_RANGED_DMG_CLASS08 Done attack by Spell that has dmg class ranged
5120x00000200PROC_FLAG_TAKEN_SPELL_RANGED_DMG_CLASS09 Taken attack by Spell that has dmg class ranged
10240x00000400PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_POS10 Done positive spell that has dmg class none
20480x00000800PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_POS11 Taken positive spell that has dmg class none
40960x00001000PROC_FLAG_DONE_SPELL_NONE_DMG_CLASS_NEG12 Done negative spell that has dmg class none
81920x00002000PROC_FLAG_TAKEN_SPELL_NONE_DMG_CLASS_NEG13 Taken negative spell that has dmg class none
163840x00004000PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_POS14 Done positive spell that has dmg class magic
327680x00008000PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_POS15 Taken positive spell that has dmg class magic
655360x00010000PROC_FLAG_DONE_SPELL_MAGIC_DMG_CLASS_NEG16 Done negative spell that has dmg class magic
1310720x00020000PROC_FLAG_TAKEN_SPELL_MAGIC_DMG_CLASS_NEG17 Taken negative spell that has dmg class magic
2621440x00040000PROC_FLAG_DONE_PERIODIC18 Successful do periodic (damage / healing)
5242880x00080000PROC_FLAG_TAKEN_PERIODIC19 Taken spell periodic (damage / healing)
10485760x00100000PROC_FLAG_TAKEN_DAMAGE20 Taken any damage
20971520x00200000PROC_FLAG_DONE_TRAP_ACTIVATION21 On trap activation (possibly needs name change to ON_GAMEOBJECT_CAST or USE)
41943040x00400000PROC_FLAG_DONE_MAINHAND_ATTACK22 Done main-hand melee attacks (spell and autoattack)
83886080x00800000PROC_FLAG_DONE_OFFHAND_ATTACK23 Done off-hand melee attacks (spell and autoattack)
167772160x01000000PROC_FLAG_DEATH24 Died in any way
2040x000000CCAUTO_ATTACK_PROC_FLAG_MASKAny auto attack
125829720x00C0003CMELEE_PROC_FLAG_MASKAny melee attack
9600x000003C0RANGED_PROC_FLAG_MASKAny ranged attack
31457120x002FFFF0SPELL_PROC_FLAG_MASKAny spell attack
150295880x00E55554DONE_HIT_PROC_FLAG_MASKAny dealt attack
17476240x001AAAA8TAKEN_HIT_PROC_FLAG_MASKAny taken attack
24466720x00255550REQ_SPELL_PHASE_PROC_FLAG_MASK
  • SpellTypeMask
    • 这个字段控制什么类型的法术可以触发
    • 取值参考源码 SpellMgr.h 的 ProcFlagsSpellType 定义
    • 此值为位掩码,要应用多个,只需将他们相加
ValueFlagNameComment
00x00

PROC_SPELL_TYPE_NONE

10x01PROC_SPELL_TYPE_DAMAGE仅伤害类法术
20x02PROC_SPELL_TYPE_HEAL仅治疗类法术
40x04PROC_SPELL_TYPE_NO_DMG_HEAL所有其他法术
  •  SpellPhaseMask
    • 这个字段控制在哪个阶段法术可以触发触发效果
    • 取值参考源码 SpellMgr.h 的 ProcFlagsSpellPhase 定义
    • 此值为位掩码,要应用多个,只需将他们相加
ValueFlagNameComment
10x01PROC_SPELL_PHASE_CAST法术施放完毕时触发
20x02PROC_SPELL_PHASE_HIT法术击中目标时触发
40x04PROC_SPELL_PHASE_FINISH在法术对所有目标产生所有效果后触发
  • HitMask
    • 用于为法术添加特殊条件,例如,要求法术仅在触发致命一击时触发
    • 取值参考源码 SpellMgr.h 的 ProcFlagsHit 定义
    • 此值为位掩码,要应用多个,只需将他们相加
ValueFlagNameComment
00x0000PROC_HIT_NONEprocs on:
PROC_HIT_NORMAL | PROC_HIT_CRITICAL for TAKEN proc type
PROC_HIT_NORMAL | PROC_HIT_CRITICAL | PROC_HIT_ABSORB for DONE
10x0001PROC_HIT_NORMAL普通一击(非致命一击)
20x0002PROC_HIT_CRITICAL致命一击
40x0004PROC_HIT_MISS未击中
80x0008PROC_HIT_FULL_RESIST被完全抵抗
160x0010PROC_HIT_DODGE被躲闪
320x0020PROC_HIT_PARRY被躲避
640x0040PROC_HIT_BLOCK被(部分或完全)格挡
1280x0080PROC_HIT_EVADE被规避
2560x0100PROC_HIT_IMMUNE被免疫
5120x0200PROC_HIT_DEFLECT被偏斜
10240x0400PROC_HIT_ABSORB被(部分或完全)吸收
20480x0800PROC_HIT_REFLECT被反射
40960x1000PROC_HIT_INTERRUPT被打断
81920x2000PROC_HIT_FULL_BLOCK完全格挡
163840x4000

PROC_HIT_DISPEL

被驱散
  • AttributesMask
    • 为法术触发增加特殊行为,只有当这些条件满足时,法术才能触发触发
    • 不同的端、不同的版本可能略有区别,取值参考源码 SpellMgr.h 的 ProcAttributes 定义
    • 此值为位掩码,要应用多个,只需将他们相加
ValueFlagNameComment
00x0000

PROC_ATTR_NONE

None
10x0001PROC_ATTR_REQ_EXP_OR_HONORrequires proc target to give exp or honor for aura proc
20x0002PROC_ATTR_TRIGGERED_CAN_PROCaura can proc even with triggered spells
40x0004PROC_ATTR_REQ_MANA_COSTrequires triggering spell to have a mana cost for aura proc
80x0008PROC_ATTR_REQ_SPELLMODrequires triggering spell to be affected by proccing aura to drop charges
1280x0080PROC_ATTR_REDUCE_PROC_60aura should have a reduced chance to proc if level of proc Actor > 60
2560x0100PROC_ATTR_CANT_PROC_FROM_ITEM_CASTdo not allow aura proc if proc is caused by a spell casted by item
  •  DisableEffectsMask
    • 用以禁用法术效果触发
    • 此值为位掩码,要应用多个,只需将他们相加
ValueMaskName
10x01EFFECT_1
20x02EFFECT_2
40x04EFFECT_3
  • ProcsPerMinute
    • chance = (ProcsPerMinute * delay) / 600
    • 取值链接 item_template.delay
  • Chance
    • 每次命中或施法的绝对几率(当 ProcsPerMinute为0时)
    • 如果 Chance 和 ProcsPerMinute 均为0,则使用 Spell.dbc 中的 ProcChance 的默认值
  • Cooldown
    • 定义法术的隐藏冷却时间,毫秒为单位,也被称为法术触发的内部冷却时间,或 ICD
  • Charges
    •  触发法术的激活次数
    • 如果值为 0,则使用 Spell.dbc 中的 ProcCharges 的默认值
  • 25
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值