empuszek
24.03.2008, 12:15:24
Jak najprościej zrobić system, który by przechowywał informacje o czasie lotu floty lub wojska jak to jest np. w Ogame czy Plemiona. Zwracam sie tutaj do doświadczonych programistów.
THX
Firez
24.03.2008, 19:42:28
Nie jestem jeszcze specjalnie doświadczony ale interesowałem się kiedyś tą tematyką.
IMHO powinno się stworzyć tabelę z czterema kolumnami:
-id
-czas wydarzenia [zapisany w czasie unix]
-typ wydarzenia [atak, transport]
-argumenty 'wydarzenia' - oddzielone w jakiś sposób np. znakami | lub _, może da się tutaj także użyć funkcji serialize [ale nie jestem pewien, nie zgłębiałem się w jej działanie]
Przy każdym odświeżeniu strony przez gracza lub przy każdym uruchomieniu skryptu przez Cron należy sprawdzić czy są jakieś wydarzenia oczekujące na wykonanie - tzn. czas wydarzenia jest mniejszy od aktualnego czasu. Jeśli tak pobieramy typ wydarzenia oraz argumenty i przekazujemy je do odpowiedniej funkcji która obsłuży zadanie.
Np.
Typ wydarzenia: transport
Argumenty: Marek_Marta_100
Argumenty odzielamy od siebie uzywajac funkcji explode i zapisujemy w formie tablicy. Nastepnie przekazujemy te dane do odpowiedniej funkcji transport($tablica) ktora zadba o dodanie 100 sztuk złota dla Marty i wysłanie informacji o pomyślnym transporcie dla obu graczy.