Najprostszym rozwiazaniem powinno być przydzielenie do każdego skryptu bool'a umieszczonego nadrzędnie i na ich podstawie (wszystkie == true - skończono) ustawiać głównego, który decyduje o dodaniu, badź nie, jednego spana, choć nie wiem czy wprowadzenie czegoś takiego nie zrobiłoby zbyt dużego bałaganu.
Tak się chwile zastanawiajac przyszły mi do głowy jeszcze 2 rozwiazania, choć będa one wymagały znacznej reorganizacji kodu (z tego co zauważyłem to na 99.99% skrypty działaja dla atrybutu (działka, energia, zdrowie itd)) i jeśli taki sposób obliczeń jest konieczny, z racji na zależność obliczeń pomiędzy różnymi użytkownikami to nie czytaj dalej
Oba rozwiazania opieraja się o rozdzielenie obliczeń na użytkownika, czyli dla usera takiego oblicz zdrowie, energie, przeleć przez biznesy, zrób coś jeszcze i bierz się za nastepnego.ę
Opcja 1: Priorytetowanie aktywnych użytkowników - wpierw obliczać tych co w danej chwili zagladaja, np robili coś w ciagu ostatnich 10 minut. Dopiero po zakończeniu tych aktywnych przejść do nieaktywnych, którzy nie potrzebuja szybko aktualnego stanu.
Rozwiazanie takie sprawdzi się do czasu, aż będzie tylu aktywnych userów, co teraz jest ogółem, czyli i tak niewiele...
Opcja 2: Indywidualny czas rozpoczęcia tury, czyli np użytkownicy 1-10 maja kalkulacje tury o 10:00:00, użytkownicy 11-20 o 10:00:01, użytkownicy 21-30 o 10:00:02 itd. Rozwiazanie takie pozwoli na równomierne rozłożenie obciażenia, ale traci się ten przywilej odświeżania o jasno określonym czasie, każdy sam musiałby sobie to sprawdzać.
To tyle z moich pomysłów przy smarowaniu chleba
Sugestie co do rozwiazania już masz, a na ile to możliwe (o ile w ogóle) i co rzeczywiście zrobić to już sam najlepiej będziesz wiedział
