function IsUnitEnemyEx takes unit e, player p, location l, real r returns boolean
local boolean b
if IsUnitEnemy(e,p) == true and IsUnitInRangeXY(e,GetLocationX(l),GetLocationY(l),r) == true and GetUnitAbilityLevel(e,'Aloc') != 1 then
set b = true
call RemoveLocation(l)
call DisplayTextToPlayer(p,0,0,"Work")
else
set b = false
call RemoveLocation(l)
call DisplayTextToPlayer(p,0,0,"Nay")
endif
return b
endfunction
//
if IsUnitEnemyEx(GetFilterUnit(),GetOwningPlayer(스킬쓴놈),스킬지점,200) == true then
~~~~~~
범위형스킬쓰면 저거 돌려서 데미지 주는 형식인데 중립잡몹한테써도 계속 Nay 만 출력되고 false 리턴해서요
일단 어디서 꼬이는지 알아봐야겠는뎀
b 초기값을 true로 두고
IsUnitEnemy(e,p) == true
아닐시 1 출력 후 false로 변경
IsUnitInRangeXY(e,GetLocationX(l),GetLocationY(l),r) == true
아닐시 2 출력 후 false로 변경
GetUnitAbilityLevel(e,'Aloc') != 1
아닐시 3 출력 후 false로 변경
제 뇌안에있는거면 대답해드림
근데 슬슬 뇌리셋되는거같음
function IsUnitEnemyEx takes unit e, player p, location l, real r returns boolean
local boolean b
if IsUnitEnemy(e,p) == true and IsUnitInRangeXY(e,GetLocationX(l),GetLocationY(l),r) == true and GetUnitAbilityLevel(e,'Aloc') != 1 then
set b = true
call RemoveLocation(l)
call DisplayTextToPlayer(p,0,0,"Work")
else
set b = false
call RemoveLocation(l)
call DisplayTextToPlayer(p,0,0,"Nay")
endif
return b
endfunction
//
if IsUnitEnemyEx(GetFilterUnit(),GetOwningPlayer(스킬쓴놈),스킬지점,200) == true then
~~~~~~
범위형스킬쓰면 저거 돌려서 데미지 주는 형식인데 중립잡몹한테써도 계속 Nay 만 출력되고 false 리턴해서요
GetEnumUnit써야할때랑 GetFilterUnit써야할때도 헷갈리고난리남
근데 뭔가 두번 일하는느낌인데용?
처음 함수콜에서 이미 할거 다 끝냈는데 거기서 true값이나 false값 리턴시킬 필요가 없을거같음
안정성측면에선 좋겠는데 그건 노가다로 극복하면 됩니담.
'로커스트없음=로커스트레벨이 1이 아님' 을 만족해야해서요 !=로 돼있으니 어빌리티 레벨이 1이 아니면 더더욱 조건에 일치하는놈들인뎅...
b 초기값을 true로 두고
IsUnitEnemy(e,p) == true
아닐시 1 출력 후 false로 변경
IsUnitInRangeXY(e,GetLocationX(l),GetLocationY(l),r) == true
아닐시 2 출력 후 false로 변경
GetUnitAbilityLevel(e,'Aloc') != 1
아닐시 3 출력 후 false로 변경
이거 하나하나 따로 돌려서 어디서 통과 못하는지 알아보셈
노가다는 최강의 디버깅법이죠