krzychu0808
10.07.2009, 09:51:26
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
10.07.2009, 09:58:27
Automatycznie update bazy danych możesz robić np przez Cron'a
Riklaunim
10.07.2009, 09:59:18
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ę

A drugie to umiejętności programistyczne, dobry dobór narzędzi i technologii.
wookieb
10.07.2009, 10:00:23
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
10.07.2009, 11:15:39
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
10.07.2009, 12:04:49
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
10.07.2009, 12:21:07
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
10.07.2009, 12:33:56
Cytat(ShadowD @ 10.07.2009, 13:04:49 )

Surowce też można rozwiązać przy pogowaniu ...
Pogo, pogo, pogo ...

I 20 kryształów więcej.
erix
10.07.2009, 13:03:48
Cytat
nie wiem czy może include nie obsługuje
Ałć, samochód nie umożliwia obracania się kół...
Coś zepsułeś.
krzychu0808
10.07.2009, 15:09:46
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
10.07.2009, 15:21:59
Napisz to coś OD ZERA, tu nie ma co poprawiać, bo jest kompletny chaos.
#luq
10.07.2009, 16:05:53
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ł
krzychu0808
11.07.2009, 09:18:11
juz mam:
<?php
?>
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ąć


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
11.07.2009, 13:59:23
Masz plik w public_html, to nie komplikuj, tylko cronem wywołuj wget z odpowiednim URL-em.
Nie rób z igły wideł.
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.