0
12
15 лет назад
0

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

elseif onof == false then
Лучше поставить просто else.
0
12
16 лет назад
0

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

Не думаю, что они такие уж плохие, после создания и ремува 300 прожектилей у меня совершенно не лагало. А хендл не обнуляется почти ни в одной из функций создания юнита... а то возвращать будет нечего, разве что если в bj_lastCreatedUnit...
[size=1]GreatLosser добавил:[/size]
А вычисление фэйсинга нужно для, к примеру, способности, у которой количество призываемых повышается с уровнем.. Ведь не делать же оффсет для каждого призыва, если уровней 100...
0
12
16 лет назад
0

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

Пара функций, направленных на сокращение действий в редакторе объектов и делающие ненужным импорт дамми-модели.
function CreateDummy takes player pl, real x, real y, real time returns unit
    local unit u    = CreateUnit(pl, 'ewsp', 0, 0, 0)

    call SetUnitAnimation   (u, "death")
    call SetUnitTimeScale   (u, 100)
    call UnitAddAbility     (u, 'Aloc')
    call UnitAddAbility     (u, 'AIbm')
    call UnitAddAbility     (u, 'AImb')
    call SetUnitState       (u, UNIT_STATE_MANA, 400)
    call UnitApplyTimedLife (u, 0, time)
    call UnitRemoveType     (u, UNIT_TYPE_PEON)
    call SetUnitUseFood     (u, false)
    call SetUnitPathing     (u, false)
    call SetUnitX           (u, x)
    call SetUnitY           (u, y)
    call SetUnitVertexColor (u, 0, 0, 0, 0)

    return u
endfunction

function CreateMissile takes player pl, real x, real y, real face, real time returns unit
    local unit u    = CreateUnit(pl, 'ewsp', x, y, face)

    call SetUnitAnimation   (u, "death")
    call SetUnitTimeScale   (u, 100)
    call UnitAddAbility     (u, 'Aloc')
    call UnitRemoveType     (u, UNIT_TYPE_PEON)
    call SetUnitUseFood     (u, false)
    call SetUnitPathing     (u, false)
    call UnitApplyTimedLife (u, 0, time)
    call SetUnitX           (u, x)
    call SetUnitY           (u, y)

    return u
endfunction
Функция, для красивого призыва юнитов: перед магом, направлены в разные стороны:
function CalculateSumAng takes integer numb,integer max,real angDist returns real
    local real offset= - ( angDist * ( max - 1 ) / 2 )
    set offset = offset + angDist * ( numb - 1 )
    
    return offset
endfunction
//numb - Номер текущего призываемого, max - Количество призываемых, angDist - Разница в углах между призываемыми.
Работает как с четными числами, так и с нечетными.
[size=1][i]GreatLosser добавил:[/i][/size]
Ах да, возвращает, конечно, не целый угол, а число, которое надо прибавить (offset)
1
12
16 лет назад
1

» WarCraft 3 / Who is Next 1.7

По описанию получается очень хорошая карта. Когда представится возможность, попытаюсь скачать.