Как закончишь с локациями, сделай убивание тупых BJ
Обязательно, одну уже переписал и заинлайнил функции, чтоб лишний раз не вызывать)
function CreateNUnitsAtLocFacingLocBJ(count, unitId, whichPlayer, loc, lookAt)
GroupClear(lastCreatedGroup)
local face = math.deg(math.atan(lookAt[2] - loc[2], lookAt[1] - loc[1]))
for i = 1, count do
lastCreatedUnit = CreateUnit(whichPlayer, unitId, loc[1], loc[2], face)
GroupAddUnit(lastCreatedGroup, lastCreatedUnit)
end
return lastCreatedGroup
end
предыдущий способ это был яркий пример овероптимизации а на событии происходящем достаточно редко
Можно и по старинке без оптимизаций))
TriggerAddAction(levelTrigger, function()
local hero = GetTriggerUnit()
local heroId = GetUnitTypeId(hero)
local level = GetUnitLevel(hero)
if heroId == FourCC('Her0') and level >= 3 then
MorphUnitTo(hero, FourCC('Her1'))
elseif heroId == FourCC('Her1') and level >= 5 then
MorphUnitTo(hero, FourCC('Her2'))
elseif heroId == FourCC('Her2') and level >= 7 then
MorphUnitTo(hero, FourCC('Her3'))
end
end)
TriggerAddAction(levelTrigger, function()
local hero = GetTriggerUnit()
local newHero = GetUnitTypeId(hero) + GetUnitLevel(hero)
local temp = CreateUnit(newHero, Player(PLAYER_NEUTRAL_PASSIVE), 0, 0, 0);
if temp ~= nil then
RemoveUnit(temp)
MorphUnitTo(hero, newHero)
end
end)
Можно вообще не заморачиваться с бафом, а дать крестьянке способность завести ребетёнка и при касте на крестьянина таймером отсчитать кд и заспавнить ребёнка.
нас просто в детстве (в 2007 или когда там хештаблицы появились) , запугали, что больше 1 нельзя и так пошло, но уже никто и не вспомнит почему
Насколько я помню из-за того что таблица тяжёлая и с её огромным диапазоном значений делать несколько просто нет смысла. Есть даже наработка которая позволяет иметь одну таблицу на все случаи жизни.
Ну если ты скажешь как перевести полторы сотни тысяч строк кода cJass на луа с сохранением комментариев, имен переменных и отступов, то буду рад перейти на луа
Достать war3map.j, сконвертировать в lua, ужаснуться кривости кода и переписать начисто.
Вообще, странно, что за 17 лет игры об этом мало информации.
Так потому-что никто статьи не пишет, последняя статья от 26.06.2017JASS: Курс молодого бойца и новичёк при прочтении сломает себе мозг ещё в предисловии. Единственная информация о событиях была найдена здесь:
раскрыть
Unit - A unit Begins casting an ability – Это событие запускает триггер сразу же после каста спелла (Прим. перев. Мана еще не проплачена, кулдаун еще не начался). Это значит, что такое событие может и должно применяться только для запуска триггеров проверки дополнительных условий (проверка возможен ли каст в данный момент, например, расстояние между кастером и целью слишком мало и так далее). Если вы используете это событие как основное событие каста спелла, ловкие игроки получают возможность сжульничать и запустить триггер спелла, без начала кулдауна и проплаты маны.
Unit - A unit Starts the effect of an ability – Это событие запускает триггер в тот момент, когда спелл уже скастован, кулдаун уже начался и мана проплачена. Это событие идеально подходит для запуска триггера спелла.
Unit - A unit Finishes casting an ability – Это событие запускает триггер в момент, когда юнит завершил кастовать спелл. Это полезно в случаях когда, например, вам нужно удалить юнита, который скастовал определенный спелл, и вы хотите быть уверены, что эффект спелла появится. Например, вам нужно удалить юнита, кастующего спелл Heal, вы должны использовать именно это событие, иначе цель не будет вылечена.
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Ред. nazarpunk
» WarCraft 3 / Нестандартные Модели.
Ред. nazarpunk
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
Ред. nazarpunk
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
» WarCraft 3 / [lua] Предотвращаем создание утечек GUI
» WarCraft 3 / ZinC: Кровавый взрыв
» WarCraft 3 / Периодически пропадает плавающий текст
» WarCraft 3 / Перенос всех нестандартных объектов из карты
» Мир безумного / Проект: Гнев (ZM Project) - Test gamplay 1 (demo)
» WarCraft 3 / Размножение
» WarCraft 3 / Набор предметов для проэкта "Последняя Надежда"
Ред. nazarpunk
» WarCraft 3 / Набор предметов для проэкта "Последняя Надежда"
» WarCraft 3 / Триггерный спелл с действием только на определённый тип юнитов
Ред. nazarpunk
» WarCraft 3 / Эволюция юнита через проверку уровня
Ред. nazarpunk
» WarCraft 3 / Эволюция юнита через проверку уровня
» WarCraft 3 / Эволюция юнита через проверку уровня
» WarCraft 3 / Размножение
» WarCraft 3 / Эволюция юнита через проверку уровня
Действие:
если уровень = 3 морфим в это
если уровень = 5 морфим в то
если уровень = 7 морфим в сё
» WarCraft 3 / Размножение
Ред. nazarpunk
» WarCraft 3 / Можно ли уничтожить hashtable?
Ред. nazarpunk
» WarCraft 3 / Можно ли уничтожить hashtable?
» WarCraft 3 / Размножение
Ред. nazarpunk
» WarCraft 3 / Перезарядка пассивных предметов
Ред. nazarpunk
» WarCraft 3 / [lua] Двигаем снаряды
Unit - A unit Starts the effect of an ability – Это событие запускает триггер в тот момент, когда спелл уже скастован, кулдаун уже начался и мана проплачена. Это событие идеально подходит для запуска триггера спелла.
Unit - A unit Finishes casting an ability – Это событие запускает триггер в момент, когда юнит завершил кастовать спелл. Это полезно в случаях когда, например, вам нужно удалить юнита, который скастовал определенный спелл, и вы хотите быть уверены, что эффект спелла появится. Например, вам нужно удалить юнита, кастующего спелл Heal, вы должны использовать именно это событие, иначе цель не будет вылечена.
» WarCraft 3 / Характеристика предмета