![]() |
![]() ![]() |
![]() |
![]()
Post
#1
|
|
Grupa: Zarejestrowani Postów: 134 Pomógł: 4 Dołączył: 16.02.2007 Skąd: Leszno Ostrzeżenie: (20%) ![]() ![]() |
Witam,
mam do was pytanie. Zastanawiam się jak i w czym można wykonać coś na styl wykonywania zadań jak np na plemionach lub innych takich gier? Że jak użytkownik wchodzi to widzi ile zostało do końca, a jeśli go nie ma zalogowanego to system sam wykonuje odpowiedni skrypt który miał się wykonać? Zastanawiam się już od dłuższego czasu... |
|
|
![]()
Post
#2
|
|
Grupa: Zarejestrowani Postów: 275 Pomógł: 9 Dołączył: 24.07.2008 Skąd: Racibórz Ostrzeżenie: (10%) ![]() ![]() |
może cron ?
|
|
|
![]()
Post
#3
|
|
Grupa: Zarejestrowani Postów: 2 148 Pomógł: 230 Dołączył: 26.03.2008 Ostrzeżenie: (0%) ![]() ![]() |
Dupcię trzeba czasem ruszyć. ignore_user_abort(true);
|
|
|
![]()
Post
#4
|
|
Grupa: Zarejestrowani Postów: 134 Pomógł: 4 Dołączył: 16.02.2007 Skąd: Leszno Ostrzeżenie: (20%) ![]() ![]() |
|
|
|
![]()
Post
#5
|
|
Grupa: Zarejestrowani Postów: 4 655 Pomógł: 556 Dołączył: 17.03.2009 Skąd: Katowice Ostrzeżenie: (0%) ![]() ![]() |
Tam masz ajax + cron ;d
|
|
|
![]()
Post
#6
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 8 Dołączył: 20.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Nie wiem, jak te gry są zaimplementowane, ale ja bym obstawiał, że na serwerze jest stale (nie wywoływana cronem) uruchomiona aplikacja (serwer), która przetwarza logikę gry. Ty wchodząc na stronę pobierasz bieżący stan "świata" gry, wysyłasz pewne polecenia, które następnie są przetwarzane przez tą aplikację.
Przykład: - uruchamiasz aplikację php (niekoniecznie przez apacha), która się nie kończy (serwer gry). Aplikacja w pętli przetwaraz logikę świata gry. - użytkownik loguje się, na serwerze wykonuje się skrypt php który z serwera gry pobiera aktualny stan świata i przedstawia go użytkownikowi - użytkownik klika polecenie budowy budynku, do serwera gry zostaje przekazana informacja, że budynek ma być wybudowany - serwer gry zmniejsza co sekundę pozostały czas potrzebny do wybudowania budynku - użytkownik po 15 minutach odświeża stronę i widzi, że do wybudowania budynku zostało jeszcze np 10 dni (z 20) |
|
|
![]()
Post
#7
|
|
Grupa: Zarejestrowani Postów: 134 Pomógł: 4 Dołączył: 16.02.2007 Skąd: Leszno Ostrzeżenie: (20%) ![]() ![]() |
w manualu masz 2 przyklady http://us2.php.net/manual/en/function.ignore-user-abort.php w tym rozwiazaniu musisz jakos zawiadomic dzialajacy w tle skrypt ze ma wykonac abort inaczej bedzie dziala nonstop, jest opis w przykladzie manualu kilka dni temu bylo na forum o innej metodzie respawning czyli wywolanie skryptu przez samego siebie na lokalu tuz przed timeout, wykorzystuje to np system mailingowy pommo, wydawalo mi sie ze wykorzystywane do tego jest fsockopen aczkolwiek erix mial co do tego zastrzezenia, odsylam do tamtej klasy, podalem namiary w tamtym poscie hmm... jest w tym coś. Dosyć ciekawy pomysł. Nie wiem, jak te gry są zaimplementowane, ale ja bym obstawiał, że na serwerze jest stale (nie wywoływana cronem) uruchomiona aplikacja (serwer), która przetwarza logikę gry. Ty wchodząc na stronę pobierasz bieżący stan "świata" gry, wysyłasz pewne polecenia, które następnie są przetwarzane przez tą aplikację. Przykład: - uruchamiasz aplikację php (niekoniecznie przez apacha), która się nie kończy (serwer gry). Aplikacja w pętli przetwaraz logikę świata gry. - użytkownik loguje się, na serwerze wykonuje się skrypt php który z serwera gry pobiera aktualny stan świata i przedstawia go użytkownikowi - użytkownik klika polecenie budowy budynku, do serwera gry zostaje przekazana informacja, że budynek ma być wybudowany - serwer gry zmniejsza co sekundę pozostały czas potrzebny do wybudowania budynku - użytkownik po 15 minutach odświeża stronę i widzi, że do wybudowania budynku zostało jeszcze np 10 dni (z 20) interesujące i zarazem sprytne. Ale czy takie zastosowanie nie obciąży serwera? co do sposobu guitarnet.pl zastanawiam się jak zatrzymać wykonywanie, czy wystarczy break w pętli? @edit; Pobawiłem się i zrobiłem coś takiego: Plik 1:
i plik 2 (test.php):
Jak widać GET'em wysyłam do skryptu o której godzinie ma być koniec. Ale niestety skrypt działa dalej mimo tego że jest już ma być koniec :/ |
|
|
![]()
Post
#8
|
|
Grupa: Zarejestrowani Postów: 122 Pomógł: 8 Dołączył: 20.10.2008 Ostrzeżenie: (0%) ![]() ![]() |
Ja bym zmienił warunek:
if($koniec == date("h:m:s")) na if($koniec <= date("h:m:s")) Przecież niekoniecznie musisz "wstrzelić" się w odpowiedni czas zakończenia. |
|
|
![]() ![]() |
![]() |
Aktualny czas: 19.09.2025 - 11:16 |