function SetTerrainFogSlight_Timer takes nothing returns nothing local timer t = GetExpiredTimer() local integer pid = LoadInteger(udg_H,GetHandleId(t),0) local integer s = LoadInteger(udg_FuncHash[1],pid,3) local real zs = LoadReal(udg_FuncHash[1],pid,4) local real ze = LoadReal(udg_FuncHash[1],pid,5) local real d = LoadReal(udg_FuncHash[1],pid,6) local real r = LoadReal(udg_FuncHash[1],pid,0) local real g = LoadReal(udg_FuncHash[1],pid,1) local real b = LoadReal(udg_FuncHash[1],pid,2)
local integer style = LoadInteger(udg_H,GetHandleId(t),1) local real zstart = LoadReal(udg_H,GetHandleId(t),2) local real zend = LoadReal(udg_H,GetHandleId(t),3) local real density = LoadReal(udg_H,GetHandleId(t),4) local real red = LoadReal(udg_H,GetHandleId(t),5) local real green = LoadReal(udg_H,GetHandleId(t),6) local real blue = LoadReal(udg_H,GetHandleId(t),7)
if s == style and zs == zstart and ze == zend and d == density and r == red and g == green and b == blue then call FlushChildHashtable(udg_H,GetHandleId(t)) call PauseTimer(t) call DestroyTimer(t) else if s < style then set s = s + 1 elseif s > style then set s = s - 1 endif
if zs < zstart then set zs = zs + .01 elseif zs > zstart then set zs = zs - .01 endif
if ze < zend then set ze = ze + .01 elseif ze > zend then set ze = ze - .01 endif
if d < density then set d = d + .01 elseif d > density then set d = d - .01 endif
if g < green then set g = g + .01 elseif g > green then set g = g - .01 endif
if b < blue then set b = b + .01 elseif b > blue then set b = b - .01 endif
if GetLocalPlayer() == Player(pid) then call SetTerrainFogEx(s,zs,ze,d,r,g,b) endif
set t = null endfunction
function SetTerrainFogSlight takes integer pid, integer style, real zstart, real zend, real density, real red, real green, real blue returns nothing local timer t = CreateTimer()
[DUОS], В самом начале ты загружаешь из пустых ячеек которые забиваються только в конце функции
Quote (|DUОS|)
local integer pid = LoadInteger(udg_H,GetHandleId(t),0) local integer s = LoadInteger(udg_FuncHash[1],pid,3) local real zs = LoadReal(udg_FuncHash[1],pid,4) local real ze = LoadReal(udg_FuncHash[1],pid,5) local real d = LoadReal(udg_FuncHash[1],pid,6) local real r = LoadReal(udg_FuncHash[1],pid,0) local real g = LoadReal(udg_FuncHash[1],pid,1) local real b = LoadReal(udg_FuncHash[1],pid,2)
И получается так что им не присваивается не какое значение, а если у real не будет значений, то функции где они использованы просто пропускаются.