|
发表于 2011-6-14 04:43:16
|
显示全部楼层
变体攻击 - DOTA原版是用JASS写的,所以有些东西,比如动态的眩晕时间,在我用的UI是没法直接设置的,需要用马甲等各种东西模拟,比较累。。所以没弄。。LZ可以尝试用功能更强大的UI,说不定里面有直接设置的动作
数据计算资料来源:作者:gringoire 来源:zmr
变量:
CoefficientA & CoefficientB:就是计算伤害等系数时需要用到的 力/敏 & 敏/力 的比值,变量类型为实数
其它变量在T里面有描述或者马上能看懂~
[trigger]变体攻击
事件
单位 - 任意单位 发动技能效果
条件
(施放技能) 等于 变体攻击
动作
-------- 不想一直重复触发单位和目标单位所以用了变量 --------
设置 A = (触发单位)
设置 B = (技能施放目标)
-------- 先记录两个系数 --------
设置 CoefficientA = ((转换 (力量 对 A (包括 加成)) 为实数) / (转换 (敏捷 对 A (包括 加成)) 为实数))
设置 CoefficientB = ((转换 (敏捷 对 A (包括 加成)) 为实数) / (转换 (力量 对 A (包括 加成)) 为实数))
-------- 以下就是水人烦杂的各种计算了,为了理清条理,我将其分开了 --------
触发器 - 运行 伤害 <预设> (无视条件)
触发器 - 运行 击退 <预设> (无视条件)
触发器 - 运行 眩晕 <预设> (无视条件)
-------- 特效我就不加了,在适当的地方加上特效就行了,记得排泄 --------
[/trigger]
[trigger]伤害
事件
条件
动作
触发器 - 关闭 (当前触发)
-------- (官网数据)最小伤害系数为0.25,最大为?(因为需要计算。。) --------
-------- 还是那句话,为了理清条理不并在一起了 --------
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientB 小于 0.50
Then - 动作
单位 - 命令 A 对 B 造成 (0.25 x (转换 (敏捷 对 A (包括 加成)) 为实数)) 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 装甲类型: 无
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientB 大于 1.50
Then - 动作
单位 - 命令 A 对 B 造成 ((0.75 x (转换 (变体攻击 的等级对 A) 为实数)) x (转换 (敏捷 对 A (包括 加成)) 为实数)) 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 装甲类型: 无
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(CoefficientB 大于或等于 0.50) and (CoefficientB 小于或等于 1.50)
Then - 动作
-------- 设置伤害系数Y --------
设置 Y = (0.25 + ((CoefficientB - 0.50) x ((0.75 x (转换 (变体攻击 的等级对 A) 为实数)) - 0.25)))
单位 - 命令 A 对 B 造成 (Y x (转换 (敏捷 对 A (包括 加成)) 为实数)) 点伤害(是 攻击伤害, 不是远程攻击) 攻击类型: 英雄 伤害类型: 普通 装甲类型: 无
Else - 动作
[/trigger]
[trigger]击退
事件
条件
动作
触发器 - 关闭 (当前触发)
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientA 小于 0.50
Then - 动作
设置 Point = (从 (B 的位置) 开始,距离 100.00 ,方向为 (A 的面向角度) 度的位移处)
单位 - 立即移动 B 到 Point
点 - 清除 Point
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientA 大于 1.50
Then - 动作
设置 Point = (从 (B 的位置) 开始,距离 300.00 ,方向为 (A 的面向角度) 度的位移处)
单位 - 立即移动 B 到 Point
点 - 清除 Point
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(CoefficientA 大于或等于 0.50) and (CoefficientA 小于或等于 1.50)
Then - 动作
设置 Point = (从 (B 的位置) 开始,距离 (100.00 + ((CoefficientA - 0.50) x 200.00)) ,方向为 (A 的面向角度) 度的位移处)
单位 - 立即移动 B 到 Point
点 - 清除 Point
Else - 动作
[/trigger]
[trigger]眩晕
事件
条件
动作
触发器 - 关闭 (当前触发)
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientA 小于 0.50
Then - 动作
-------- 我不知道怎么动态改变眩晕时间,所以用暂停与恢复先代替下 --------
-------- PS:功能强大的UI可能自带这种功能 --------
单位 - 暂停 B
等待 0.25 秒游戏时间
单位 - 恢复 B
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
CoefficientA 大于 1.50
Then - 动作
单位 - 暂停 B
等待 (0.75 x (转换 (变体攻击 的等级对 A) 为实数)) 秒游戏时间
单位 - 恢复 B
Else - 动作
如果所有条件成立则做动作1,否则做动作2
If - 条件
(CoefficientA 大于或等于 0.50) and (CoefficientA 小于或等于 1.50)
Then - 动作
单位 - 暂停 B
等待 (0.25 + ((CoefficientA - 0.50) x ((0.75 x (转换 (变体攻击 的等级对 A) 为实数)) - 0.25))) 秒游戏时间
单位 - 恢复 B
Else - 动作
[/trigger] |
|