Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.

Generisanje resursa u minuti

[es] :: PHP :: Generisanje resursa u minuti

[ Pregleda: 2849 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Autor

Pretraga teme: Traži
Markiranje Štampanje RSS

enferty
student
Novi Sad

Član broj: 193582
Poruke: 113
*.dynamic.sbb.rs.



+1 Profil

icon Generisanje resursa u minuti25.07.2013. u 13:00 - pre 130 meseci
Pozdrav,

pocela sam da radim na nekoj skripti, slicnoj Travianu i pokusavam da napravim generaciju 1 resursa na svaki minut. Nisam sigurna kako bih to odradila u php-u. Da li da proveravam u odnosu na neko vreme ili da ga pustim da stalno vrti svaki minut? Jel moze neki savet?

Hvala.
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.static.sbb.rs.



+2 Profil

icon Re: Generisanje resursa u minuti26.07.2013. u 13:27 - pre 130 meseci
Najjednostavnije je da napraviš skriptu koja radi update u bazi (resursi su, pretpostavljam, u bazi) i da je staviš u cron job koji će se pokretati na svaki minut.
 
Odgovor na temu

Radovan__III
Radovan__III
Beograd

Član broj: 15669
Poruke: 1245
*.dynamic.isp.telekom.rs.



+26 Profil

icon Re: Generisanje resursa u minuti26.07.2013. u 15:09 - pre 130 meseci
Citat:
gotivac: Najjednostavnije je da napraviš skriptu koja radi update u bazi (resursi su, pretpostavljam, u bazi) i da je staviš u cron job koji će se pokretati na svaki minut.


Dobro i sta ces ako imas vise razlicitih resursa, milion igraca i 5 razlicitih verzija igre ? Ima sve da se otvara po pola sata.

Ja bi na drugi nacin :
Igrac je u odredjeno vreme startovao tu igru, vreme se zabelezi , onda se utvrdi koliko je minuta proslo do sadasnjeg i toliko resursa ima, a kako se vreme menja stalno ce se veoma brzo matematicki izracunavati kolicina resursa, dovoljno ti je da imas 2 polja u bazi , jedno za vreme od kad se meri i drugo za kolicinu potrosenih resursa ( ili celu tabelu u kojoj logujes kolko je kad trosio ) i onda oduzimanjem vremena i onoga sto je do sad potrosio mozes doci izuzetno brzo do onoga sto mu je preostalo a i to ce se menjati sa vremenom.
Aj sad svi u biblioteku da nesto pojedemo i popijemo ...
--------------------------------
Knjigovodstvo

 
Odgovor na temu

valjan
Janko Valencik
Software Deployer
Schneider Electric
Novi Sad

Član broj: 158605
Poruke: 3531
*.dynamic.sbb.rs.



+553 Profil

icon Re: Generisanje resursa u minuti27.07.2013. u 05:10 - pre 130 meseci
E upravo tako kako kaže @Radovan_III - ako sve ovo posmatraš kao vrstu knjigovodstvenog programa, biće ti mnogo lakše da sve realizuješ. Imaš početno stanje u "magacinu", i imaš ubeležene promene (koliko čega je i kad dodato). Onda u svakom trenutku možeš tačno da izračunaš koliko čega ima. Kada igrač nije online, njemu nije ni bitno šta se tad dešava, i nema potrebe opterećivati server proračunima, upitima u bazu, ažuriranjima stanja itd. Onog trenutka kad otvori stranicu na kojoj treba da se ispiše stanje resursa, tad odradiš upite, obaviš proračun i serviraš mu. A kad obratiš pažnju na to da resurse u igri u stvari stvaraju i troše sami likovi, znaćeš da ti nikakvi kronovi ne trebaju. Jednostavno, znaš da seljak generiše tri žita na minut, ali i pojede 0,1 žito, i potroši 0,05 gvožđa i 0,07 drveta na "amortizaciju motike" ili koji god razlog. Isto tako znaš da drvoseča generiše 2 drveta na minut, ali pojede 0,2 žita i potroši X gvožđa i Y drveta na "amortizaciju sekire" i obnovu kolibe, i imaš sličnu kalkulaciju za rudara, itd. Samo evidentiraš u bazi kad je koji od ovih likova napravljen, i onda nemaš nikakvih problema da u svakom trenutku znaš tačno koliko čega treba da bude. Naravno, i vojnici donesu iz pljačke nešto pa se stanje samim tim uveća, a prilikom odbrane selo bude opljačkano pa se stanje umanji, ali i to lepo uneseš u jednu tabelu, pa se jednostavnim upitom veoma brzo sve može sabrati i dobiti realno stanje resursa u svakom trenutku, bez potrebe da se svaki minut nešto beleži.

Znači, dovoljna ti je jedna tabela gde ćeš imati recimo id_igraca i id_lika, količinu ako dozvoljavaš generisanje više likova odjednom, i timestap kada je on gotov (odrediš koliko vremena X treba za izgradnju svakog lika i upišeš ga kao now()+X u trenutku kada igrač inicira kreiranje tog lika). Ako je timestamp veći od now(), lik je još u izgradnji i možeš lako da prezentuješ igraču koliko % je on "gotov" koristeći razliku između timestampa i now(), a ako je timestamp manji od now(), proračunaš koliko je on do sad dodao resursa i koliko je pojeo, popio i potrošio istih, i tu računicu prezentuješ igraču. Ako i svaku bitku organizuješ po principu id_igraca, id_resursa, kolicina, timestamp (a to sve možeš već izračunati u trenutku kada igrač inicira napad), opet ćeš uvek uz jedan upit imati realno stanje resursa u svakom trenutku. Naravno, drugi igrač može kasnije odigrati potez kojim će promeniti stanje u odbrani i samim tim uticati na onaj prethodni obračun, ali nikakav problem, ponovo sve preračunaš u trenutku kad on inicira svoj potez i opet ažuriraš onu malo pre pomenutu tabelu za oba igrača. Treći igrač može u međuvremenu da inicira napad na drugog i stigne tamo pre prvog, čime opet utiče na količinu resursa kod sve trojice, ali nikakav problem, evidentiraš u nekoj drugoj tabeli id_napadaca i id_branioca i timestamp kada će doći do neke bitke (jer vojsci treba neko vreme da doputuje do drugog sela), i kad god neki igrač inicira napad na bilo koga, proveriš da li se onaj drugi igrač nalazi još negde u koloni id_branioca i da li je timestamp te bitke veći od timestampa ove bitke, i ako postoji ažuriraš resurse i za taj id_napadaca, jer znaš koliko će treći maznuti od drugog i koliko će drugi u međuvremenu generisati novih dok prvi ne stigne do njega, itd.

Ne znam da li sam uopšte uspeo da pomognem, ali kažem, kad sve shvatiš kao knjigovodstveni program, mnogo će ti sve biti jednostavnije za realizaciju...
 
Odgovor na temu

plus_minus

Član broj: 289459
Poruke: 2242
*.dynamic.isp.telekom.rs.

Sajt: https://hardcoder.xyz


+2247 Profil

icon Re: Generisanje resursa u minuti27.07.2013. u 05:35 - pre 130 meseci
Code (php):


 var_dump($_SERVER['REQUEST_TIME']); // php 5.1.++
 var_dump($_SERVER['REQUEST_TIME_FLOAT']); // php 5.4.++

 

about:networking
 
Odgovor na temu

enferty
student
Novi Sad

Član broj: 193582
Poruke: 113
*.dynamic.sbb.rs.



+1 Profil

icon Re: Generisanje resursa u minuti27.07.2013. u 10:28 - pre 130 meseci
Da, zaista je dosta pomoglo :) Hvala puno.
 
Odgovor na temu

gotivac
Kragujevac

Član broj: 26754
Poruke: 160
*.static.sbb.rs.



+2 Profil

icon Re: Generisanje resursa u minuti12.08.2013. u 10:47 - pre 130 meseci
Citat:
Radovan__III:
Citat:
gotivac: Najjednostavnije je da napraviš skriptu koja radi update u bazi (resursi su, pretpostavljam, u bazi) i da je staviš u cron job koji će se pokretati na svaki minut.


Dobro i sta ces ako imas vise razlicitih resursa, milion igraca i 5 razlicitih verzija igre ? Ima sve da se otvara po pola sata.



Onda ovako kako si ti napisao. Ne pratim online igre, pa nisam u toku da li se resursi generišu za određenog igrača, ili se generišu na zajedničkoj mapi koju posmatraju svi igrači.
 
Odgovor na temu

[es] :: PHP :: Generisanje resursa u minuti

[ Pregleda: 2849 | Odgovora: 6 ] > FB > Twit

Postavi temu Odgovori

Navigacija
Lista poslednjih: 16, 32, 64, 128 poruka.