![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 260 Pomógł: 30 Dołączył: 22.01.2007 Ostrzeżenie: (0%) ![]() ![]() |
Witam mam pytanie trapiące moją ciekawość, jak w grach online robią przyrost surowców może coś sie dowiem czego nie wiem
Próba 1: Wrzuciłem wykonywanie skryptu do crontaba jenak ma to wade wykonuje się co minuta niby ok ale wizualnie do kitu no i jak wiemy w tych grach często liczą się sekundy Próba 2: Użyłem biblioteki jquery i odświeżam sobie stronkę zapisując aktualną datę do bazy powiedzmy co 15s. Wizualnie wszytko OK jednak wada jest taka ze wylogowując się surowce nie rosną , chodź po kolejnym lgowaniu przyrost się wyrównuje to jednak nie ma to sensu. Próba3: Strona odświeżająca się co 15s jednak trzymać ciągle on-line mało stabilne rozwiązanie. Odpowiadając na trapiące pytania nie piszę gry jednak jestem bardzo ciekawy jak to jest rozwiązywane w tych grach on-line. Pozdrawiam prz3kus |
|
|
![]() |
![]()
Post
#2
|
|
Grupa: Moderatorzy Postów: 4 362 Pomógł: 714 Dołączył: 12.02.2009 Skąd: Jak się położę tak leżę :D ![]() |
Funkcja sleep(X) zatrzymuje wykonywanie skryptu na X sekund, zaś time_sleep_until(X) zatrzymuje go do czasu X określonego jako timestamp. Ja używałem sleep(20) w swoim skrypcie w rekurencji na zasadzie:
- ustaw time limit, ignore user abort i parę innych, - zrób coś, - sleep(20), - wywołaj pewien kontroler, - wywołaj sam siebie, - exit. Dzięki temu skrypt mógł działać w nieskończoność. Jego zatrzymanie było uzależnione od "zrób coś", gdyż był tam warunek stopu. Gdyby nie to, to skrypt był niemal nie do zatrzymania, bo co chwilę tworzył swoje własne wątki i musiałbyś mieć dostęp do shella by to próbować skillować. Dlatego najpierw gruntownie go testowałem na localhoście. Służy mi on do wysyłki maili na jednym z serwisów. Mam jego uruchomienie w cronie, więc pełen automat o jakim można zapomnieć że chodzi (IMG:style_emoticons/default/winksmiley.jpg) Sam skrypt jest wstrzymany na 20 sekund przy każdym "wątku", ale w żaden sposób nie wpływa na cały interpreter php. Gdyby tak było to serwis leżałby każdej nocy na długi czas. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 13.10.2025 - 08:45 |