Форум HeroesWorld-а - Показать сообщение отдельно - Текущие вопросы и ответы по редактору карт
Показать сообщение отдельно
#5851
Старый 23.03.2025, 01:27
  #5851
^
IchGViji
 
Аватар для IchGViji
📖
Регистрация: 23.08.2022
Сообщения: 173
Регистрация: 23.08.2022
Сообщения: 173
Сообщение
Re: Текущие вопросы и ответы по редактору карт

GerterМожно иметь сотни потоков одновременно и игра будет нормально это воспринимать. Не стоит только некоторые отдельные вещи в бесконечном потоке чекать, например, проверять стоимость пути в мувах соотв. функцией - вот это убивает игру даже одним потоком.

Что-ж, то, что низкого ограничения на количество открываемых потоков нет, это радует!

А вот касательно вещей, которые не стоит проверять в бесконечное потоке: у меня в скрипте следующие проверки используются, полагаю такие допускаются?

1) проверка, что через n-ое кол-во дней наступает событие (например - разблокировка региона, апдейт квеста), eventDay - глобальная переменная
function waitForEvent()
   while (1) do
      sleep(10)
      local currentDay = GetDate(DAY)
      if ((currentDay - eventDay) == 5) then
         --some code
         break
      end
      sleep(10)
   end
end

2) проверка, что у игрока нет городов и активных героев
function checkGoalCompletion()
   while (1) do
      sleep(10)
      local heroes = GetPlayerHeroes(id)
      local townsNumber = 0;
      for i, town in TOWNS do
         if (GetObjectOwner(town) == id) then
            townsNumber = townsNumber + 1
         end
      end
      if (heroes == 0 and townsNumber == 0) then
         --some code
         break
      end
      sleep(10)
   end
end

3) в гарнизоне города есть требуемое количество существ
function checkTownCreatures()
   while (1) do
      sleep(10)
      local creatures = GetObjectCreatures(obj, id)
      if (creatures >= NEEDED) then
         --some code
         break
      end
      sleep(10)
   end
end
IchGViji вне форума
Ответить с цитированием