Время возвращения охраны (ренж)
Время возвращения охраны (время)
Но это только для нейтралов, а тут вообще нет того, кто юнитами управляет.
Я думаю, что можно просто занулить им расстояние аггра (триггерно или в редакторе объектов). Расстояние аггра - расстояние автоматического получения цели.
Нашёл инфу про то, что InitCustomTriggers должен вызываться через main, но тут этого нет, всё записано напрямую в main , возможно какой-либо оптимизатор.
Всё так, оптимизатор векса копирует всё из InitCustomTriggers в main, но видимо, кое-какая оптимизация была выключена, и функция InitCustomTriggers не была удалена.
зависит от патчей. в 1.26 с помощью в мем хака можно менять что угодно (есть набор функции, правда не тестил все), либо в новых патчах (там дали новые нативки, но не знаю есть ли там подобные). И если не ошибаюсь там на типы распространяются, если изменишь описание одного типа, изменишь и остальным. В мем хаке копался, но забыл уже
Зачем мемхак, когда можно просто удалять и добавлять предметы из продажи?
Единственная проблема, если ты используешь стандартный редактор карт
Если же используешь JNPG, то можно включить UMSWE. Тогда в GUI будет опция Local Player. Я бы всё же рекомендовал делать присвоение пустой строки в Иначе, потому что суть не меняется, а для локального игрока присвоений будет меньше (на 1).
В действиях выбираешь if/Then/Else (Если/То/Иначе), в условии пишешь проверку на локального игрока.
В То указываешь значение переменной на нужный путь.
В Иначе на "".
После этого блока создаёшь эффект.
Если анимация особая (как защита у пехотинцев или вихрь у мастера клинков), то можно просто добавить анимационный тег на время действия способности.
Для вихря нужно добавить тег "Spin".
А юнита, в которого делается морф, спеллбук есть?
Если есть, а такая проблема остаётся, можно попробовать каждую из способностей спеллбука делать постоянной триггерно (Действия - Боевая Единица - Make Ability Permanent).
Было бы неплохо вытащить это из чейнжлога в отдел Jass Syntax extensions.
И это никак нельзя отключить, печально. :(
Вряд ли это можно назвать хорошо. Эта та часть синтаксиса, что приводит к серьезной неразберихе. Подумать только, совершенно неявное приведение.
Хорошо, что теперь я и многие другие знают о таком сахаре.
Вообще, JassHelper любит кое-что менять не уведомляя.
Вот например, я забыл поставить равно.
globals
boolean B true
endglobals
JassHelper превратит это в
globals
boolean B
endglobals
То есть B будет без значения, и когда я буду его использовать, ожидая там изначальное значение, поток прервётся.
Хорошо, что последний pjass может такие случаи вывести на поверхность.
Ошибки нет, компилируется и работает нормально. Я даже больше скажу, совсем необязательно возвращать boolean, возвращаемый тип не имеет значения. У меня для краткости все фильтры возвращают nothing (то есть 32 нуля, что есть false).
Обёртка Filter() или Condition() нужна, если передавать функцию (code) как аргумент. LordDracula:
Потому что ему нужна не иллюзия, а клон, то есть заново созданный юнит. А героям не только ставится случайное имя из списка, но и прибавляется римская цифра после имени, если оно используется повторно. Если второй раз, то II, если третий, то III, если четвёртый, то IV, ну и так далее.
Конечно, вроде бы это решается, если сделать список имён пустым. Но такое себе решение.
Точно-точно, забыл, что имён может быть несколько.
Обычно в группу собираю всех юнитов, перебирая их вручную через цикл
Вот только фильтры куда быстрее циклов (JASS плохо справляется с циклами), а внутри фильтров можно делать абсолютно все необходимые действия.
Не могу понять как добавить в функции GroupEnumUnitsInRange фильтр, который добавлял бы в группу только врагов кастера.
Ниже пример, когда группа вообще не заполняется, а нужна только для вызова фильтра, чтобы выполнить нужные действия.
globals
player P
endglobals
function filter takes nothing returns boolean
if IsUnitEnemy(GetFilterUnit(), P) then
// твои действия
endif
return false
endfunction
function f takes integer i, real x, real, y, real range returns nothing
set P = Player(i)
call GroupEnumUnitsInRange(bj_lastCreatedGroup, x, y, range, function filter)
endfunction
» WarCraft 3 / Убрать стандартные контролы 1.29
Ред. PT153
» WarCraft 3 / Время или расстояние преследования юнитов
Я думаю, что можно просто занулить им расстояние аггра (триггерно или в редакторе объектов). Расстояние аггра - расстояние автоматического получения цели.
» WarCraft 3 / Function main
» WarCraft 3 / Убрать стандартные контролы 1.29
» WarCraft 3 / War3ME ошибка
» WarCraft 3 / Смена предметов в магазинах и конвектор текста
» WarCraft 3 / Можно ли проиграть спецэффект только для отдельного игрока?
Ред. PT153
» WarCraft 3 / Можно ли проиграть спецэффект только для отдельного игрока?
Я бы всё же рекомендовал делать присвоение пустой строки в Иначе, потому что суть не меняется, а для локального игрока присвоений будет меньше (на 1).
» WarCraft 3 / Скилы из спеллбука пропадают при морфе
» WarCraft 3 / Можно ли проиграть спецэффект только для отдельного игрока?
В То указываешь значение переменной на нужный путь.
В Иначе на "".
После этого блока создаёшь эффект.
Ред. PT153
» WarCraft 3 / Как заставить юнита играть анимацию во время движения?
Для вихря нужно добавить тег "Spin".
» WarCraft 3 / Скилы из спеллбука пропадают при морфе
Если есть, а такая проблема остаётся, можно попробовать каждую из способностей спеллбука делать постоянной триггерно (Действия - Боевая Единица - Make Ability Permanent).
Ред. PT153
» WarCraft 3 / Убрать стандартные контролы 1.29
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
И это никак нельзя отключить, печально. :(
Вот например, я забыл поставить равно.
Хорошо, что последний pjass может такие случаи вывести на поверхность.
» WarCraft 3 / Почему вы ливаете из игр в War3 или почему это делают другие?
Ливаю также, если
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
Что же, очень хорошо, теперь будут знать.
» WarCraft 3 / Какие типы карт вы предпочитаете?
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
Вот карта с примером.
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
Обёртка Filter() или Condition() нужна, если передавать функцию (code) как аргумент.
LordDracula:
Ред. PT153
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
» WarCraft 3 / Герой
» WarCraft 3 / Плохо работает способность
Ред. PT153
» WarCraft 3 / JASS GroupEnumUnitsInRange фильтр
» WarCraft 3 / Blizzcon: Анонсирован WarCraft III Reforged (remaster)
» WarCraft 3 / Герой