先说说该触发的想法,该触发的想法是,由于魔兽的防甲不能直接抵抗减少法术伤害,因此我用补捉伤害、抵消伤害、制造伤害的方法将记录好的技能伤害(技能伤害尾数带小数)转化为穿刺型普通伤害,使得防御力能减少法术伤害的同时,拥有艾鲁尼等技能也能抵抗部分伤害,而同时,我的地图拥有类似“无光之盾”的消耗型抵抗伤害道具,同样是用补捉、抵消伤害的方法做,但以下触发似乎重叠了,我开始还没发觉,因为我堆在一起不能发动正常,现在看多了,仔细想多了,这两套触发是不是可以以多个IF来堆在一起,并且提高效率和减少现有的错误?那么,以下是触发,麻烦大家看看。
单位组 - 选取 ((完整地图区域) 内的所有单位) 内所有单位做动作
Loop - 动作
-------- ---------------------------------------------------------- --------
触发器 - 为 FYLXT <预设> 添加事件: (单位 - (选取单位) 接受伤害)
设置 SHDK_Unit[SHDK_Max[0]] = (选取单位)
自定义代码: if udg_SHDK_time[udg_SHDK_Max[0]] == null then
设置 SHDK_time[SHDK_Max[0]] = (新建的计时器)
自定义代码: endif
触发器 - 为 FYLXT II <预设> 添加事件: (时间 - SHDK_time[SHDK_Max[0]] 到期)
设置 SHDK_Max[0] = (SHDK_Max[0] + 1)
-------- ---------------------------------------------------------- --------
触发器 - 为 FYLXT III <预设> 添加事件: (单位 - (选取单位) 接受伤害)
设置 SHDK_Unit_II[SHDK_Max[1]] = (选取单位)
自定义代码: if udg_SHDK_time_II[udg_SHDK_Max[1]] == null then
设置 SHDK_time_II[SHDK_Max[1]] = (新建的计时器)
自定义代码: endif
触发器 - 为 FYLXT IV <预设> 添加事件: (时间 - SHDK_time_II[SHDK_Max[1]] 到期)
设置 SHDK_Max[1] = (SHDK_Max[1] + 1)
-------------------------------------------------------------------------------------------------------------------
FYLXT
事件
条件
(单位所受伤害) 大于 0.00
动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
(单位所受伤害) 等于 12.01
(单位所受伤害) 等于 省略N
(单位所受伤害) 等于 200000.02
Then - 动作
For SHDK_Index[0] 从 0 到 (SHDK_Max[0] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(触发单位) 等于 SHDK_Unit[SHDK_Index[0]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(单位所受伤害) 大于或等于 (SHDK_Unit[SHDK_Index[0]] 的 生命值)
Then - 动作
单位 - 为 SHDK_Unit[SHDK_Index[0]] 添加 伤害抵抗 生命值
Else - 动作
设置 SHDK_Damage[0] = (单位所受伤害)
设置 SHDK_Source[SHDK_Index[0]] = (伤害来源)
计时器 - 开启 SHDK_time[SHDK_Index[0]] ,计时方式: 一次性 时间设置: 0.00 秒
Else - 动作
-------------------------------------------------------------------------------------------------------------------
FYLXT II
事件
条件
动作
For SHDK_Index[0] 从 0 到 (SHDK_Max[0] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(到期的计时器) 等于 SHDK_time[SHDK_Index[0]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
单位 - 设置 SHDK_Unit[SHDK_Index[0]] 的生命值为 ((SHDK_Unit[SHDK_Index[0]] 的 生命值) + SHDK_Damage[0])
单位 - 为 SHDK_Unit[SHDK_Index[0]] 删除 伤害抵抗 生命值
如果所有条件成立则做动作1,否则做动作2
If - 条件
SHDK_Damage[0] 不等于 200000.02
Then - 动作
单位 - 命令 SHDK_Source[SHDK_Index[0]] 对 SHDK_Unit[SHDK_Index[0]] 造成 (SHDK_Damage[0] - 0.01) 点伤害,攻击类型: 穿刺 伤害类型: 普通
Else - 动作
单位 - 命令 SHDK_Source[SHDK_Index[0]] 对 SHDK_Unit[SHDK_Index[0]] 造成 (SHDK_Damage[0] - 0.02) 点伤害,攻击类型: 穿刺 伤害类型: 普通
-------------------------------------------------------------------------------------------------------------------
-------------------------------------------------------------------------------------------------------------------
Set
事件
单位 - 任意单位 发动技能效果
条件
动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(施放技能) 等于 能量防护盾
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
((触发单位) 拥有 黄铜古钟 ) 等于 TRUE
((触发单位) 拥有 金钟护罩 ) 等于 TRUE
Then - 动作
单位 - 删除 黄铜古钟 从 (触发单位)
单位 - 删除 金钟护罩 从 (触发单位)
For SHDK_Index[1] 从 0 到 (SHDK_Max[1] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(触发单位) 等于 SHDK_Unit_II[SHDK_Index[1]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(施放技能) 等于 黄铜古钟
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
((触发单位) 拥有 能量防护盾 ) 等于 TRUE
((触发单位) 拥有 金钟护罩 ) 等于 TRUE
Then - 动作
单位 - 删除 能量防护盾 从 (触发单位)
单位 - 删除 金钟护罩 从 (触发单位)
For SHDK_Index[1] 从 0 到 (SHDK_Max[1] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(触发单位) 等于 SHDK_Unit_II[SHDK_Index[1]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(施放技能) 等于 金钟护罩
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
((触发单位) 拥有 能量防护盾 ) 等于 TRUE
((触发单位) 拥有 黄铜古钟 ) 等于 TRUE
Then - 动作
单位 - 删除 能量防护盾 从 (触发单位)
单位 - 删除 黄铜古钟 从 (触发单位)
For SHDK_Index[1] 从 0 到 (SHDK_Max[1] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(触发单位) 等于 SHDK_Unit_II[SHDK_Index[1]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
Else - 动作
-------------------------------------------------------------------------------------------------------------------
FYLXT III
事件
条件
(单位所受伤害) 大于 0.00
动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
((触发单位) 拥有 能量防护盾 ) 等于 TRUE
((触发单位) 拥有 黄铜古钟 ) 等于 TRUE
((触发单位) 拥有 金钟护罩 ) 等于 TRUE
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
任一条件成立
条件
(单位所受伤害) 等于 12.01
(单位所受伤害) 等于 省略N
(单位所受伤害) 等于 200000.02
Then - 动作
无动作
Else - 动作
For SHDK_Index[1] 从 0 到 (SHDK_Max[1] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(触发单位) 等于 SHDK_Unit_II[SHDK_Index[1]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(单位所受伤害) 大于或等于 (SHDK_Unit_II[SHDK_Index[1]] 的 生命值)
Then - 动作
单位 - 为 SHDK_Unit_II[SHDK_Index[1]] 添加 伤害抵抗 生命值
Else - 动作
设置 SHDK_Damage[1] = (单位所受伤害)
设置 SHDK_S_SHU_II[SHDK_Index[1]] = (SHDK_S_SHU_II[SHDK_Index[1]] + SHDK_Damage[1])
设置 SHDK_Source_II[SHDK_Index[1]] = (伤害来源)
计时器 - 开启 SHDK_time_II[SHDK_Index[1]] ,计时方式: 一次性 时间设置: 0.00 秒
Else - 动作
-------------------------------------------------------------------------------------------------------------------
FYLXT IV
事件
条件
动作
For SHDK_Index[1] 从 0 到 (SHDK_Max[1] - 1), 做动作
Loop - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(到期的计时器) 等于 SHDK_time_II[SHDK_Index[1]]
Then - 动作
自定义代码: exitwhen true
Else - 动作
单位 - 设置 SHDK_Unit_II[SHDK_Index[1]] 的生命值为 ((SHDK_Unit_II[SHDK_Index[1]] 的 生命值) + SHDK_Damage[1])
如果所有条件成立则做动作1,否则做动作2
If - 条件
(SHDK_Unit_II[SHDK_Index[1]] 的 伤害抵抗 生命值 技能等级) 不等于 0
Then - 动作
单位 - 为 SHDK_Unit_II[SHDK_Index[1]] 删除 伤害抵抗 生命值
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(SHDK_Unit_II[SHDK_Index[1]] 拥有 能量防护盾 ) 等于 TRUE
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
SHDK_S_SHU_II[SHDK_Index[1]] 大于或等于 500.00
Then - 动作
单位 - 删除 能量防护盾 从 SHDK_Unit_II[SHDK_Index[1]]
设置 SHDK_S_SHU_II[SHDK_Index[1]] = (SHDK_S_SHU_II[SHDK_Index[1]] - 500.00)
单位 - 命令 SHDK_Source_II[SHDK_Index[1]] 对 SHDK_Unit_II[SHDK_Index[1]] 造成 SHDK_S_SHU_II[SHDK_Index[1]] 点伤害,攻击类型: 穿刺 伤害类型: 普通
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(SHDK_Unit_II[SHDK_Index[1]] 拥有 黄铜古钟 ) 等于 TRUE
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
SHDK_S_SHU_II[SHDK_Index[1]] 大于或等于 1500.00
Then - 动作
单位 - 删除 黄铜古钟 从 SHDK_Unit_II[SHDK_Index[1]]
设置 SHDK_S_SHU_II[SHDK_Index[1]] = (SHDK_S_SHU_II[SHDK_Index[1]] - 1500.00)
单位 - 命令 SHDK_Source_II[SHDK_Index[1]] 对 SHDK_Unit_II[SHDK_Index[1]] 造成 SHDK_S_SHU_II[SHDK_Index[1]] 点伤害,攻击类型: 穿刺 伤害类型: 普通
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(SHDK_Unit_II[SHDK_Index[1]] 拥有 金钟护罩 ) 等于 TRUE
Then - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
SHDK_S_SHU_II[SHDK_Index[1]] 大于或等于 1000000.00
Then - 动作
单位 - 删除 金钟护罩 从 SHDK_Unit_II[SHDK_Index[1]]
设置 SHDK_S_SHU_II[SHDK_Index[1]] = (SHDK_S_SHU_II[SHDK_Index[1]] - 1000000.00)
单位 - 命令 SHDK_Source_II[SHDK_Index[1]] 对 SHDK_Unit_II[SHDK_Index[1]] 造成 SHDK_S_SHU_II[SHDK_Index[1]] 点伤害,攻击类型: 穿刺 伤害类型: 普通
设置 SHDK_S_SHU_II[SHDK_Index[1]] = 0.00
Else - 动作
设置 SHDK_Damage[1] = (SHDK_Damage[1] x 10.00)
单位 - 命令 SHDK_Unit_II[SHDK_Index[1]] 对 SHDK_Source_II[SHDK_Index[1]] 造成 SHDK_Damage[1] 点伤害,攻击类型: 穿刺 伤害类型: 普通
特殊效果 - 创建并绑定特效到 overhead 对 SHDK_Unit_II[SHDK_Index[1]] ,使用模型: Abilities\Spells\Undead\ReplenishHealth\ReplenishHealthCasterOverhead.mdl
特殊效果 - 删除 (最后创建的特效)
Else - 动作 |