Kloc
30.12.2013, 09:54:50
Witam.
posłużę się tutaj przykładem z gry menelgame.pl. W oto tej grze mogę szkolić i walczyć swoją postacią i tu będzie moje pytanie.
Gracz 1 ustawia szkolenie, które trwa 1 dzień ale on nie wchodzi przez 3 dni na swoje konto lecz punkty i jego moc się zwiększa bo szkolenie się zaskoczyło.
Co wywołało skrypt, który to wykonał ?, domyślam się że cron, ale takie coś może być nie optymalne gdy grą milion graczy a ich szkolenia kończą się praktycznie co sekundę?
Jak czegoś takiego dokonać w najłatwiejszy sposób i najbardziej wydajny?
To samo jest z walkami graczy, widzisz że ktoś cię atakuje i możesz jeszcze się ulepszyć by nie przegrać walki.
Jak to zrobić, aby nie skatować bazy?
Pozdrawiam.
SaMi
30.12.2013, 10:08:40
W bazie zapisujesz datę do kiedy trwa szkolenie, potem tylko raz dziennie porównujesz datę zadeklarowaną w bazie z aktualną, jeśli ta w bazie jest większa(późniejsza) dodajesz punkty jesli nie to nie. skrypt wywołujesz np z crona.
Kloc
30.12.2013, 13:42:36
No ok, a jeśli gracz jest online to sam sobie wywołuje te skrypty?
A jak z tymi walkami?
gracz1 ma siły 80 gracz2 ma siły 90.
Gracz1 widzi, że jest atakowany w połowie pozostałego czasu i ulepsza się o 15 czyli ma 95 i to on wygrywa, więc skrypt musi wykonać się po upływie tego czasu (całej walki).
Może jest tak że wysyłający walkę ustawia crona na czas zakończenia walki?
Może ktoś pomóc mi jak włączyć tego crona?
gitbejbe
30.12.2013, 14:17:08
mozna tylko gdybać, ale bardzo wątpię, że obsługa tych akcji to CRON.
Do podglądu na żywo tego co się dzieje wystarczy ajax. Jeśli ktoś akurat gra to dzięki ajax'owi widzi co sie w danym momencie dzieje. Jeśli się nie gra, to skrypt wykona się dopiero po uruchomieniu strony. W sumie to chyba jedyna najprostsza droga i na pewno da się za pomocą tego to osiągnąć. Wiem, że duże serwisy często wspomagają się autorskimi programami działającymi w tle, ale na ich temat nic więcej nie potrafię powiedzieć, bo nigdy nie korzystałem z takich rozwiązań.
aniolekx
30.12.2013, 15:14:25
jeszcze nie widziałem gry na takiej zasadzie gdzie mógłbym podejrzeć dokładne statystki przeciwnika.
raczej polega to na tym ze wybieram przeciwnika z odpowiedniej pozycji w tabeli i wtedy jak ta postać została wyzwana do walki, mogę uruchomić skrypt który uaktualni wszystkie statsy.
To jest wersja lo-fi głównej zawartości. Aby zobaczyć pełną wersję z większą zawartością, obrazkami i formatowaniem proszę
kliknij tutaj.