12

» WarCraft 3 / UFS Arena build 1864

Кстати, как сделать что бы как на видосе - хп было разделено делениями.
12

» WarCraft 3 / Campaign Processing Helper v1.1

ShadoW DaemoN, Двойную буферизацию пробовал юзать? А то что ни прога - то мигает.
12

» WarCraft 3 / Tc's XColl engine

Наработка как я понял 2008 года. Не лагает вообще. Спасибо тод.
12

» WarCraft 3 / Ladik's MPQ Editor v 3.6.0.844

Перепаковка архива неработает, вылетает какая-то ошибка.
Ошибка - Failed to compact the arhive.
12

» WarCraft 3 / Script Language Aligner

Прога очень поможет моему проэкту. А есть ещё прога которая код делает более читаемым в плане замены на ассоциативные имена что бы было например local player p а не local player XVI
12

» WarCraft 3 / Библиотека функций

Меняет максимальные хп юниту:

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
12

» WarCraft 3 / Библиотека функций

Функция на совпадение элементов строки.

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.
Элементы должны быть расположены строго по правилам пунктуации(как показано в примере)
12

» WarCraft 3 / Diablo 3: Альтернативная история v1.2

Скрины ваще манащие, пока не играл но обязательно потом поганяю
КАРТА ЛАГАЕТ ЖЕСТЬ!!!!