请选择 进入手机版 | 继续访问电脑版

GA地精研究院

 找回密码
 立即注册
查看: 170|回复: 1

[求助] 关于JASS

[复制链接]
发表于 2018-11-7 20:15:33 | 显示全部楼层 |阅读模式
function Trig____BOSS19___leiSuo1Func004002003 takes nothing returns boolean
return(((IsUnitType(GetFilterUnit(),UNIT_TYPE_STRUCTURE)==false)and((IsUnitEnemy(GetFilterUnit(),GetOwningPlayer(udg_T_Unit[126]))==true)and((IsUnitAliveBJ(GetFilterUnit())==true)and(((GetOwningPlayer(GetFilterUnit())!=Player(PLAYER_NEUTRAL_PASSIVE))and(IsUnitHiddenBJ(GetFilterUnit())==false))and(IsUnitType(GetFilterUnit(),UNIT_TYPE_SAPPER)==false))))))
endfunction
function Trig____BOSS19___leiSuo1Func005A takes nothing returns nothing
call CreateNUnitsAtLoc(1,'e030',GetOwningPlayer(udg_T_Unit[126]),udg_T_Point[126],bj_UNIT_FACING)
call IssueTargetOrder(GetLastCreatedUnit(),"thunderbolt",GetEnumUnit())
call IssueTargetOrder(GetLastCreatedUnit(),"thunderbolt",GetEnumUnit())
call SetUnitAbilityLevel(GetLastCreatedUnit(),'A0PZ',udg_Diff)
call IssueTargetOrder(GetLastCreatedUnit(),"chainlightning",GetEnumUnit())
call UnitApplyTimedLife(GetLastCreatedUnit(),'BHwe',1.00)
endfunction
function Trig____BOSS19___leiSuo1Actions takes nothing returns nothing
local group ydl_group
local unit ydl_unit
set udg_T_Unit[126]=GetTriggerUnit()
set udg_T_Point[126]=GetUnitLoc(udg_T_Unit[126])
set udg_S_Point[126]=GetSpellTargetLoc()
set udg_FinalBOSS_Group[0]=YDWEGetUnitsInRangeOfLocMatchingNull(160.00,udg_S_Point[126],Condition(function Trig____BOSS19___leiSuo1Func004002003))
call ForGroupBJ(udg_FinalBOSS_Group[0],function Trig____BOSS19___leiSuo1Func005A)
call EnableTrigger(gg_trg____BOSS19___LeiSuo2)
set ydl_group=null
set ydl_unit=null
endfunction
function InitTrig____BOSS19___leiSuo1 takes nothing returns nothing
set gg_trg____BOSS19___leiSuo1=CreateTrigger()
call TriggerRegisterAnyUnitEventBJ(gg_trg____BOSS19___leiSuo1,EVENT_PLAYER_UNIT_SPELL_EFFECT)
call TriggerAddCondition(gg_trg____BOSS19___leiSuo1,Condition(function Trig____BOSS19___leiSuo1Conditions))
call TriggerAddAction(gg_trg____BOSS19___leiSuo1,function Trig____BOSS19___leiSuo1Actions)
endfunction
function Trig____BOSS19___LeiSuo2Func001A takes nothing returns nothing
set udg_M_unit[126]=GetEnumUnit()
set udg_M_Point[126]=GetUnitLoc(udg_M_unit[126])
set udg_Angel[126]=AngleBetweenPoints(udg_M_Point[126],udg_T_Point[126])
set udg_M_Point[126]=PolarProjectionBJ(udg_M_Point[126],60.00,udg_Angel[126])
set udg_Real[126]=DistanceBetweenPoints(udg_M_Point[126],udg_T_Point[126])
call SetUnitPathing(udg_M_unit[126],false)
call SetUnitPositionLoc(udg_M_unit[126],udg_M_Point[126])
call CreateNUnitsAtLoc(1,'e007',GetOwningPlayer(udg_T_Unit[126]),udg_M_Point[126],bj_UNIT_FACING)
call KillUnit(GetLastCreatedUnit())
if(((udg_Real[126]<40.00)or(IsUnitDeadBJ(udg_T_Unit[126])==true)))then
call DisableTrigger(GetTriggeringTrigger())
call GroupClear(udg_FinalBOSS_Group[0])
call SetUnitPathing(udg_M_unit[126],true)
call RemoveLocation(udg_S_Point[126])
call RemoveLocation(udg_T_Point[126])
call RemoveLocation(udg_M_Point[126])
else
endif
endfunction
function Trig____BOSS19___LeiSuo2Actions takes nothing returns nothing
call ForGroupBJ(udg_FinalBOSS_Group[0],function Trig____BOSS19___LeiSuo2Func001A)
endfunction
function InitTrig____BOSS19___LeiSuo2 takes nothing returns nothing
set gg_trg____BOSS19___LeiSuo2=CreateTrigger()
call DisableTrigger(gg_trg____BOSS19___LeiSuo2)
call TriggerRegisterTimerEventPeriodic(gg_trg____BOSS19___LeiSuo2,0.05)
call TriggerAddAction(gg_trg____BOSS19___LeiSuo2,function Trig____BOSS19___LeiSuo2Actions)


以上是一个技能代码,效果是范围的把单位拉到施放者身边,单位多的时候还很卡,有时候单位还出现无视碰撞体积的BUG,  求大佬能不能帮我改下只拉单体目标而不是范围,而且单位一多之后单位就无视碰撞体积BUG的毛病能修复的了吗。或者有类似这种技能效果的演示图 也行

发表于 2018-12-7 12:25:31 | 显示全部楼层
直接用ydwe冲锋不就行了
回复 支持 反对

使用道具 举报

*滑动验证:
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

Archiver|移动端|小黑屋|地精研究院

GMT+8, 2019-3-23 02:34 , Processed in 0.066894 second(s), 7 queries , Gzip On, Redis On.

Powered by Discuz! X3.4

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表