28

» WarCraft 3 / Как сделать след. волну после смерти всех на этой волне?

Условно, у тебя 50 волн
1 триггер - создание 1-й волны
2 триггер - проверяет, жива ли 1 волна. Если не жива, запускает вторую волну и включает первый триггер, выключает этот
3 триггер - проверяет, жива ли 2 волна. Если не жива, запускает третью волну и включает четвёртый триггер, выключает этот
...
51-й триггер - проверяет, жива ли 50-я волна. Если не жива, завершает игру
Это всё можно сделать 1-3 триггерами, опять-таки, смотрите Лазурные Башни.
28

» WarCraft 3 / Мгновенное применение заклинание Канал

Как минимизировать или убрать вообще время каста?
Поставь у юнита эти характеристики на 0.
Даже Cast Point хватит, потому что канал игнорирует Cast Backswing.
После этого все способности без поддержания будут кастоваться мгновенно.
quq_CCCP:
будет каст тайм и остановка юнита для совершения каста.
Который длится всего-то пару сотен микросекунд. Лично в моей карте всё мгновенно кастуется.

Видимо придётся написать статейку об этом.
Загруженные файлы
28

» WarCraft 3 / Как сделать след. волну после смерти всех на этой волне?

Самый простой вариант.
Событие: Количество потребляемой пищи игрока крипов становится 0.
Действие: Начать новую волну.

Посмотри карту Лазурные Башни, там так сделано.
28

» WarCraft 3 / Проверка каста на предмет

constant native GetOrderTargetItem          takes nothing returns item
constant native GetSpellTargetItem          takes nothing returns item
Если цель не предмет, то, я полагаю, будет возвращён null.

цель каста == предмет (в общем, предмет)
Любой предмет или какой-то конкретный?
28

» WarCraft 3 / Сделать юнита по настоящему летающим или придумать костыли

и ему че для всех возможных юнитов и их путей так делать? ятп тут глобально решить надо для неограниченного кол-ва вариантов
Да тут всего два триггера.
С: Отдан приказ в точку
У: Приказ такой-то, и точка приказа там-то, и приказанный юнит находится там-то
Д: Отдать приказ туда-то

С: Юнит входит в такю-то область.
Д: Отдать приказ Идти туда-то.

Несколько таких проблем - небольшое бд областей только и всего. Я всё же думаю, что это лучше дублированию юнитов для морфа.

Всё зависит от количества таких юнитов. Если их парочка, то такая система не нужна, морфом проще. Если же их много, наоборот, система будет проще.

Не совсем понятно, как юнит может пойти в жёлтую область, если она окружена непроходимой.
UPD: а-аа, то есть приказ отдаётся в жёлтую, но юнит идёт в розовую, так?
28

» WarCraft 3 / Сделать юнита по настоящему летающим или придумать костыли

Раз А и В одинаковы, то когда отдаются приказ в розовую точку, отдавай приказ в жёлтую, а по достижению жёлтой в розовую.
28

» WarCraft 3 / Модернизация триггеров из 5 урока по джазу

Локальные реальные (и целочисленные) переменные не требуют обнуления.
Требуют обнуления только те переменные, у которых тип наследуются от handle.
28

» WarCraft 3 / WE WARCRAFT3

Создаёт, потому что g не обнуляется. Автоматически обнуляются только аргументы, а g - локальная переменная.
28

» WarCraft 3 / Модернизация триггеров из 5 урока по джазу

но это тоже не работает
Это работает, но не так как ты хочешь. То что ты хочешь сделать, так работать не будет, я уже объяснил почему.
Решение Vitalik8 тебе подойдёт.
28

» WarCraft 3 / Что делать?

Либо будет новое поколение тд без сотен юнитов
Именно такую и делаю, но ограничение не из-за лагов, а из-за максимального размера массива.
28

» WarCraft 3 / Округление чисел до определённого знака после запятой

Все верно, отбрасывает.
Нет, она округляет (математический метод), проверял несколько раз.
Например, R2SW(1. / 1024., 0, 9) вернёт 0.000976563.

В R2SW второй аргумент определяет длину получаемой строки, если кол-во знаков полученном числе меньше переданного аргумента, перед числом появляются пробелы дополняющие до нужного размера. Третий можно задать в пределах от -1 до 9, числа меньше -1 дают тоже, что и -1, а числа больше 9 дают ответ как при 9. При 0 число округляется до целого. При -1 число округляется только если знаков после запятой больше 6.

Так что можно использовать следующую функцию для округления.
function RoundMath takes real r, integer point return real
    // point <= -1 -- округлит до 6-го знака после запятой
    // point == 0 -- округлит до целого, но будет 0 после запятой
    // point => 9 -- округлит до 9-го знака после запятой
    return S2R(R2SW(r, 0, point))
endfunction
28

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

она тупо не могла захватить Вар в полноэкранном режиме
На ноутах OBS нужно запускать не с интегрированным графическим чипом (если есть ещё карта), если нужно захватывать игры в полный экран.
28

» WarCraft 3 / Модернизация триггеров из 5 урока по джазу

Нельзя создать условие или действие, что требует аргументов.

call Firelocini (location poz)
local l = Location(0., 0.)
call Firelocini (l)
28

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

Фрапс овнит твой проц, юзай бандикам.
А почему бы не использовать OBS для захвата экрана?
28

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

Я вот тут подумал.
Ведь на релизе может не быть TFT (как я понял), но как тогда будут поддерживаться карты, которые используют модели и способности из TFT?
28

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

UrsaBoss:
Sergarr, если бы близзарды делали то, за что их полюбили фанаты (ещё давным давно) - то не было бы претензий
Они уже сделали то, за что их полюбили, и делать второй раз тоже самое глупо, время другое.
28

» WarCraft 3 / Оптимизация кода на создание юнитов для МОБА игры

globals
    constant integer Order_attack = 851983
endglobals

function CreateCreepByTypeIdAndSend takes p player, integer id, real x, real y, real dx, real dy returns nothing
   local unit u = CreateUnit(p, id, x, y, 0.)
   call IssuePointOrderById(u, Order_attack, dx, dy) // Можно упростить и сделать как у ScopteRectuS
   set u = null
endfunction

function Trig_CreepsCenter1_Actions takes nothing returns nothing
    call CreateCreepByTypeIdAndSend(Player(0), 'o000', 0., 5300., 0., -5300.)
    call CreateCreepByTypeIdAndSend(Player(0), 'o001', 0., 5300., 0., -5300.)

    call CreateCreepByTypeIdAndSend(Player(1), 'h000', -5300., 0., 5300., 0.)
    call CreateCreepByTypeIdAndSend(Player(1), 'h001', -5300., 0., 5300., 0.)
	
    call CreateCreepByTypeIdAndSend(Player(3), 'n000', 0., -5300., 0., 5300.)
    call CreateCreepByTypeIdAndSend(Player(3), 'n001', 0., -5300., 0., 5300.)
	
    call CreateCreepByTypeIdAndSend(Player(6), 'u000', 5300., 0., -5300., 0.)
    call CreateCreepByTypeIdAndSend(Player(6), 'u001', 5300., 0., -5300., 0.)
endfunction

function InitTrig_CreepsCenter1 takes nothing returns nothing
    set gg_trg_CreepsCenter1 = CreateTrigger(  )
    call TriggerRegisterTimerEventPeriodic( gg_trg_CreepsCenter1, 1.00 )
    call TriggerAddAction( gg_trg_CreepsCenter1, function Trig_CreepsCenter1_Actions )
endfunction

Нужно 40 одинаковых юнитов - циклы и массивы в помощь.
28

» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)

ретконить сюжет WarCraft III
Весь сюжет WC3 есть в хрониках, под их и переделают. Новых ретконов не будет.
28

» WarCraft 3 / Как поменять "комментатора"?

Я ко тому, что комментаторы заточены под определённую расу. У людей всего 14 фраз, а у наг 17. Ты можешь сделать людям озвучку наг, но не наоборот.
Если нужно всем игрокам поменять комментатора, то используй в редакторе Advanced -> Game Interface.