Vydělávej až 160.000 Kč měsíčně! Akreditované rekvalifikační kurzy s garancí práce od 0 Kč. Více informací.
Hledáme nové posily do ITnetwork týmu. Podívej se na volné pozice a přidej se do nejagilnější firmy na trhu - Více informací.

Diskuze: Battle script nápady?

Aktivity
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:19.2.2015 18:22

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
Avatar
Odpovídá na DREAMDEV
Michal Šmahel:19.2.2015 23:44

Přes sleep() by to nešlo??

Nahoru Odpovědět
19.2.2015 23:44
Nejdůležitější je motivace, ovšem musí být doprovázena činy.
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:19.2.2015 23:50

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
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:20.2.2015 2:32

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
Avatar
Richard
Člen
Avatar
Richard:20.2.2015 5:39

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
20.2.2015 5:39
$action = $_GET['Life']; | Když dáš mínus, napiš proč!
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:20.2.2015 12:32

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
Avatar
Odpovídá na DREAMDEV
Neaktivní uživatel:20.2.2015 15:08

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
20.2.2015 15:08
Neaktivní uživatelský účet
Avatar
DREAMDEV
Člen
Avatar
Odpovídá na Neaktivní uživatel
DREAMDEV:20.2.2015 15:46

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
Avatar
Richard
Člen
Avatar
Odpovídá na DREAMDEV
Richard:20.2.2015 16:22

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:20.2.2015 17:39

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
Avatar
Odpovídá na DREAMDEV
Neaktivní uživatel:20.2.2015 18:01

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
Neaktivní uživatelský účet
Avatar
DREAMDEV
Člen
Avatar
DREAMDEV:20.2.2015 19:33

hej musí :D

 
Nahoru Odpovědět
20.2.2015 19:33
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.