Witaj Gościu! ( Zaloguj | Rejestruj )

Forum PHP.pl

 
Reply to this topicStart new topic
> Gra online - cogodzinna aktualizacja danych
Plikownik
post
Post #1





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 19.01.2006

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


Witam

Zastanawiam się jak zrobić w grze online, aby np. co godzinę zwiększała się ilość złota? Czy wystarczy do tego sam php? Chodzi mi o takie coś co na Vallheru - gdzie zwiększa się energia gracza raz na jakiś czas.
Go to the top of the page
+Quote Post
dr_bonzo
post
Post #2





Grupa: Przyjaciele php.pl
Postów: 5 724
Pomógł: 259
Dołączył: 13.04.2004
Skąd: N/A

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


CRON
szczegoly na googlu
Go to the top of the page
+Quote Post
Plikownik
post
Post #3





Grupa: Zarejestrowani
Postów: 83
Pomógł: 0
Dołączył: 19.01.2006

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


już gdzieś słyszałem, że trzeba użyć Corn -a, ale Vallheru chyba go nie używa - a nie można zrobić to w ten sposób, że tworzymy klasę obsługi sesji każdego użytkownika i po upływie np. 1 minuty nieruchomości użytkownika na stronie sesja wygasa, a w odpowiedniej tabeli zapisuje się data kiedy po raz ostatni był użytkownik na stronie, potem po zalogowaniu data jest porównywana z datą poprzedniego zalogowana , a odpowiednie dane (np. złoto) zostają odpowiednio uzupełnione na stronie.
Go to the top of the page
+Quote Post
Jabol
post
Post #4





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


możesz zrobić skrypt który robi jeden wielki update wszystkim przy każdym wejściu każdego użytkownika (tak jak z logowaniem na forum).
Go to the top of the page
+Quote Post
em1X
post
Post #5





Grupa: Zarejestrowani
Postów: 984
Pomógł: 41
Dołączył: 16.03.2002
Skąd: Płock

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


Ok, tyle, ze jak sie zarejestruje wiecej niz kilkanascie osob to sie zapcha serwer od takich wydajnych metód (IMG:http://bluedisco.imn.pl/forum/images/smiles/7.gif)
Go to the top of the page
+Quote Post
Jabol
post
Post #6





Grupa: Przyjaciele php.pl
Postów: 1 467
Pomógł: 13
Dołączył: 22.02.2003

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


Czemu? Po prostu za każdym odnowieniem sesji:
  1. UPDATE .... WHERE lastupdate<(NOW()-1h);
Przy dobrym poindeksowaniu i oczywiściej dobrej bazie powinno iść szybciutko.

Możesz też zrobić tak, że update będzie spadał na przypadkowego użytkwnika:
  1. <?php
  2. //...
  3. if(czas_ostatniej_modyfikacji_pliku_semafora()<(teraz()-1h)){
  4. touch("plik_semafor");
  5. zrób_update();
  6. }
  7. //...
  8. ?>
Oczywiście będziesz musiał troszkę pokombinować z ciągami arytmetycznymi i geometryczynymi, bo update możę się dokonywać co godzine, może jednak też co 10h i na to trzeba uważać. Jest to jednak dobry sposób bo nie wymaga żadego rozwiązania po stronie serwera.

Ten post edytował Jabol 16.05.2006, 19:49:36
Go to the top of the page
+Quote Post
Kayne
post
Post #7





Grupa: Zarejestrowani
Postów: 82
Pomógł: 0
Dołączył: 30.04.2006
Skąd: Kalisz

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


Vallheru używa Crona.
Wiem, bo sam używam Vallheru (IMG:http://forum.php.pl/style_emoticons/default/winksmiley.jpg)
Go to the top of the page
+Quote Post
Master Miko
post
Post #8





Grupa: Zarejestrowani
Postów: 530
Pomógł: 0
Dołączył: 15.01.2005
Skąd: Warszawa

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


A wiecie jak jest to rozwiązane w grach o częstym odświerzaniu jak Ogame albo inne? Czy to jest np. co 10 sekund crone?
Go to the top of the page
+Quote Post
Vogel
post
Post #9





Grupa: Zarejestrowani
Postów: 402
Pomógł: 0
Dołączył: 20.01.2003

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


rzeczy takie jak ogame robilbym raczej w CLI + DOBRZE przemyslane procedury w bazie.
Go to the top of the page
+Quote Post

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: 23.12.2025 - 11:02