Форум HeroesWorld-а - Показать сообщение отдельно - Скрипты
Тема: Скрипты
Показать сообщение отдельно
#3509
Старый 30.08.2021, 09:48
  #3509
^
}{0TT@6bI4
 
Аватар для }{0TT@6bI4
📖
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
Регистрация: 05.09.2019
Адрес: Серебряные Города, Аль-Сафир
Сообщения: 1973
Выставка наград
По умолчанию
Re: Скрипты

Есть вариант проще.
function GarrisonBlock()
while 1 do
if GetObjectOwner("Замок2")==GetObjectOwner("Замок1")  then --Ваше условие истинно, только если оба замка принадлежат одному игроку
SetObjectEnabled("Гарнизон", 1, GetObjectOwner("Замок1")) --Разблокируем гарнизон владельцу обоих замков
while not IsObjectEnabled("Гарнизон") do sleep(1) end
end
for i=1,8 do
if GetPlayerState(i)==PLAYER_ACTIVE and  i~=GetObjectOwner("Замок1") and i~=GetObjectOwner("Замок2") and IsObjectEnabled("Гарнизон") then --Если игрок активен и не владелец обоих замков, но гарнизон ему разблокирован, то
SetObjectEnabled("Гарнизон", nil, i) --Заблокировать гарнизон ему
end
end
sleep(1)
end

startThread(GarrisonBlock)

Да, скрипт не очень красивый, можно было бы и имена в переменные загнать, чтобы не писать 5 раз, а еще лучше в аргументы функции, можно еще использовать триггер смены владельца замка и проверку на старте карты, чтоб лишний цикл не крутился.
__________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
С уважением, }{0TT@6bI4
_________________
Группа картостроителей
Там ответы на вопросы, руководства, гайды и прочее
Discord-сервер "Герои 5: S.T.A.L.K.E.R"
Сервер по модификации "Герои 5: S.T.A.L.K.E.R"
_________________
}{0TT@6bI4 вне форума
Ответить с цитированием