Kako učiniti da se PHP-om stalno dodaju podaci u bazu?

Dakle, situacija je ovakva: radim na izradi jedne browser igre, i trebam svako x minuta dodavati resurse u MySql bazu podataka. Svi koji su ikad igrali Travian ili Tribal Wars razumijet će o čemu govorim. Ali PHP skripta je aktivna samo dok je upaljena, tj. kada je korisnik pregledava. Zna li itko kako ovo riješiti?

Hvala unaprijed :wink:

Travian ti mislim to bilježi tako da broji dok je skripta aktivna, a onda računa na osnovu proteklog vremena na neki event, npr ponovno logiranje ili neki event u samoj igri, kao izviđanje ili napad.

možeš koristiti cron job ili ti server aplikacija koja će to raditi.

Neka ti je recimo proizvodnja nekog resursa 5325 jedinica na sat.
5325/3600 = 1,4542

Pomoću Javascripta staviš da se resursi dodaju 1,4542 jedinice po sekundi, a kada god je skripta aktivna (recimo prilikom osvježavanja stranice ili otvaranja bilo koje druge pod-stranice) onda koristeći timestamp i “nivo” rudnika/polja iz kojeg se dobivaju resursi izračunaš koliko bi trebao resursa igrač zapravo imati i onda sa time manipuliraš kako želiš.

Nadam se da sam pomogao.

Cron job bi bio uvjetno rečeno smrt za server, pogotovo ako se radi o igrici sa puno igrača.

E da a server aplikaciju koja će to raditi možeš napisati i u javascriptu i u PHP.

[quote=“toniperic”]Neka ti je recimo proizvodnja nekog resursa 5325 jedinica na sat.
5325/3600 = 1,4542

Pomoću Javascripta staviš da se resursi dodaju 1,4542 jedinice po sekundi, a kada god je skripta aktivna (recimo prilikom osvježavanja stranice ili otvaranja bilo koje druge pod-stranice) onda koristeći timestamp i “nivo” rudnika/polja iz kojeg se dobivaju resursi izračunaš koliko bi trebao resursa igrač zapravo imati i onda sa time manipuliraš kako želiš.

Nadam se da sam pomogao.

Cron job bi bio uvjetno rečeno smrt za server, pogotovo ako se radi o igrici sa puno igrača.[/quote]

Da, razmišljao sam o tome, ali resursi se trebaju dodavati i kad je korisnik odjavljen, tj. kada ne rade ni PHP ni JavaScript.

Probaj ono što sam ti napisao, upiši u polje baze vrijeme kad se neko odjavi, kad dođe do ponovne prijave pročitaš to polje, provjeriš razliku od vremena i izračuna nove resurse za novo vrijeme.

Zašto? Resursi se ne moraju dodavati svake sekunde, da je tako niti jedan server ne bi mogao takvo što izdržati.

Ono što tebi treba je da korisnik vidi svaki puta ispravnu količinu resursa kada osvježi stranicu ili otvori neku drugu stranicu. Znači u međuvremenu nema potrebe za osvježivanjem podataka u bazi, već samo onda kada korisnik klikne i otvori stranicu jer mu, logično, moramo prikazati broj resursa koliko njegovi “rudnici” proizvode. E sada - što ako ga netko “špijunira” jer ga želi napasti, a korisnik nije online za to vrijeme pa mu se ne dodaju resursi? Isto tako napraviš da se podatci u bazi osvježe kada netko špijunira korisnika koji je offline.

Nadam se da sam ti dao ideju, zaista je puno opcija. Cron job može poslužiti dakako, međutim ja ga osobno ne bih koristio za ovakve stvari nikad jer postoje i druga rješenja.

Ok, ali većina korisnika ima naviku da jednostavno ode, bez stiskanja logoff gumba. Tako da mi se čini da je najbolje rješenje na svakom unloadu stranice zabilježiti vrijeme i dodati potrebne resurse AJAX-om. Kada ode, i ponovo se vrati primjenim ovo tvoje rješenje. Ima li itko bolju ideju ?

Session event handler

Ajde molim te pojasni malo :slight_smile:

nema veze ako ode, ako neko ode bez odlogiranja neće godinu dana bit prijavljen na bazu kao logirani korisnik

http://php.net/manual/en/function.session-set-save-handler.php


Copyright © 2020 WM Forum - AboutContact - Sponsored by: Mydataknox & Webmaster.Ninja