Подчинение одного юнита или героя триггерно

Я хочу сделать как-то так:
-Игрок красный обводит (любого) юнита
-Игрок красный пишет текст в чат
-Юнит переходит под командование к игроку красному
Но только при условие что Юнитом больше не сможет управлять владелец
И точно также отдать Владельцу игрока.

Ответ

WiLian, так я имел в виду два триггера..
Вот так: xgm.guru/files/100/198847/comments/366316/Give.w3m
Скопируй 2 триггера и переменную-массив юнитов Selected в свою карту.
Тут даже без проверки получается вроде.
Если нужно больше игроков, чем 4 - то добавляй события с ними.
Sergey105, а как это в один триггер впихнуть?


Views: 1 890

Maniac_91 #4 - 4 years ago 0
Голосов: +0 / -0
WiLian, ssbbssc:
команду, которую надо написать
нужно сравнить с введённой строкой чата (entered chat string).
WiLian #5 - 4 years ago 0
Голосов: +0 / -0
Не выходит я даже менял условия местами.
Прикрепленные файлы
Niken #6 - 4 years ago (изм. ) 0
Голосов: +0 / -0
WiLian,
1 - Нельзя ставить 2 события основанной на действий с игрока
2 - То, что первым произошло, то и сработает (то есть, если игрока напечатает сообщение, то событие "выбор юнита" пропустит, также и с выбором юнита)
3 - Попробуй сделать выбор юнита и ввод сообщение в 2 триггера.
Sergey105 #7 - 4 years ago (изм. ) 0
Голосов: +0 / -0
WiLian, Game_Nikitav_1, верно написал
ты можешь сделать 2 триггера в 1 триггере сделать игрок 1 выбирает юнитов и занести юнита в переменную а в 2 триггере сделать событие игрок 1 напечатал такое сообщение и в действии уже сменить цвет юнита который записан в переменную
хотя это все можно сделать и на одном триггере
Maniac_91 #8 - 4 years ago 1
Голосов: +1 / -0

WiLian, так я имел в виду два триггера..
Вот так: xgm.guru/files/100/198847/comments/366316/Give.w3m
Скопируй 2 триггера и переменную-массив юнитов Selected в свою карту.
Тут даже без проверки получается вроде.
Если нужно больше игроков, чем 4 - то добавляй события с ними.
Sergey105, а как это в один триггер впихнуть?
Прикрепленные файлы
Sergey105 #9 - 4 years ago 3
Голосов: +3 / -0
Maniac_91, в один триггер можно поставить хоть все события поскольку события есть id и его можно отследить в действиях и проверять сработало нужное событие или нет
GetTriggerEventId() вернет эвент ид
Maniac_91 #11 - 4 years ago 0
Голосов: +0 / -0
Sergey105, интересное решение. Возьму на заметку)
Sergey105 #12 - 4 years ago 2
Голосов: +2 / -0
Maniac_91, вот тебепример
function Actions2 takes nothing returns boolean
if GetTriggerEventId() == EVENT_PLAYER_UNIT_ATTACKED then
действие при атаки
elseif GetTriggerEventId() == EVENT_PLAYER_UNIT_SPELL_EFFECT
действие при касте спела
endif
return false
endfunction
===========================================================================
function InitTrig_Ev takes nothing returns nothing
set gg_trg_Ev = CreateTrigger()
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ev, EVENT_PLAYER_UNIT_ATTACKED )//ид 1
call TriggerRegisterAnyUnitEventBJ( gg_trg_Ev, EVENT_PLAYER_UNIT_SPELL_EFFECT )//ид2
TriggerAddCondition(gg_trg_Ev, Condition(function Actions2))
endfunction
и да тут не просто так вместо TriggerAddAction стоит TriggerAddCondition
поскольку action утечна и ну для неё это норм она постояно копит в себе количество активаций триггера этим и жрет доп память
WiLian #14 - 4 years ago 0
Голосов: +0 / -0
Maniac_91, Есть одна очень важная проблема, игрок ведший команду не может подчинить союзников.