30

» WarCraft 3 / Как с помощью фрэймов отобразить модель героя?

А как ты фреймы тогда сделал?
BlzCreateFrameByType() и дальше по накатанной. Скриншот кстати из инвентаря на DGUI, я его для наглядности прикрепил.
30

» WarCraft 3 / Как в кинематике спрятать юнитов кроме героя

Принятый ответ
Пикнуть всех юнитов и спрятать всех кроме зданий и героя.
Загруженные файлы
30

» The Witcher new Empires / The Witcher new Empires

Если установить небо, оно будет видно только через игровую камеру, которая срезает дальность видимости, без нее красивее
Как писалось выше, лучше скриншоты гэймплэя делать.
Насчет запутанного древа исследований, видел его пару раз, а так в рисках самые обычные грейды на Атаку/Защиту
В некоторых картах есть чувство, что играешь на забытом истории языке. Ибо вообще непонятно что и зачем ты делаешь.
30

» The Witcher new Empires / The Witcher new Empires

так как редко вижу реально качественные риски
я вообще видел мало рисков на вар3, но все они болеют одинаковой фигнёй
  • запутанное дерево исследований
  • отсутствие описаний механик в самой игре
  • союз через чат
  • стандартное управление отрядами

надеюсь авторы прибьют это в зародыше
30

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

А что насчёт хранения всех снарядов в группе и выбора уже из неё только тех, которые в нужной области?
Уже несколько человек несколько раз предлагали. Автор хочет использовать GroupEnumUnitsInRange() для пика юнитов по удалённости от точки.
30

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

как это ТРИ ?
  • Перебор группы снарядов и снятие Aloc
  • Пик снарядов в области и совершение над ними действий
  • Перебор группы снарядов и выдача Aloc
вместо
  • Перебор группы снарядов, сравнение расстояния и совершение действия прям в этом переборе.
30

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

Extremator, вместо одного перебора группы и сравнения расстояния, вы предлагаете три. Экономично)
30

» Love2D / Lua за 15 минут

prog, это же уровень памяти, а написано так, что можно подумать
s = 'one'
s = 'two'
print(s) --> one
30

» Love2D / Lua за 15 минут

Кто хочет конкретики, пусть читает документацию.
Тогда получается, что статьи не нужны)

Я кстати не понял вот этого
s = 'walternate'  --строки неизменны (нельзя переназначать) как в Рython'e
Хотя код ниже прекрасно исполняется
s = 'one'
s = function()
	return 'work'
end
print(s()) --> work
30

» Love2D / Lua за 15 минут

-- Следующее выражение подобно конструкции a?b:c в C/js:
С тернарным оператором в луа проблема

И не сказано про замыкания и области видимости.
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