为何技能释放后无法进入CD?
本帖最后由 RoyalFlare 于 2014-11-27 13:11 编辑技能1号:
function Trig_HYZ_Func001002003 takes nothing returns boolean
return(((IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(GetTriggerUnit()))==true)and(IsUnitAliveBJ(GetFilterUnit())==true)))
endfunction
function Trig_HYZ_Func005Func003A takes nothing returns nothing
call DestroyEffect(AddSpecialEffectTarget("explosion.mdx",GetEnumUnit(),"origin"))
call UnitDamageTargetBJ(udg_SlashUnit,GetEnumUnit(),((I2R(GetHeroStr(udg_SlashUnit,true))*30.00)*I2R(GetUnitAbilityLevel(udg_SlashUnit,'A04O'))),ATTACK_TYPE_CHAOS,DAMAGE_TYPE_UNIVERSAL)
endfunction
function Trig_HYZ_Conditions takes nothing returns boolean
return ((GetSpellAbilityId() == 'A04O'))
endfunction
function Trig_HYZ_Actions takes nothing returns nothing
local location Dian
set udg_SlashUnit=GetTriggerUnit()
set Dian=GetUnitLoc(GetTriggerUnit())
call DestroyEffect(AddSpecialEffectTarget("FireStomp.mdx",GetSpellTargetUnit(),"origin"))
call SetUnitPositionLoc(GetTriggerUnit(),GetUnitLoc(GetSpellTargetUnit()))
call ForGroupBJ(GetUnitsInRangeOfLocMatching(600.00,GetUnitLoc(udg_SlashUnit),Condition(function Trig_HYZ_Func001002003)),function Trig_HYZ_Func005Func003A)
call DestroyGroup( GetLastCreatedGroup() )
call RemoveLocation(Dian)
set udg_SlashUnit=null
endfunction
//===========================================================================
function InitTrig_HYZ takes nothing returns nothing
set gg_trg_HYZ = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( gg_trg_HYZ, EVENT_PLAYER_UNIT_SPELL_EFFECT )
call TriggerAddCondition(gg_trg_HYZ, Condition(function Trig_HYZ_Conditions))
call TriggerAddAction(gg_trg_HYZ, function Trig_HYZ_Actions)
endfunction
——寂寞的分割线——
技能2号:
Whirlwind
事件
单位 - 任意单位 发动技能效果
条件
(施放技能) 等于 死亡旋风
动作
设置 DashUnit = (触发单位)
单位 - 添加 死亡旋风 (单位技能) 给 (触发单位)
单位 - 设置 (触发单位) 的 死亡旋风 (单位技能) 等级为 ((触发单位) 的 死亡旋风技能等级)
单位 - 对 (触发单位) 发布 兽族剑圣 - 剑刃风暴 命令
等待 0.02 秒
单位 - 暂停 (触发单位)
单位 - 设置 (触发单位) 关闭 碰撞
动画 - 改变 (触发单位) 的动画播放速度为正常速度的 400.00%
触发器 - 开启 Whirlwind2 <预设>
等待 3.00 秒
触发器 - 关闭 Whirlwind2 <预设>
单位 - 设置 (触发单位) 打开 碰撞
单位 - 恢复 (触发单位)
单位组 - 清空 Group4 内所有单位
单位 - 删除 死亡旋风 (单位技能) 从 (触发单位)
动画 - 改变 (触发单位) 的动画播放速度为正常速度的 100.00%
动画 - 播放 (触发单位) 的 Stand 动作
自定义代码: call DestroyGroup( udg_DwzPx )
自定义代码: call DestroyGroup( udg_Group4 )
自定义代码: set udg_DashUnit = null
Whirlwind2
事件
时间 - 每当游戏逝去 0.02 秒
条件
动作
设置 Apx = (DashUnit 的位置)
设置 Dash_Point = (从 Apx 开始,距离 20.00 ,方向为 (DashUnit 的面向角度) 度的位移处)
自定义代码: call RemoveLocation( udg_Apx )
如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
If - 条件
(Dash_Point 处的 可通行地面 通行状态为关闭) 等于 TRUE
Then - 动作
不做任何动作
Else - 动作
单位 - 立即移动 DashUnit 到 Dash_Point
特殊效果 - 在 Dash_Point 创建特效: Abilities\Weapons\AncientProtectorMissile\AncientProtectorMissile.mdl
特殊效果 - 删除 (最后创建的特效)
设置 DwzPx = (半径为 360.00 圆心为 Dash_Point 且满足 ((((匹配单位) 是 建筑) 等于 FALSE) 且 (((匹配单位) 是 (DashUnit 的所有者) 的敌对单位) 等于 TRUE)) 的所有单位)
单位组 - 选取 DwzPx 内所有单位做动作
Loop - 动作
设置 Apx = ((选取单位) 的位置)
设置 Apx = (DashUnit 的位置)
单位 - 对 (选取单位) 发布 攻击 命令到目标: (选取单位)
设置 Dash_Point = (从 Apx 开始,距离 20.00 ,方向为 (Apx 到 (从 Apx 开始,距离 200.00 ,方向为 (DashUnit 的面向角度) 度的位移处) 的角度) 度的位移处)
单位 - 设置 (选取单位) 的X坐标为 (Dash_Point 的X轴坐标)
单位 - 设置 (选取单位) 的Y坐标为 (Dash_Point 的Y轴坐标)
特殊效果 - 在 Dash_Point 创建特效: Abilities\Spells\Other\Stampede\StampedeMissileDeath.mdl
特殊效果 - 删除 (最后创建的特效)
自定义代码: call RemoveLocation( udg_Dash_Point )
自定义代码: call RemoveLocation( udg_Apx )
自定义代码: call RemoveLocation( udg_Apx )
如果(所有的条件成立) 则运行 (Then - 动作) 否则运行 (Else - 动作)
If - 条件
((选取单位) 在 Group4 中) 等于 FALSE
Then - 动作
不做任何动作
Else - 动作
单位组 - 添加 (选取单位) 到 Group4
单位组 - 选取 DwzPx 内所有单位做动作
Loop - 动作
单位 - 命令 DashUnit 对 (选取单位) 造成 (((转换 (DashUnit 的力量值(包括 加成)) 为实数) x 60.00) x (转换 (DashUnit 的 死亡旋风技能等级) 为实数)) 点伤害,攻击类型: 混乱 伤害类型: 通用
自定义代码: call DestroyGroup( udg_DwzPx )
自定义代码: call RemoveLocation( udg_Dash_Point )
Whirlwind3
事件
单位 - 任意单位 施放技能结束
条件
(施放技能) 等于 死亡旋风
动作
玩家 - 设置 ((触发单位) 的所有者) 的 死亡旋风为 禁用
等待 60.00 秒
玩家 - 设置 ((触发单位) 的所有者) 的 死亡旋风为 允许
@chyj4747 @ckpig @希瓦
RT 技能释放完毕后可以继续使用技能 无法进入CD状态 求解原因 是我哪里做错了麽?
单位 - 对 (触发单位) 发布 兽族剑圣 - 剑刃风暴 命令
这句打断了单位当前释放的技能,所以没cd只耗蓝
解决方法:等0.01秒再放…… 用吃书放马甲技能 @zhuzeitou @希瓦
话说技能1号不能进入CD状态的原因究竟是什麽? 虽然不懂Jass,不过单从触发就能看出lz基础很差。
看技能似乎是一个类似冲锋(有地形判断),能击退敌人的技能。其实可以去找冲锋的模板。剑刃风暴没必要释放,可以直接播放剑刃风暴的动画。 本帖最后由 RoyalFlare 于 2014-12-6 21:14 编辑
@lo 我把幻想之战里的初音技能Jass转T 然后修改了伤害范围和伤害数值 其他都保持原样
我做技能的基础确实差 这我承认 这只是练习作品 YDWE自带的冲锋系统不能经常使用 养成习惯以后就糟糕了
本帖最后由 lo 于 2014-12-7 14:24 编辑
Whirlwind
1.剑刃风暴会像通魔一样禁用其他技能,也就是说,原技能被强制打断了。
建议直接播放剑刃风暴的动画,反正你这剑刃风暴也是无伤害只作为动画的(如果有伤害就更糟糕了,可能还会有其他bug)。
2.触发器里的等待命令最多可能有0.15秒的误差(我大概记得是这样的),所以建议在超过8秒的时候再用这个不精确的动作(这样误差小于2%)。
Whirlwind2
1.“单位 - 对 (选取单位) 发布 攻击 命令到目标: (选取单位)”这一句仍谁都会吐槽的吧……我们A自己,从来都没成功过……
2.
If - 条件
((选取单位) 在 Group4 中) 等于 FALSE
Then - 动作
不做任何动作
Else - 动作
单位组 - 添加 (选取单位) 到 Group4
这里也是,“如果单位不在单位组Group4中,不做任何动作;单位在单位组Group4中,向单位组Group4添加单位”这是闹哪样啊……
3.“设置 Dash_Point = (从 Apx 开始,距离 20.00 ,方向为 (Apx 到 (从 Apx 开始,距离 200.00 ,方向为 (DashUnit 的面向角度) 度的位移处) 的角度) 度的位移处)”这里有点泄漏。
4.如果你是点目标技能,冲锋的时候不建议用单位面向角度,因为向后方施放的时候,单位没有转到指定角度,技能就已经发动了,这样角度上会有偏差。
如果是影魔那种不需要指定点的,倒是无所谓了。
Whirlwind3
没有办法CD,所以手动模拟了么……
这段触发也没有处理多人化,如果只有一个英雄会死亡旋风,那我也不说什么了。
其他小问题多半是习惯问题,不做吐槽了……
稍微修改了下,也加了伤害什么的,不过可能和你要的效果不一样……
本帖最后由 RoyalFlare 于 2014-12-7 19:39 编辑
lo 发表于 2014-12-7 14:25
稍微修改了下,也加了伤害什么的,不过可能和你要的效果不一样……
多人使用技能的话我就用上全局变量数组AND绑定玩家索引号了
只有1个人在同1时间使用这个技能 所以就不考虑多人化了 RoyalFlare 发表于 2014-12-7 19:35
多人使用技能的话我就用上全局变量数组AND绑定玩家索引号了
只有1个人在同1时间使用这个技能 所以就 ...
没有好评差评。 如果模型没有剑刃风暴的动作,那就算找人套动作,不然就算施放剑刃风暴也转不起来……话说那个圣骑士模拟的剑刃风暴你应该见过了吧…… 本帖最后由 RoyalFlare 于 2014-12-7 21:00 编辑
If - 条件
((选取单位) 在 Group4 中) 等于 FALSE
Then - 动作
不做任何动作
Else - 动作
单位组 - 添加 (选取单位) 到 Group4
这里也是,“如果单位不在单位组Group4中,不做任何动作;单位在单位组Group4中,向单位组Group4添加单位”这是闹哪样啊……
这句话的意思是如果单位不在单位组Group4里 则把单位添加到单位组Group4中 否则不做任何动作(当返回值为False时) RoyalFlare 发表于 2014-12-7 20:59
这句话的意思是如果单位不在单位组Group4里 则把单位添加到单位组Group4中 否则不做任何动作(当返 ...
但是你明显写反了哦……我猜你是指做一次伤害和击退效果的,所以我的技能也就那么做了。
http://bbs.islga.org/forum.php?mod=viewthread&tid=747106
这个是圣骑士模拟的剑刃风暴,有点难找,因为整个帖子里没有人提到“剑刃风暴”,所以完全搜不到……
页:
[1]