这一篇怎么用:想知道某个
TYPE长什么样、抄一份能跑的写法,翻到对应条目。 想知道它为什么这么写、机制在哪,看 239 个 TYPE 的行为解释; 想查槽位别名与默认曲线,看 数值槽对照表。样例的来源:185 个取自原版
E:/Torchlight 2/MEDIA,38 个取自 MOD 库D:/WizardProject/TL2,每条都标了源文件的相对路径。 挑选规则是「同源内取键数在 4–12 之间、信息量最大的那一个」,并且跳过了含嵌套块的, 保证每份样例都能直接读懂。剩下 16 个类型在原版与 MOD 库里一次都没被用过,它们的样例是按槽位表构造的, 已在条目下方明确标注——那不是实测数据。
DAMAGE_TYPE 什么时候有用
这个键写在 [EFFECT] 块里,看着像每个效果都能用,实际上只有六个类型会读它: 8 ARMOR BONUS、10 DAMAGE BONUS、23 PERCENT ARMOR BONUS、 25 PERCENT DAMAGE BONUS、26 PERCENT DAMAGE TAKEN、52 DAMAGE。
合法值只有七个,大小写不敏感但拼写必须精确:
| 序号 | 名字 | 序号 | 名字 | |
|---|---|---|---|---|
| 0 | Physical | 4 | Electric | |
| 1 | Magical | 5 | Poison | |
| 2 | Fire | 6 | All | |
| 3 | Ice |
CAUTION
值写错的两个高频错法:MAGIC 不是 MAGICAL(MOD 库里 176 个块这么写, 其中 168 个在 52 DAMAGE 上)、ELECTRICAL 不是 ELECTRIC。 拼错时匹配循环七项全不中,CEffect+0x14 的写入(0x7AB545)被整个跳过。
键名写错则更隐蔽:DAMAGETYPE(少一个下划线)在两库里出现 27 次, 包括原版 2 处——SKILLS/CHAMPIONS/CHARGEDBOLT.DAT 与 SKILLS/PROCS/CHARGEDBOLT.DAT。 二进制里根本没有这个字符串,于是整个键被无视、取默认值 PHYSICAL。 详见 52 DAMAGE 的条目。
两库合计 48263 个块写了 DAMAGE_TYPE,其中 9980 个是白写的—— 1435 个落在被强制成 Magical 的九个 DEFENSE 类型上(原版自己占 166 处), 8545 个落在没有消费方的类型上。完整推导见 行为解释 §2.5。
每个条目下方都标了该类型的判定。
读法说明
每个条目三段:
- 代码块 —— 一份真实的
[EFFECT]块,原样照抄,未做删改(缩进统一为制表符)。 - 一句话效果 —— 这个类型在游戏里做什么,以及已核实的机制要点。
- 样例读数 / 生效方式 —— 前者把该类型的槽位别名与样例里的实际值对上; 后者说明它走六条路径中的哪几条,以及
DURATION该怎么填。
NOTE
「生效方式」里的 INSTANT 分支 与 挂载分支 两项来自逐字节解出的跳转表,是确定结论; 被动数值一项来自逐调用点回读,完整度说明见 行为解释 §9。
先看这个:六个写了不生效的类型
下面六个类型在两个库里都有人在写,但引擎里没有任何代码会读它们。 条目里都挂了警告块,这里先列出来省得翻:
| # | TYPE 名 | 原版 | MOD 库 | 一句话 |
|---|---|---|---|---|
| 11 | DAMAGE TAKEN | 0 | 70 | 百分比版 26 才有消费方 |
| 24 | PERCENT TO HIT BONUS | 0 | 15 | 成品没有命中率系统 |
| 46 | IDENTIFY | 2 | 2 | 效果块本身无行为,鉴定在技能层 |
| 131 | FUTURISTICNESS | 0 | 21 | 开发期玩笑,但文案会照显示 |
| 135 | NOODLE ARMS | 1 | 0 | 开发期玩笑,原版自己也误用了一次 |
| 164 | DISENCHANT | 1 | 5 | 效果块本身无行为,去附魔靠标志位 0x400 |
另有四个同样没有执行路径、但属于有意为之,不算 bug—— 58 UNIT THEME(靠同块的 UNITTHEME: 键生效)、193 NONE(拼错 TYPE 的落点)、 212 TARGET LOCKED 与 237 MINIONDAMAGE(纯展示位)。它们的条目里挂的是说明块而不是警告块。
CAUTION
237 MINIONDAMAGE 在 MOD 库里被写了 801 次。 原版那 9 处全是 DUMMY_* 前缀的占位词缀,存在的意义就是让物品提示多一行字; 照抄的人多半以为它真的会给随从加伤害。 真正管用的是 91 PERCENT PET DAMAGE(原版 19 次、MOD 库 422 次), 而且要挂在主人身上——详见该类型的条目。
基础属性
力量/敏捷/魔力/防御,以及生命与法力上限。绝大多数是被动数值,必须活着才有效。
2 · DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DEFENSE
<FLOAT>MIN:50
<FLOAT>MAX:120
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_STATS_DEFENSE_BONUS.DAT
防御属性(体力)。CUnit__getEffectiveVitality 先加它,再乘类型 17 的百分比。
样例读数:槽位 MIN=50、MAX=120 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 24 次 · MOD 库 623 次
DAMAGE_TYPE:写了也无效 —— 0x7AAC03 的跳转表把这个类型的 CEffect+0x14 无条件写成 1(Magical),连键都不读。数据里目前无人在此类型上写它。
3 · MAGIC
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:MAGIC
<FLOAT>MIN:50
<FLOAT>MAX:120
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_STATS_MAGIC_BONUS.DAT
魔力属性。CUnit__getEffectiveFocus 先加它,再乘类型 18。
样例读数:槽位 MIN=50、MAX=120 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 24 次 · MOD 库 880 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
4 · MAX MANA
[EFFECT]
<STRING>NAME:OFTHEMASTER CRITICAL CHANCE
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:MAX MANA
<FLOAT>MIN:4
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/GEM_RANDOM_MANA.DAT
法力上限(绝对值)。CUnit__getMaxMana 读取。
样例读数:槽位 MIN=4、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 18 次 · MOD 库 1139 次
5 · MAX HP
[EFFECT]
<STRING>NAME:OFTHEMASTER CRITICAL CHANCE
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:MAX HP
<FLOAT>MIN:4
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/GEM_RANDOM_HP.DAT
生命上限(绝对值)。CUnit__getMaxHealth 读取。
样例读数:槽位 MIN=4、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 1657 次
DAMAGE_TYPE:数据里 80 个块写了它(原版 0、MOD 库 80),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
17 · PERCENT DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT DEFENSE
<BOOL>NOGRAPH:true
<FLOAT>MIN:30
<FLOAT>MAX:30
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_5_9.DAT
防御属性百分比加成。乘在类型 2 之上。
样例读数:槽位 MIN=30、MAX=30 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 306 次
WARNING
DAMAGE_TYPE 在这个类型上无效。 数据里有 6 个块写了它(原版 0、MOD 库 6),全部不起作用。 0x7AAC03 的跳转表把九个 DEFENSE 家族类型的 CEffect+0x14 无条件写成 1(Magical),连 DAMAGE_TYPE: 那一行都不读(0x7AB4DB 置位后直接 jmp 过整个解析)。详见行为解释 §2.5。
18 · PERCENT MAGIC
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT MAGIC
<BOOL>NOGRAPH:true
<FLOAT>MIN:30
<FLOAT>MAX:30
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_5_10.DAT
魔力属性百分比加成。乘在类型 3 之上。
样例读数:槽位 MIN=30、MAX=30 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 136 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
19 · PERCENT MANA
[EFFECT]
<STRING>NAME:OFTHEOWL MAX MANA
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT MANA
<FLOAT>MIN:4
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/SET_MAX_MANA.DAT
法力上限百分比加成。
样例读数:槽位 MIN=4、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 11 次 · MOD 库 545 次
20 · PERCENT HP
[EFFECT]
<STRING>NAME:OFTHEELEPHANT MAX HP
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT HP
<FLOAT>MIN:4
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/SET_MAX_HP.DAT
生命上限百分比加成。
样例读数:槽位 MIN=4、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 32 次 · MOD 库 1639 次
DAMAGE_TYPE:数据里 105 个块写了它(原版 0、MOD 库 105),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
69 · STRENGTH BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:STRENGTH BONUS
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:80
<FLOAT>MAX:80
[/EFFECT]原版 AFFIXES/GEMS/GEM_PEARL_ARMOR.DAT
力量。CUnit__getEffectiveStrength 读它与类型 71。
样例读数:槽位 MIN=80、MAX=80 · ACTIVATION=PASSIVE;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 24 次 · MOD 库 656 次
DAMAGE_TYPE:数据里 10 个块写了它(原版 2、MOD 库 8),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
70 · DEXTERITY BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DEXTERITY BONUS
<FLOAT>MIN:50
<FLOAT>MAX:120
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_STATS_DEXTERITY_BONUS.DAT
敏捷。CUnit__getEffectiveDexterity 读它与类型 72。
样例读数:槽位 MIN=50、MAX=120 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 24 次 · MOD 库 534 次
71 · PERCENT STRENGTH BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT STRENGTH BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:30
<FLOAT>MAX:30
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_5_11.DAT
力量百分比加成。
样例读数:槽位 MIN=30、MAX=30 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 221 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
72 · PERCENT DEXTERITY BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT DEXTERITY BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:30
<FLOAT>MAX:30
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_5_8.DAT
敏捷百分比加成。
样例读数:槽位 MIN=30、MAX=30 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 149 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
114 · PERMANENT STRENGTH
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:PERMANENT STRENGTH
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版 SKILLS/SHRINES/STAT_STRENGTH_PT1.DAT
永久增加力量。七个「永久属性」共用同一个三调用模式。
样例读数:槽位 MIN=1、MAX=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A0D5。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 2 次 · MOD 库 6 次
115 · PERMANENT DEXTERITY
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:PERMANENT DEXTERITY
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版 SKILLS/SHRINES/STAT_DEXTERITY_PT1.DAT
永久增加敏捷。
样例读数:槽位 MIN=1、MAX=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A103。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 2 次 · MOD 库 6 次
116 · PERMANENT MAGIC
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:PERMANENT MAGIC
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版 SKILLS/SHRINES/STAT_FOCUS_PT1.DAT
永久增加魔力。
样例读数:槽位 MIN=1、MAX=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A131。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 2 次 · MOD 库 6 次
117 · PERMANENT HEALTH
[EFFECT]
<STRING>NAME:LICHHEALTH
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:PERMANENT HEALTH
<STRING>PARTICLE_FX:media/particles/events/GenericPotion.layout
<FLOAT>MIN:25
<FLOAT>MAX:25
[/EFFECT]原版 UNITS/ITEMS/POTIONS/POTION_LICHKING.DAT
永久增加生命。
样例读数:槽位 MIN=25、MAX=25 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A18D。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 7 次
118 · PERMANENT DEFENSE
[EFFECT]
<STRING>NAME:ROUGHHIDE
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:PERMANENT DEFENSE
<STRING>PARTICLE_FX:media/particles/events/GenericPotion.layout
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 UNITS/ITEMS/POTIONS/POTION_BROMS_DEFENSE.DAT
永久增加防御。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A15F。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 3 次 · MOD 库 7 次
DAMAGE_TYPE:写了也无效 —— 0x7AAC03 的跳转表把这个类型的 CEffect+0x14 无条件写成 1(Magical),连键都不读。数据里目前无人在此类型上写它。
119 · PERMANENT MANA
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:PERMANENT MANA
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]MOD challenger-continent/职业技能/MEDIA/SKILLS/BDKRZ_TF/BDKRZ_TF2/BDKRZ_TF2_SKILL.DAT
永久增加法力。少一个 ftol,直接用浮点,是七兄弟里唯一的例外。
样例读数:槽位 MIN=1、MAX=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A1BB。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 0 次 · MOD 库 2 次
120 · AWARD STATPOINT
[EFFECT]
<STRING>NAME:AWARD STATPOINTS
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:AWARD STATPOINT
<FLOAT>SOAKSCALE:0
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]MOD challenger-continent/已移除内容/暗黑传奇/MEDIA/UNITS/ITEMS/ADD_POTIONS/CHEW RESPEC DEXTERITY 5.DAT
奖励属性点。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A1EA。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 0 次 · MOD 库 8 次
生命与法力回复
每秒回复量、随时间的增减,以及范围抽取。
6 · MANA RECHARGE
[EFFECT]
<STRING>NAME:AOESPORESDRAIN2
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:1
<STRING>TYPE:MANA RECHARGE
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-1000
<FLOAT>MAX:-1000
[/EFFECT]原版 AFFIXES/SKILLS/AOESPORES.DAT
每秒法力回复。INSTANT 时直接 CUnit__modifyMana 回一次;有时长时按 值 × 时长 × 0.016 折算。
样例读数:槽位 MIN=-1000、MAX=-1000 · ACTIVATION=PASSIVE;DURATION=1;EXCLUSIVE=true
生效方式:被动数值 / INSTANT 分支 0x55A856
实测用量:原版 24 次 · MOD 库 369 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
7 · HP RECHARGE
[EFFECT]
<STRING>NAME:EXPLOSION
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:HP RECHARGE
<STRING>DURATION:INSTANT
<STRING>DAMAGE_TYPE:ICE
<FLOAT>MIN:-25
<FLOAT>MAX:-50
<FLOAT>MINFORCE:2
<FLOAT>MAXFORCE:4
<STRING>DAMAGE_TYPE:ICE
[/EFFECT]原版 SKILLS/MONSTERS/GOBLINICEBALL.DAT
每秒生命回复。与类型 6 同构,另有挂载分支会在挂上时重掷两个槽。
样例读数:槽位 MIN=-25、MAX=-50、MINFORCE=2、MAXFORCE=4 · ACTIVATION=DYNAMIC;DURATION=INSTANT;DAMAGE_TYPE=ICE;DAMAGE_TYPE=ICE
生效方式:被动数值 / INSTANT 分支 0x55A92B / 挂载分支 0x563F3A
实测用量:原版 34 次 · MOD 库 883 次
DAMAGE_TYPE:数据里 6 个块写了它(原版 3、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
123 · MANA RECHARGE PLAYER
[EFFECT]
<STRING>NAME:RejuvenatingKillHeal
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:MANA RECHARGE PLAYER
<BOOL>USEOWNERLEVEL:true
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_REJUVENATINGKILL_HEAL.DAT
玩家每秒法力回复。INSTANT 路径与类型 6 共用同一段代码。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:被动数值 / INSTANT 分支 0x55A856
实测用量:原版 87 次 · MOD 库 1560 次
DAMAGE_TYPE:数据里 84 个块写了它(原版 3、MOD 库 81),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
124 · HP RECHARGE PLAYER
[EFFECT]
<STRING>NAME:lifeloss
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:HP RECHARGE PLAYER
<FLOAT>MIN:-0.333
<FLOAT>MAX:-0.333
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_LIFE_LOSS.DAT
玩家每秒生命回复。与类型 7 共用。
样例读数:槽位 MIN=-0.333、MAX=-0.333 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值 / INSTANT 分支 0x55A92B / 挂载分支 0x563F3A
实测用量:原版 164 次 · MOD 库 2837 次
DAMAGE_TYPE:数据里 106 个块写了它(原版 0、MOD 库 106),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
185 · HP MOD OVER TIME
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:.5
<STRING>TYPE:HP MOD OVER TIME
<STRING>PARTICLE_FX:media/particles/events/BigHealthBonus.Layout
<FLOAT>PERCENT_TO_HEAL:0.1
<FLOAT>TIME_TO_HEAL:0.5
<FLOAT>TIME_TO_HEAL_MAX:0.5
<FLOAT>MIN_STOP_AT:0
<FLOAT>MAX_STOP_AT:1
[/EFFECT]原版 SKILLS/MONSTERS/BLOATFANG/BLOATFANG_HEAL.DAT
生命随时间增减。tick 每帧读全五个槽。
样例读数:槽位 PERCENT_TO_HEAL=0.1、TIME_TO_HEAL=0.5、TIME_TO_HEAL_MAX=0.5、MIN_STOP_AT=0、MAX_STOP_AT=1 · ACTIVATION=DYNAMIC;DURATION=.5
生效方式:tick 分支
实测用量:原版 34 次 · MOD 库 11434 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 1、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
229 · DRAW HEALTH
[EFFECT]
<STRING>NAME:drawhealthx2
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DRAW HEALTH
<STRING>DAMAGE_TYPE:ALL
<BOOL>EXCLUSIVE:false
<FLOAT>MIN_PER_HEALTH:2
<FLOAT>MAX_PER_HEALTH:2
<FLOAT>PULSE_RATE:1
<FLOAT>RADIUS:3
<FLOAT>MAX_TARGETS:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_DRAWHEALTH2.DAT
抽取生命。范围抽取,不是单体 —— 按 RADIUS 收集、MAX_TARGETS 限量、PULSE_RATE 控频,且跳过满血目标。分派器那行不带过期判定,每帧无条件调。
样例读数:槽位 MIN_PER_HEALTH=2、MAX_PER_HEALTH=2、PULSE_RATE=1、RADIUS=3、MAX_TARGETS=5 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL;EXCLUSIVE=false
生效方式:tick 分支
实测用量:原版 10 次 · MOD 库 208 次
DAMAGE_TYPE:数据里 208 个块写了它(原版 10、MOD 库 198),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
230 · DRAW MANA
[EFFECT]
<STRING>NAME:drawmanax1
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DRAW MANA
<STRING>DAMAGE_TYPE:ALL
<BOOL>EXCLUSIVE:false
<FLOAT>MIN_PER_MANA:1.5
<FLOAT>MAX_PER_MANA:1.5
<FLOAT>PULSE_RATE:1
<FLOAT>RADIUS:3
<FLOAT>MAX_TARGETS:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_DRAWMANA.DAT
抽取法力。与 229 同一个实现。
样例读数:槽位 MIN_PER_MANA=1.5、MAX_PER_MANA=1.5、PULSE_RATE=1、RADIUS=3、MAX_TARGETS=5 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL;EXCLUSIVE=false
生效方式:tick 分支
实测用量:原版 10 次 · MOD 库 205 次
DAMAGE_TYPE:数据里 183 个块写了它(原版 10、MOD 库 173),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
武器伤害加成
按武器类别/伤害类型分桶记账的加成,见正文 2.1 与 2.2 节。
0 · MELEEDAMAGEBONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:MELEEDAMAGEBONUS
<FLOAT>MIN:10
<FLOAT>MAX:10
<FLOAT>MINFORCE:0
<FLOAT>MAXFORCE:0
[/EFFECT]原版 AFFIXES/GEMS/GEM_IRONEMBER_ARMOR_MELEEDAMAGE.DAT
近战武器伤害加成(绝对值)。近战结算函数 sub_52DA30 的基础加成来源。
样例读数:槽位 MIN=10、MAX=10、MINFORCE=0、MAXFORCE=0 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 51 次
DAMAGE_TYPE:数据里 45 个块写了它(原版 0、MOD 库 45),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
1 · RANGEDDAMAGEBONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:RANGEDDAMAGEBONUS
<FLOAT>MIN:10
<FLOAT>MAX:10
<FLOAT>MINFORCE:0
<FLOAT>MAXFORCE:0
[/EFFECT]原版 AFFIXES/GEMS/GEM_IRONEMBER_ARMOR_MISSILEDAMAGE.DAT
远程武器伤害加成(绝对值)。远程结算 sub_52E9D0 读它——与类型 0 是一对镜像。
样例读数:槽位 MIN=10、MAX=10、MINFORCE=0、MAXFORCE=0 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 1 次
10 · DAMAGE BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:DAMAGE BONUS
<STRING>DAMAGE_TYPE:ELECTRIC
<FLOAT>MIN:12
<FLOAT>MAX:12
[/EFFECT]原版 AFFIXES/GEMS/GEM_CITRINE.DAT
伤害加成(绝对值),按伤害类型分七个桶记账。DAMAGE_TYPE 写错等于加成进了没人取的桶。
样例读数:槽位 MIN=12、MAX=12 · ACTIVATION=PASSIVE;DAMAGE_TYPE=ELECTRIC
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 124 次 · MOD 库 3865 次
DAMAGE_TYPE:这个类型真的会读(近战/远程两对镜像函数共 8 处,如 0x52E057、0x52E68A)。数据里 3586 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
15 · PERCENT MELEEDAMAGE
[EFFECT]
<STRING>NAME:OFTHEBEAR DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT MELEEDAMAGE
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:6
<FLOAT>MAX:9
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_MELEE_DAMAGE_BONUS.DAT
近战伤害百分比加成。与类型 0 一同进伤害结算。
样例读数:槽位 MIN=6、MAX=9 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 17 次 · MOD 库 265 次
DAMAGE_TYPE:数据里 156 个块写了它(原版 17、MOD 库 139),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
16 · PERCENT RANGEDDAMAGE
[EFFECT]
<STRING>NAME:OFTHEBEAR DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT RANGEDDAMAGE
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:6
<FLOAT>MAX:9
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_RANGED_DAMAGE_BONUS.DAT
远程伤害百分比加成。近战与远程两个结算函数都读它。
样例读数:槽位 MIN=6、MAX=9 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 246 次
DAMAGE_TYPE:数据里 230 个块写了它(原版 23、MOD 库 207),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
25 · PERCENT DAMAGE BONUS
[EFFECT]
<STRING>NAME:CHAMP ELEC DAMAGE
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT DAMAGE BONUS
<STRING>DAMAGE_TYPE:ICE
<BOOL>SAVE:true
<FLOAT>MIN:20
<FLOAT>MAX:20
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONCOLD.DAT
伤害百分比加成,同样按七个伤害桶分账,是最常用的输出词缀类型。
样例读数:槽位 MIN=20、MAX=20 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ICE
生效方式:被动数值 / 布尔查询。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 391 次 · MOD 库 7179 次
DAMAGE_TYPE:这个类型真的会读(两对镜像 + 挂载分派共 16 处,如 0x52BF4E、0x563DD4)。数据里 7086 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
88 · DUAL WIELDING BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DUAL WIELDING BONUS
<FLOAT>MIN:6
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_DUALWIELDBONUS2.DAT
双持加成。伤害结算与 resolveStrikeHit 都读它。
样例读数:槽位 MIN=6、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 294 次
DAMAGE_TYPE:数据里 14 个块写了它(原版 2、MOD 库 12),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
91 · PERCENT PET DAMAGE
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT PET DAMAGE
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_PETDAMAGE.DAT
宠物与随从伤害百分比。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 19 次 · MOD 库 422 次
DAMAGE_TYPE:数据里 281 个块写了它(原版 11、MOD 库 270),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
TIP
这是 237 MINIONDAMAGE 想做而做不到的那件事的正解。
方向是反的:要挂在主人身上,不是随从身上。 七处读取点全都长这样—— 随从结算伤害时先 CUnit__getRootOwner 找到主人(找不到就整段跳过), 再问主人要 getStat(91),× 0.01 后累加进伤害百分比:
.text:0052BF69 call CUnit__getRootOwner ; 随从反向找主人
.text:0052BF70 jz short loc_52BF92 ; 没有主人就跳过
.text:0052BF76 push 5Bh ; 类型 91
.text:0052BF81 call CUnit__getStat ; 问主人要
.text:0052BF86 fmul ds:flt_2142654 ; × 0.01七处分布:sub_52BD90(近战)0x52BF76、0x52C0F4;sub_52C170(远程)0x52C366、0x52C4E4; sub_52DA30 0x52E8C3、sub_52E9D0 0x52F860(第二对镜像);CUnit__applyEffectToSelf_dispatch 0x563E20。
上面样例里的 DAMAGE_TYPE:ALL 是摆设——这个键对类型 91 不起作用。 七处调用传给 CUnit__getStat 的第二个参数恒为 7,而 CEffectMgr__sumStatOfType_filtered(0x7AEA40)里 7 是「不按伤害类型过滤」的哨兵(合法伤害类型只有 0..6),命中就直接返回 239 缓存、连表都不扫。 所以写 DAMAGE_TYPE:FIRE 不会把加成限制成火焰——它照样全额计入。这一点和按七个桶记账的 10/25 正相反。
99 · PERCENT MARTIAL ITEM DAMAGE BONUS
[EFFECT]
<STRING>NAME:MARTIALSKILLD
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT MARTIAL ITEM DAMAGE BONUS
<STRING>DAMAGE_TYPE:ALL
<STRING>GRAPHOVERRIDE:MASTERY_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_MARTIAL_MASTERY.DAT
近战武器伤害百分比加成。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 78 次
DAMAGE_TYPE:数据里 5 个块写了它(原版 1、MOD 库 4),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
102 · PERCENT RANGED ITEM DAMAGE BONUS
[EFFECT]
<STRING>NAME:MARTIALSKILLD
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT RANGED ITEM DAMAGE BONUS
<STRING>DAMAGE_TYPE:ALL
<STRING>GRAPHOVERRIDE:MASTERY_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_RANGED_MASTERY.DAT
远程武器伤害百分比加成。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 102 次
DAMAGE_TYPE:数据里 12 个块写了它(原版 1、MOD 库 11),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
103 · PERCENT MAGIC ITEM DAMAGE BONUS
[EFFECT]
<STRING>NAME:OFTHEBEAR DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT MAGIC ITEM DAMAGE BONUS
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:6
<FLOAT>MAX:9
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_MAGICWEAPON_DAMAGE_BONUS.DAT
法杖与魔杖伤害百分比加成。
样例读数:槽位 MIN=6、MAX=9 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 7 次 · MOD 库 90 次
DAMAGE_TYPE:数据里 88 个块写了它(原版 7、MOD 库 81),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
153 · PERCENT DUAL WIELDING ATTACK
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT DUAL WIELDING ATTACK
<FLOAT>MIN:8
<FLOAT>MAX:8
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_TL2_EXECUTE1.DAT
双持攻击百分比。与 MELEE_DW/PISTOL_DW/WAND_DW/DAGGER_DW 几条曲线一起进计算。
样例读数:槽位 MIN=8、MAX=8 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 22 次 · MOD 库 273 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
154 · DAMAGE BONUS SECONDARY
[EFFECT]
<STRING>NAME:OFTHEBEAR DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DAMAGE BONUS SECONDARY
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:30
<FLOAT>MAX:45
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_SPLASH_DAMAGE_BONUS.DAT
次要伤害加成。CCharacter__strike_resolveTargets 读取。
样例读数:槽位 MIN=30、MAX=45 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 275 次
DAMAGE_TYPE:数据里 69 个块写了它(原版 5、MOD 库 64),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
237 · MINIONDAMAGE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:MINIONDAMAGE
<STRING>GRAPHOVERRIDE:DAMAGE_MINION_BYLEVEL
<BOOL>USEOWNERLEVEL:true
<FLOAT>MIN:100
<FLOAT>MAX:150
<FLOAT>MINFORCE:0
<FLOAT>MAXFORCE:0
[/EFFECT]原版 AFFIXES/ITEMS/DUMMY_BERSERKER_WOLFSHADE_DAMAGE.DAT
随从伤害。纯工具提示文案 —— 类型号 237 超出两个分派器的射程,也没有消费方。原版 8 个使用文件全部是 DUMMY_* 前缀的占位词缀,作用只是让物品提示多一行字。
样例读数:槽位 MIN=100、MAX=150、MINFORCE=0、MAXFORCE=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:纯显示 —— 无执行路径,只有描述串
实测用量:原版 9 次 · MOD 库 801 次
DAMAGE_TYPE:数据里 391 个块写了它(原版 1、MOD 库 390),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
NOTE
有意为之的提示文案:超出两个分派器的射程(INSTANT ≤236、挂载 ≤228),不可能有分支。原版 9 处全是 DUMMY_* 占位词缀,就是为了让提示里多一行「随从造成 X 伤害」——实际伤害来自随从自己的数据。
真要给随从加伤害,用 91 PERCENT PET DAMAGE,那个有消费方,且要挂在主人身上。
命中、暴击与格挡
掷骰类。多数由 CBaseUnit__rollCritical/rollBlockParryShatter 这一族消费。
9 · TO HIT BONUS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:TO HIT BONUS
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
命中加成。成品里根本没有命中率系统(闪避/格挡/失手取而代之),所以既无消费方、四条描述串也全空——不显示也不生效。6 个「真的没有代码」的零用量类型里只有它是两头皆空。
生效方式:未找到消费方 —— 六条路径均无,原版用量为 0
实测用量:两库合计 0 次
24 · PERCENT TO HIT BONUS
[EFFECT]
<STRING>NAME:AccuracyUpWithCharge
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT TO HIT BONUS
<STRING>STATMODIFYNAME:WB_CHARGE
<STRING>STATMODIFYPERCENT:100
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]MOD challenger-continent/已移除内容/佣兵系统/MEDIA/SKILLS/WARBOUNDS/AIDE/VANQ/WBVANQ_PASSIVE.DAT
命中百分比加成。未找到消费方,原版用量 0。
样例读数:槽位 MIN=1、MAX=1 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:未找到消费方 —— 六条路径均无,原版用量为 0
实测用量:原版 0 次 · MOD 库 15 次
WARNING
写了不生效。 两库合计已被写了 15 次,但引擎里没有任何代码会读它。 命中率系统在成品里不存在(闪避/格挡/失手取而代之),本类型与 9 TO HIT BONUS 都没有任何消费方。
33 · PERCENT BLOCK CHANCE
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT BLOCK CHANCE
<FLOAT>MIN:3
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/OFTHEBATTLEMENTS2.DAT
格挡率百分比。CUnit__getBlockChancePct 读它,与类型 62 一起算。
样例读数:槽位 MIN=3、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 299 次
DAMAGE_TYPE:数据里 6 个块写了它(原版 0、MOD 库 6),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
55 · CRITICAL CHANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CRITICAL CHANCE
<STRING>DAMAGE_TYPE:
<STRING>PARTICLE_FX:
<STRING>STATMODIFYNAME:
<STRING>STATMODIFYPERCENT:
<STRING>UNITTHEME:
<FLOAT>MIN:2
<FLOAT>MAX:3
[/EFFECT]原版 AFFIXES/GEMS/GEM_FISH_UNICORN.DAT
暴击率。CBaseUnit__rollCritical 读取。
样例读数:槽位 MIN=2、MAX=3 · ACTIVATION=PASSIVE;DAMAGE_TYPE=
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 311 次 · MOD 库 3979 次
DAMAGE_TYPE:数据里 32 个块写了它(原版 2、MOD 库 30),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
62 · PERCENT BLOCK CHANCE BASE
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT BLOCK CHANCE BASE
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/SET_BLOCK_CHANCE.DAT
格挡率基数百分比。与类型 33 一起进 getBlockChancePct。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 45 次 · MOD 库 437 次
89 · PERCENT CRITICAL DAMAGE
[EFFECT]
<STRING>NAME:OFTHEBEAR DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT CRITICAL DAMAGE
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_CRITICALDAMAGE.DAT
暴击伤害百分比。CBaseUnit__getCritDamageBonusPct 读取,另叠 CRIT_BONUS 曲线。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 20 次 · MOD 库 1444 次
DAMAGE_TYPE:数据里 265 个块写了它(原版 7、MOD 库 258),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
178 · DODGE CHANCE BONUS
[EFFECT]
<STRING>NAME:OFFLAME DAMAGE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DODGE CHANCE BONUS
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:3
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_DODGE2.DAT
闪避率加成。与 DODGE_CHANCE 曲线一起算。
样例读数:槽位 MIN=3、MAX=5 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 40 次 · MOD 库 783 次
DAMAGE_TYPE:数据里 171 个块写了它(原版 8、MOD 库 163),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
179 · FUMBLE CHANCE REDUCTION
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:FUMBLE CHANCE REDUCTION
<FLOAT>MIN:7
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_FUMBLECHANCE3.DAT
失手率减免。与 FUMBLE_CHANCE 曲线一起算。
样例读数:槽位 MIN=7、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 18 次 · MOD 库 311 次
180 · FUMBLE PENALTY REDUCTION
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:FUMBLE PENALTY REDUCTION
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_TL2_FUMBLEDAMAGE.DAT
失手惩罚减免。与 FUMBLE_DAMAGE 曲线一起算。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 30 次
226 · MISS CHANCE
[EFFECT]
<STRING>NAME:RAZEMISSCHANCE
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:4
<STRING>TYPE:MISS CHANCE
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:25
<FLOAT>MAX:25
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_RAZE2.DAT
未命中概率。resolveStrikeHit 读取。
样例读数:槽位 MIN=25、MAX=25 · ACTIVATION=DYNAMIC;DURATION=4;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 2 次 · MOD 库 177 次
DAMAGE_TYPE:数据里 4 个块写了它(原版 0、MOD 库 4),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
护甲、抗性与反伤
护甲计算链见正文 2.4 节的抗性间址表。
8 · ARMOR BONUS
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:ARMOR BONUS
<FLOAT>MIN:5
<FLOAT>MAX:7
[/EFFECT]原版 AFFIXES/ITEMS/OFTHETURTLE.DAT
护甲值(绝对值)。在百分比之后相加,所以不吃类型 23 的放大,但会吃防御曲线的放大。
样例读数:槽位 MIN=5、MAX=7 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 85 次 · MOD 库 1730 次
DAMAGE_TYPE:这个类型真的会读(CBaseUnit__getResistanceOfType 0x520AF6(变量)/0x520B21(6);另 0x5216F6)。数据里 1403 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
11 · DAMAGE TAKEN
[EFFECT]
<STRING>NAME:izau huge damage lower buff
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:DAMAGE TAKEN
<STRING>DAMAGE_TYPE:ALL
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-9999
<FLOAT>MAX:-9999
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/IZAU_DEFENDER/IZAU_DEFENDER_TEMP_INVINCIBILITY.DAT
受到伤害的绝对增减。未找到消费方,原版用量 0。
样例读数:槽位 MIN=-9999、MAX=-9999 · ACTIVATION=DYNAMIC;DAMAGE_TYPE=ALL;EXCLUSIVE=true
生效方式:未找到消费方 —— 六条路径均无,原版用量为 0
实测用量:原版 0 次 · MOD 库 70 次
DAMAGE_TYPE:数据里 9 个块写了它(原版 0、MOD 库 9),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
WARNING
写了不生效。 两库合计已被写了 70 次,但引擎里没有任何代码会读它。 百分比版 26 PERCENT DAMAGE TAKEN 有消费方(0x51ADF0,原版用 389 次),这个绝对值版没有。想改承伤请用 26。
23 · PERCENT ARMOR BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT ARMOR BONUS
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:-33
<FLOAT>MAX:-33
[/EFFECT]原版 AFFIXES/DAMAGEEFFECTAFFIXES/DAMAGEEFFECTPOISONED.DAT
护甲百分比加成。在类型 8 之前乘,见抗性计算链。
样例读数:槽位 MIN=-33、MAX=-33 · ACTIVATION=PASSIVE;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 89 次 · MOD 库 2940 次
DAMAGE_TYPE:这个类型真的会读(CBaseUnit__getResistanceOfType 0x520AB8(变量)/0x520ACC(6))。数据里 2106 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
26 · PERCENT DAMAGE TAKEN
[EFFECT]
<STRING>NAME:electric_barrier_armor
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT DAMAGE TAKEN
<STRING>DAMAGE_TYPE:ALL
<STRING>UNITTHEME:shielded
<BOOL>EXCLUSIVE:true
<STRING>LINK_NAME:electric_barrier_weakness
<FLOAT>MIN:-33
<FLOAT>MAX:-33
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMP_BARRIER_ELECTRIC.DAT
受到伤害百分比。读取方按传入伤害类型查一次、再加桶 6 查一次,随后两级钳位。
样例读数:槽位 MIN=-33、MAX=-33 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;DAMAGE_TYPE=ALL;EXCLUSIVE=true
生效方式:被动数值 / 布尔查询。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 389 次 · MOD 库 6021 次
DAMAGE_TYPE:这个类型真的会读(0x51AD81、0x51AE10、0x522AF1)。数据里 5953 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
32 · PERCENT DAMAGE REFLECTED
[EFFECT]
<STRING>NAME:spellretribution
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT DAMAGE REFLECTED
<STRING>DAMAGE_TYPE:PHYSICAL
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:25
<BOOL>EXCLUSIVE:true
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:8
<FLOAT>MAX:8
[/EFFECT]原版 AFFIXES/SKILLS/SPELL_RETRIBUTION.DAT
伤害反射百分比。
样例读数:槽位 MIN=8、MAX=8 · ACTIVATION=PASSIVE;DURATION=ALWAYS;DAMAGE_TYPE=PHYSICAL;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 31 次 · MOD 库 785 次
DAMAGE_TYPE:数据里 247 个块写了它(原版 4、MOD 库 243),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
35 · PHYSICAL DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PHYSICAL DEFENSE
<BOOL>NOGRAPH:true
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/ADD_ANY_200.DAT
物理抗性。经间址表 dword_216FD9C 被 getResistanceOfType 消费。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 44 次
DAMAGE_TYPE:写了也无效 —— 0x7AAC03 的跳转表把这个类型的 CEffect+0x14 无条件写成 1(Magical),连键都不读。数据里目前无人在此类型上写它。
36 · MAGICAL DEFENSE
[EFFECT]
<STRING>NAME:BOLSTER UNDEAD ARMOR
<STRING>ACTIVATION:PASSIVE
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:100
<STRING>TYPE:MAGICAL DEFENSE
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]MOD challenger-continent/职业技能/MEDIA/AFFIXES/PLAYERSKILLS/NECROMANCER_SKILLS/BOLSTER_UNDEAD.DAT
魔法抗性。同上。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 50 次
37 · FIRE DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:FIRE DEFENSE
<STRING>DAMAGE_TYPE:FIRE
<FLOAT>MIN:32
<FLOAT>MAX:32
[/EFFECT]原版 AFFIXES/GEMS/GEM_RUBY_ARMOR.DAT
火焰抗性。同上。注意 switch 里 case 2 对应的是 219 INNATE FIRE,映射不按序号递增。
样例读数:槽位 MIN=32、MAX=32 · ACTIVATION=PASSIVE;DAMAGE_TYPE=FIRE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 43 次 · MOD 库 408 次
WARNING
DAMAGE_TYPE 在这个类型上无效。 数据里有 341 个块写了它(原版 43、MOD 库 298),全部不起作用。 0x7AAC03 的跳转表把九个 DEFENSE 家族类型的 CEffect+0x14 无条件写成 1(Magical),连 DAMAGE_TYPE: 那一行都不读(0x7AB4DB 置位后直接 jmp 过整个解析)。详见行为解释 §2.5。
38 · ICE DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:ICE DEFENSE
<STRING>DAMAGE_TYPE:ICE
<FLOAT>MIN:32
<FLOAT>MAX:32
[/EFFECT]原版 AFFIXES/GEMS/GEM_SAPPHIRE_ARMOR.DAT
冰霜抗性。同上。
样例读数:槽位 MIN=32、MAX=32 · ACTIVATION=PASSIVE;DAMAGE_TYPE=ICE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 42 次 · MOD 库 416 次
WARNING
DAMAGE_TYPE 在这个类型上无效。 数据里有 344 个块写了它(原版 42、MOD 库 302),全部不起作用。 0x7AAC03 的跳转表把九个 DEFENSE 家族类型的 CEffect+0x14 无条件写成 1(Magical),连 DAMAGE_TYPE: 那一行都不读(0x7AB4DB 置位后直接 jmp 过整个解析)。详见行为解释 §2.5。
39 · ELECTRICAL DEFENSE
[EFFECT]
<STRING>NAME:CHAMP ELEC DEFENSE
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:ELECTRICAL DEFENSE
<STRING>DAMAGE_TYPE:ELECTRIC
<BOOL>SAVE:true
<FLOAT>MIN:30
<FLOAT>MAX:30
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONSHOCKING.DAT
电击抗性。同上。
样例读数:槽位 MIN=30、MAX=30 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ELECTRIC
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 43 次 · MOD 库 434 次
WARNING
DAMAGE_TYPE 在这个类型上无效。 数据里有 357 个块写了它(原版 43、MOD 库 314),全部不起作用。 0x7AAC03 的跳转表把九个 DEFENSE 家族类型的 CEffect+0x14 无条件写成 1(Magical),连 DAMAGE_TYPE: 那一行都不读(0x7AB4DB 置位后直接 jmp 过整个解析)。详见行为解释 §2.5。
40 · POISON DEFENSE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:POISON DEFENSE
<STRING>DAMAGE_TYPE:POISON
<FLOAT>MIN:32
<FLOAT>MAX:32
[/EFFECT]原版 AFFIXES/GEMS/GEM_EMERALD_ARMOR.DAT
毒素抗性。同上。
样例读数:槽位 MIN=32、MAX=32 · ACTIVATION=PASSIVE;DAMAGE_TYPE=POISON
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 38 次 · MOD 库 467 次
WARNING
DAMAGE_TYPE 在这个类型上无效。 数据里有 387 个块写了它(原版 38、MOD 库 349),全部不起作用。 0x7AAC03 的跳转表把九个 DEFENSE 家族类型的 CEffect+0x14 无条件写成 1(Magical),连 DAMAGE_TYPE: 那一行都不读(0x7AB4DB 置位后直接 jmp 过整个解析)。详见行为解释 §2.5。
48 · DAMAGE REFLECTION
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DAMAGE REFLECTION
<STRING>DAMAGE_TYPE:POISON
<FLOAT>MIN:6
<FLOAT>MAX:18
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_DESERT_THORNS.DAT
伤害反射(绝对值)。CBaseUnit__applyDamage 读取。
样例读数:槽位 MIN=6、MAX=18 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=POISON
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 40 次 · MOD 库 580 次
DAMAGE_TYPE:数据里 321 个块写了它(原版 21、MOD 库 300),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
54 · DEGRADE ARMOR
[EFFECT]
<STRING>NAME:OFTHESAVAGE DEGRADE ARMOR
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:DEGRADE ARMOR
<BOOL>USEOWNERLEVEL:true
<FLOAT>MIN:12
<FLOAT>MAX:12
[/EFFECT]原版 AFFIXES/ITEMS/LEARNING_DEGRADE_ARMOR3.DAT
护甲腐蚀(绝对值)。resolveStrikeHit 0x54DD40。
样例读数:槽位 MIN=12、MAX=12 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 45 次 · MOD 库 840 次
DAMAGE_TYPE:数据里 318 个块写了它(原版 17、MOD 库 301),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
60 · MISSILE REFLECT
[EFFECT]
<STRING>NAME:SHIELD_REFLECT
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:MISSILE REFLECT
<STRING>UNITTHEME:shielded
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:33
<FLOAT>MAX:33
<FLOAT>DMGPCTMIN:80
<FLOAT>DMGPCTMAX:80
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMP_SHIELD_REFLECT.DAT
弹射反射。不走 statCache,由 CEffectMgr__accumMissileReflect 直接扫表。概率按独立事件合成 P = 1-(1-p1)(1-p2),堆多少件都到不了 100%;反射量按概率加权平均。
样例读数:槽位 MIN=33、MAX=33、DMGPCTMIN=80、DMGPCTMAX=80 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:直接扫表
实测用量:原版 69 次 · MOD 库 1040 次
DAMAGE_TYPE:数据里 276 个块写了它(原版 8、MOD 库 268),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
61 · MISSILE REFLECT VISUAL
[EFFECT]
<STRING>NAME:respite_mrv
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:MISSILE REFLECT VISUAL
<BOOL>USEOWNERLEVEL:true
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
<FLOAT>DMGPCT:1
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/SKILLS/LIGHTBRINGER_PROC_RESPITE.DAT
弹射反射的视觉版。tick 路径里会 CCharacter__setTarget 改目标。
样例读数:槽位 MIN=100、MAX=100、DMGPCT=1 · ACTIVATION=DYNAMIC;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 8 次
66 · DEGRADE ARMOR EFFECT
[EFFECT]
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:15
<STRING>TYPE:DEGRADE ARMOR EFFECT
<STRING>DAMAGE_TYPE:ICE
<STRING>STATMODIFYNAME:OWNERLEVEL
<STRING>STATMODIFYPERCENT:20
<BOOL>USEOWNERLEVEL:true
<FLOAT>MIN:15
<FLOAT>MAX:15
<BOOL>MODIFIERISBONUS:true
[/EFFECT]原版 AFFIXES/SKILLS/RAILMAN_THUNDER_HAMMER_BUFF.DAT
护甲腐蚀效果。在抗性链末尾被减去(x -= ceil(getStat(66)))。
样例读数:槽位 MIN=15、MAX=15 · ACTIVATION=TRANSFER;DURATION=15;DAMAGE_TYPE=ICE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 12 次 · MOD 库 74 次
DAMAGE_TYPE:数据里 84 个块写了它(原版 12、MOD 库 72),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
218 · INNATE ICE DEFENSE
[EFFECT]
<STRING>NAME:Elemental Defense Ice
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:INNATE ICE DEFENSE
<STRING>GRAPHOVERRIDE:ARMOR_PLAYER_BYLEVEL_FORSET
<FLOAT>MIN:87
<FLOAT>MAX:87
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/DEMONHUNTER/ELEMENTALMASTER.DAT
固有冰霜抗性。抗性 switch 的 case 3。
样例读数:槽位 MIN=87、MAX=87 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 1 次
219 · INNATE FIRE DEFENSE
[EFFECT]
<STRING>NAME:Elemental Defense Fire
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:INNATE FIRE DEFENSE
<STRING>GRAPHOVERRIDE:ARMOR_PLAYER_BYLEVEL_FORSET
<FLOAT>MIN:87
<FLOAT>MAX:87
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/DEMONHUNTER/ELEMENTALMASTER.DAT
固有火焰抗性。case 2。
样例读数:槽位 MIN=87、MAX=87 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 1 次
220 · INNATE ELECTRIC DEFENSE
[EFFECT]
<STRING>NAME:Elemental Defense Electric
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:INNATE ELECTRIC DEFENSE
<STRING>GRAPHOVERRIDE:ARMOR_PLAYER_BYLEVEL_FORSET
<FLOAT>MIN:87
<FLOAT>MAX:87
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/DEMONHUNTER/ELEMENTALMASTER.DAT
固有电击抗性。case 4。
样例读数:槽位 MIN=87、MAX=87 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 1 次
221 · INNATE POISON DEFENSE
[EFFECT]
<STRING>NAME:Elemental Defense Poison
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:INNATE POISON DEFENSE
<STRING>GRAPHOVERRIDE:ARMOR_PLAYER_BYLEVEL_FORSET
<FLOAT>MIN:87
<FLOAT>MAX:87
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/DEMONHUNTER/ELEMENTALMASTER.DAT
固有毒素抗性。case 5。
样例读数:槽位 MIN=87、MAX=87 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 1 次
护盾与破盾
吸收池与破盾判定。
122 · SHIELD BUFFER
[EFFECT]
<STRING>NAME:electric_barrier_buffer
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:SHIELD BUFFER
<STRING>DAMAGE_TYPE:POISON
<STRING>UNITTHEME:purplebarrier
<STRING>LINK_NAME:electric_barrier_armor
<FLOAT>MIN:20
<FLOAT>MAX:20
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMP_BARRIER_ELECTRIC.DAT
护盾吸收池。由 CUnit__consumeAbsorbBuffers_type122 消费,走布尔查询路径。
样例读数:槽位 MIN=20、MAX=20 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;DAMAGE_TYPE=POISON
生效方式:布尔查询
实测用量:原版 62 次 · MOD 库 1543 次
DAMAGE_TYPE:数据里 1576 个块写了它(原版 62、MOD 库 1514),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
163 · DESTRUCTABLE SHIELD
[EFFECT]
<STRING>NAME:DefaultDestructableShield
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:DESTRUCTABLE SHIELD
<BOOL>SAVE:true
<BOOL>EXCLUSIVE:true
<FLOAT>HP%:50
<FLOAT>HPOVERRIDE:-1
<FLOAT>ANGLE:180
<FLOAT>OFFSET:0
[/EFFECT]原版 AFFIXES/MONSTERS/DEFAULT_DESTRUCTABLE_SHIELD.DAT
可破坏护盾。走布尔查询路径。被硬编码排除在词缀品质插值之外(0x53CA47 那一族)。
样例读数:槽位 HP%=50、HPOVERRIDE=-1、ANGLE=180、OFFSET=0 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:布尔查询
实测用量:原版 32 次 · MOD 库 175 次
205 · SHIELD BREAK
[EFFECT]
<STRING>NAME:unique_shieldbreak
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:SHIELD BREAK
<FLOAT>MIN:25
<FLOAT>MAX:25
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_TL2_SHIELDBREAKER1.DAT
破盾。
样例读数:槽位 MIN=25、MAX=25 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 15 次 · MOD 库 456 次
215 · SHIELD BREAK EFFECT
[EFFECT]
<STRING>NAME:BOSSSIEGESHIELDBREAK
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SHIELD BREAK EFFECT
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/MONSTERS/BOSSSIEGE_BREAKSHIELD.DAT
破盾效果。遍历目标身上的效果并重掷某个槽。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:INSTANT 分支 0x55C495。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 50 次 · MOD 库 821 次
状态控制
眩晕/冰冻/燃烧/中毒/感电/致盲/沉默/恐惧/魅惑/打断/定身/击退。全族共用同一道抗性判定:getStat(对应抗性类型) → applyDifficultyResistBoost → 概率。
12 · KNOCK BACK
[EFFECT]
<STRING>NAME:OFTHEBULL KNOCK BACK EFFECT
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:KNOCK BACK
<FLOAT>FORCE:15
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_KNOCKBACK1.DAT
击退。由 resolveStrikeHit 经 getEffectStat_selfPlusInventory 读取(0x54DB45)。
样例读数:槽位 FORCE=15 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 106 次 · MOD 库 760 次
43 · KNOCK BACK EFFECT
[EFFECT]
<STRING>NAME:ARCBEAMKNOCKBACK
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:1
<STRING>TYPE:KNOCK BACK EFFECT
<FLOAT>FORCE:5
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_ARCBEAM01.DAT
击退效果。tick 路径每帧调 CEffect__recacheValue 重算数值再累加位移向量。TYPE:None,不显示数值。
样例读数:槽位 FORCE=5 · ACTIVATION=DYNAMIC;DURATION=1
生效方式:tick 分支
实测用量:原版 601 次 · MOD 库 5771 次
DAMAGE_TYPE:数据里 10 个块写了它(原版 0、MOD 库 10),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
53 · PERCENT KNOCK BACK RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PERCENT KNOCK BACK RESISTANCE
<BOOL>SAVE:true
<FLOAT>RESISTANCE:95
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
击退抗性百分比。
样例读数:槽位 RESISTANCE=95 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 302 次 · MOD 库 3058 次
DAMAGE_TYPE:数据里 10 个块写了它(原版 0、MOD 库 10),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
56 · INTERRUPT CHANCE
[EFFECT]
<STRING>NAME:ENTROPYINTERRUPT
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:INTERRUPT CHANCE
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:10
<FLOAT>MIN:5
<FLOAT>MAX:5
<BOOL>MODIFIERISBONUS:true
[/EFFECT]原版 AFFIXES/SKILLS/AURA_OF_ENTROPY.DAT
打断概率。Boss 与不可摧毁单位直接免疫(CCharacter_isBossOrNoDestroy),随后走标准抗性判定。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:被动数值 / INSTANT 分支 0x55A73B / 挂载分支 0x563C00
实测用量:原版 120 次 · MOD 库 1066 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
64 · STUN
[EFFECT]
<STRING>NAME:OFTHEMASTER CRITICAL CHANCE
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:2
<STRING>TYPE:STUN
<FLOAT>MIN:10
<FLOAT>MAX:10
<FLOAT>IGNORE_RESISTANCE:0
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_TL2_SHORTSTUN1.DAT
眩晕。两级抗性(两次 getStat),tick 每帧还会去读一次 dat 键(CDataGroup__getInt64)。
样例读数:槽位 MIN=10、MAX=10、IGNORE_RESISTANCE=0 · ACTIVATION=TRANSFER;DURATION=2
生效方式:被动数值 / 挂载分支 0x5631D2 / tick 分支
实测用量:原版 225 次 · MOD 库 3319 次
DAMAGE_TYPE:数据里 62 个块写了它(原版 15、MOD 库 47),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
79 · FLEE EFFECT
[EFFECT]
<STRING>NAME:OFTHEELEPHANT MAX HP
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:3
<STRING>TYPE:FLEE EFFECT
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_FEAR.DAT
恐惧。命中后走 sub_664F10 并播放反应动画。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=TRANSFER;DURATION=3
生效方式:布尔查询 / 挂载分支 0x562F91
实测用量:原版 88 次 · MOD 库 1017 次
DAMAGE_TYPE:数据里 41 个块写了它(原版 0、MOD 库 41),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
80 · TURN ALIGNMENT
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:40
<STRING>TYPE:TURN ALIGNMENT
<STRING>UNITTHEME:turned
<FLOAT>MIN:3
<FLOAT>MAX:3
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_TURN_ALIGNMENT_LONG_DURATION1.DAT
魅惑。命中后目标直接变成玩家的宠物(CUnit__addPet),且受 enforceCharmLimit4 的 4 个上限约束。
样例读数:槽位 MIN=3、MAX=3 · ACTIVATION=TRANSFER;DURATION=40
生效方式:布尔查询 / 挂载分支 0x562E87 / tick 分支
实测用量:原版 27 次 · MOD 库 542 次
106 · FREEZE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:FREEZE
<FLOAT>MIN:4
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ICE_DIRECT_ICE_PERCENT_05.DAT
冰冻。与 107/108/109 是同一段代码的四份副本(挂载与 tick 各四份,共八份)。
样例读数:槽位 MIN=4、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:挂载分支 0x56348E / tick 分支
实测用量:原版 142 次 · MOD 库 1151 次
DAMAGE_TYPE:数据里 36 个块写了它(原版 4、MOD 库 32),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
107 · BURN
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:BURN
<FLOAT>MIN:4
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_FIRE_DIRECT_FIRE_PERCENT_05.DAT
燃烧。同上。
样例读数:槽位 MIN=4、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:挂载分支 0x563673 / tick 分支
实测用量:原版 82 次 · MOD 库 1144 次
DAMAGE_TYPE:数据里 148 个块写了它(原版 16、MOD 库 132),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
108 · POISON
[EFFECT]
<STRING>NAME:OFTHEMASTER CRITICAL CHANCE
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:5
<STRING>TYPE:POISON
<STRING>UNITTHEME:Poisoned
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/PETTAG_DIRECT_POISON_PERCENT_05.DAT
中毒。同上。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=TRANSFER;DURATION=5
生效方式:挂载分支 0x56383B / tick 分支
实测用量:原版 63 次 · MOD 库 914 次
DAMAGE_TYPE:数据里 193 个块写了它(原版 5、MOD 库 188),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
109 · SHOCK
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:SHOCK
<FLOAT>MIN:4
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ELECTRICITY_DIRECT_ELECTRICITY_PERCENT_05.DAT
感电。同上。
样例读数:槽位 MIN=4、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:挂载分支 0x563A07 / tick 分支
实测用量:原版 62 次 · MOD 库 901 次
DAMAGE_TYPE:数据里 9 个块写了它(原版 0、MOD 库 9),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
110 · KILL
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:KILL
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 SKILLS/CHAMPIONS/SOULSHACKLE/SOULRELEASE.DAT
击杀。玩家的首选宠物免疫,且只在权威端执行。tick 路径里与 47 SUMMON DURATION 共用移除代码。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A5B2 / 挂载分支 0x56400D / tick 分支
实测用量:原版 91 次 · MOD 库 1279 次
DAMAGE_TYPE:数据里 19 个块写了它(原版 0、MOD 库 19),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
128 · SILENCE
[EFFECT]
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:2
<STRING>TYPE:SILENCE
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]原版 AFFIXES/GEMS/GEM_CHAOSEMBER_WEAPON_SILENCE.DAT
沉默。CSkill__canUse 里查它(0x6BFB9C)—— 这就是沉默让技能不可用的实现。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=TRANSFER;DURATION=2
生效方式:布尔查询 / 挂载分支 0x562DC5
实测用量:原版 35 次 · MOD 库 653 次
144 · PERCENT BLIND
[EFFECT]
<STRING>NAME:ofblindingblinding
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:4
<STRING>TYPE:PERCENT BLIND
<STRING>UNITTHEME:BlindDebuff
<FLOAT>MIN:66
<FLOAT>MAX:66
<FLOAT>CHANCE:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_BLINDING.DAT
致盲概率。命中后强制换目标;同时进视野距离与 AI 目标选择的计算。
样例读数:槽位 MIN=66、MAX=66、CHANCE=5 · ACTIVATION=TRANSFER;DURATION=4
生效方式:被动数值 / 挂载分支 0x562702
实测用量:原版 40 次 · MOD 库 267 次
DAMAGE_TYPE:数据里 4 个块写了它(原版 0、MOD 库 4),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
167 · INTERRUPT
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:INTERRUPT
<FLOAT>MIN:40
<FLOAT>MAX:40
[/EFFECT]原版 AFFIXES/SKILLS/RAILMAN_TREMOR.DAT
打断。播放三种反应动画之一。
样例读数:槽位 MIN=40、MAX=40 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x559C18 / 挂载分支 0x562A18
实测用量:原版 17 次 · MOD 库 164 次
DAMAGE_TYPE:数据里 12 个块写了它(原版 0、MOD 库 12),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
196 · IMMOBILIZE
[EFFECT]
<STRING>NAME:unique_immobilize
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:6
<STRING>TYPE:IMMOBILIZE
<STRING>UNITTHEME:WOODIMMOBILIZE
<FLOAT>MIN:6
<FLOAT>MAX:9
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_TANGLE2.DAT
定身。经 CUnit__applyStagger。
样例读数:槽位 MIN=6、MAX=9 · ACTIVATION=TRANSFER;DURATION=6
生效方式:被动数值 / 布尔查询 / 挂载分支 0x562B98
实测用量:原版 117 次 · MOD 库 1473 次
DAMAGE_TYPE:数据里 16 个块写了它(原版 2、MOD 库 14),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
202 · BLIND
[EFFECT]
<STRING>NAME:WC_blindcloud
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:6
<INTEGER>LEVEL:1
<STRING>TYPE:BLIND
<BOOL>USEOWNERLEVEL:true
<STRING>UNITTHEME:BlindDebuff
<BOOL>EXCLUSIVE:true
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_WC_BLINDCLOUD.DAT
致盲。命中后强制换目标,并压低视野距离与 AI 目标选择。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=6;EXCLUSIVE=true
生效方式:被动数值 / 挂载分支 0x562845
实测用量:原版 8 次 · MOD 库 614 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
状态抗性与时长
上一族的对抗面,加上四种元素状态的持续时间加成。
121 · FLEE RESIST
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:FLEE RESIST
<BOOL>SAVE:true
<FLOAT>RESISTANCE:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
恐惧抗性。
样例读数:槽位 RESISTANCE=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 60 次 · MOD 库 295 次
136 · INTERRUPT RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:INTERRUPT RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
打断抗性。resolveStrikeHit 读取。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 130 次 · MOD 库 1105 次
137 · CHARM RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:CHARM RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
魅惑抗性。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 41 次 · MOD 库 459 次
138 · SILENCE_RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SILENCE_RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
沉默抗性。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 3 次 · MOD 库 88 次
139 · STUN RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:STUN RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:92
<FLOAT>MAX:92
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
眩晕抗性。
样例读数:槽位 MIN=92、MAX=92 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 10 次 · MOD 库 497 次
140 · SLOW RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SLOW RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:85
<FLOAT>MAX:85
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
减速抗性。移速计算与多处结算都读它。
样例读数:槽位 MIN=85、MAX=85 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 32 次 · MOD 库 831 次
159 · TELEPORT RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:TELEPORT RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:75
<FLOAT>MAX:75
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
传送抗性。
样例读数:槽位 MIN=75、MAX=75 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 4 次 · MOD 库 39 次
188 · ELEMENTAL EFFECT DURATION BONUS
[EFFECT]
<STRING>NAME:ELEMEFFECTDURATIONBONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:ELEMENTAL EFFECT DURATION BONUS
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_TL2_ELEMEFFECT_DURATION_BONUS6.DAT
元素状态持续时间加成(通用)。CUnit__procElementalStatusFromDamage 读取。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 4 次 · MOD 库 71 次
189 · BURN DURATION BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:BURN DURATION BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:1.5
<FLOAT>MAX:15
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_2_7.DAT
燃烧持续时间加成。
样例读数:槽位 MIN=1.5、MAX=15 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 57 次
190 · FREEZE DURATION BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:FREEZE DURATION BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:1.5
<FLOAT>MAX:1.5
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_2_7.DAT
冰冻持续时间加成。
样例读数:槽位 MIN=1.5、MAX=1.5 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 40 次
191 · SHOCK DURATION BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:SHOCK DURATION BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:1.5
<FLOAT>MAX:1.5
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_2_7.DAT
感电持续时间加成。
样例读数:槽位 MIN=1.5、MAX=1.5 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 18 次
192 · POISON DURATION BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:POISON DURATION BONUS
<BOOL>NOGRAPH:true
<FLOAT>MIN:1.5
<FLOAT>MAX:1.5
[/EFFECT]MOD challenger-continent/unpacked/Elemental_blade_dancer/MEDIA/AFFIXES/ITEMS/BLADE_SET_2_7.DAT
中毒持续时间加成。
样例读数:槽位 MIN=1.5、MAX=1.5 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 42 次
197 · IMMOBILIZE RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:IMMOBILIZE RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:88
<FLOAT>MAX:88
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
定身抗性。
样例读数:槽位 MIN=88、MAX=88 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 20 次 · MOD 库 605 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
224 · PULL RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:PULL RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
拉拽抗性。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 45 次 · MOD 库 819 次
233 · BLIND RESISTANCE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:BLIND RESISTANCE
<BOOL>SAVE:true
<FLOAT>MIN:90
<FLOAT>MAX:90
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/BOSS_RESISTS.DAT
致盲抗性。视野距离与 AI 目标选择都读它。
样例读数:槽位 MIN=90、MAX=90 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 3 次 · MOD 库 452 次
施法触发(CAST SKILL ON x)
全族 21 个。机制完全不同于其他类型——挂上时在技能管理器里装一个真技能,事件发生时由 fireProcEffects 放出。详见正文 7.1.2–7.1.6 节。
74 · CAST SKILL
[EFFECT]
<STRING>NAME:AXETHROW
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL
<BOOL>SAVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_PROC_AXETHROW100.DAT
施法(无触发条件)。挥击选定目标时由 strike_resolveTargets 触发。自己施法模式。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=0
生效方式:INSTANT 分支 0x559EC2 / tick 分支
实测用量:原版 25 次 · MOD 库 810 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
75 · CAST SKILL ON TARGET
[EFFECT]
<STRING>NAME:AAA_YLQH_SKILL_11_1
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CAST SKILL ON TARGET
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]MOD challenger-continent/unpacked/绿洲联盟正版MOD--编号2/MEDIA/AFFIXES/AAA_YLQH_AFFIXES/AAA_YLQH_AFFIXES_A11_101.DAT
对目标施法。同上时机触发,位置取自己。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 49 次
76 · CAST SKILL AT TARGET
[EFFECT]
<STRING>NAME:Darkness Proc
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:CAST SKILL AT TARGET
<STRING>STAT_SOURCE_TYPE:ON CAST CASTER
<STRING>STATMODIFYNAME:Darkness
<STRING>STATMODIFYPERCENT:25
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:4
<FLOAT>MAX:4
[/EFFECT]MOD challenger-continent/unpacked/nethermancer/MEDIA/AFFIXES/NETHERMANCER/NETHERMANCER_VOIDZONE_DARKNESS.DAT
朝目标位置施法。唯一一个把两个位置参数都搬到目标处的模式,也是唯一不设递归防护的普通模式。
样例读数:槽位 MIN=4、MAX=4 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 11 次
81 · CAST SKILL ON STRUCK
[EFFECT]
<STRING>NAME:Random Teleport
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON STRUCK
<BOOL>SAVE:true
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:200
<FLOAT>MAX:200
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONRANDOMTELEPORTONSTRUCK.DAT
受击时施法。触发点在 CBaseUnit__applyDamage,且要求受击者的 +0x7DC <= 0 —— proc 施法会把它置 1.0 再每帧递减,所以每秒最多触发一次。
样例读数:槽位 MIN=200、MAX=200 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 52 次 · MOD 库 1242 次
DAMAGE_TYPE:数据里 125 个块写了它(原版 2、MOD 库 123),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
105 · CAST SKILL ON DEATH
[EFFECT]
<STRING>NAME:CHAMPIONEXPLODE
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:CAST SKILL ON DEATH
<STRING>UNITTHEME:BUFFEXPLODE
<BOOL>SAVE:true
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONEXPLODEONDEATH.DAT
死亡时施法。触发点在 CUnit__onDeath_vt120。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 112 次 · MOD 库 529 次
DAMAGE_TYPE:数据里 9 个块写了它(原版 0、MOD 库 9),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
152 · CAST SKILL ON STRIKE
[EFFECT]
<STRING>NAME:Weapon Proc Electric
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON STRIKE
<BOOL>SAVE:true
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/CAST_PROC_ELECTRIC10.DAT
命中时施法。触发点在 CCharacter__resolveStrikeHit。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=PASSIVE
生效方式:tick 分支
实测用量:原版 26 次 · MOD 库 1913 次
DAMAGE_TYPE:数据里 42 个块写了它(原版 2、MOD 库 40),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
183 · CAST SKILL ON DEATH FROM EFFECT OWNER
[EFFECT]
<STRING>NAME:Weapon Proc Fill Charge Bar
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON DEATH FROM EFFECT OWNER
<BOOL>SAVE:true
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/CAST_PROC_FILL_CHARGE_BAR10.DAT
由效果所有者在死亡时施法。查的是来源单位的技能管理器,不是自己的;在施法模式跳转表里落 default,靠 0x53CA47 的前置特判处理。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=PASSIVE
生效方式:tick 分支
实测用量:原版 41 次 · MOD 库 836 次
DAMAGE_TYPE:数据里 30 个块写了它(原版 0、MOD 库 30),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
194 · CAST SKILL ON RANGED STRIKE
[EFFECT]
<STRING>NAME:Volatile Ember
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON RANGED STRIKE
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:6
<FLOAT>MAX:6
[/EFFECT]原版 AFFIXES/SKILLS/WANDERER_WEAPON_PROC.DAT
远程命中时施法。
样例读数:槽位 MIN=6、MAX=6 · ACTIVATION=PASSIVE;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 15 次 · MOD 库 55 次
195 · CAST SKILL ON MELEE STRIKE
[EFFECT]
<STRING>NAME:druidchargesummon3
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:CAST SKILL ON MELEE STRIKE
<STRING>GRAPHOVERRIDE:MASTERY_GRAPH
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:12.5
<FLOAT>MAX:12.5
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/CHAMPIONAFFIXES/DRUID_LONGSTRIDER.DAT
近战命中时施法。与 194 由同一处分支选常量。
样例读数:槽位 MIN=12.5、MAX=12.5 · ACTIVATION=PASSIVE;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 85 次
DAMAGE_TYPE:数据里 30 个块写了它(原版 0、MOD 库 30),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
198 · CAST SKILL FROM TARGET
[EFFECT]
<STRING>NAME:Overload Proc Skill
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:3
<STRING>TYPE:CAST SKILL FROM TARGET
<STRING>STAT_SOURCE_TYPE:ON CAST RECEIVER
<STRING>STATMODIFYNAME:druidoverload
<STRING>GRAPHOVERRIDE:MASTERY_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/SKILLS/DRUID_OVERLOAD_EXPLODE.DAT
由目标施法。这七个 FROM TARGET 类型带两重随机:锥形从目标处朝一个rand(0°,360°) 的随机方向发出,命中多个单位时再随机挑一个。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=TRANSFER;DURATION=3
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 75 次
199 · CAST SKILL ON MELEE STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:Shadowbind Proc
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CAST SKILL ON MELEE STRIKE FROM TARGET
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SHADOWBIND.DAT
近战命中时由目标施法。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 2 次 · MOD 库 90 次
200 · CAST SKILL ON RANGED STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:ARCHER_MARK_TARGET_PROC
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CAST SKILL ON RANGED STRIKE FROM TARGET
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/ARCHER_SKILLS/ARCHER_MARK_TARGET.DAT
远程命中时由目标施法。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 18 次
201 · CAST SKILL ON STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:WC_Stormclaw Proc
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON STRIKE FROM TARGET
<BOOL>SAVE:true
<FLOAT>MIN:6
<FLOAT>MAX:6
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_PROC_STORMCLAW1.DAT
命中时由目标施法。
样例读数:槽位 MIN=6、MAX=6 · ACTIVATION=PASSIVE
生效方式:tick 分支
实测用量:原版 52 次 · MOD 库 1167 次
DAMAGE_TYPE:数据里 58 个块写了它(原版 0、MOD 库 58),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
203 · CAST SKILL ON KILL
[EFFECT]
<STRING>NAME:WC_proc_fullheal
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON KILL
<BOOL>SAVE:true
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_PROCKILL_FULLHEAL1.DAT
击杀时施法。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE
生效方式:tick 分支
实测用量:原版 11 次 · MOD 库 177 次
204 · CAST SKILL ON KILL AT TARGET
[EFFECT]
<STRING>NAME:WC_Skull Proc Skill
<STRING>ACTIVATION:PASSIVE
<INTEGER>LEVEL:1
<STRING>TYPE:CAST SKILL ON KILL AT TARGET
<BOOL>SAVE:true
<FLOAT>MIN:3
<FLOAT>MAX:3
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_PROCKILL_SKULL_2.DAT
击杀时朝目标施法。没有目标就直接放弃。
样例读数:槽位 MIN=3、MAX=3 · ACTIVATION=PASSIVE
生效方式:tick 分支
实测用量:原版 20 次 · MOD 库 275 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
206 · CAST SKILL ON MELEE SKILL STRIKE
[EFFECT]
<STRING>NAME:SHARINGEN
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:CAST SKILL ON MELEE SKILL STRIKE
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]MOD challenger-continent/职业技能/MEDIA/AFFIXES/SKILLS/WANDERER_HEX_BONUS_PRO.DAT
技能近战命中时施法。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 2 次
207 · CAST SKILL ON MELEE SKILL STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:Shadowbind Proc
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CAST SKILL ON MELEE SKILL STRIKE FROM TARGET
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SHADOWBINDPT2.DAT
技能近战命中时由目标施法。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 1 次 · MOD 库 18 次
208 · CAST SKILL ON RANGED SKILL STRIKE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:CAST SKILL ON RANGED SKILL STRIKE
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
技能远程命中时施法。21 个 CAST SKILL ON x 里唯一两库合计用量为 0 的,但四段链一段不缺:安装(虚表槽 91)、触发(CCharacter__resolveStrikeHit 0x54E31F)、执行(模式 0,带 1 秒递归防护)、卸载(tick OR 链 0x567157)。
生效方式:tick 分支
实测用量:两库合计 0 次
209 · CAST SKILL ON RANGED SKILL STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:ARCHER_MARK_TARGET_PROC
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CAST SKILL ON RANGED SKILL STRIKE FROM TARGET
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:20
<BOOL>EXCLUSIVE:true
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/ARCHER_SKILLS/ARCHER_MARK_TARGET.DAT
技能远程命中时由目标施法。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 3 次
210 · CAST SKILL ON SKILL STRIKE
[EFFECT]
<STRING>NAME:DRUID_NATURES_WRATH_FIRE
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:CAST SKILL ON SKILL STRIKE
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/DRUID_SKILLS/DRUID_NATURES_WRATH_1.DAT
技能命中时施法。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 451 次
211 · CAST SKILL ON SKILL STRIKE FROM TARGET
[EFFECT]
<STRING>NAME:Windtalker Proc
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:CAST SKILL ON SKILL STRIKE FROM TARGET
<STRING>STATMODIFYNAME:EFFECT_LEVEL
<STRING>STATMODIFYPERCENT:20
<FLOAT>MIN:22
<FLOAT>MAX:22
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/CHAMPIONAFFIXES/DRUID_ELEMENTAL_DAMAGE_MASTERY10.DAT
技能命中时由目标施法。
样例读数:槽位 MIN=22、MAX=22 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:tick 分支
实测用量:原版 0 次 · MOD 库 62 次
技能操作
学会/禁用/改等级/改冷却/停止,以及施法速度与法力消耗。
29 · PERCENT CAST SPEED
[EFFECT]
<STRING>NAME:ChampSlowCast
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:PERCENT CAST SPEED
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-20
<FLOAT>MAX:-20
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONSLOWAURA.DAT
施法速度百分比。
样例读数:槽位 MIN=-20、MAX=-20 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 156 次 · MOD 库 3690 次
DAMAGE_TYPE:数据里 77 个块写了它(原版 0、MOD 库 77),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
65 · LEARN SKILL
[EFFECT]
<STRING>NAME:Advanced Spellcasting
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:LEARN SKILL
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 UNITS/ITEMS/SPELLS/ADVANCED SPELLCASTING II.DAT
学会技能。建技能对象 → 设为启用,受 canLearnSkill 与权威端双重把关;tick 每帧重新确保技能存在。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A218 / tick 分支
实测用量:原版 197 次 · MOD 库 893 次
82 · SKILL BONUS
[EFFECT]
<STRING>NAME:Charm Spell Mastery
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SKILL BONUS
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/SKILL_ADD_MASTERY_CHARM2.DAT
技能等级加成。由 sub_7ADC10 与工具提示构建器读取。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:布尔查询
实测用量:原版 7 次 · MOD 库 215 次
85 · ATTACK SPELL BONUS
[EFFECT]
<STRING>NAME:ATTACKSPELL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:ATTACK SPELL BONUS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_ATTACKMAGIC_MASTERY.DAT
攻击类法术加成。CSkill__recomputeEffectiveLevel 读取。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 6 次
86 · DEFENSE SPELL BONUS
[EFFECT]
<STRING>NAME:DEFENSESPELL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:DEFENSE SPELL BONUS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_DEFENSEMAGIC_MASTERY.DAT
防御类法术加成。同上。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 4 次
DAMAGE_TYPE:写了也无效 —— 0x7AAC03 的跳转表把这个类型的 CEffect+0x14 无条件写成 1(Magical),连键都不读。数据里目前无人在此类型上写它。
87 · CHARM SPELL BONUS
[EFFECT]
<STRING>NAME:CHARMSPELL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:CHARM SPELL BONUS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_CHARMMAGIC_MASTERY.DAT
魅惑类法术加成。同上。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 4 次
95 · SPELL REQUIREMENTS
[EFFECT]
<STRING>NAME:BDKRZ3_300_FS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SPELL REQUIREMENTS
<STRING>GRAPHOVERRIDE:MASTERY_GRAPH
<FLOAT>MIN:25
<FLOAT>MAX:25
[/EFFECT]MOD challenger-continent/职业技能/MEDIA/AFFIXES/BDKRZ_NECKLACE/BDKRZ3_300_FS.DAT
法术需求减免。UNITTYPE 0x81 时追加。
样例读数:槽位 MIN=25、MAX=25 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 2 次
127 · STOP SKILL
[EFFECT]
<STRING>NAME:glacial spike aoe
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:STOP SKILL
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_GLACIAL_SPIKE_AOE_CANCEL.DAT
停止技能。按名字调 CSkillMgr__stopSkillByName。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x559E45。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 67 次 · MOD 库 1867 次
175 · PERCENT MANA COST BONUS
[EFFECT]
<STRING>NAME:Map_Player_Reduced_Cost
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT MANA COST BONUS
<BOOL>NOGRAPH:true
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-25
<FLOAT>MAX:-25
[/EFFECT]原版 AFFIXES/LEVELS/MAP_PLAYER_REDUCE_MANA_COST.DAT
法力消耗百分比。
样例读数:槽位 MIN=-25、MAX=-25 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 3 次 · MOD 库 399 次
216 · MODIFY SKILL COOLDOWN REMAINING
[EFFECT]
<STRING>NAME:Chronosphere
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:MODIFY SKILL COOLDOWN REMAINING
<FLOAT>MIN:-10
<FLOAT>MAX:-10
[/EFFECT]MOD challenger-continent/unpacked/nethermancer/MEDIA/AFFIXES/NETHERMANCER/NETHERMANCER_TEST.DAT
修改技能冷却剩余(相对)。
样例读数:槽位 MIN=-10、MAX=-10 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A486。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 0 次 · MOD 库 103 次
217 · SET SKILL COOLDOWN REMAINING
[EFFECT]
<STRING>NAME:NETHERIMTENTACLESUMMON
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SET SKILL COOLDOWN REMAINING
<FLOAT>MIN:20
<FLOAT>MAX:20
[/EFFECT]原版 SKILLS/MONSTERS/NETHERIM/TENTACLESUMMON.DAT
设置技能冷却剩余(绝对)。与 216 只差取值方式。
样例读数:槽位 MIN=20、MAX=20 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A4E3。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 5 次 · MOD 库 318 次
222 · SET SKILL LEVEL
[EFFECT]
<STRING>NAME:BattleStandardAura
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:2
<STRING>TYPE:SET SKILL LEVEL
<BOOL>SAVE:true
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 SKILLS/BERSERKER/BATTLESTANDARD/BATTLESTANDARD.DAT
设置技能等级。同时遍历随从,对附属随从一并设置。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A314。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 69 次 · MOD 库 2306 次
227 · SKILL ENABLE
[EFFECT]
<STRING>NAME:STURM SPIKE SHOT RAPID
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:0.01
<STRING>TYPE:SKILL ENABLE
<FLOAT>MINTIME:0.01
<FLOAT>MAXTIME:0.01
[/EFFECT]原版 AFFIXES/MONSTERS/MAP_BOSS_STURM_SIEGE.DAT
启用技能。挂载路径由函数开头的 CEffect+0x20 == 2 前置判定到达,不经 switch;tick 路径与 228 共用 setSkillEnabledByName。
样例读数:槽位 MINTIME=0.01、MAXTIME=0.01 · ACTIVATION=DYNAMIC;DURATION=0.01
生效方式:挂载分支 0x5626C7 / tick 分支
实测用量:原版 10 次 · MOD 库 11 次
228 · SKILL DISABLE
[EFFECT]
<STRING>NAME:STURM POUND
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:.01
<STRING>TYPE:SKILL DISABLE
<FLOAT>MINTIME:0.01
<FLOAT>MAXTIME:0.01
[/EFFECT]原版 AFFIXES/MONSTERS/MAP_BOSS_STURM_SIEGE.DAT
禁用技能。与 227 共用实现,只差布尔值。
样例读数:槽位 MINTIME=0.01、MAXTIME=0.01 · ACTIVATION=DYNAMIC;DURATION=.01
生效方式:挂载分支 0x5626C7 / tick 分支
实测用量:原版 7 次 · MOD 库 3 次
DAMAGE_TYPE:数据里 3 个块写了它(原版 0、MOD 库 3),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
充能条
充能的增减、衰减与「充能换属性」。
168 · ADD CHARGE PERCENT
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:ADD CHARGE PERCENT
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/ITEMS/PROC_FILL_CHARGE_BAR.DAT
增加充能百分比。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:被动数值 / INSTANT 分支 0x55C80D
实测用量:原版 81 次 · MOD 库 1390 次
DAMAGE_TYPE:数据里 6 个块写了它(原版 0、MOD 库 6),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
169 · SET CHARGE PERCENT
[EFFECT]
<STRING>NAME:player charge percent
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:SET CHARGE PERCENT
<FLOAT>MIN:0
<FLOAT>MAX:0
[/EFFECT]原版 AFFIXES/SKILLS/HEALTHCONVERTREMOVE.DAT
设置充能百分比。
样例读数:槽位 MIN=0、MAX=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:被动数值 / INSTANT 分支 0x55C841
实测用量:原版 17 次 · MOD 库 80 次
170 · MAX CHARGES
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:MAX CHARGES
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]MOD challenger-continent/至尊适配/MEDIA/AFFIXES/GEMS/A10.DAT
充能上限。CPlayer__getMaxCharges 读取。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 1 次
171 · ADD CHARGES
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:ADD CHARGES
<FLOAT>MIN:25
<FLOAT>MAX:25
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_TL2_ADDCHARGE5.DAT
增加充能点数。
样例读数:槽位 MIN=25、MAX=25 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55C873。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 110 次 · MOD 库 2525 次
172 · PERCENT CHARGE BAR DECAY RATE
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT CHARGE BAR DECAY RATE
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:-8
<FLOAT>MAX:-8
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_CHARGEDECAY.DAT
充能条衰减速率百分比。
样例读数:槽位 MIN=-8、MAX=-8 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 13 次 · MOD 库 161 次
DAMAGE_TYPE:数据里 116 个块写了它(原版 10、MOD 库 106),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
173 · CHARGE BAR DECAY DELAY
[EFFECT]
<STRING>NAME:Berserk_Delay
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:CHARGE BAR DECAY DELAY
<FLOAT>MIN:99999
<FLOAT>MAX:999999
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_BERSERK_NO_DISPLAY.DAT
充能条衰减延迟。
样例读数:槽位 MIN=99999、MAX=999999 · ACTIVATION=DYNAMIC;DURATION=ALWAYS
生效方式:被动数值 / 挂载分支 0x5629C3
实测用量:原版 1 次 · MOD 库 7 次
174 · PERCENT CHARGING BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT CHARGING BONUS
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:6
<FLOAT>MAX:9
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_TL2_CHARGERATEBONUS2.DAT
充能加成百分比。
样例读数:槽位 MIN=6、MAX=9 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 40 次 · MOD 库 614 次
DAMAGE_TYPE:数据里 181 个块写了它(原版 13、MOD 库 168),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
176 · CHARGE BAR DECAY RATE
[EFFECT]
<STRING>NAME:CLASS_QLJX_INIT_CHARGE_DECAY_PENALTY
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:CHARGE BAR DECAY RATE
<BOOL>SAVE:true
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:15
<FLOAT>MAX:15
[/EFFECT]MOD challenger-continent/MIKURO_CLASS_QLJX/MEDIA/UNITS/PLAYERS/CLASS_QLJX/CLASS_QLJX_BASE.DAT
充能条衰减速率。
样例读数:槽位 MIN=15、MAX=15 · ACTIVATION=PASSIVE;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 7 次
181 · CONVERT CHARGE TO STAT
[EFFECT]
<STRING>NAME:railmanbonus
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:CONVERT CHARGE TO STAT
<FLOAT>VALUE:0
[/EFFECT]原版 SKILLS/RAILMAN/FORCEFIELD/FORCEFIELD.DAT
把充能换算成属性(按点数)。
样例读数:槽位 VALUE=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55C8A1。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 30 次 · MOD 库 314 次
182 · CONVERT CHARGE PERCENT TO STAT
[EFFECT]
<STRING>NAME:MONK_SHOCKWAVE
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:CONVERT CHARGE PERCENT TO STAT
<FLOAT>VALUE:50
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/MONK_SKILLS/MONK_SHOCKWAVE_CHARGE.DAT
把充能换算成属性(按百分比),并放粒子特效。
样例读数:槽位 VALUE=50 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55C959。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 0 次 · MOD 库 6 次
STAT 操作
读写 CStatManager 里的命名变量,是一个 {add, set, remove} × {普通, 按等级} 的 3×2 矩阵。同一个类型在 INSTANT 与挂载两条路径上行为不同——挂载版会给属性设时长。
146 · ADD STAT
[EFFECT]
<STRING>NAME:consumedead
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:ADD STAT
<FLOAT>MIN:0.2
<FLOAT>MAX:0.2
<FLOAT>CHANCE:100
[/EFFECT]原版 SKILLS/MONSTERS/SPIDER/FEED_N_GROW.DAT
增加一个命名 STAT。INSTANT 版只加,挂载版还会 findStat + setDuration 给属性设时长——同一个块,写 INSTANT 得到永久属性,写时长反而得到会过期的属性。
样例读数:槽位 MIN=0.2、MAX=0.2、CHANCE=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55BAB4 / 挂载分支 0x562D1E
实测用量:原版 278 次 · MOD 库 5307 次
147 · ADD STAT TO LEVEL
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:ADD STAT TO LEVEL
<FLOAT>MIN:1
<FLOAT>MAX:1
<FLOAT>CHANCE:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
按等级增加 STAT,写的是关卡自己的 CStatManager(CLevel+0x350,随关卡存档持久化)。但缺了 146/148/150 都有的空指针门:CUnit__getLevel 返回 0 时直接 mov ecx,[eax+350h],承受者不在关卡里就是空指针崩溃。能用但不安全,这也是它零使用的原因。
生效方式:INSTANT 分支 0x55BC14。写 DURATION:INSTANT,给时长不会反复触发
实测用量:两库合计 0 次
148 · SET STAT
[EFFECT]
<STRING>NAME:FrenzyDuration
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SET STAT
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:100
<FLOAT>MIN:0.5
<FLOAT>MAX:0.5
<FLOAT>CHANCE:100
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_BERSERK_PASSIVE.DAT
设置 STAT。
样例读数:槽位 MIN=0.5、MAX=0.5、CHANCE=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55BB2C。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 8 次 · MOD 库 3088 次
149 · SET STAT ON LEVEL
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SET STAT ON LEVEL
<FLOAT>MIN:1
<FLOAT>MAX:1
<FLOAT>CHANCE:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
按等级设置 STAT。与 147 同一段后端、同一个空指针洞(0x55BC86)。
生效方式:INSTANT 分支 0x55BC86。写 DURATION:INSTANT,给时长不会反复触发
实测用量:两库合计 0 次
150 · CLEAR STAT
[EFFECT]
<STRING>NAME:BerserkerRage
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:CLEAR STAT
<FLOAT>MIN:1
<FLOAT>MAX:1
<FLOAT>CHANCE:100
[/EFFECT]原版 AFFIXES/PLAYER/BERSERKER_RAGE_CLEAR.DAT
清除 STAT。
样例读数:槽位 MIN=1、MAX=1、CHANCE=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55BBA4。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 28 次 · MOD 库 1418 次
151 · CLEAR STAT ON LEVEL
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:CLEAR STAT ON LEVEL
<FLOAT>MIN:1
<FLOAT>MAX:1
<FLOAT>CHANCE:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
按等级清除 STAT。与 147 同一段后端、同一个空指针洞(0x55BCF8)。
生效方式:INSTANT 分支 0x55BCF8。写 DURATION:INSTANT,给时长不会反复触发
实测用量:两库合计 0 次
召唤与宠物
召唤时长、解除召唤、宠物属性加成、死亡时生成。
47 · SUMMON DURATION
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:8
<STRING>TYPE:SUMMON DURATION
<FLOAT>MIN:85
<FLOAT>MAX:85
[/EFFECT]原版 AFFIXES/MONSTERS/SUMMON_ESTHERIAN_WISP_DUR.DAT
召唤持续时间。tick 路径里与 110 KILL 共用同一段「移除本单位」代码。
样例读数:槽位 MIN=85、MAX=85 · ACTIVATION=DYNAMIC;DURATION=8
生效方式:被动数值 / tick 分支
实测用量:原版 88 次 · MOD 库 907 次
67 · DESUMMON MONSTER
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:DESUMMON MONSTER
<FLOAT>MIN:100
<FLOAT>MAX:100
<FLOAT>NO_LOOT:1
<FLOAT>NO_DIE_ANIM:1
<FLOAT>DESTROY_BODY:1
[/EFFECT]原版 SKILLS/MONSTERS/BLOATFANG/BLOATFANG_HEAL.DAT
解除召唤。CUnit__doDesummon,INSTANT 与 tick 两条路径都有。
样例读数:槽位 MIN=100、MAX=100、NO_LOOT=1、NO_DIE_ANIM=1、DESTROY_BODY=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A72A / tick 分支
实测用量:原版 271 次 · MOD 库 2426 次
92 · PERCENT PET VELOCITY
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT PET VELOCITY
<FLOAT>MIN:40
<FLOAT>MAX:40
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_PET_TOWN_RETURN9.DAT
宠物与随从移速百分比。CUnit__integrateMoveAndTurn 读取。
样例读数:槽位 MIN=40、MAX=40 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 5 次 · MOD 库 87 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
96 · PET DEPARTURE TIME
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PET DEPARTURE TIME
<FLOAT>MIN:80
<FLOAT>MAX:80
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_PET_TOWN_RETURN3.DAT
宠物往返城镇耗时。
样例读数:槽位 MIN=80、MAX=80 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 3 次 · MOD 库 38 次
97 · PERCENT PET ARMOR
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT PET ARMOR
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_PET_ARMOR.DAT
宠物与随从护甲百分比。getPhysicalArmorRaw 读取。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 14 次 · MOD 库 221 次
DAMAGE_TYPE:数据里 19 个块写了它(原版 0、MOD 库 19),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
104 · PERCENT PET HEALTH
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT PET HEALTH
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_PETHEALTH.DAT
宠物与随从生命百分比。CUnit__getMaxHealth 读取。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 10 次 · MOD 库 224 次
DAMAGE_TYPE:数据里 26 个块写了它(原版 0、MOD 库 26),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
129 · DESUMMON ON DEATH
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:DESUMMON ON DEATH
<BOOL>SAVE:true
<FLOAT>MIN:-1
<FLOAT>MAX:-1
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_ICEELEM_DUR.DAT
死亡时解除召唤。走布尔查询,CUnit__onDeath_vt120 消费。
样例读数:槽位 MIN=-1、MAX=-1 · ACTIVATION=DYNAMIC;DURATION=ALWAYS
生效方式:布尔查询
实测用量:原版 29 次 · MOD 库 602 次
142 · SWAP POS WITH PET
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SWAP POS WITH PET
[/EFFECT]原版 SKILLS/MONSTERS/MEDEA/MEDEACLONE.DAT
与随从交换位置。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x559D7F。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 1 次
160 · SPAWN UNIT
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:SPAWN UNIT
<FLOAT>COUNT:1
<FLOAT>CHANCE:1
<FLOAT>MINRANGE:1
<FLOAT>MAXRANGE:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
生成单位。实装完整,原版一次没用:INSTANT(0x55C3B6)、挂载(0x5640D0)、tick(0x569360)三条路径都有分支。INSTANT 前置是 [CEffect+0x30] & [CEffect+0x34] != -1(要有可解析的单位 GUID)加本地权威,然后读槽 4、3、0。
生效方式:INSTANT 分支 0x55C3B6 / 挂载分支 0x5640D0 / tick 分支
实测用量:两库合计 0 次
161 · SPAWN UNIT ON DEATH
[EFFECT]
<STRING>NAME:invalid
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SPAWN UNIT ON DEATH
<STRING>UNITTHEME:CHAMPIONDIVIDING
<BOOL>SAVE:true
<FLOAT>COUNT:2
<FLOAT>CHANCE:100
<FLOAT>MINRANGE:2
<FLOAT>MAXRANGE:2
<FLOAT>HPPCT:40
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONSPAWNCHAMP.DAT
死亡时生成单位。由 CBaseUnit__execProcCastSkill 特判(0x53C8F7),走 CUnit__spawnUnitByGuid 后立刻 CEffect__expire。AFFIX_MODIFIES:false。
样例读数:槽位 COUNT=2、CHANCE=100、MINRANGE=2、MAXRANGE=2、HPPCT=40 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:布尔查询
实测用量:原版 1 次 · MOD 库 110 次
177 · EXPLODE ON DEATH
[EFFECT]
<STRING>ACTIVATION:TRANSFER
<STRING>DURATION:0.5
<STRING>TYPE:EXPLODE ON DEATH
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_TL2_EXPLODECORPSE.DAT
死亡时爆炸。走布尔查询,onDeath 消费。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=TRANSFER;DURATION=0.5;DAMAGE_TYPE=ALL
生效方式:布尔查询
实测用量:原版 77 次 · MOD 库 551 次
DAMAGE_TYPE:数据里 8 个块写了它(原版 1、MOD 库 7),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
位移与传送
移速、传送、拉拽。传送四兄弟是同一段代码的四份副本。
21 · PERCENT SPEED
[EFFECT]
<STRING>NAME:ChampSlowMove
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:PERCENT SPEED
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-20
<FLOAT>MAX:-20
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONSLOWAURA.DAT
移动速度百分比。CUnit__getMoveSpeedA/B 与 integrateMoveAndTurn 都读它。
样例读数:槽位 MIN=-20、MAX=-20 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 260 次 · MOD 库 4654 次
DAMAGE_TYPE:数据里 104 个块写了它(原版 0、MOD 库 104),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
44 · PERCENT ACTIVE DISTANCE BONUS
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT ACTIVE DISTANCE BONUS
<FLOAT>MIN:200
<FLOAT>MAX:200
[/EFFECT]原版 AFFIXES/ITEMS/SET_DEFENSE_BONUS5.DAT
活动距离百分比加成。
样例读数:槽位 MIN=200、MAX=200 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 13 次 · MOD 库 61 次
63 · VELOCITY MULT
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:VELOCITY MULT
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
速度倍率。实装完整,原版一次没用,而且同时占三条路径:数值查询(CUnit__integrateMovement 0x542780)、布尔查询(0x51A631/0x542EC9)、挂载分支(0x563BD3)。
生效方式:被动数值 / 布尔查询 / 挂载分支 0x563BD3
实测用量:两库合计 0 次
78 · MISSILE RANGE BONUS
[EFFECT]
<STRING>NAME:OFTHETIGER PERCENT ATTACK SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:MISSILE RANGE BONUS
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_MISSILE_RANGE_BONUS1.DAT
弹道射程加成。攻击距离判定与武器缩放都读它。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 17 次 · MOD 库 174 次
113 · WARP
[EFFECT]
<STRING>NAME:Phasebeast_A3Z2_lava
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:WARP
<STRING>DURATION:INSTANT
[/EFFECT]原版 SKILLS/MONSTERS/PHASEBEAST/PORTALUSE_LAVA.DAT
传送。把目标串按分隔符切成关卡名与落点名。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT;DURATION=INSTANT
生效方式:布尔查询 / INSTANT 分支 0x559F1A
实测用量:原版 21 次 · MOD 库 18 次
157 · TELEPORT RANDOM
[EFFECT]
<STRING>NAME:TeleportEffect
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:TELEPORT RANDOM
<BOOL>EXCLUSIVE:true
<FLOAT>CHANCE:100
<FLOAT>DONTPLAYPARTICLES:-1
<FLOAT>MINRANGE:6
<FLOAT>MAXRANGE:10
<FLOAT>COOLDOWN:5
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONRANDOMTELEPORT.DAT
随机传送。与 158/235/236 是四份同构副本,只在落位函数与粒子标志上分叉。
样例读数:槽位 CHANCE=100、MINRANGE=6、MAXRANGE=10、COOLDOWN=5 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:INSTANT 分支 0x55BF07。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 11 次 · MOD 库 198 次
158 · TELEPORT
[EFFECT]
<STRING>NAME:TELEPORTOTHER
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:TELEPORT
<STRING>PARTICLE_FX:media/particles/effects/teleport.layout
<FLOAT>CHANCE:100
<FLOAT>MINRANGE:0
<FLOAT>MAXRANGE:30
<FLOAT>COOLDOWN:5
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_PORTAL.DAT
定点传送。
样例读数:槽位 CHANCE=100、MINRANGE=0、MAXRANGE=30、COOLDOWN=5 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55BD62。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 6 次 · MOD 库 8 次
162 · WARP TO POI
[EFFECT]
<STRING>NAME:EZRO_SPAWN_POI
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:WARP TO POI
<FLOAT>POI:0
[/EFFECT]原版 SKILLS/MONSTERS/BOSS_EZRO_ELITE/POI_WARP.DAT
传送到 POI。找点 → 找空位 → 贴地 → 设位置,四步都在挂载分支里。
样例读数:槽位 POI=0 · ACTIVATION=DYNAMIC
生效方式:挂载分支 0x562C72
实测用量:原版 2 次 · MOD 库 2 次
223 · PULL
[EFFECT]
<STRING>NAME:EzroManaPull
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:PULL
<BOOL>EXCLUSIVE:true
<FLOAT>TIME:20
<FLOAT>EFFECT_DURATION:0.25
[/EFFECT]原版 SKILLS/MONSTERS/EZROHIR/SOULDRAWMANA.DAT
拉拽。把目标朝来源拖,带抗性判定。
样例读数:槽位 TIME=20、EFFECT_DURATION=0.25 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:INSTANT 分支 0x5597A3。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 11 次 · MOD 库 304 次
DAMAGE_TYPE:数据里 6 个块写了它(原版 0、MOD 库 6),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
225 · PULL EFFECT
[EFFECT]
<STRING>NAME:druid_guardian_guard
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:PULL EFFECT
<BOOL>EXCLUSIVE:true
<FLOAT>TIME:0.2
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/SKILLS/DRUID_GUARDIAN_GUARD.DAT
拉拽效果。tick 里做完整的向量运算:相减 → length → normalise → 两次缩放。
样例读数:槽位 TIME=0.2 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:被动数值 / tick 分支
实测用量:原版 0 次 · MOD 库 10 次
235 · TELEPORT NOPARTICLE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:TELEPORT NOPARTICLE
<FLOAT>CHANCE:100
<FLOAT>MINRANGE:15
<FLOAT>MAXRANGE:20
<FLOAT>COOLDOWN:0
[/EFFECT]原版 SKILLS/MONSTERS/BOSS_ALCHEMIST/EMBERPHASE.DAT
定点传送(无粒子)。与 158 同构。
样例读数:槽位 CHANCE=100、MINRANGE=15、MAXRANGE=20、COOLDOWN=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55C08C。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 49 次
236 · TELEPORT RANDOM NOPARTICLE
[EFFECT]
<STRING>NAME:Banish_Teleport
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:TELEPORT RANDOM NOPARTICLE
<STRING>UNITTHEME:fear
<BOOL>EXCLUSIVE:true
<FLOAT>CHANCE:22
<FLOAT>MINRANGE:5
<FLOAT>MAXRANGE:10
<FLOAT>COOLDOWN:1
[/EFFECT]MOD challenger-continent/unpacked/Variant/MEDIA/AFFIXES/SKILLS/LEGIONARY_BANISH1.DAT
随机传送(无粒子)。与 157 同构。
样例读数:槽位 CHANCE=22、MINRANGE=5、MAXRANGE=10、COOLDOWN=1 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:INSTANT 分支 0x55C231。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 0 次 · MOD 库 45 次
物品与经济
掉落、金钱、经验、价格、物品需求减免。
27 · PERCENT MAGICAL DROP
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT MAGICAL DROP
<FLOAT>MIN:3
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_LUCK_LUCK2.DAT
魔法物品掉落率(寻宝)。CSpawnClass__pickItem_byRarityWeights 按它调稀有度权重。
样例读数:槽位 MIN=3、MAX=4 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 43 次 · MOD 库 439 次
DAMAGE_TYPE:数据里 45 个块写了它(原版 5、MOD 库 40),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
28 · PERCENT GOLD DROP
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT GOLD DROP
<FLOAT>MIN:4
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_LUCK_GOLD_DROP.DAT
金币掉落加成。拾取金币与角色面板两处读取。
样例读数:槽位 MIN=4、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 37 次 · MOD 库 423 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
34 · PERCENT ITEM REQUIREMENTS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:PERCENT ITEM REQUIREMENTS
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
物品需求百分比减免。被六个分类版取代(93/94/95/98/100/101,sub_57D930 按 UNITTYPE 选型),自己没有消费方。但描述串还在,所以写了会照常显示「[VALUE]% reduced item level requirements」而毫无作用。
生效方式:未找到消费方 —— 六条路径均无,原版用量为 0
实测用量:两库合计 0 次
46 · IDENTIFY
[EFFECT]
<STRING>NAME:IDENTIFY
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:IDENTIFY
<STRING>DURATION:INSTANT
<FLOAT>VALUE:1
[/EFFECT]原版 SKILLS/SHARED/IDENTIFY/IDENTIFY.DAT
鉴定。效果本身什么都不做——类型 46 在 INSTANT 跳表里落 default(纯 retn),鉴定由技能层实现。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:效果本身无行为 —— 落 INSTANT default(纯 retn)
实测用量:原版 2 次 · MOD 库 2 次
WARNING
写了不生效。 两库合计已被写了 4 次,但引擎里没有任何代码会读它。 这个效果块本身不产生任何行为 —— 类型 46 在 INSTANT 跳表里落 default(0x55CA77,纯 retn)。鉴定功能由技能层实现,原版把它当标记用。
51 · GOLD DROP
[EFFECT]
<BOOL>EXCLUSIVE:true
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:GOLD DROP
<STRING>GRAPHOVERRIDE:DDK
<FLOAT>MIN:300
<FLOAT>MAX:350
[/EFFECT]MOD challenger-continent/暗黑传奇/MEDIA/AFFIXES/ADD_S_CANNON/CANSTUN_L.DAT
金币掉落(绝对值)。
样例读数:槽位 MIN=300、MAX=350 · EXCLUSIVE=true;ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 39 次
68 · XP GAIN BONUS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:XP GAIN BONUS
<FLOAT>MIN:4
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_LUCK_GAIN2.DAT
经验获取加成。与 XPSHARING、LEVEL_VERSUS_LEVEL_EXPERIENCE_MODIFIER 一起进经验计算。
样例读数:槽位 MIN=4、MAX=5 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 19 次 · MOD 库 254 次
77 · FAME GAIN BONUS
[EFFECT]
<STRING>NAME:FAMEGAIN
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:FAME GAIN BONUS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_ADVENTURER_MASTERY.DAT
声望获取加成。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 69 次
83 · PRICE REDUCTION
[EFFECT]
<STRING>NAME:OFTHEMAGE PERCENT CAST SPEED
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PRICE REDUCTION
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_PRICE_REDUCTION2.DAT
价格折扣。买价与卖价两处都读它。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 6 次 · MOD 库 58 次
84 · FISHING LUCK
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:FISHING LUCK
<STRING>DAMAGE_TYPE:FIRE
<FLOAT>MIN:2
<FLOAT>MAX:4
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_LUCK_FISHING_LUCK.DAT
钓鱼幸运。
样例读数:槽位 MIN=2、MAX=4 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=FIRE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 5 次 · MOD 库 45 次
DAMAGE_TYPE:数据里 34 个块写了它(原版 4、MOD 库 30),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
90 · POTION EFFICIENCY
[EFFECT]
<STRING>NAME:OFTHESAVAGE DEGRADE ARMOR
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:POTION EFFICIENCY
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/ITEMS/UNIQUE_POTION_EFFICIENCY.DAT
药水效率。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 15 次 · MOD 库 212 次
93 · REDUCED ITEM REQUIREMENTS
[EFFECT]
<STRING>NAME:OFTHETURTLE ARMOR BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:REDUCED ITEM REQUIREMENTS
<FLOAT>MIN:5
<FLOAT>MAX:7
[/EFFECT]原版 AFFIXES/ITEMS/ENCHANTER_ACT3_REDUCED_REQS.DAT
物品需求减免(通用)。需求链无条件先取它,再按物品 UNITTYPE 追加一个专用类型。
样例读数:槽位 MIN=5、MAX=7 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 5 次 · MOD 库 41 次
94 · ARMOR ITEM REQUIREMENTS
[EFFECT]
<STRING>NAME:ARMORSKILL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:ARMOR ITEM REQUIREMENTS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_ARMOR_MASTERY.DAT
护甲类物品需求减免。物品 UNITTYPE 0x0D 时追加。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 28 次
98 · MARTIAL ITEM REQUIREMENTS
[EFFECT]
<STRING>NAME:MARTIALSKILL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:MARTIAL ITEM REQUIREMENTS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_MARTIAL_MASTERY.DAT
武器类物品需求减免。UNITTYPE 0xA2 时追加。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 59 次
100 · RANGED ITEM REQUIREMENTS
[EFFECT]
<STRING>NAME:MARTIALSKILL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:RANGED ITEM REQUIREMENTS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_RANGED_MASTERY.DAT
远程物品需求减免。UNITTYPE 0xA3 时追加。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 20 次
101 · MAGIC ITEM REQUIREMENTS
[EFFECT]
<STRING>NAME:MAGESKILL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:MAGIC ITEM REQUIREMENTS
<STRING>GRAPHOVERRIDE:LINEAR_GRAPH
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/SKILL_MAGIC_MASTERY.DAT
魔法物品需求减免。UNITTYPE 0xA4 时追加。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 8 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
164 · DISENCHANT
[EFFECT]
<STRING>NAME:SOCKETABLES_SPAWN
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:DISENCHANT
<BOOL>SAVE:true
<FLOAT>MIN:1
<FLOAT>MAX:1
<FLOAT>GOLD%:40
<FLOAT>CHANCE%:4
[/EFFECT]原版 UNITS/ITEMS/SCROLLS/DISENCHANT.DAT
去附魔。效果本身什么都不做 —— 落 INSTANT default。真正的去附魔由标志位 0x400 驱动。
样例读数:槽位 GOLD%=40、CHANCE%=4 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:效果本身无行为 —— 落 INSTANT default(纯 retn)
实测用量:原版 1 次 · MOD 库 5 次
WARNING
写了不生效。 两库合计已被写了 6 次,但引擎里没有任何代码会读它。 这个效果块本身不产生任何行为 —— 落 INSTANT default。去附魔实际由标志位 0x400 驱动(唯一写入点 CEquipment__markNewEffectsAsEnchanted 0x73E20E),与类型 164 无关。
187 · TRAP DISARM CHANCE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:TRAP DISARM CHANCE
<FLOAT>CHANCE_TO_100:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
陷阱解除概率。实装完整,原版一次没用——引擎做好了一整条「拆陷阱」属性线却没上架任何词缀。CUnit__triggerTrapSkill_rollDisarm(0x5C8930):chance = getStat(187) + getStat(随从[0], 187),rand(0,100) > chance 才触发陷阱。前置是技能对象 +0x1FC 标志位为真。
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:两库合计 0 次
视觉与变形
变身、缩放、可见性、主题。
57 · TRANSFORM
[EFFECT]
<STRING>NAME:Construct
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:TRANSFORM
<STRING>PARTICLE_FX:media/particles/events/GenericPotion.layout
<FLOAT>MIN:120
<FLOAT>MAX:120
[/EFFECT]原版 SKILLS/SHARED/POLYMORPH/POLYMORPHCONSTRUCT.DAT
变身。目标模型名取自效果的 intern 串表,调 CUnit__doTransform。TYPE:None。
样例读数:槽位 MIN=120、MAX=120 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A696。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 37 次 · MOD 库 72 次
58 · UNIT THEME
[EFFECT]
<STRING>NAME:CHAMPIONGLOW
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:UNIT THEME
<BOOL>SAVE:true
<STRING>UNITTHEME:CHAMPIONGLOW
<FLOAT>VALUE:-1
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPGLOW.DAT
单位主题(发光等外观)。机制根本不看 TYPE —— 真正起作用的是同一个块里的 UNITTHEME: 键,它无条件被读进 CEffect+0x128,tick 时只判该指针非空。
样例读数:ACTIVATION=DYNAMIC;DURATION=ALWAYS
生效方式:机制不看 TYPE —— 由同块的 UNITTHEME: 键驱动
实测用量:原版 216 次 · MOD 库 3178 次
DAMAGE_TYPE:数据里 35 个块写了它(原版 1、MOD 库 34),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
NOTE
本类型不靠 TYPE 工作 —— CEffect__ctorFromDat(0x7AAD8C)无条件读同块的 UNITTHEME: 键存进 CEffect+0x128,消费点(0x568184)只判该字段非空。换成别的 TYPE、只要留着 UNITTHEME 键,主题照样生效。
59 · SCALE
[EFFECT]
<STRING>NAME:Neopolean
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:SCALE
<BOOL>SAVE:false
<FLOAT>STARTSCALE:1
<FLOAT>ENDSCALE:0.8
<FLOAT>TIMETOSCALE:0.1
<FLOAT>TIMETOSCALEBACK:0.1
[/EFFECT]原版 AFFIXES/PERKS/NEOPOLEAN.DAT
缩放。四个槽分别是起始缩放、结束缩放、缩放耗时、恢复耗时,tick 每帧读全四个。TYPE:None。
样例读数:槽位 STARTSCALE=1、ENDSCALE=0.8、TIMETOSCALE=0.1、TIMETOSCALEBACK=0.1 · ACTIVATION=DYNAMIC;DURATION=ALWAYS
生效方式:tick 分支
实测用量:原版 21 次 · MOD 库 351 次
DAMAGE_TYPE:数据里 2 个块写了它(原版 0、MOD 库 2),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
73 · TRANSFORM PERMANENT
[EFFECT]
<STRING>NAME:Pet_Crab
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:TRANSFORM PERMANENT
<STRING>PARTICLE_FX:media/particles/events/GenericPotion.layout
<FLOAT>MIN:0
<FLOAT>MAX:0
[/EFFECT]原版 UNITS/ITEMS/FISH/FISH_ADZEFISH_PERM.DAT
永久变身。与类型 57 共享后半段实体动作。
样例读数:槽位 MIN=0、MAX=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A6FB。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 16 次 · MOD 库 63 次
111 · FADE OUT
[EFFECT]
<STRING>NAME:HIDE
<INTEGER>LEVEL:1
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:FADE OUT
<STRING>DURATION:INSTANT
<FLOAT>VALUE:1
[/EFFECT]原版 SKILLS/ALCHEMIST/IMPSUMMON/SUMMONIMP.DAT
淡出。两次 CUnit__setVisible。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A53A。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 10 次 · MOD 库 444 次
112 · SET VISIBLE
[EFFECT]
<STRING>NAME:SETVISIBLE
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SET VISIBLE
<FLOAT>MIN:0
<FLOAT>MAX:0
[/EFFECT]原版 SKILLS/MONSTERS/EVILTELEPORT.DAT
设置可见性。调用序列与类型 111 完全相同。
样例读数:槽位 MIN=0、MAX=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A576。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 18 次 · MOD 库 60 次
155 · SET MESH INVISIBLE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<STRING>TYPE:SET MESH INVISIBLE
<BOOL>SAVE:true
<FLOAT>INVISIBLE:1
[/EFFECT]原版 AFFIXES/MONSTERS/MONSTER_HIDE.DAT
隐藏模型。
样例读数:槽位 INVISIBLE=1 · ACTIVATION=DYNAMIC;DURATION=ALWAYS
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 5 次 · MOD 库 83 次
184 · SCALE BY HP
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:SCALE BY HP
<BOOL>SAVE:true
<FLOAT>MAXSCALE:1
<FLOAT>MINSCALE:0.3
[/EFFECT]原版 UNITS/MONSTERS/GEL/KINGICEGEL.DAT
按生命比例缩放。tick 里用 _CIpow 做幂曲线,不是线性。
样例读数:槽位 MAXSCALE=1、MINSCALE=0.3 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:tick 分支
实测用量:原版 6 次 · MOD 库 20 次
186 · TRANSFORMATION TIME
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:TRANSFORMATION TIME
<FLOAT>PERCENT_TO_100:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
变形持续时间。实装完整,原版一次没用:CMonster_tick_main(0x56AEAB)里 [CUnit+0x76C] -= dt / (1.0 + (自身186 + 随从[0]的186)/100),除数在分母上所以值越大变身越久。-999.0 是「没在变身」的哨兵。
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:两库合计 0 次
感知
视野距离与视野角度。
13 · SIGHT BONUS
[EFFECT]
<STRING>NAME:REPULSIONInterrupt1
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:SIGHT BONUS
<STRING>STATMODIFYNAME:EFFECT LEVEL
<STRING>STATMODIFYPERCENT:33.2857143
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:-2
<FLOAT>MAX:-2
[/EFFECT]MOD challenger-continent/职业技能/MEDIA/AFFIXES/PLAYERSKILLS/NECROMANCER_SKILLS/NECRO_SHOUT.DAT
视野距离加成。CUnit__getSightBonus 读取,与类型 41 配对。
样例读数:槽位 MIN=-2、MAX=-2 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 0 次 · MOD 库 8 次
14 · VIEW ANGLE BONUS
[EFFECT]
<STRING>NAME:MONSTER_HUNT VIEW ANGLE BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:10
<STRING>TYPE:VIEW ANGLE BONUS
<FLOAT>MIN:60
<FLOAT>MAX:-1
[/EFFECT]原版 AFFIXES/MONSTERS/MONSTER_HUNT.DAT
视野角度加成。CUnit__getViewAngleBonus 读取,与类型 42 配对。
样例读数:槽位 MIN=60、MAX=-1 · ACTIVATION=PASSIVE;DURATION=10
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 0 次
41 · PERCENT SIGHT BONUS
[EFFECT]
<STRING>NAME:MONSTER_HUNT PERCENT SIGHT BONUS
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:10
<STRING>TYPE:PERCENT SIGHT BONUS
<FLOAT>MIN:100
<FLOAT>MAX:-1
[/EFFECT]原版 AFFIXES/MONSTERS/MONSTER_HUNT.DAT
视野距离百分比加成。
样例读数:槽位 MIN=100、MAX=-1 · ACTIVATION=PASSIVE;DURATION=10
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 1 次 · MOD 库 26 次
42 · PERCENT VIEW ANGLE BONUS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:PERCENT VIEW ANGLE BONUS
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
视野角度百分比加成。实装完整,原版一次没用:CUnit__getViewAngleBonus(0x51B540)算 (getStat(42)+1.0) × (CUnit+0x338 + getStat(14)),结果流进 CCharacter__findAITarget 的索敌视锥。注意 AI 管理器 flag 0 置位时直接返回 360°,那时它不起作用。
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:两库合计 0 次
触发器、目标与效果管理
挂触发器、改目标、移除其他效果,以及按周围怪物数量动态改写数值。
165 · ADD TRIGGERABLE
[EFFECT]
<STRING>NAME:RANDOMSLAYER_CHAMP10_ATTACKSPEED
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:ADD TRIGGERABLE
<FLOAT>CHANCE:100
[/EFFECT]原版 AFFIXES/ITEMS/OFLEARNING_CHAMP10_ATTACKSPEED.DAT
添加触发器。INSTANT 与挂载两条路径都有;挂载版先按名字比对去重。
样例读数:槽位 CHANCE=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55C74F / 挂载分支 0x564141
实测用量:原版 271 次 · MOD 库 3273 次
166 · REMOVE TRIGGERABLE
[EFFECT]
<STRING>NAME:ARBITER_FIRE_BRAND
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:REMOVE TRIGGERABLE
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_FIRE_BRAND_PASSIVE_CLEAR.DAT
移除触发器。tick 路径里会回调 INSTANT 执行器 —— 六条路径之间唯一一处互相调用。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:布尔查询 / INSTANT 分支 0x55C7EA / 挂载分支 0x5642B5 / tick 分支
实测用量:原版 84 次 · MOD 库 2345 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
212 · TARGET LOCKED
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:5
<STRING>TYPE:TARGET LOCKED
<BOOL>EXCLUSIVE:true
<FLOAT>VALUE:-1
[/EFFECT]原版 SKILLS/MONSTERS/GRANDREGENT/REGENT_MARK_PULSE_ON_PLAYER.DAT
目标锁定。纯增益条标记 —— 五个槽全是 NA,一个数值参数都没有,但描述串齐全。原版唯一用例里它与一个 TYPE:AGRO 效果成对出现,真正的强制换目标由 AGRO 完成。
样例读数:ACTIVATION=PASSIVE;DURATION=5;EXCLUSIVE=true
生效方式:纯显示 —— 无执行路径,只有描述串
实测用量:原版 1 次 · MOD 库 17 次
NOTE
有意为之的展示位:五个槽全是 NA,但四条描述串齐全。原版唯一用例里它与一个 TYPE:AGRO 成对出现,真正换目标的是 AGRO(0x559ADF)。
213 · RETARGET
[EFFECT]
<STRING>NAME:retarget
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<INTEGER>LEVEL:1
<STRING>TYPE:RETARGET
<FLOAT>CHANCE:12
<FLOAT>RANGE:100
<FLOAT>TARGET_SKILL_TARGET:0
[/EFFECT]原版 SKILLS/MONSTERS/BOSS_NETHERIM/NETHERIM_BOSS_RETARGET.DAT
重新选择目标。在半径内随机挑一个目标并强制换目标,与 214 共用同一段代码。
样例读数:槽位 CHANCE=12、RANGE=100、TARGET_SKILL_TARGET=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x559ADF。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 6 次
214 · AGRO
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:AGRO
<BOOL>EXCLUSIVE:true
<FLOAT>CHANCE:100
[/EFFECT]原版 SKILLS/MONSTERS/GRANDREGENT/REGENT_MARK_PULSE_ON_PLAYER.DAT
拉仇恨。与 213 共用。
样例读数:槽位 CHANCE=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT;EXCLUSIVE=true
生效方式:INSTANT 分支 0x559ADF。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 50 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
231 · PERCENT DAMAGE TAKEN BY MONSTER COUNT
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT DAMAGE TAKEN BY MONSTER COUNT
<STRING>DAMAGE_TYPE:ALL
<BOOL>EXCLUSIVE:true
<FLOAT>MIN_PER:-2
<FLOAT>MAX_PER:-2
<FLOAT>RANGE:3
<FLOAT>MAX_COUNT:5
[/EFFECT]原版 AFFIXES/ITEMS/OF_TL2_DRAWARMOR2.DAT
按周围怪物数量减伤。它自己不算伤害,而是找一条同名的 26 PERCENT DAMAGE TAKEN 被动改写其数值。数据里必须成对写,否则整条失效。
样例读数:槽位 MIN_PER=-2、MAX_PER=-2、RANGE=3、MAX_COUNT=5 · ACTIVATION=PASSIVE;DURATION=0;DAMAGE_TYPE=ALL;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 31 次 · MOD 库 379 次
DAMAGE_TYPE:数据里 372 个块写了它(原版 20、MOD 库 352),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
232 · REMOVE EFFECT
[EFFECT]
<STRING>NAME:SPEED
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:REMOVE EFFECT
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 SKILLS/MONSTERS/WITCH/WITCH_DEHOVER.DAT
移除效果。按名字移除(removeEffectsByName),不是按类型。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55973D。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 8 次 · MOD 库 306 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
234 · PERCENT DAMAGE BONUS BY MONSTER COUNT
[EFFECT]
<STRING>NAME:BersBattlerage
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:PERCENT DAMAGE BONUS BY MONSTER COUNT
<STRING>DAMAGE_TYPE:ALL
<STRING>UNITTHEME:BATTLERAGE
<BOOL>EXCLUSIVE:true
<FLOAT>MIN_PER:3
<FLOAT>MAX_PER:3
<FLOAT>RANGE:4
<FLOAT>MAX_COUNT:10
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_BATTLERAGE.DAT
按周围怪物数量加伤。与 231 同一个实现,伙伴类型是 25 PERCENT DAMAGE BONUS。
样例读数:槽位 MIN_PER=3、MAX_PER=3、RANGE=4、MAX_COUNT=10 · ACTIVATION=DYNAMIC;DAMAGE_TYPE=ALL;EXCLUSIVE=true
生效方式:tick 分支
实测用量:原版 15 次 · MOD 库 338 次
DAMAGE_TYPE:数据里 239 个块写了它(原版 15、MOD 库 224),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
一次性动作
只在 INSTANT 路径有分支的动作类。
22 · PERCENT ATTACK SPEED
[EFFECT]
<STRING>NAME:ChampSlowAttack
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:ALWAYS
<INTEGER>LEVEL:1
<STRING>TYPE:PERCENT ATTACK SPEED
<BOOL>EXCLUSIVE:true
<FLOAT>MIN:-20
<FLOAT>MAX:-20
[/EFFECT]原版 AFFIXES/CHAMPIONAFFIXES/CHAMPIONSLOWAURA.DAT
攻击速度百分比。由 resolveStrikeHit、角色面板与 sub_544200 读取。
样例读数:槽位 MIN=-20、MAX=-20 · ACTIVATION=DYNAMIC;DURATION=ALWAYS;EXCLUSIVE=true
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 303 次 · MOD 库 4818 次
DAMAGE_TYPE:数据里 291 个块写了它(原版 2、MOD 库 289),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
30 · PERCENT LIFE STOLEN
[EFFECT]
<STRING>NAME:OFTHEVAMPIRE LIFE STEAL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT LIFE STOLEN
<FLOAT>MIN:10
<FLOAT>MAX:10
[/EFFECT]原版 AFFIXES/ITEMS/SET_LIFE_STEAL.DAT
生命偷取百分比。由 resolveStrikeHit 在 0x54AC3D 读取。
样例读数:槽位 MIN=10、MAX=10 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 7 次 · MOD 库 325 次
DAMAGE_TYPE:数据里 5 个块写了它(原版 0、MOD 库 5),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
31 · PERCENT MANA STOLEN
[EFFECT]
<STRING>NAME:OFTHEWIZARD MANA STEAL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:PERCENT MANA STOLEN
<FLOAT>MIN:2
<FLOAT>MAX:2
[/EFFECT]原版 AFFIXES/ITEMS/SET_MANA_STEAL2.DAT
法力偷取百分比。0x54CD4F。
样例读数:槽位 MIN=2、MAX=2 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 4 次 · MOD 库 119 次
45 · OPEN WAYPOINT PORTAL
[EFFECT]
<BOOL>SAVE:true
<STRING>NAME:PORTAL
<STRING>ACTIVATION:DYNAMIC
<STRING>TYPE:OPEN WAYPOINT PORTAL
<STRING>DURATION:INSTANT
<FLOAT>VALUE:1
[/EFFECT]原版 UNITS/ITEMS/SCROLLS/WAYPOINTPORTALSCROLL.DAT
开启传送点门户。INSTANT 一次性动作,只在权威端执行,并计入玩家统计。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A631。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 2 次 · MOD 库 2 次
49 · LIFE STEAL
[EFFECT]
<STRING>NAME:OFTHEVAMPIRE LIFE STEAL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:LIFE STEAL
<FLOAT>MIN:150
<FLOAT>MAX:150
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_LIFE_STEAL1.DAT
生命偷取(绝对值)。resolveStrikeHit 0x54AC83。
样例读数:槽位 MIN=150、MAX=150 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 29 次 · MOD 库 716 次
DAMAGE_TYPE:数据里 6 个块写了它(原版 0、MOD 库 6),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
50 · MANA STEAL
[EFFECT]
<STRING>NAME:OFTHEWIZARD MANA STEAL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:MANA STEAL
<FLOAT>MIN:60
<FLOAT>MAX:60
[/EFFECT]原版 AFFIXES/ITEMS/LEARNINGRANDOM_MANA_STEAL1.DAT
法力偷取(绝对值)。0x54CD95。
样例读数:槽位 MIN=60、MAX=60 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 23 次 · MOD 库 510 次
DAMAGE_TYPE:数据里 4 个块写了它(原版 0、MOD 库 4),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
52 · DAMAGE
[EFFECT]
<STRING>NAME:ARCBEAMDAM
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:DAMAGE
<STRING>DAMAGE_TYPE:ELECTRIC
<BOOL>USEOWNERLEVEL:true
<BOOL>MODIFIERISBONUS:false
<FLOAT>SOAKSCALE:0.2
<FLOAT>MIN:10
<FLOAT>MAX:20
<FLOAT>MINFORCE:7
<FLOAT>MAXFORCE:9
[/EFFECT]原版 AFFIXES/SKILLS/ARBITER_ARCBEAM01.DAT
直接伤害。三条路径都有分支:INSTANT 打一次、挂载时沿 getRootOwner 上溯到真正归属者再取属性、并被 bakeDamageEffectsIntoTable 烘进装备伤害表。构造时自动预置 EXCLUSIVE,无需在 dat 里写。
样例读数:槽位 MIN=10、MAX=20、MINFORCE=7、MAXFORCE=9 · ACTIVATION=DYNAMIC;DURATION=INSTANT;DAMAGE_TYPE=ELECTRIC
生效方式:被动数值 / INSTANT 分支 0x55A8BE / 挂载分支 0x563D52
实测用量:原版 1067 次 · MOD 库 18348 次
DAMAGE_TYPE:这个类型真的会读(不走 getStat —— CEquipment__bakeDamageEffectsIntoTable(0x590BB0)直接读 +0x14)。数据里 18149 个块写了它。合法值只有 Physical Magical Fire Ice Electric Poison All 七个,拼错就整条匹配不上(0x7AB545 的写入被跳过)——最常见的错法是把 MAGICAL 写成 MAGIC、ELECTRIC 写成 ELECTRICAL。
CAUTION
原版有两处把这个键名写错了。SKILLS/CHAMPIONS/CHARGEDBOLT.DAT 与 SKILLS/PROCS/CHARGEDBOLT.DAT 里 各有一个内容完全相同的块(显然是复制的):
[EFFECT]
<STRING>NAME:elecprocDamage
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:DAMAGE
<STRING>DAMAGETYPE:ELECTRIC ← 少一个下划线
<FLOAT>MIN:80
<FLOAT>MAX:100
<FLOAT>MINFORCE:3
<FLOAT>MAXFORCE:5
<BOOL>USEOWNERLEVEL:true
[/EFFECT]NAME:elecprocDamage 把意图写死了——作者要的是电击伤害。 但引擎查的键名是 DAMAGE_TYPE,而二进制里根本没有 DAMAGETYPE 这个字符串 (只有 PRIMARY_DAMAGETYPE,那是另一个系统的键)。 名字对不上 → getString("DAMAGE_TYPE", "PHYSICAL") 拿到默认值 → CEffect+0x14 = 0(Physical)。
而本类型的 INSTANT 分支就在读这个字段:
.text:0055A957 mov eax, [edi+14h] ; 效果的 DAMAGE_TYPE
.text:0055A95E cmp eax, 6 ; 是 All 吗
.text:0055A961 jz short loc_55A97D
.text:0055A965 push eax ; 不是 All,拿它当过滤值
.text:0055A966 push 19h ; 类型 25 PERCENT DAMAGE BONUS
.text:0055A96A call CUnit__getStat所以这两个原版技能的伤害去查的是物理加成桶,不是电击桶。 MOD 库里另有 25 处照抄了同样的写法——全部落在本类型上、值全是 ELECTRIC, 而且没有一处同时写了正确的 DAMAGE_TYPE。
125 · LIFE STEAL MASTER
[EFFECT]
<STRING>NAME:OFTHEVAMPIRE LIFE STEAL
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:0
<STRING>TYPE:LIFE STEAL MASTER
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]原版 AFFIXES/ITEMS/COLLAR_LIFE_STEAL_MASTER.DAT
生命偷取(主人)。resolveStrikeHit 0x54BD0A。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=PASSIVE;DURATION=0
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 7 次 · MOD 库 118 次
126 · PERCENT LIFE STOLEN MASTER
[EFFECT]
<STRING>NAME:berserker_wolfshade_leech
<STRING>ACTIVATION:PASSIVE
<STRING>TYPE:PERCENT LIFE STOLEN MASTER
<STRING>STATMODIFYNAME:effect level
<STRING>STATMODIFYPERCENT:40
<BOOL>MODIFIERISBONUS:true
<FLOAT>MIN:5
<FLOAT>MAX:5
[/EFFECT]原版 AFFIXES/SKILLS/BERSERKER_WOLF_SHADE.DAT
生命偷取百分比(主人)。0x54BCC4。
样例读数:槽位 MIN=5、MAX=5 · ACTIVATION=PASSIVE
生效方式:被动数值。必须给时长或挂装备,写 INSTANT 无效
实测用量:原版 4 次 · MOD 库 48 次
DAMAGE_TYPE:数据里 4 个块写了它(原版 0、MOD 库 4),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
141 · OPEN PORTAL
[EFFECT]
<STRING>NAME:qa_arena
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:OPEN PORTAL
<BOOL>SAVE:true
<FLOAT>MIN:0
<FLOAT>MAX:0
[/EFFECT]原版 UNITS/ITEMS/MAPS/ARENA.DAT
开启门户。
样例读数:槽位 MIN=0、MAX=0 · ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x55A666。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 7 次 · MOD 库 21876 次
143 · RESPEC
[EFFECT]
<STRING>NAME:RESPECPOTION
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:INSTANT
<STRING>TYPE:RESPEC
<STRING>PARTICLE_FX:media/particles/events/GenericPotion.layout
[/EFFECT]原版 UNITS/ITEMS/POTIONS/RESPECPOTION.DAT
洗点。必须能转型成 CPlayer 才生效。
样例读数:ACTIVATION=DYNAMIC;DURATION=INSTANT
生效方式:INSTANT 分支 0x559D3D。写 DURATION:INSTANT,给时长不会反复触发
实测用量:原版 1 次 · MOD 库 2 次
145 · EXPLODE DEAD
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:Instant
<STRING>TYPE:EXPLODE DEAD
<STRING>DAMAGE_TYPE:ALL
<FLOAT>MIN:100
<FLOAT>MAX:100
[/EFFECT]原版 AFFIXES/SKILLS/TRAP_EXPLODE_DEAD.DAT
尸爆。CUnit__gibCorpse_DEATHEXPLODE。挂载版比 INSTANT 版多一道存活判定。
样例读数:槽位 MIN=100、MAX=100 · ACTIVATION=DYNAMIC;DURATION=Instant;DAMAGE_TYPE=ALL
生效方式:INSTANT 分支 0x55A621 / 挂载分支 0x5640B7
实测用量:原版 47 次 · MOD 库 596 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 1、MOD 库 0),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
156 · DAMAGE CHANCE
[EFFECT]
<STRING>NAME:Poison Mines DoT
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:4
<STRING>TYPE:DAMAGE CHANCE
<STRING>DAMAGE_TYPE:POISON
<BOOL>USEOWNERLEVEL:true
<FLOAT>MIN:50
<FLOAT>MAX:50
<FLOAT>MINFORCE:0
<FLOAT>MAXFORCE:0
<FLOAT>CHANCE:40
[/EFFECT]原版 AFFIXES/SKILLS/POISON_MINES.DAT
几率造成伤害。掷完概率后落到类型 52 的伤害路径。构造时自动预置 EXCLUSIVE。
样例读数:槽位 MIN=50、MAX=50、MINFORCE=0、MAXFORCE=0、CHANCE=40 · ACTIVATION=DYNAMIC;DURATION=4;DAMAGE_TYPE=POISON
生效方式:INSTANT 分支 0x55A868 / 挂载分支 0x563D0B
实测用量:原版 16 次 · MOD 库 703 次
DAMAGE_TYPE:数据里 689 个块写了它(原版 16、MOD 库 673),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
开发期占位与无消费方
名字即说明问题,或六条路径均无消费方。写进数据不会报错,但什么都不会发生。
130 · EMOTIONAL DAMAGE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:EMOTIONAL DAMAGE
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
开发期玩笑(「情感伤害」)。无任何代码路径,但描述串齐全——写了会在装备栏显示「[VALUE] Emotional Damage」,数值无效。
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:两库合计 0 次
131 · FUTURISTICNESS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:FUTURISTICNESS
<FLOAT>MIN:50
<FLOAT>MAX:50
[/EFFECT]MOD challenger-continent/unpacked/群魔乱世完善版-曲线调整/MEDIA/AFFIXES/WARRIORSKILLS/DOOM_OF_DEPOPULATION.DAT
开发期占位(「未来感」)。
样例读数:槽位 MIN=50、MAX=50 · ACTIVATION=DYNAMIC;DURATION=10
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:原版 0 次 · MOD 库 21 次
WARNING
写了不生效。 两库合计已被写了 21 次,但引擎里没有任何代码会读它。 开发期玩笑类型(+[VALUE] Futuristicness),六条路径均无分支。描述串齐全,所以装备栏会照常显示这行字,数值无效。
132 · JAUNTINESS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:JAUNTINESS
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
开发期玩笑(「轻快」)。同 130,只显示不生效。MOD 库里被写了 21 次。
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:两库合计 0 次
133 · SOCKS
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:SOCKS
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
开发期玩笑(「袜子」)。同 130,只显示不生效。
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:两库合计 0 次
134 · LOGIC RESISTANCE
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:LOGIC RESISTANCE
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
开发期玩笑(「逻辑抗性」)。同 130,只显示不生效。
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:两库合计 0 次
135 · NOODLE ARMS
[EFFECT]
<STRING>ACTIVATION:PASSIVE
<STRING>DURATION:ALWAYS
<STRING>TYPE:NOODLE ARMS
<BOOL>SAVE:true
<FLOAT>FORCE:5
<FLOAT>MIN:0
<FLOAT>MAX:0
[/EFFECT]原版 UNITS/ITEMS/STAVES/FUNGUS_CASTER_STAFF.DAT
开发期占位(「面条手臂」)。
样例读数:槽位 MIN=0、MAX=0 · ACTIVATION=PASSIVE;DURATION=ALWAYS
生效方式:开发期占位 —— 六条路径均无分支,无消费方
实测用量:原版 1 次 · MOD 库 0 次
WARNING
写了不生效。 两库合计已被写了 1 次,但引擎里没有任何代码会读它。 开发期玩笑类型([VALUE] Noodle Arms),六条路径均无分支。原版自己也误用了 1 次。
193 · NONE
[EFFECT]
<STRING>NAME:PhaseBeast_Spawn_NetherBurst
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:2
<STRING>TYPE:NONE
<STRING>PARTICLE_FX:MEDIA\PARTICLES\OBJECTS\SPAWN_NETHERBURST.LAYOUT
<FLOAT>VALUE:-1
[/EFFECT]原版 AFFIXES/MONSTERS/PHASEBEAST_SPAWN_NETHERBURST.DAT
空操作哨兵。这是 CEffect__ctorFromDat 里类型号的构造初值(0xC1 = 193),TYPE 拼错时的落地点。按设计就是什么都不做。
样例读数:ACTIVATION=DYNAMIC;DURATION=2
生效方式:空操作哨兵 —— 按设计什么都不做
实测用量:原版 19 次 · MOD 库 275 次
DAMAGE_TYPE:数据里 1 个块写了它(原版 0、MOD 库 1),但本次未找到读它的消费方 —— 该类型的 getStat 调用点第二个参数恒为 7(不过滤哨兵)。
NOTE
拼错 TYPE 时的落点 —— 构造函数初值 0xC1(0x7AAA7E)不被覆盖就是它。按设计什么都不做,用量里的绝大多数是写错了名字而不是有意选它。
238 · CHEATED
[EFFECT]
<STRING>ACTIVATION:DYNAMIC
<STRING>DURATION:10
<STRING>TYPE:CHEATED
<FLOAT>MIN:1
<FLOAT>MAX:1
[/EFFECT]原版与 MOD 库均无使用;上列为按槽位表构造的最小样例,仅示意写法
作弊标记。引擎只读不写:sub_5C0B30 里 6 处 hasActiveEffectOfType(0xEE) 逐件清点装备,命中就 dword_331B3A0 |= 0x20。但整个二进制里没有 CHEATED 这个字符串,没有任何代码路径能造出它——检测逻辑随成品发布了,触发它的数据没有。
生效方式:布尔查询
实测用量:两库合计 0 次