Мой пример динамического массива без циклов. Если грамотно все построить, то можно добится неплохой замены кэша...
globals
integer array udg_int // Массив
integer udg_int_ua // Количество используемых ячеек
integer array udg_int_ui // Индексы неиспользуемых ячеек
endglobals
// Примечание: В udg_int[0] хранится значение максимального индекса!
// Изменяет значение ячейки массива
function ChangeInt takes integer i, integer val returns nothing
if udg_int[i] != 0 then
set udg_int[i] = val
endif
endfunction
// Возвращает значение ячейки массива
function GetInt takes integer i returns integer
return udg_int[i]
endfunction
// Устанавливает значение в свободную ячейку массива(И возвращает индекс)
function SetInt takes integer val returns integer
local integer i = 1
if udg_int_ua == 0 then
set udg_int[0] = udg_int[0] + 1
set i = udg_int[0]
else
set i = udg_int_ui[udg_int_ua]
set udg_int_ua = udg_int_ua - 1
endif
set udg_int[i] = val
return i
endfunction
// Освобождает ячейку массива
function FlushInt takes integer i returns nothing
set udg_int_ua = udg_int_ua + 1
set udg_int_ui[udg_int_ua] = i
endfunction
Буря снежная XD
А кампания ничетак, в начале видно, что автар старался, а потом чушь какаето( - посмотреть советую - там есть переходы между уровнями, достачно неплохие и понятные...
Че они там тестили столько времени, почти никаких изменений нету( Хоть чтонибдуь бы в ворлдедит дабавили гады... А эти новые карты у меня уже давно есть... кстати интересно почему в патч не вошла карта Justice и Новые Конфетные войны O.o
Полезные формулы, которыми пользуюся я при создании спеллов.(Я не создаю для них функций)
Полярные координаты:
** x+r*Cos(a*0.017453277)
y+r*Sin(a*0.017453277)**
Угол между точками по координатам Atan2((y2-y1),(x2-x1))*57.295827
Расстояние между точками по координатам SquareRoot((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
"Формула прыжка": power*dist*(len/2)*(1-dist/len)/len __ power - сила прыжка(Рекомендую ставить 4-5)
dist - расстояние до конечной точки
len - длина прыжка__//
Функция для вывода плавающего текста(Основная функция этой системы) принимает два типа значений:
Конвертированные(flag=false) и не конвертированные - используемые в GUI(flag=true)
function fts_CreateFadingText takes string s, widget o, integer r, integer g, integer b, real size, real fade, real life, real speed, real angle, boolean flag returns nothing
local texttag tt=CreateTextTag()
if flag then
call SetTextTagText(tt,s,size*0.023/10)
else
call SetTextTagText(tt,s,size)
endif
call SetTextTagPos(tt,GetWidgetX(o),GetWidgetY(o),0.)
call SetTextTagVisibility(tt,true)
call SetTextTagPermanent(tt,false)
call SetTextTagColor(tt,r,g,b,255)
if flag then
call SetTextTagVelocity(tt,speed*0.071/128.*Cos(angle*(3.14159/180.)),speed*0.071/128.*Sin(angle*(3.14159/180.)))
else
call SetTextTagVelocity(tt,speed,angle)
endif
call SetTextTagFadepoint(tt,fade)
call SetTextTagLifespan(tt,life)
set s=null
set o=null
set tt=null
endfunction
» WarCraft 3 / Sacred AoS
Всем качать, она того стоит!
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Cтранники, акт II
» WarCraft 3 / Extreme Candy War v2005
» WarCraft 3 / Justice
» WarCraft 3 / Maelstrom
А кампания ничетак, в начале видно, что автар старался, а потом чушь какаето( - посмотреть советую - там есть переходы между уровнями, достачно неплохие и понятные...
» WarCraft 3 / TcX DM 1.0
» WarCraft 3 / Spider Queen
» WarCraft 3 / Blizzard вспомнили о WarCraft III
» WarCraft 3 / Silent Hill Hardcore v1.5
» ТТМФ / Проект "Огни большого города"
» WarCraft 3 / Библиотека функций
** x+r*Cos(a*0.017453277)
y+r*Sin(a*0.017453277)**
Угол между точками по координатам
Atan2((y2-y1),(x2-x1))*57.295827
Расстояние между точками по координатам
SquareRoot((x1-x2)*(x1-x2)+(y1-y2)*(y1-y2))
"Формула прыжка":
power*dist*(len/2)*(1-dist/len)/len
__ power - сила прыжка(Рекомендую ставить 4-5)
dist - расстояние до конечной точки
len - длина прыжка__//
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
Конвертированные(flag=false) и не конвертированные - используемые в GUI(flag=true)
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
» WarCraft 3 / Библиотека функций
endfunction
return c
endfunction
return s
endfunction
Наверное они нужны чтобы посмешить людей(Меня улыбнуло)