Naga'sShadow
Ultra Cool Member
- Reaction score
- 49
Could someone tell me what's wrong with this struct? It allway's fails right after the debugmsg marked 1. By fails I mean hangs and does nothing even though there are no waits in it. Even with the set's commented out and already having a value nothing happens.
Edit: Nevermind. I stopped using keywords that I only partially understand and made it work. Thanks but its fixed.
JASS:
private keyword lights
globals
private lights l
endglobals
private struct lights
unit source
unit target
real x1 = 0
real x2 = 0
real y1 = 0
real y2 = 0
timer t = CreateTimer()
lightning chain
effect add
effect drain
real ticker = .05
static method update takes nothing returns nothing
set l.ticker = l.ticker + .05
set l.x1 = GetUnitX(l.source)
set l.y1 = GetUnitY(l.source)
set l.x2 = GetUnitX(l.target)
set l.y2 = GetUnitY(l.target)
call MoveLightning(l.chain, true, l.x1, l.y1, l.x2, l.y2)
if l.ticker >= 2.0 then
call DestroyEffect(l.add)
call DestroyEffect(l.drain)
call DestroyLightning(l.chain)
set l.source = null
set l.target = null
call PauseTimer(l.t)
call DestroyTimer(l.t)
endif
endmethod
static method create takes unit a, unit aa returns lights
local integer index = 1
local real x3 = 0
local real y3 = 0
call BJDebugMsg("1")
set l.x1 = GetUnitX(a)
call BJDebugMsg("1.1")
set l.y1 = GetUnitY(a)
call BJDebugMsg("1.2")
set l.x2 = GetUnitX(aa)
call BJDebugMsg("1.3")
set l.y2 = GetUnitY(aa)
call BJDebugMsg("1.4")
set l.chain = AddLightningEx(LIGHTNING, true, l.x1, l.y1, 0, l.x2, l.y2, 0)
call BJDebugMsg("1.5")
loop
exitwhen index == 5
set x3 = l.x1 + 50 * Cos(360/index)
set y3 = l.y1 + 50 * Sin(360/index)
call DestroyEffect(AddSpecialEffect(SFX1, x3, y3))
set index = index + 1
endloop
set l.ticker = .01
set l.source = a
set l.target = aa
set l.add = AddSpecialEffectTarget(SFX2, a, "origin")
set l.drain = AddSpecialEffectTarget(SFX3, aa, "origin")
call TimerStart(l.t, .05, true, function lights.update)
return 0
endmethod
endstruct
Edit: Nevermind. I stopped using keywords that I only partially understand and made it work. Thanks but its fixed.