30

» WarCraft 3 / Официально стал доступен PTR 1.31

чтобы установить уровень способности 5, нужно писать число 4
Ну дык в этом и заключается zero indexed.
30

» WarCraft 3 / Официально стал доступен PTR 1.31

Может они заодно и сами эти нативки починят
Именно эта нативка работала, а вот SetUnit*Field досихпор не работают, но зато zero indexed))
30

» WarCraft 3 / Использования юнита как снаряд

у эффектов есть недостаток в отсутствии интерполяции для них
Как ни пытался разглядеть, так и не увидел разницы. Зато эффект можно вращать в трёх направлениях и для движка он легче.
30

» WarCraft 3 / Официально стал доступен PTR 1.31

А были нативки которы не начинали с нуля?
BlzGetUnitDiceNumber(whichUnit, weaponIndex) например.
30

» WarCraft 3 / Способности и алгоритмы на заказ

8gabriel8, там тоже через скрытый предмет реализовано. Я такой подход в этом заклинании использовал.
30

» WarCraft 3 / Использования юнита как снаряд

ну снарядов могут быть множество
Мы тут недавно плодили по 700+ снарядов без проседания fps.
а jass мне сложно дается
Так переходите на lua. На гуи вы больше утечек наплодите.
30

» WarCraft 3 / Использования юнита как снаряд

antonpoganui, что вы так к отряду по области привязались, сравнить расстояние религия не позволяет?
function DistanceBetweenWidgets takes widget widgetA, widget widgetB returns real
    local real dx = GetWidgetX(widgetB) - GetWidgetX(widgetA)
    local real dy = GetWidgetY(widgetB) - GetWidgetY(widgetA)
    return SquareRoot(dx * dx + dy * dy)
endfunction
30

» WarCraft 3 / Использования юнита как снаряд

юнит не должен иметь хп бар + некликабельный вообще и выбирался в отряд по области
Самый надёжный способ - москиты, но по области они не выбираются.
antonpoganui:
но мне кажется это сильно напрягает процессор
Чтоб не напрягался процессор, используйте оптимизации. Иного выбора нет.
8gabriel8:
Ещё можешь выбирать без области, а просто всех юнитов игрока такого-то типа, так выбираются Москиты.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) //ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
30

» WarCraft 3 / Использования юнита как снаряд

//call GroupEnumUnitsInRange(g, x, y, 400., f) //ловит всех юнитов, находящихся в радиусе от точке, но москитов не ловит
//call GroupEnumUnitsInRangeCounted(g, x, y, 400., f, 4) //аналогична GroupEnumUnitsInRange, но берет определенное кол-во юнитов. Москитов не ловит
//call GroupEnumUnitsInRangeOfLoc(g, loc,400., f) //аналогична GroupEnumUnitsInRange. Москитов не ловит.
//call GroupEnumUnitsInRangeOfLocCounted(g, loc,400., f, 4) //аналогична GroupEnumUnitsInRangeCounted. Москитов не ловит.
//call GroupEnumUnitsInRect(g,bj_mapInitialPlayableArea ,f1) //ловит всех юнитов в области. Москитов не ловит.
//call GroupEnumUnitsInRectCounted(g,bj_mapInitialPlayableArea ,f1, 4) //ловит определенное кол-во юнитов в области. Москитов не ловит. 
//call GroupEnumUnitsSelected(g,GetTriggerPlayer(),f) //ловит юнитов. выделенным игроком. Москитов. очевидно. не ловит.
call GroupEnumUnitsOfPlayer(g,GetTriggerPlayer(),f1) //ловит всех-всех юнитов игрока на карте. Москитов ловит нормально.
//call GroupEnumUnitsOfType(g,"Peasant", f) //ловит всех-всех юнитов с этим именем. Нужно писать английский аналог название (например работник = Peasant). Ловит москитов.
//call GroupEnumUnitsOfTypeCounted(g,"Peasant", f, 4) //ловит опреденное кол-во юнитов группу. Ловит Москитов.
Если вам нужно столкновение снарядов, то можете посмотреть в этом заклинании.
стоит стена (стена может двигаться, она может быть любого типа, она тоже москит) в нее ударяется снаряд
Добавляете стену в группу и при переборе сверяете расстояние.
30

» WarCraft 3 / Как переходить на lua?

Если с анонимной функцией непонятно, можно переписать так
А чем do ... end не устраивает?
do
    math = {}
    math.pi = 3.14 --паблик
    local secretvar = 42 --приват

    function math.abs(a)
        if a >= 0 then
            return a
        else
            return -a
        end
    end
end
30

» WarCraft 3 / Подскажите что не так с моим методом воскрешения героев!

По-быстрому сваял систему из 2 триггеров, но без мультиборда
Вписать в неё мультиборд очень легко)
30

» WarCraft 3 / Подскажите что не так с моим методом воскрешения героев!

Cardinal, что за поклонение копипасте?
Да ещё и с протекающими точками. Я же писал за переменную HERO_REVIVE_LOC. В начале создали по точке каждому игроку и воскрешайте по ид игрока.
Загруженные файлы
30

» WarCraft 3 / Подскажите что не так с моим методом воскрешения героев!

тоесть если Т[] = 0, 1, 2, 3, ... n, то T[] = T[] -1 (значит герой мертв еще)
T > 0 это 1,2,3, ... n, а в остальном всё верно. И до кучи избавьтесь от вэйтов.
30

» WarCraft 3 / Подскажите что не так с моим методом воскрешения героев!

Cardinal, за такое именование переменных нужно по рукам бить.
то бежит к третьему триггеру которій и воскрешает
Не плодите триггеров, все нужные действия можно и в цикле сделать.
У вас переменная T отвечает за состояние героя, зачем проверять жив юнит или нет?
T<0 Жив
T==0 Нужно воскресить прям сейчас
T>0 Ждёт воскрешения
Cardinal:
T[номер героя] болше или равна 1
больше или равна 0 => T[] = T[] -1