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: 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). |
|
|
|
prz3kus [php][mysql] update bazy 24h co pare sekund 3.09.2009, 19:41:07
r4xz może ajax? (ale głowy niedaję 3.09.2009, 19:42:43
prz3kus Aha czyli każda akcja np. wysłania ataku czy szpie... 4.09.2009, 16:07:58
kfc4 Rozpoczynając atak już wszystko wyliczasz. Tylko n... 4.09.2009, 17:03:23 
prz3kus Cytat(kfc4 @ 4.09.2009, 18:03:23 ) Ro... 4.09.2009, 17:11:00
thek A pomyślałeś o czymś w stylu sleep() ? Z tego co w... 4.09.2009, 20:51:25
franki01 Tworzysz klasę/funkcję (użyję przykładu klasy) Use... 4.09.2009, 20:56:28
thek To chyba troche dziwnie u mnie na localu działał j... 4.09.2009, 21:27:28
prz3kus Czyli funkcja time_sleep_until() potrafi wykonać ... 4.09.2009, 21:40:09
thek Funkcja sleep(X) zatrzymuje wykonywanie skryptu na... 4.09.2009, 23:34:12 ![]() ![]() |
|
Aktualny czas: 27.12.2025 - 19:26 |