找回密码
 点一下
查看: 1219|回复: 0

JASS技能问题

[复制链接]
发表于 2018-11-7 13:28:02 | 显示全部楼层 |阅读模式
本帖最后由 jia280753908 于 2018-11-7 13:29 编辑

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的毛病能修复的了吗。或者有类似这种技能效果的演示图 也行

您需要登录后才可以回帖 登录 | 点一下

本版积分规则

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

GMT+8, 2024-12-25 13:12 , Processed in 0.077960 second(s), 19 queries .

Powered by Discuz! X3.5

© 2001-2023 Discuz! Team.

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