Pomoc - Szukaj - Użytkownicy - Kalendarz
Pełna wersja: Gry internetowe - pytanko
Forum PHP.pl > Inne > Hydepark
krzychu0808
Mam pytanie chce zacząć pisać grę internetową ale jest jedna rzecz która mnie męczy i bez której nie mogę zacząć każdy chyba grał w jakąś grę czy to plemiona czy ogame nie ma znaczenia w takich grach zawsze jest upgrade czy to lvl budynków czy postaci i ja nie wiem jak to się dzieje jak nie ma użytkownika zalogowanego a minie czas to automatycznie w bazie zachodzą zmiany... bo myślałem żeby zrobić że dodaje do czasu aktualnego czas ile ma trwać dany upgrade i później przy odświeżaniu strony porównuje aktualny czas z tym zapisanym w bazie i jak minie ten czas to robi upgrade ale do tego jest potrzebny użytkownik. Może to ktoś mi wyjaśnić może jest jakiś silnik na to... bo zainstalowałem sobie silnik Xnova(kopia ogame) ale mają ciężko kod strasznie do ogarnięcia
kajzur
Automatycznie update bazy danych możesz robić np przez Cron'a winksmiley.jpg
Riklaunim
Może chodzić cron, który odpala odpowiedni skrypt przeliczający dane, w tym dokonujący promocji na wyższy poziom. Rozwiązań jakie można zastosować jest wiele. Podstawa to dobry, grywalny pomysł na grę winksmiley.jpg A drugie to umiejętności programistyczne, dobry dobór narzędzi i technologii.
wookieb
Ale crona można uruchomić raz na minutę, więc pozostaje opcja sleep, gdzie przy dużej ilości operacji w grze sie nie sprawdzi.
Bardziej obstawiam skrypt uruchomiony z linii komend i działający w nieskonczoność, gdzie na tym działaja tylko walki i budowle.
Natomiast przeliczanie surowców to obstawiam na wywoływanie przeliczania przy takich operacjach jak rabowanie, odswiezenie strony przez wlasciciela konta itp.
#luq
Można by też nie wykorzystywać crona. Po wejściu na stronę następuje dopiero zapytanie czy data zakończenie budowy < aktualna data jeśli tak to update. Dla usera nie jest istotne to że w momencie gdy nie gra powinien mieć jakiś budynek na wyższym levelu.
Problem pojawia się dopiero gdy w zależności od levelu budynku, dostajemy jakąś kwotę surowca.
ShadowD
Surowce też można rozwiązać przy pogowaniu czy np grabieży więc to też nie problem, porównać czas w jakim powinno być o x większe wydobycie i dodać tyle ile trzeba. ;]
krzychu0808
hmm w sumie cron to nawet dobry pomysł tylko coś mi cron nie chce działać na serwie bo napisałem dla innej strony skrypt i chciałem go odpalać co 5 minut wykonanie skryptu trwało od 5 do 120 sekund a gdy wykonywał to cron to było 0 sekund i wykonał tylko pierwszą operacje... nie wiem czy może include nie obsługuje
mike
Cytat(ShadowD @ 10.07.2009, 13:04:49 ) *
Surowce też można rozwiązać przy pogowaniu ...
Pogo, pogo, pogo ... exclamation.gif exclamation.gif exclamation.gif
I 20 kryształów więcej.
erix
Cytat
nie wiem czy może include nie obsługuje

Ałć, samochód nie umożliwia obracania się kół...

Coś zepsułeś. tongue.gif
krzychu0808
wiem że z tym include to bez sensu powiedziałem ale już sam nie wiem ;p bo to dla mnie dziwne jest że wykonuje tylko pierwsze zapytanie do bazy
erix
Napisz to coś OD ZERA, tu nie ma co poprawiać, bo jest kompletny chaos.
#luq
ShadowD mogę prosić abyś rozwinął swoją myśl?

Chyba wiesz o co mi chodzi, ale w gwoli ścisłości napisze jeszcze. User włącza upgrade budynku, który ma się zakończyć po 5h, wyłącza przeglądarkę, wchodzi za 10h. W momencie wejścia jest zwiększany poziom budynku, i należy dodać surowce za 5h po "starej cenie" oraz za 5h po nowej.
W sumie nad tym się zastanawiam. Więc podsuń pomysł winksmiley.jpg
krzychu0808
juz mam:
  1. <?php
  2. ?>

Cytat
hmmm sorki że tutaj pisze ale za czołem testować crona bo jednak działa jakoś ale napotkałem kolejny problem:
"Fatal error: Maximum execution time of 30 seconds exceeded in /home/aikon/domains/elaz.eu/public_html/wiadomosci/test.php on line 48"
idzie to jakoś ominąć questionmark.gifquestionmark.gif czy trzeba zmienić w ustawieniach serwera


śmialiście się ze mnie jak napisałem żę include nie obsługuje ale nie wiem czemu jak mam na początku skryptu include do pliku config gdzie jest zapisane łączenie sięz bazą danych to jak odpalę ręcznie skrypt to działa ładnie ale jak przez crona to nie działa ale usunąłem include i wkleiłem to z include do pliku to działa ;p może to kotoś wyjaśnić ja wywołuje plik w cronie w taki sposób:
Kod
    /usr/local/php5/bin/php -q /home/aikon/domains/elaz.eu/public_html/x/x.php
erix
Masz plik w public_html, to nie komplikuj, tylko cronem wywołuj wget z odpowiednim URL-em.

Nie rób z igły wideł. tongue.gif
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.
Invision Power Board © 2001-2025 Invision Power Services, Inc.