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) endend2) проверка, что у игрока нет городов и активных героев
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) endend3) в гарнизоне города есть требуемое количество существ
function checkTownCreatures() while (1) do sleep(10) local creatures = GetObjectCreatures(obj, id) if (creatures >= NEEDED) then --some code break end sleep(10) endend