Добавлен Darknessay,
не публикуется
Короче, вот она:
??(Мне её писал знакомый по просьбе, так что я не понимаю многих вычислений в ней, но думаю ваш жассопытный глаз сам оценит по коду, насколько он шарит или не шарит. Суть не в этом, а в том что всё работало нормально, но в какой то момент это просто перестало работать. Совсем. Все способности и действия, что должны были выполнять это, перестали это делать.
Это "отбрасывание"(кого, на сколько, время, направление, летит ли(0/1), высота полета(парабола)), но я часто использовал его и как просто движение для плавности)??
??(Мне её писал знакомый по просьбе, так что я не понимаю многих вычислений в ней, но думаю ваш жассопытный глаз сам оценит по коду, насколько он шарит или не шарит. Суть не в этом, а в том что всё работало нормально, но в какой то момент это просто перестало работать. Совсем. Все способности и действия, что должны были выполнять это, перестали это делать.
Это "отбрасывание"(кого, на сколько, время, направление, летит ли(0/1), высота полета(парабола)), но я часто использовал его и как просто движение для плавности)??
Помогите, пожалуйста!
`
ОЖИДАНИЕ РЕКЛАМЫ...
Чтобы оставить комментарий, пожалуйста, войдите на сайт.
пропиши в самом верху
set m[j].destroy() должно помоч
Я попробую, но т.к. я не знаю как повторить это замыкание, я и не могу проверить помогло ли, так что подожду еще ответов...
ledoed:
private function MoveUnit takes unit u, real spd, real dir returns nothing
if IsTerrainPathable(GetUnitX(u),GetUnitY(u)+spd*Sin(dir),PATHING_TYPE_FLYABILITY)==false
SetUnitY(u,GetUnitY(u)+spd*Sin(dir))
endif
if IsTerrainPathable(GetUnitX(u)+spd*Cos(dir),GetUnitY(u),PATHING_TYPE_FLYABILITY)==false
SetUnitX(u,GetUnitX(u)+spd*Cos(dir))
endif
set u = null
endfunction
return (4 * h / d) * (d - x) * (x / d)
endfunction
private struct MUE_Struct
private static timer t = CreateTimer()
private static integer m[]
private static integer MUI = -1
unit c
real dist
integer check
real r
real r2 = 0
real fly
real rmax
real sr
real a
private method StopAction takes integer j returns nothing
set m[j] = m[MUI]
set MUI = MUI - 1
if MUI <= -1 then
call PauseTimer(t)
set MUI = -1
endif
endmethod
local thistype this
local integer i = 0
loop
exitwhen i > MUI
set this = m[i]
if r<rmax then
set r = r + 0.01
MoveUnit(c,dist,a)
if check == 1 then
SetUnitFlyHeight(c,Parabola(fly,sr,r2),0)
set r2 = r2+dist
endif
else
if check == 1 then
SetUnitFlyHeight(c,GetUnitDefaultFlyHeight(c),0)
endif
set c = null
call StopAction(i)
call destroy()
endif
set i = i + 1
endloop
endmethod
local thistype this = thistype.create()
set MUI = MUI + 1
set m[MUI] = this
set c = NewC
set r = 0
set rmax = NewRmax
set dist = NewDist
set sr = NewDist
set dist = (dist/(rmax*100))
set check = NewCheck
set fly = NewFly
set r2= 0
if check == 1 then
endif
set a = NewA
if MUI == 0 then
call TimerStart(t, 0.01, true, function thistype.Loop)
endif
set NewC = null
endmethod
endstruct
call MUE_Struct.MUE_Start(c,distance,timeformoving,angle*bj_DEGTORAD,checkingfly,flyheight)
c = null
endfunction
endlibrary