Есть триггерное действие, которое меняет цвета. Выходит, что оно действует на всех игроков. Нужно чтобы игрок мог менять цвета через способность юнита только для себя.
Можно ли так сделать?
Ну тут 2 варианта:
Либо ты обрамляешь всё через CS.
Либо пишешь свою функцию и юзаешь её (через CS, разумеется).
function SetAllyColorFilterState_EX takes player p, integer i returns boolean
if p == GetLocalPlayer() then // можно добавить i >= 0 и i < 3
call SetAllyColorFilterState(i)
endif
endfunction
В глобальном плане у pro100master более правильный подход - присвоить переменной значение для всех, затем локально присвоить той же переменной значение для определенного игрока, и уже после этого применять эту переменную глобально для всех, содержащую разные локальные значения. Но в данном конкретном случае десинка не будет, т.к. нет объектных данных, поэтому вариант Extremator не является ошибкой и имеет место быть.
Показан только небольшой набор комментариев вокруг указанного.
Перейти к актуальным.
Отредактирован Extremator
Либо ты обрамляешь всё через CS.
Либо пишешь свою функцию и юзаешь её (через CS, разумеется).
if player == GetLocalPLayer
color = green
endif
SetColorPlayer(player, color)