Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

> [php][mysql] update bazy 24h co pare sekund
prz3kus
post
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
Go to the top of the page
+Quote Post
 
Start new topic
Odpowiedzi
Void
post
Post #2





Grupa: Zarejestrowani
Postów: 112
Pomógł: 15
Dołączył: 2.02.2007

Ostrzeżenie: (0%)
-----


Było to już chyba kilka razy (IMG:style_emoticons/default/smile.gif)
Przy odświeżaniu strony przez użytkownika sprawdzany jest ostatni stan surowców zapisany w bazie oraz czas ostatniej aktywności użytkownika. Czas ten jest odejmowany od aktualnej godziny i na jego podstawie przeliczane jest ile surowców powinno zostać wydobytych przez ten czas (uwzględnia się przy tym poziom odpowiednich budynków, bonusów itp.). Podobnie dzieje się ze wszystkimi innymi danymi użytkownika (sprawdzanie zakończenia trwania jakichś misji, budowy itp.) i zaktualizowane dane wraz z czasem zapisywane są w bazie. Można do tego dodać javascript, w którym na bieżąco przelicza się i zmienia wartości pól wyświetlających stan surowców (jednak w bazie nic się nie zmienia do czasu odświeżenia strony) - daje to wrażenie nieustannej pracy gry. Po wylogowaniu rzeczywiście na koncie nic się nie dzieje, do czasu ponownego zalogowania użytkownika LUB wykonania na użytkowniku jakiejś akcji przez innego użytkownika (np. szpiegowanie - musi przecież dostarczyć aktualnych informacji o użytkowniku).
Go to the top of the page
+Quote Post

Posty w temacie


Reply to this topicStart new topic
2 Użytkowników czyta ten temat (2 Gości i 0 Anonimowych użytkowników)
0 Zarejestrowanych:

 



RSS Aktualny czas: 25.09.2025 - 22:11