Для событий "Юнит входит в радиус другого юнита" и "Юнит выходит из радиуса другого юнита" добавить следующий функционал:
native GetRegisteredUnit takes nothing returns unit // возвращает юнита, в радиус которого входят или выходят.
native GetRegisteredRange takes nothing returns real // возвращает расстояние, на которое нужно подойти или отойти для срабатывания.
Добавить функционал для event, в частности возможность удаления события:
Исправить ситуацию с коллизией триггеров при их динамическом удалении и создании, когда при создании нового триггера у него уже есть события, условия и действия. Однако мои тесты показывают, что такая ситуация невозможна на патче 1.26а, но не факт, что мои тесты верны. Больше об этой ситуации тут.
Чтобы сделать обычного юнита героем, достаточно дать ему равкод с прописными (большими) буквами. 8gabriel8:
Тоже такое предполагал сначала, но скрытые юниты не выбираются и триггерно выбор не отлавливается. Аналогично с Москитами не выбрать героя.
Зачем такие сложности, просто модель убираем, в способностях оставляем неяузвимость.
В карте делаем триггер: событие - каждые 0.03 секунды, действия - выбрать всех юнитов в группе (Все юниты типа юнит-пустышка) и сделать дейсвия:
Если Picked Unit выбран своим владельцем то убрать его выделение и выбрать юнита непустышку.
Делаем именно через периодический триггер, потому что события "Юнит выбран" и "Юнит перестают быть выбранным" работают с задержкой.
Но это не работает с выбором всех юнитов определённого типа на карте.
Pick every unit in group and do actions вызывает ForGroupBJ(), в которой при bj_wantDestroyGroup == true группа удаляется.
ForGroupBJ
function ForGroupBJ takes group whichGroup, code callback returns nothing
// If the user wants the group destroyed, remember that fact and clear
// the flag, in case it is used again in the callback.
local boolean wantDestroy = bj_wantDestroyGroup
set bj_wantDestroyGroup = false
call ForGroup(whichGroup, callback)
// If the user wants the group destroyed, do so now.
if (wantDestroy) then
call DestroyGroup(whichGroup)
endif
endfunction
Не работает как раз-таки способ с удалением GetLastCreatedGroup(), потому что все BJ функции групп используют локалки.
Функции
function GetUnitsInRangeOfLocMatching takes real radius, location whichLocation, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsInRangeOfLoc(g, whichLocation, radius, filter)
call DestroyBoolExpr(filter)
return g
endfunction
function GetUnitsInRectMatching takes rect r, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsInRect(g, r, filter)
call DestroyBoolExpr(filter)
return g
endfunction
function GetUnitsInRectOfPlayer takes rect r, player whichPlayer returns group
local group g = CreateGroup()
set bj_groupEnumOwningPlayer = whichPlayer
call GroupEnumUnitsInRect(g, r, filterGetUnitsInRectOfPlayer)
return g
endfunction
function GetUnitsOfPlayerAndTypeId takes player whichPlayer, integer unitid returns group
local group g = CreateGroup()
set bj_groupEnumTypeId = unitid
call GroupEnumUnitsOfPlayer(g, whichPlayer, filterGetUnitsOfPlayerAndTypeId)
return g
endfunction
function GetUnitsOfPlayerMatching takes player whichPlayer, boolexpr filter returns group
local group g = CreateGroup()
call GroupEnumUnitsOfPlayer(g, whichPlayer, filter)
call DestroyBoolExpr(filter)
return g
endfunction
function GetUnitsOfTypeIdAll takes integer unitid returns group
local group result = CreateGroup()
local group g = CreateGroup()
local integer index
set index = 0
loop
set bj_groupEnumTypeId = unitid
call GroupClear(g)
call GroupEnumUnitsOfPlayer(g, Player(index), filterGetUnitsOfTypeIdAll)
call GroupAddGroup(g, result)
set index = index + 1
exitwhen index == bj_MAX_PLAYER_SLOTS
endloop
call DestroyGroup(g)
return result
endfunction
function GetUnitsSelectedAll takes player whichPlayer returns group
local group g = CreateGroup()
call SyncSelections()
call GroupEnumUnitsSelected(g, whichPlayer, null)
return g
endfunction
Так что самый верный способ будет через присвоение.
set bj_wantDestroyGroup = true
Локации удалять через RemoveLocation(), а группы через set bj_wantDestroyGroup = true.
Такого приказа нет.
Можно сделать спел в лавках, который продаёт предмет, а сам предмет сделать невыпадаемым. Выбираешь лавку, используешь спел на предмет, предмет продаётся.
Такого приказа нет.
Он, скорее всего, есть, но его никак нельзя отловить.
а формула какая? integer A это цикл как и integer B
Я тебе сказал формулу. При чём тут циклы? Я просто назвал числа, чтобы было короче писать.
Напишу в твоих буквах.
Result = BaseAs / (1 + AGI * 0.01).
Result -- скорость перезарядки, не путать со скоростью атаки! Скорость атаки величина обратная.
У героя есть базовая скорость перезарядки (число А), все процентные бонусы скорости атаки складываем (число В). Тогда новая скорость перезарядки будет А / (1 + B%).
Так их можно убрать.
Вот тут сказано, как убрать приказы. Нежелательным иконкам ставим в координаты 0,-11.
Не работает на иконки строительства, им нужно поставить 0,-11 в способностях в РО.
счетчик с сайта + загрузка оперативки (сверка со средним приростом при учке 10 локаций/с).
Про счётчик я уже высказал своё фи, а вот загрузка оперативки - другое дело. Но тут тоже стоит быть аккуратным, ведь порой нужно много объектов создать сразу. Так что я думаю, что особо этим увлекаться не стоит, карта не лагает - и хорошо.
Версия игры не ограничивается правилами. Прекращайте пожалуйста с такими вопросами.
Это нормальный вопрос с целью уточнить. Если версия не ограничивается, то это стоит указать в правилах, а не в комментариях. Как минимум в правилах стоит указать, что "Все что *явно* не ограничивается правилами - разрешено" и слово "явно" выделить.
Как говорится, без нормального тз - результат хз) тз - техническое задание.
У меня тут идейка появилась для простенькой игры, так что может быть тоже приму участие.
Локальный юнит -- это нормальная практика. Если не можешь в локалки, иди читать статьи.
Далее, ты вызываешь условие через condition у группы
А должно быть Filter
Без разницы. Можно Filter, можно Condition, если используешь jasshelper, то можно вообще не писать (jasshelper сам обернёт в Condition). На работоспособность никак это не повлияет.
Ред. PT153
» Мир безумного / WarCraft III Reforged - WE (что хотите увидеть?)
Предлагаю
Ред. PT153
» WarCraft 3 / Юнит как Герой + его позиция
» WarCraft 3 / Юнит как Герой + его позиция
8gabriel8:
В карте делаем триггер: событие - каждые 0.03 секунды, действия - выбрать всех юнитов в группе (Все юниты типа юнит-пустышка) и сделать дейсвия:
Если Picked Unit выбран своим владельцем то убрать его выделение и выбрать юнита непустышку.
Делаем именно через периодический триггер, потому что события "Юнит выбран" и "Юнит перестают быть выбранным" работают с задержкой.
Ред. PT153
» WarCraft 3 / Проблемы утечек
» WarCraft 3 / Проблемы утечек
» WarCraft 3 / Как запретить выкладывать предмет на землю или отдавать др юниту
Юзаем спел на юнита и его самый первый предмет продаётся. Юнит должен быть рядом с магазином и быть повёрнутым прямо к нему.
» WarCraft 3 / Как запретить выкладывать предмет на землю или отдавать др юниту
Ред. PT153
» WarCraft 3 / Как запретить выкладывать предмет на землю или отдавать др юниту
Можно сделать спел в лавках, который продаёт предмет, а сам предмет сделать невыпадаемым. Выбираешь лавку, используешь спел на предмет, предмет продаётся. Он, скорее всего, есть, но его никак нельзя отловить.
» RenderEdge / [RenderEdge] Графическая модификация для WarCraft III
» XGM Конкурсы / Warcraft III Mini-Game Contest-2018
» WarCraft 3 / мини карта
» WarCraft 3 / TerrainId
» WarCraft 3 / Поворот даммика
» WarCraft 3 / Проверка Скорости боя героя
Result = BaseAs / (1 + AGI * 0.01).
Result -- скорость перезарядки, не путать со скоростью атаки! Скорость атаки величина обратная.
» WarCraft 3 / Про Тайники
» WarCraft 3 / Юнит не сохраняется в структе
ApaxHoqpuJL:
Ред. PT153
» WarCraft 3 / Помогите решить проблему!!
» WarCraft 3 / Проверка Скорости боя героя
» WarCraft 3 / Почему число увеличивается !?
» WarCraft 3 / Почему число увеличивается !?
» JackCraft / WarFortress (Mini-Game Contest-2018-WIP)
Вот тут сказано, как убрать приказы. Нежелательным иконкам ставим в координаты 0,-11.
Не работает на иконки строительства, им нужно поставить 0,-11 в способностях в РО.
Ред. PT153
» XGM Конкурсы / Warcraft III Mini-Game Contest-2018
тз - техническое задание.
» WarCraft 3 / Способность которая действует по все карте
» WarCraft 3 / Таблица ubersplat'ов