//************************************************************
//
// For more JASS scripts, visit us at http://www.wc3JASS.com
//
//============================================================
function AddTimedLightning_Fade takes nothing returns nothing
local timer t = GetExpiredTimer()
local lightning li = GetHandleLightning(t, "lightning")
local real time = GetHandleReal(t, "time")
local real d = 0.1/time
local real r = GetLightningColorR(li)
local real g = GetLightningColorG(li)
local real b = GetLightningColorB(li)
local real a = GetLightningColorA(li)-d
call SetLightningColor(li, r, g, b, a)
if a <= 0 then
call DestroyLightning(li)
call FlushHandleLocals(t)
call DestroyTimer(t)
endif
endfunction
function AddTimedLightning_StartFade takes nothing returns nothing
call TimerStart(GetExpiredTimer(), 0.1, true, function AddTimedLightning_Fade)
endfunction
function AddTimedLightning takes string Code, real x1, real y1, real x2, real y2, real duration, real fadetime returns lightning
local timer t = CreateTimer()
local lightning li = AddLightning(Code, true, x1, y1, x2, y2)
call SetHandleHandle(t, "lightning", li)
call SetHandleReal(t, "time", fadetime)
call TimerStart(t, duration, false, function AddTimedLightning_StartFade)
return li
endfunction
function AddTimedLightningEx takes string Code, real x1, real y1, real z1, real x2, real y2, real z2, real duration, real fadetime returns lightning
local timer t = CreateTimer()
local lightning li = AddLightningEx(Code, true, x1, y1, z1, x2, y2, z2)
call SetHandleHandle(t, "lightning", li)
call SetHandleReal(t, "time", fadetime)
call TimerStart(t, duration, false, function AddTimedLightning_StartFade)
return li
endfunction