| | |
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Autor | Správa |
---|
Registrovaný: 17.02.14 Prihlásený: 31.03.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
Ahojte, mám script, ktorý mi vypíše používateľov hrajúcich hru. V hre mám 6 frakcií, 3 z nich sa radia k USA (Spojencom) a ostatné k Nemecku (Osi). Chcel by som zadať podmienku, že používateľ nemôže zaútočiť na spriateľenú frakciu, teda frakcia 0 by nemohla zaútočiť na frakciu 3 a 5. Túto frakciu si vždy volí hráč pri registrácii. A samozrejme aj tie frakcie opačne, že 3 nemôže zaútočiť na 0 a na 5 a to isté pre 5 frakciu. Neviem kam by som if vnoril, lebo som to skúšal všade. Aj keď tam je podmienka, že ak je totožná frakcia pre útočníka a obrancu tak vypíše , že zaútočenie nie je možné. V elseif následne ale zaútoči, ak je iný stav. Teda dal som tam podmienku a vypísalo, že nie je možné zaútočiť, ale jednotka zaútočila. Tam by som to potreboval definovať. Neviem už ako, dokázali by ste mi pomôcť?? Prikladám aj kód, Ďakujem vám. Kód: if(!isset($_SESSION['uid'])){ echo "Musíš byť prihlásený!"; }else{ if(isset($_POST['attack2'])){ if($user['fraction'] == $attacked_user['fraction']){ output("Nemôžeš zaútočiť na svoju frakciu!"); }elseif($stats['battery'] >= 10 && $timer['atime'] == 0 && $stats['attack'] >= 10 && $_POST['attack1'] != "" && $_POST['attack1'] != $_SESSION['uid'] && is_numeric($_POST['attack1']) && $_POST['attack1'] <= $id['MAX(`id`)'] && $_POST['attack1'] > 0){ output("Bojovníci začali útok!"); $azarobok1 = 0; $azarobok2 = 0; $atime = time(); $working['ayes'] = $atime; $stats['battery'] -= 10; $stats['rank'] += 4; $timer['atime'] = 1; $info1 = mysql_query("SELECT `id` FROM `stats` WHERE `id`='".$_POST['attack1']."'") or die(mysql_error()); $info2 = mysql_fetch_assoc($info1); $info3 = $info2['id']; $update_working = mysql_query("UPDATE `working` SET `ayes`='".$working['ayes']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `battery`='".$stats['battery']."',`rank`='".$stats['rank']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_timer = mysql_query("UPDATE `timer` SET `atime`='".$timer['atime']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_ranking = mysql_query("UPDATE `ranking` SET `number`='".$info3."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); }elseif((time() - $working['ayes']) >= 600 && $timer['atime'] == 1){ $info1 = mysql_query("SELECT `number` FROM `ranking` WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $info2 = mysql_fetch_assoc($info1); $info3 = $info2['number']; $info4 = mysql_query("SELECT `defense`,`food`,`gold` FROM `stats` WHERE `id`='".$info3."'") or die(mysql_error()); $info5 = mysql_fetch_assoc($info4); if($stats['attack'] > $info5['defense']){ $azarobok1 = round($info5['food'] / 2); $azarobok2 = round($info5['gold'] / 2); output("Získal si ".$azarobok1." jedla a ".$azarobok2." zlata!"); $atime = 0; $working['ayes'] = $atime; $stats['food'] += $azarobok1; $stats['gold'] += $azarobok2; if($azarobok1 > 0){ $stats['rank'] += 1; } if($azarobok2 > 0){ $stats['rank'] += 1; } $info5['food'] -= $azarobok1; $info5['gold'] -= $azarobok2; $azarobok1 = 0; $azarobok2 = 0; $timer['atime'] = 0; $update_working = mysql_query("UPDATE `working` SET `ayes`='".$working['ayes']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `food`='".$stats['food']."',`gold`='".$stats['gold']."',`rank`='".$stats['rank']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `food`='".$info5['food']."',`gold`='".$info5['gold']."' WHERE `id`='".$info3."'") or die(mysql_error()); $update_timer = mysql_query("UPDATE `timer` SET `atime`='".$timer['atime']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); }elseif($stats['attack'] <= $info5['defense']){ output("Bojovníci sa vzdali!"); $atime = 0; $working['ayes'] = $atime; $timer['atime'] = 0; $update_working = mysql_query("UPDATE `working` SET `ayes`='".$working['ayes']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_timer = mysql_query("UPDATE `timer` SET `atime`='".$timer['atime']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); } }elseif($timer['atime'] == 0){ if($stats['attack'] == 0){ output("Nemáš žiaden útok!"); }elseif($stats['battery'] < 10){ output("Nemáš dostatok baterky!"); }elseif($_POST['attack1'] == "" | $_POST['attack1'] == $_SESSION['uid'] | !is_numeric($_POST['attack1']) | $_POST['attack1'] > $id['MAX(`id`)'] | $_POST['attack1'] <= 0){ output("Toto nieje dobre číslo starostu!"); } }else{ $zostava = (600 - (time() - $working['ayes'])); output("Musíš počkať ".$zostava." sekúnd."); } } if(isset($_POST['askip'])){ if((time() - $working['ayes']) >= 600){ output("Bojovníci už skončili svoj útok!"); }elseif($stats['battery'] >= 10){ $info1 = mysql_query("SELECT `number` FROM `ranking` WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $info2 = mysql_fetch_assoc($info1); $info3 = $info2['number']; $info4 = mysql_query("SELECT `defense`,`food`,`gold` FROM `stats` WHERE `id`='".$info3."'") or die(mysql_error()); $info5 = mysql_fetch_assoc($info4); if($stats['attack'] > $info5['defense']){ $azarobok1 = round($info5['food'] / 2); $azarobok2 = round($info5['gold'] / 2); output("Získal si ".$azarobok1." jedla a ".$azarobok2." zlata!"); $atime = 0; $working['ayes'] = $atime; $stats['food'] += $azarobok1; $stats['gold'] += $azarobok2; if($azarobok1 > 0){ $stats['rank'] += 1; } if($azarobok2 > 0){ $stats['rank'] += 1; } $info5['food'] -= $azarobok1; $info5['gold'] -= $azarobok2; $azarobok1 = 0; $azarobok2 = 0; $stats['battery'] -= 10; $stats['rank'] += 4; $timer['atime'] = 0; $update_working = mysql_query("UPDATE `working` SET `ayes`='".$working['ayes']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `food`='".$stats['food']."',`gold`='".$stats['gold']."',`rank`='".$stats['rank']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `food`='".$info5['food']."',`gold`='".$info5['gold']."' WHERE `id`='".$info3."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `battery`='".$stats['battery']."',`rank`='".$stats['rank']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error());//new $update_timer = mysql_query("UPDATE `timer` SET `atime`='".$timer['atime']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); }elseif($stats['attack'] <= $info5['defense']){ output("Bojovníci sa vzdali!"); $atime = 0; $working['ayes'] = $atime; $stats['battery'] -= 10; $stats['rank'] += 4; $timer['atime'] = 0; $update_working = mysql_query("UPDATE `working` SET `ayes`='".$working['ayes']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); $update_stats = mysql_query("UPDATE `stats` SET `battery`='".$stats['battery']."',`rank`='".$stats['rank']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error());//new $update_timer = mysql_query("UPDATE `timer` SET `atime`='".$timer['atime']."' WHERE `id`='".$_SESSION['uid']."'") or die(mysql_error()); } }else{ output("Nemáš dostatok baterky!"); } } ?> <center><h2>Majori</h2></center> <br /> <form action="rankings.php" method="post"> <td><input type="text" name="attack1"></td> <?php if($timer['atime'] == 0){?> <td><button type="submit" name="attack2" class="btn btn-success">Zaútočiť (10% Batérie)</button></td><?php }else{?> <td><button type="submit" name="attack2" class="btn btn-warning">Skontrolovať</button></td><?php if((time() - $working['ayes']) < 600){?> <td><button type="submit" name="askip" class="btn btn-danger">Preskočiť (10% Batérie)</button></td><?php } } ?> </form> <table cellpadding="2" cellspacing="4"> <tr> <td><img src="images/rank.png"></td> <td width="100px">Pozícia:</td> <td><img src="images/number.png"></td> <td width="100px">Číslo:</td> <td><img src="images/mayor.png"></td> <td width="100px">Starosta:</td> <td><img src="images/food.png"></td> <td width="100px">Jedlo:</td> <td><img src="images/gold.png"></td> <td width="100px">Zlato:</td> </tr> <?php $mayors = mysql_query("SELECT `rank`,`id`,`food`,`gold`,`b4` FROM `stats` WHERE `rank`>='0' ORDER BY `rank` DESC,`id` ASC") or die(mysql_error()); $rank = 1; while($line = mysql_fetch_assoc($mayors)){ echo "<tr>"; echo "<td><td><i>" . $rank . ". (" . $line['rank'] . ")" . "</i></td></td>"; $rank++; echo "<td><td><i>" . $line['id'] . "</i></td></td>"; $get_mayor = mysql_query("SELECT * FROM `user` WHERE `id`='".$line['id']."'") or die(mysql_error()); $mayor = mysql_fetch_assoc($get_mayor); ?><td><img src="images/fraction<?php echo $mayor['fraction']; ?>.png" style="width: 30px; height: 32px;"/></td><td><i><a <?php if($line['b4'] == 1){ ?>style="color: #2196F3;"<?php } ?> href="mayor.php?<?php echo $line['id']; ?>"><?php echo $mayor['username']; ?></a></i></td></td><?php echo "<td><td><i>" . $line['food'] . "</i></td></td>"; echo "<td><td><i>" . $line['gold'] . "</i></td></td>"; echo "</tr>"; } ?> </table> <?php }?> Potreboval by som definovať toto: if($user['fraction'] == 0) { if($attacked_user['fraction']== 3){ output("Nemôžeš zaútočiť spojeneckú frakciu!"); }} Ďakujem za každú pomoc, už si neviem pomôcť POTREBOVAL BY SOM TO INTEGROVAŤ NIEKDE TU!! if(isset($_POST['attack2'])){ if($user['fraction'] == $attacked_user['fraction']){ output("Nemôžeš zaútočiť na svoju frakciu!"); }elseif($stats['battery'] >= 10 && $timer['atime'] == 0 && $stats['attack'] >= 10 && $_POST['attack1'] != "" && $_POST['attack1'] != $_SESSION['uid'] && is_numeric($_POST['attack1']) && $_POST['attack1'] <= $id['MAX(`id`)'] && $_POST['attack1'] > 0){ output("Bojovníci začali útok!");// Spojený príspevok Pon 30.05.16 20:26 Nech skúšam ako skúšam, vždy tento výsledok aj keď dám podmienku nad ten output.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Ten kód je žart, však? Toľko problémov v jednej ukážke som už veľmi dlho nevidel. Nech sa učíš z akejkoľvek knihy, spáľ ju a zakop 50m pod zem.
_________________ C#, PHP, ... |
|
Registrovaný: 17.02.14 Prihlásený: 31.03.24 Príspevky: 450 Témy: 198 Bydlisko: Poprad-okolie |
Ďakujem za komentár fakt k téme.
|
|
Registrovaný: 24.01.08 Prihlásený: 13.09.17 Príspevky: 14572 Témy: 66 Bydlisko: Žilina |
Je to k téme, pretože keby si sa to naučil poriadne a mal prehľadný kód, tak sem nemusíš prísť s otázkou "chcem tam pridať vnorenú podmienku". Pri takto zle napísanom kóde sa ti vôbec nečudujem, že nevieš čo s tým. Máš to deravé, zastaralé a veľmi veľa zlých návykov. Miešanie css, html, php, databázového prístupu, získavania dát od užívateľa atď atď. Naozaj ti nedokážem odporučiť s čistým svedomím nič iné ako si to proste naštudovať poriadne a prísť sem, keď nebude treba študovať 300 riadkov zdrojáku kvôli jednej malej podmienke. Hlavne ak to nebude stránka na tvojom lokálnom PC a bude mať k tomu prístup viac ľudí. Stačilo by keby tvoj hosting spravil povedzme už len upgrade na najnovšiu verziu PHP a tvoja stránka skončila.
_________________ C#, PHP, ... |
|
Registrovaný: 17.07.11 Prihlásený: 29.12.20 Príspevky: 1516 Témy: 3 | Napísal BX: 31.05.2016 7:25 | |
|
Súhlasím s Waltherom. V tom kóde sa vyznáš len ty a nikto iný. Naposledy som takúto žížalu videl, keď som opravoval webovú aplikáciu napísanú matfyzákom. Celé zle. Najlepšie naozaj urobíš, keď to celé prepíšeš. Teraz sa v tom vyznáš iba ty, o mesiac už sa v tom nebudeš vyznať ani ty. Daj tomu nejakú štruktúru, obaľuj čo najviac funkcionality do zmysluplne nazývaných funkcií. Oddeľ html od php - úplne. Jediný php kód v html by mali byť echo, if a foreach. Používaj viac súborov, nemusí byť všetko v jednom. Include je kamarát. No a k veci: je hlúposť testovať v podmienke každú frakciu s každou. Radšej to urob nejako takto Kód: function isFriend( $myFraction, $attackFraction ) {
$friends = [ [0,3,5], [2,4] ];
foreach( $friends as $f ) { if( in_array($myFraction, $f) && in_array($attackFraction, $f) ) return true; }
return false; }
A toto dáš do podmienky na správne miesto. Ale kde je to správne miesto, to tušíš len ty.
_________________ Na súkromné správy týkajúce sa problémov, ktoré sa riešia vo fóre, neodpovedám! |
|
| Stránka: 1 z 1
| [ Príspevkov: 5 ] | |
Podobné témy | Témy | Odpovede | Zobrazenia | Posledný príspevok |
---|
| neviem najst svoju temu kam ste ju premiestnili v Správy pre vedenie fóra | 1 | 991 | 15.11.2008 10:35 JanoF | | vnorenie stranky do stranky v JavaScript, VBScript, Ajax | 1 | 756 | 26.02.2011 23:27 walther | | podmienky v PHP, ASP | 16 | 827 | 26.02.2008 20:25 emer | | Podmienky v Assembler, C, C++, Pascal, Java | 8 | 561 | 23.11.2016 21:39 focko | | Licencne podmienky v Ostatné | 1 | 587 | 03.06.2011 21:17 emer | | podmienky tlaciarne v Grafické programy | 0 | 717 | 01.04.2008 18:06 Kamahl | | Podmienky pouzivania Youtube. v Služby a webstránky | 7 | 678 | 21.02.2012 12:44 walther | | Excel 2 podmienky v Ostatné programy | 2 | 346 | 13.12.2013 19:02 bizmos | | MYSQL vypis podmienky v Databázy | 6 | 788 | 07.09.2010 20:15 camo | | if empty - podmienky v PHP, ASP | 2 | 450 | 27.01.2010 13:09 davider137 | | jQuery a podmienky v JavaScript, VBScript, Ajax | 2 | 612 | 09.04.2009 22:33 Flety | | Podmienky používania (programy) v Krčma | 5 | 442 | 29.07.2012 22:52 eMp | | PHP a podmienky v PHP, ASP | 5 | 641 | 13.11.2007 10:01 mondzo | | google maps podmienky v Ostatné | 2 | 1170 | 22.07.2011 16:32 jablko05 | | Alza a záručné podmienky v Obchody, reklamácie a právo | 4 | 451 | 10.04.2014 22:26 winyx | | podmienky pre kupu zdroja v PC skrinky, zdroje a všetky druhy chladenia | 1 | 406 | 08.02.2009 19:28 OmeGa |
| Nemôžete zakladať nové témy v tomto fóre Nemôžete odpovedať na témy v tomto fóre Nemôžete upravovať svoje príspevky v tomto fóre Nemôžete mazať svoje príspevky v tomto fóre
|
|