Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:

takze pracujem na jednej hre v PHP nieco ako divokekmene alebo travian viac o hre si mozete pozret tu:
https://www.facebook.com/warfleets
mam tam bojoví script ktorý vyhodnocuje kto vyhral duel/bitku. v scripte su 2 polia objektov "lod" strana utocnika a obrancu cize je tam vela premennych a chcel by som to spravit tak aby suboj neprebehol okamzite ale kazdych 5 minut by prebehlo jedno kolo aby sa počas bitky mohli do súboja pridat další hráči.

je tam ciklus while v nom je pocitadlo a ked napocita do 10 000 prebehne jedno kolo súboja potom sa dobijú štíty energia a zase to pokračuje nejaké nápady ako to pozastavit na 5 minut ulozit doterajsi vypis do databazi a o 5 minut na to vypocitat dalsich 10 000 ciklov a tak dookola? nieco ako v ikariame ak niekto hral?

Odpovědět 19.2.2015 18:22
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
Nahoru Odpovědět  -2 19.2.2015 23:44
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:

ale tam bude asi problem s tym že ked sa do nejakej doby skript neukončí tak server hovypne automaticky...

Nahoru Odpovědět 19.2.2015 23:50
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:

mno trocha som pátral tym sleep by sa to dalo spraviť v prípade že by šlo v php použit thready čo mi nefunguje alebo niečo ako flush(); co mi tiez nefunguje :( takze stale cakam na nápady tu uz len devbook pomôže ( aspon dúfam :) )

Nahoru Odpovědět 20.2.2015 2:32
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
Richard
Člen
Avatar
Richard:

Návrh logiky co si popisoval mi nepřijde úplně OK - 10 000 průchodů cyklem? Počítám že tam jsou výpočty, což je vlastně brutálně špatnej návrh logiky. Použij matematiku tak, aby si jedním výpočtem dostal stejný výsledek jako při těch 10 000 průchodech.

Sleep ne, odpálilo by ti to server kvůli aktivním instancím, souboje ať zpracovává jeden skript, v db si udělej frontu a skript spouštěj cronem.

Nahoru Odpovědět  +1 20.2.2015 5:39
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:

ten cyklus je tam kôli výpočtu rýclosti strelbi zbrane takže nie v každom cykle je výpočet iba v každom 500 výpočte napríklad pokial má zbran vystrelit 20X za kolo v suboji sa počita strašne vela premennych ako mam urobiť frontu? o.O a cron je spustenie scriptu cez cmd? ale da sa to nastaviť tak aby suboj prebiehal kazdych 5 minut od jeho zaciatku a nie kazdych 5 minut ked sa spusti script na serveri?

Nahoru Odpovědět 20.2.2015 12:32
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
Fredep
Redaktor
Avatar
Odpovídá na DREAMDEV
Fredep:

Průběžné výsledky bitev si ukládej do databáze. Pokud se někdo připojí na tvojí stránku, spustí se skript, který načte z databáze průběžné výsledky a podle toho jak jsou staré je upraví (pokud budou staré 5 minut, provede další bitvu atd.) Poté je normálně vypíšeš..

Nahoru Odpovědět  +1 20.2.2015 15:08
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
DREAMDEV
Člen
Avatar
Odpovídá na Fredep
DREAMDEV:

mno ale čo s tymi premennými v bitke môže byť aj 20 objektov typu loď pričom každá obsahuje vela premenných to musim všetko ukladať do db? inak to vážne nejde? :(

Nahoru Odpovědět 20.2.2015 15:46
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
Richard
Člen
Avatar
Odpovídá na DREAMDEV
Richard:

Frontu uděláš tak, že si do db zapíšeš bitvy co jsou potřeba vypočítat.
Cron ti spustí určitou stránku - ta stránku načte z db frontu bitev vypočítá je, cron si můžeš spouštět každých 5 minut.

to musim všetko ukladať do db? inak to vážne nejde?

Po výpočtu se s výsledky bitvy stane co? Nezapisuješ je nikam?

Nahoru Odpovědět 20.2.2015 16:22
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
DREAMDEV
Člen
Avatar
Odpovídá na Richard
DREAMDEV:

hej zapíšem priebeh bitky ako text ale nezapisujem tam všetky premenné čo sa týka objektov lodí a tak...

Nahoru Odpovědět 20.2.2015 17:39
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Avatar
Fredep
Redaktor
Avatar
Odpovídá na DREAMDEV
Fredep:

Hele, musí to jít. Pokud tam máš vážně hodně objektů, máš to špatně napsáno. Nemusíš ukládat objekty. Jen pozice, životy a ostatní parametry. Zkus prvně popřemýšlet, zda to musí být naprogramováno tak složitě, jak popisuješ... ;)

Nahoru Odpovědět 20.2.2015 18:01
Týmová práce je důležitá proto, aby bylo možno obvinit z neúspěchu někoho jiného.
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:

hej musí :D

Nahoru Odpovědět 20.2.2015 19:33
"minulosť je na to aby si odhalil chyby ktoré sa stali a v prítomnosti ich opravil pre lepšiu budúcnosť" - Ja
Děláme co je v našich silách, aby byly zdejší diskuze co nejkvalitnější. Proto do nich také mohou přispívat pouze registrovaní členové. Pro zapojení do diskuze se přihlas. Pokud ještě nemáš účet, zaregistruj se, je to zdarma.

Zobrazeno 12 zpráv z 12.