Прога очень поможет моему проэкту. А есть ещё прога которая код делает более читаемым в плане замены на ассоциативные имена что бы было например local player p а не local player XVI
function SetUnitMaxLife takes unit u, real life returns nothing
local real r = life - GetUnitState(u, UNIT_STATE_MAX_LIFE)
if r > 0. then
if r > 1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x05)
call UnitRemoveAbility(u, 'A005')
set r = r - 1000.
exitwhen r < 1000.
endloop
endif
if r > 100. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x04)
call UnitRemoveAbility(u, 'A005')
set r = r - 100.
exitwhen r < 100.
endloop
endif
if r > 10. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x03)
call UnitRemoveAbility(u, 'A005')
set r = r - 10.
exitwhen r < 10.
endloop
endif
if r > 1. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x02)
call UnitRemoveAbility(u, 'A005')
set r = r - 1.
exitwhen r < 1.
endloop
endif
else
if r < -1000. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x09)
call UnitRemoveAbility(u, 'A005')
set r = r + 1000.
exitwhen r > -1000.
endloop
endif
if r < -100. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x08)
call UnitRemoveAbility(u, 'A005')
set r = r + 100.
exitwhen r > -100.
endloop
endif
if r < -10. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x07)
call UnitRemoveAbility(u, 'A005')
set r = r + 10.
exitwhen r > -10.
endloop
endif
if r < -1. then
loop
call UnitAddAbility(u, 'A005')
call SetUnitAbilityLevel(u, 'A005', 0x06)
call UnitRemoveAbility(u, 'A005')
set r = r + 1.
exitwhen r > -1.
endloop
endif
endif
endfunction
Где 'A005' ид спела на основе "Предмет: увеличение запаса здоровья" с уровнями:
1: +0 здоровья
2: -1
3: -10
4: -100
5: -1000
6: +1
7: +10
8: +100
9: +1000
Функция из какой то наработки, функцию выделил : NoSilence
function str_match takes string s_s1, string s_s2 returns boolean
local integer i_sl_1 = StringLength(s_s1)
local integer i_sl_2 = StringLength(s_s2)
local string array s_a_s1
local string array s_a_s2
local integer i_sum_words_s1=0
local integer i_sum_words_s2=0
local integer i_new_word=0
local integer i=0
local integer d=0
loop
if SubString(s_s1, i, i+1) == "," then
set i_sum_words_s1=i_sum_words_s1+1
set s_a_s1[i_sum_words_s1]=SubString(s_s1, i_new_word, i)
set i_new_word=i+2
endif
if i+1>=i_sl_1 then
set i_sum_words_s1=i_sum_words_s1+1
set s_a_s1[i_sum_words_s1]=SubString(s_s1, i_new_word, i+1)
endif
set i=i+1
exitwhen i>=i_sl_1
endloop
set i=0
set i_new_word=0
loop
if SubString(s_s2, i, i+1) == "," then
set i_sum_words_s2=i_sum_words_s2+1
set s_a_s2[i_sum_words_s2]=SubString(s_s2, i_new_word, i)
set i_new_word=i+2
endif
if i+1>=i_sl_2 then
set i_sum_words_s2=i_sum_words_s2+1
set s_a_s2[i_sum_words_s2]=SubString(s_s2, i_new_word, i+1)
endif
set i=i+1
exitwhen i>=i_sl_2
endloop
set d=i_sum_words_s2
loop
loop
if s_a_s1[i_sum_words_s1] == s_a_s2[i_sum_words_s2] then
return true
endif
set i_sum_words_s2=i_sum_words_s2-1
exitwhen i_sum_words_s2<=0
endloop
set i_sum_words_s2=d
set i_sum_words_s1=i_sum_words_s1-1
exitwhen i_sum_words_s1<=0
endloop
return false
endfunction
пример :
if str_match("magic, range", "magic, melee") then
...
endif
Если хотябы 1 элемент совпадает то функция вернет true.
Элементы должны быть расположены строго по правилам пунктуации(как показано в примере)
» WarCraft 3 / UFS Arena build 1864
» WarCraft 3 / Campaign Processing Helper v1.1
» WarCraft 3 / Script Language Aligner
» WarCraft 3 / Campaign Processing Helper v1.1
» WarCraft 3 / BX-TRS II Demo 1.24+
» WarCraft 3 / Tc's XColl engine
» The Elder Scrolls / SkyBoost
» WarCraft 3 / Итоги XGM Modelling Mini-Contest 1
» WarCraft 3 / Ladik's MPQ Editor v 3.6.0.844
Ошибка - Failed to compact the arhive.
» WarCraft 3 / Jet Pack 1.00b
» WarCraft 3 / Diablo: Кровавое Наследие v2.5
» WarCraft 3 / Script Language Aligner
» WarCraft 3 / Modern Warfare Beta 1.11
» Wizards World / Общее обсуждение
» WarCraft 3 / Библиотека функций
1: +0 здоровья
2: -1
3: -10
4: -100
5: -1000
6: +1
7: +10
8: +100
9: +1000
» WarCraft 3 / Bephelgor
» WarCraft 3 / Weapons & Upgrades Pack
» WarCraft 3 / Библиотека функций
Элементы должны быть расположены строго по правилам пунктуации(как показано в примере)
» WarCraft 3 / Diablo 3: Альтернативная история v1.2
КАРТА ЛАГАЕТ ЖЕСТЬ!!!!
» WarCraft 3 / DotA OMG v6.68c v2b
» Half-Life / Дата выхода мода Source Media Arcade
» WarCraft 3 / DotA OMG v6.68c v2b
» WarCraft 3 / Внедрение собственных юнитов в игру