fight.php (33800B)
1 <?php // fight.php :: Les fonctions essentielles aux combats. 2 3 function fight() { 4 5 global $userrow, $controlrow; 6 7 $page ='<img src="images/jeu/actions/combat.jpg" width="580" height="82" alt="En combat"><br><br>'; 8 9 if ($userrow["currentaction"] != "En combat") { 10 $page .='<span class="alerte">Erreur de manipulation!</span><br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner au jeu</a>'; 11 }else{ 12 $pagearray = array(); 13 $playerisdead = 0; 14 15 $magiclist = null; 16 $userspells = explode(",",$userrow["spells"]); 17 $spellquery = doquery("SELECT id,name FROM {{table}}", "spells"); 18 while ($spellrow = mysql_fetch_array($spellquery)) { 19 $spell = false; 20 foreach ($userspells as $a => $b) { 21 if ($b == $spellrow["id"]) { $spell = true; } 22 } 23 if ($spell == true) { 24 $magiclist .= "<option value=\"".$spellrow["id"]."\">".$spellrow["name"]."</option>\n"; 25 } 26 unset($spell); 27 } 28 if ($magiclist == null) { $magiclist = '<option value="0">Aucun sort</option>'; } 29 30 31 $chancetoswingfirst = 1; 32 33 if ($userrow["currentfight"] == 1) { 34 35 if ($userrow["latitude"] < 0) { $userrow["latitude"] *= -1; } 36 if ($userrow["longitude"] < 0) { $userrow["longitude"] *= -1; } 37 $maxlevel = floor(max($userrow["latitude"]+5, $userrow["longitude"]+5) / 5); 38 if ($maxlevel < 1) { $maxlevel = 1; } 39 $minlevel = $maxlevel - 2; 40 if ($minlevel < 1) { $minlevel = 1; } 41 42 $monsterquery = doquery("SELECT * FROM {{table}} WHERE level>='$minlevel' AND level<='$maxlevel' ORDER BY RAND() LIMIT 1", "monsters"); 43 $monsterrow = mysql_fetch_array($monsterquery); 44 $userrow["currentmonster"] = $monsterrow["id"]; 45 $userrow["currentmonsterhp"] = rand((($monsterrow["maxhp"]/5)*4),$monsterrow["maxhp"]); 46 if ($userrow["difficulty"] == 2) { $userrow["currentmonsterhp"] = ceil($userrow["currentmonsterhp"] * $controlrow["diff2mod"]); } 47 if ($userrow["difficulty"] == 3) { $userrow["currentmonsterhp"] = ceil($userrow["currentmonsterhp"] * $controlrow["diff3mod"]); } 48 $userrow["currentmonstersleep"] = 0; 49 $userrow["currentmonsterimmune"] = $monsterrow["immune"]; 50 51 $chancetoswingfirst = rand(1,10) + ceil(sqrt($userrow["dexterity"])); 52 if ($chancetoswingfirst > (rand(1,7) + ceil(sqrt($monsterrow["maxdam"])))) { $chancetoswingfirst = 1; } else { $chancetoswingfirst = 0; } 53 54 //Enregistrement dans l'historique. 55 $history = doquery("INSERT INTO {{table}} SET time='".time()."', content='<p><span class=\"mauve1\">".$userrow['charname']."</span> est en train de combattre le monstre <span class=\"mauve2\">".$monsterrow['name']."</span></p>', charname='" . $userrow['charname'] . "'", "history"); 56 57 unset($monsterquery); 58 unset($monsterrow); 59 60 } 61 62 $monsterquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["currentmonster"]."' LIMIT 1", "monsters"); 63 $monsterrow = mysql_fetch_array($monsterquery); 64 65 if (isset($_POST["run"])) { 66 67 $chancetorun = rand(4,10) + ceil(sqrt($userrow["dexterity"])); 68 if ($chancetorun > (rand(1,5) + ceil(sqrt($monsterrow["maxdam"])))) { $chancetorun = 1; } else { $chancetorun = 0; } 69 70 //Enregistrement dans l'historique. 71 $history = doquery("INSERT INTO {{table}} SET time='".time()."', content='<p><span class=\"mauve1\">".$userrow['charname']."</span> a fuit le combat, contre le monstre <span class=\"mauve2\">".$monsterrow['name']."</span></p>', charname='" . $userrow['charname'] . "'", "history"); 72 73 if ($chancetorun == 0) { 74 $page.= 'Vous avez essayé de prendre la fuite, mais avez été bloqués par l\'avant!<br>Le monstre <b>'.$monsterrow['name'].'</b> ne semble pas être décidé à vous laisser partir.<br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner au combat/a>'; 75 $monsterturn = null; 76 if ($userrow["currentmonstersleep"] != 0) { 77 $chancetowake = rand(1,15); 78 if ($chancetowake > $userrow["currentmonstersleep"]) { 79 $userrow["currentmonstersleep"] = 0; 80 $monsterturn = 'Le monstre s\'est réveillé, garde à vous!<br>'; 81 } else { 82 $monsterturn = 'Le monstre est toujours endormi, profitez en!<br>'; 83 } 84 } 85 if ($userrow["currentmonstersleep"] == 0) { 86 $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"])); 87 if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); } 88 if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); } 89 $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4); 90 $tododge = rand(1,150); 91 if ($tododge <= sqrt($userrow["dexterity"])) { 92 $tohit = 0; 93 $monsterturn = 'Vous avez esquivé l\'attaque du monstre. Il n\'y a eu aucun dommage constaté sur '.$userrow['charname'].'.<br>'; 94 $persondamage = 0; 95 } else { 96 $persondamage = $tohit - $toblock; 97 if ($persondamage < 1) { $persondamage = 1; } 98 if ($userrow["currentuberdefense"] != 0) { 99 $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100)); 100 } 101 if ($persondamage < 1) { $persondamage = 1; } 102 } 103 $monsterturn = 'En attaquant, le monstre a occasionné <span class="mauve2"><b>'.$persondamage.' HP</b></span> de dommage sur '.$userrow['charname'].'.<br>'; 104 $userrow["currenthp"] -= $persondamage; 105 if ($userrow["currenthp"] <= 0) { 106 $newgold = ceil($userrow["gold"]/2); 107 $newhp = ceil($userrow["maxhp"]/4); 108 $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='En ville',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 109 $playerisdead = 1; 110 } 111 } 112 } 113 114 $updatequery = doquery("UPDATE {{table}} SET currentaction='En exploration', currentuberdamage='0', currentuberdefense='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 115 header("Location: index.php"); 116 die(); 117 118 } elseif (isset($_POST["fight"])) { 119 120 $yourturn = null; 121 $tohit = ceil(rand($userrow["attackpower"]*.75,$userrow["attackpower"])/3); 122 $toexcellent = rand(1,150); 123 if ($toexcellent <= sqrt($userrow["strength"])) { $tohit *= 2; $yourturn= '<b>Excellente attaque!</b><br><br>'; } 124 $toblock = ceil(rand($monsterrow["armor"]*.75,$monsterrow["armor"])/3); 125 $tododge = rand(1,200); 126 if ($tododge <= sqrt($monsterrow["armor"])) { 127 $tohit = 0; 128 $yourturn = 'Le monstre à esquivé votre attaque. Malheuresement il n\'y a eu aucun dommage sur lui.<br><br>'; 129 $monsterdamage = 0; 130 } else { 131 $monsterdamage = $tohit - $toblock; 132 if ($monsterdamage < 1) { $monsterdamage = 1; } 133 if ($userrow["currentuberdamage"] != 0) { 134 $monsterdamage += ceil($monsterdamage * ($userrow["currentuberdamage"]/100)); 135 } 136 } 137 $yourturn = 'Votre attaque sur le monstre a accasionné <span class="mauve2"><b>'.$monsterdamage.' HP</b></span> de dommage sur lui.<br><br>'; 138 $userrow["currentmonsterhp"] -= $monsterdamage; 139 if ($userrow["currentmonsterhp"] <= 0) { 140 $updatequery = doquery("UPDATE {{table}} SET currentmonsterhp='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 141 header("Location: index.php?do=victory"); 142 die(); 143 } 144 145 $monsterturn = null; 146 if ($userrow["currentmonstersleep"] != 0) { 147 $chancetowake = rand(1,15); 148 if ($chancetowake > $userrow["currentmonstersleep"]) { 149 $userrow["currentmonstersleep"] = 0; 150 $monsterturn = 'Le monstre s\'est réveillé, garde à vous!<br>'; 151 } else { 152 $monsterturn = 'Le monstre est toujours endormi, profitez en!<br>'; 153 } 154 } 155 if ($userrow["currentmonstersleep"] == 0) { 156 $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"])); 157 if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); } 158 if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); } 159 $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4); 160 $tododge = rand(1,150); 161 if ($tododge <= sqrt($userrow["dexterity"])) { 162 $tohit = 0; $monsterturn = 'Vous avez esquivé l\'attaque du monstre. Il n\'y a eu aucun dommage constaté sur '.$userrow['charname'].'.<br>'; 163 $persondamage = 0; 164 } else { 165 $persondamage = $tohit - $toblock; 166 if ($persondamage < 1) { $persondamage = 1; } 167 if ($userrow["currentuberdefense"] != 0) { 168 $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100)); 169 } 170 if ($persondamage < 1) { $persondamage = 1; } 171 } 172 $monsterturn = 'En attaquant, le monstre a occasionné <span class="mauve2"><b>'.$persondamage.' HP</b></span> de dommage sur '.$userrow['charname'].'.<br>'; 173 $userrow["currenthp"] -= $persondamage; 174 if ($userrow["currenthp"] <= 0) { 175 $newgold = ceil($userrow["gold"]/2); 176 $newhp = ceil($userrow["maxhp"]/4); 177 $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='En ville',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 178 $playerisdead = 1; 179 } 180 } 181 182 183 } elseif (isset($_POST["spell"])) { 184 $monsterturn = null; 185 $pickedspell = $_POST["userspell"]; 186 187 $newspellquery = doquery("SELECT * FROM {{table}} WHERE id='$pickedspell' LIMIT 1", "spells"); 188 $newspellrow = mysql_fetch_array($newspellquery); 189 190 $spell = false; 191 foreach($userspells as $a => $b) { 192 if ($b == $pickedspell) { $spell = true; } 193 } 194 195 if ($pickedspell == 0) { $yourturn ='<span class="alerte">Erreur: Vous devez tout d\'abord choisir un sort dans la liste.</span><br>';} 196 elseif ($spell != true) { $yourturn='<span class="alerte">Erreur: Vous n\'avez pas encore appris ce sort.</span><br>'; } 197 elseif($userrow["currentmp"] < $newspellrow["mp"]) { $yourturn ='<span class="alerte">Erreur: Vous n\'avez pas assez de points de magie (<span class="mauve1"><b>MP</b></span>) pour éxécuter ce sort.</span><br>'; }else{ 198 199 if ($newspellrow["type"] == 1) { 200 $newhp = $userrow["currenthp"] + $newspellrow["attribute"]; 201 if ($userrow["maxhp"] < $newhp) { $newspellrow["attribute"] = $userrow["maxhp"] - $userrow["currenthp"]; $newhp = $userrow["currenthp"] + $newspellrow["attribute"]; } 202 $userrow["currenthp"] = $newhp; 203 $userrow["currentmp"] -= $newspellrow["mp"]; 204 $yourturn = 'En éxécutant le sort <b>'.$newspellrow['name'].'</b>, '.$userrow['charname'].' a gagné <span class="mauve2"><b>'.$newspellrow['attribute'].' HP</b></span>.<br><br>'; 205 } elseif ($newspellrow["type"] == 2) { 206 if ($userrow["currentmonsterimmune"] == 0) { 207 $monsterdamage = rand((($newspellrow["attribute"]/6)*5), $newspellrow["attribute"]); 208 $userrow["currentmonsterhp"] -= $monsterdamage; 209 $yourturn = 'En éxécutant le sort <b>'.$newspellrow['name'].'</b>, '.$userrow['charname'].' a fait <span class="mauve2"><b>'.$monsterdamage.' HP</b></span> de dommage sur le monstre.<br><br>'; 210 } else { 211 $yourturn = 'Vous avez éxécuté le sort <b>'.$newspellrow['name'].'</b>, mais le monstre est malheuresement immunisé contre ca.<br><br>'; 212 } 213 $userrow["currentmp"] -= $newspellrow["mp"]; 214 } elseif ($newspellrow["type"] == 3) { 215 if ($userrow["currentmonsterimmune"] != 2) { 216 $userrow["currentmonstersleep"] = $newspellrow["attribute"]; 217 $yourturn = 'En éxécutant le sort <b>'.$newspellrow['name'].'</b>, le montre s\'est soudainement endormi.<br><br>'; 218 } else { 219 $yourturn = 'Vous avez éxécuté le sort '.$newspellrow['name'].', mais le monstre est malheuresement immunisé contre ca.<br><br>'; 220 } 221 $userrow["currentmp"] -= $newspellrow["mp"]; 222 } elseif ($newspellrow["type"] == 4) { 223 $userrow["currentuberdamage"] = $newspellrow["attribute"]; 224 $userrow["currentmp"] -= $newspellrow["mp"]; 225 $yourturn = 'En éxécutant le sort <b>'.$newspellrow['name'].'</b>, vous avez augmenté votre attaque de <b>'.$newspellrow['attribute'].'%</b> et ceci jusqu\'à la fin du combat. Vos points de magie ont par ailleur baissé de <span class="mauve1"><b>'.$newspellrow['attribute'].' MP</b></span>.<br><br>'; 226 } elseif ($newspellrow["type"] == 5) { 227 $userrow["currentuberdefense"] = $newspellrow["attribute"]; 228 $userrow["currentmp"] -= $newspellrow["mp"]; 229 $yourturn = 'En éxécutant le sort <b>'.$newspellrow['name'].'</b>, vous avez augmenté votre défense de <b>'.$newspellrow['attribute'].'%</b> et ceci jusqu\'à la fin du combat. Vos points de magie ont par ailleur baissé de <span class="mauve1"><b>'.$newspellrow['attribute'].' MP</b></span>.<br><br>'; 230 } 231 232 if ($userrow["currentmonsterhp"] <= 0) { 233 $updatequery = doquery("UPDATE {{table}} SET currentmonsterhp='0',currenthp='".$userrow["currenthp"]."',currentmp='".$userrow["currentmp"]."' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 234 header("Location: index.php?do=victory"); 235 die(); 236 237 } 238 $monsterturn = null; 239 if ($userrow["currentmonstersleep"] != 0) { 240 $chancetowake = rand(1,15); 241 if ($chancetowake > $userrow["currentmonstersleep"]) { 242 $userrow["currentmonstersleep"] = 0; 243 $monsterturn = 'Le monstre s\'est réveillé, garde à vous!<br>'; 244 } else { 245 $monsterturn = 'Le monstre est toujours endormi, profitez en!<br>'; 246 } 247 } 248 if ($userrow["currentmonstersleep"] == 0) { 249 $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"])); 250 if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); } 251 if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); } 252 $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4); 253 $tododge = rand(1,150); 254 if ($tododge <= sqrt($userrow["dexterity"])) { 255 $tohit = 0; 256 $monsterturn = 'Vous avez esquivé l\'attaque du monstre. Il n\'y a eu aucun dommage constaté sur '.$userrow['charname'].'.<br>'; 257 $persondamage = 0; 258 } else { 259 if ($tohit <= $toblock) { $tohit = $toblock + 1; } 260 $persondamage = $tohit - $toblock; 261 if ($userrow["currentuberdefense"] != 0) { 262 $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100)); 263 } 264 if ($persondamage < 1) { $persondamage = 1; } 265 } 266 $monsterturn = 'En attaquant, le monstre a occasionné <span class="mauve2"><b>'.$persondamage.' HP</b></span> de dommage sur '.$userrow['charname'].'.<br>'; 267 $userrow["currenthp"] -= $persondamage; 268 if ($userrow["currenthp"] <= 0) { 269 $newgold = ceil($userrow["gold"]/2); 270 $newhp = ceil($userrow["maxhp"]/4); 271 $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='En ville',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 272 $playerisdead = 1; 273 } 274 } 275 } 276 } elseif ( $chancetoswingfirst == 0 ) { 277 $yourturn = 'Le monstre a attaqué avant que vous soyez prêt!<br><br>'; 278 279 $monsterturn = null; 280 if ($userrow["currentmonstersleep"] != 0) { 281 $chancetowake = rand(1,15); 282 if ($chancetowake > $userrow["currentmonstersleep"]) { 283 $userrow["currentmonstersleep"] = 0; 284 $monsterturn = 'Le monstre s\'est réveillé, garde à vous!<br>'; 285 } else { 286 $monsterturn = 'Le monstre est toujours endormi, profitez en!<br>'; 287 } 288 } 289 if ($userrow["currentmonstersleep"] == 0) { 290 $tohit = ceil(rand($monsterrow["maxdam"]*.5,$monsterrow["maxdam"])); 291 if ($userrow["difficulty"] == 2) { $tohit = ceil($tohit * $controlrow["diff2mod"]); } 292 if ($userrow["difficulty"] == 3) { $tohit = ceil($tohit * $controlrow["diff3mod"]); } 293 $toblock = ceil(rand($userrow["defensepower"]*.75,$userrow["defensepower"])/4); 294 $tododge = rand(1,150); 295 if ($tododge <= sqrt($userrow["dexterity"])) { 296 $tohit = 0; 297 $monsterturn = 'Vous avez esquivé l\'attaque du monstre. Il n\'y a eu aucun dommage constaté sur '.$userrow['charname'].'.<br>'; 298 $persondamage = 0; 299 } else { 300 $persondamage = $tohit - $toblock; 301 if ($persondamage < 1) { $persondamage = 1; } 302 if ($userrow["currentuberdefense"] != 0) { 303 $persondamage -= ceil($persondamage * ($userrow["currentuberdefense"]/100)); 304 } 305 if ($persondamage < 1) { $persondamage = 1; } 306 } 307 $monsterturn = 'En attaquant, le monstre a occasionné <span class="mauve2"><b>'.$persondamage.' HP</b></span> de dommage sur '.$userrow['charname'].'.<br>'; 308 $userrow["currenthp"] -= $persondamage; 309 if ($userrow["currenthp"] <= 0) { 310 $newgold = ceil($userrow["gold"]/2); 311 $newhp = ceil($userrow["maxhp"]/4); 312 $updatequery = doquery("UPDATE {{table}} SET currenthp='$newhp',currentaction='En ville',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentfight='0',latitude='0',longitude='0',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 313 $playerisdead = 1; 314 } 315 } 316 317 } else { 318 $yourturn = null; 319 $monsterturn = null; 320 } 321 322 $newmonster = $userrow["currentmonster"]; 323 $newmonsterhp = $userrow["currentmonsterhp"]; 324 $newmonstersleep = $userrow["currentmonstersleep"]; 325 $newmonsterimmune = $monsterrow["immune"]; 326 $newuberdamage = $userrow["currentuberdamage"]; 327 $newuberdefense = $userrow["currentuberdefense"]; 328 $newfight = $userrow["currentfight"] + 1; 329 $newhp = $userrow["currenthp"]; 330 $newmp = $userrow["currentmp"]; 331 332 if ($playerisdead != 1) { 333 334 $page .=' 335 Vous êtes en train de combattre un <b>'.$monsterrow['name'].'</b> (Niv.: '.$monsterrow['level'].', <span class="mauve2">HP: <b>'.$userrow['currentmonsterhp'].'</b> /'.$monsterrow['maxhp'].'</span>)<br><br> 336 '.$yourturn.' 337 '.$monsterturn.'<br> 338 Que voulez vous faire?<br><br> 339 <form action="index.php?do=fight" method="post"><div> 340 <img src="images/jeu/puce3.gif" alt=""> <input type="submit" name="fight" value="Attaquer"><br><br> 341 <img src="images/jeu/puce3.gif" alt=""> <select name="userspell"><option value="0">Les Sorts</option>'.$magiclist.'</select><input type="submit" name="spell" value="Exécuter"><br><br> 342 <img src="images/jeu/puce3.gif" alt=""> <input type="submit" name="run" value="Fuire le combat"><br><br></div> 343 </form> 344 '; 345 $updatequery = doquery("UPDATE {{table}} SET currentaction='En combat',currenthp='$newhp',currentmp='$newmp',currentfight='$newfight',currentmonster='$newmonster',currentmonsterhp='$newmonsterhp',currentmonstersleep='$newmonstersleep',currentmonsterimmune='$newmonsterimmune',currentuberdamage='$newuberdamage',currentuberdefense='$newuberdefense' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 346 } else { 347 $page .= '<b>Vous venez de mourrir!</b><br><br>Par conséquent, vous avez perdu la moitié de vos rubis. Cependant, vous avez gardé une partie de vos points de voyage (<span class="rouge1"><b>TP</b></span>), pour continuer à explorer le monde.<br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner en exploration</a>'; 348 349 } 350 } 351 352 display($page, 'En combat'); 353 354 } 355 356 function victory() { 357 358 global $userrow, $controlrow; 359 360 $page ='<img src="images/jeu/actions/combat.jpg" width="580" height="82" alt="En combat"><br><br>'; 361 362 if ($userrow["currentmonsterhp"] != 0) { header("Location: index.php?do=fight"); die(); } 363 if ($userrow["currentfight"] == 0) { header("Location: index.php"); die(); } 364 365 $monsterquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["currentmonster"]."' LIMIT 1", "monsters"); 366 $monsterrow = mysql_fetch_array($monsterquery); 367 368 $exp = rand((($monsterrow["maxexp"]/6)*5),$monsterrow["maxexp"]); 369 if ($exp < 1) { $exp = 1; } 370 if ($userrow["difficulty"] == 2) { $exp = ceil($exp * $controlrow["diff2mod"]); } 371 if ($userrow["difficulty"] == 3) { $exp = ceil($exp * $controlrow["diff3mod"]); } 372 if ($userrow["expbonus"] != 0) { $exp += ceil(($userrow["expbonus"]/100)*$exp); } 373 $gold = rand((($monsterrow["maxgold"]/6)*5),$monsterrow["maxgold"]); 374 if ($gold < 1) { $gold = 1; } 375 if ($userrow["difficulty"] == 2) { $gold = ceil($gold * $controlrow["diff2mod"]); } 376 if ($userrow["difficulty"] == 3) { $gold = ceil($gold * $controlrow["diff3mod"]); } 377 if ($userrow["goldbonus"] != 0) { $gold += ceil(($userrow["goldbonus"]/100)*$exp); } 378 if ($userrow["experience"] + $exp < 16777215) { $newexp = $userrow["experience"] + $exp; $warnexp = ""; } else { $newexp = $userrow["experience"]; $exp = 0; $warnexp = ' (vous avez le maximum autorisé)'; } 379 if ($userrow["gold"] + $gold < 16777215) { $newgold = $userrow["gold"] + $gold; $warngold = ""; } else { $newgold = $userrow["gold"]; $gold = 0; $warngold = ' (vous avez le maximum autorisé)'; } 380 381 $levelquery = doquery("SELECT * FROM {{table}} WHERE id='".($userrow["level"]+1)."' LIMIT 1", "levels"); 382 if (mysql_num_rows($levelquery) == 1) { $levelrow = mysql_fetch_array($levelquery); } 383 384 if ($userrow["level"] < 100) { 385 if ($newexp >= $levelrow[$userrow["charclass"]."_exp"]) { 386 $newhp = $userrow["maxhp"] + $levelrow[$userrow["charclass"]."_hp"]; 387 $newmp = $userrow["maxmp"] + $levelrow[$userrow["charclass"]."_mp"]; 388 $newtp = $userrow["maxtp"] + $levelrow[$userrow["charclass"]."_tp"]; 389 $newstrength = $userrow["strength"] + $levelrow[$userrow["charclass"]."_strength"]; 390 $newdexterity = $userrow["dexterity"] + $levelrow[$userrow["charclass"]."_dexterity"]; 391 $newattack = $userrow["attackpower"] + $levelrow[$userrow["charclass"]."_strength"]; 392 $newdefense = $userrow["defensepower"] + $levelrow[$userrow["charclass"]."_dexterity"]; 393 $newlevel = $levelrow["id"]; 394 395 if ($levelrow[$userrow["charclass"]."_spells"] != 0) { 396 $userspells = $userrow["spells"] . ",".$levelrow[$userrow["charclass"]."_spells"]; 397 $newspell = "spells='$userspells',"; 398 $spelltext = ' ,et enfin vous avez appris un nouveau sort'; 399 } else { $spelltext = ""; $newspell=""; } 400 401 $page .= 'Bravo, vous avez battu le monstre <b>'.$monsterrow['name'].'</b>!<br><br>Vous avez gagnez <b>'.$exp.' points d\'expérience</b>'.$warnexp.', <b>'.$gold.' rubis</b>'.$warngold.'.<br><br>'.$userrow['charname'].' gagne également <b>1 niveau, <span class="mauve2">'.$levelrow[$userrow['charclass'].'_hp'].' HP</span>, <span class="mauve1">'.$levelrow[$userrow['charclass'].'_mp'].' MP</span>, <span class="rouge1">'.$levelrow[$userrow['charclass'].'_tp'].' TP</span>, '.$levelrow[$userrow['charclass'].'_strength'].' points de force, '.$levelrow[$userrow['charclass'].'_dexterity'].' points de dextérité</b>'.$spelltext.'.<br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner en exploration</a>'; 402 $dropcode = ""; 403 } else { 404 $newhp = $userrow["maxhp"]; 405 $newmp = $userrow["maxmp"]; 406 $newtp = $userrow["maxtp"]; 407 $newstrength = $userrow["strength"]; 408 $newdexterity = $userrow["dexterity"]; 409 $newattack = $userrow["attackpower"]; 410 $newdefense = $userrow["defensepower"]; 411 $newlevel = $userrow["level"]; 412 $newspell = ""; 413 $page .= 'Bravo, vous avez battu le monstre <b>'.$monsterrow['name'].'</b>!<br><br>Vous avez gagnez <b>'.$exp.' points d\'expérience</b>'.$warnexp.' et <b>'.$gold.' rubis</b>'.$warngold.'.<br><br>'; 414 415 if (rand(1,30) == 1) { 416 $dropquery = doquery("SELECT * FROM {{table}} WHERE mlevel <= '".$monsterrow["level"]."' ORDER BY RAND() LIMIT 1", "drops"); 417 $droprow = mysql_fetch_array($dropquery); 418 $dropcode = "dropcode='".$droprow["id"]."',"; 419 $page .= '<b>Ce monstre a laisser tomber un objet!</b> <a href="?do=drop">Cliquez ici</a> pour le rammasser et vous équiper de cet article.<br><br>Vous pouvez également:<br><br><a href="index.php">» retourner en exploration</a>'; 420 } else { 421 $dropcode = ""; 422 $page .= 'Maintenant vous pouvez:<br><br><a href="index.php">» retourner en exploration</a>'; 423 } 424 425 } 426 } 427 428 $updatequery = doquery("UPDATE {{table}} SET currentaction='En exploration',level='$newlevel',maxhp='$newhp',maxmp='$newmp',maxtp='$newtp',strength='$newstrength',dexterity='$newdexterity',attackpower='$newattack',defensepower='$newdefense', $newspell currentfight='0',currentmonster='0',currentmonsterhp='0',currentmonstersleep='0',currentmonsterimmune='0',currentuberdamage='0',currentuberdefense='0',$dropcode experience='$newexp',gold='$newgold' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 429 430 display($page, 'Victoire!'); 431 432 } 433 434 function drop() { 435 436 global $userrow; 437 438 $page ='<img src="images/jeu/actions/combat.jpg" width="580" height="82" alt="En combat"><br><br>'; 439 440 if ($userrow["dropcode"] == 0) { header("Location: index.php"); die(); } 441 442 $dropquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["dropcode"]."' LIMIT 1", "drops"); 443 $droprow = mysql_fetch_array($dropquery); 444 445 if (isset($_POST["submit"])) { 446 447 $slot = $_POST["slot"]; 448 449 if ($slot == 0) { $page .= '<span class="alerte">Erreur: Vous devez tout d\'abord choisir une fente dans la liste.</span><br>'; } 450 451 if ($userrow["slot".$slot."id"] != 0) { 452 453 $slotquery = doquery("SELECT * FROM {{table}} WHERE id='".$userrow["slot".$slot."id"]."' LIMIT 1", "drops"); 454 $slotrow = mysql_fetch_array($slotquery); 455 456 $old1 = explode(",",$slotrow["attribute1"]); 457 if ($slotrow["attribute2"] != "Aucun") { $old2 = explode(",",$slotrow["attribute2"]); } else { $old2 = array(0=>"maxhp",1=>0); } 458 $new1 = explode(",",$droprow["attribute1"]); 459 if ($droprow["attribute2"] != "Aucun") { $new2 = explode(",",$droprow["attribute2"]); } else { $new2 = array(0=>"maxhp",1=>0); } 460 461 $userrow[$old1[0]] -= $old1[1]; 462 $userrow[$old2[0]] -= $old2[1]; 463 if ($old1[0] == "strength") { $userrow["attackpower"] -= $old1[1]; } 464 if ($old1[0] == "dexterity") { $userrow["defensepower"] -= $old1[1]; } 465 if ($old2[0] == "strength") { $userrow["attackpower"] -= $old2[1]; } 466 if ($old2[0] == "dexterity") { $userrow["defensepower"] -= $old2[1]; } 467 468 $userrow[$new1[0]] += $new1[1]; 469 $userrow[$new2[0]] += $new2[1]; 470 if ($new1[0] == "strength") { $userrow["attackpower"] += $new1[1]; } 471 if ($new1[0] == "dexterity") { $userrow["defensepower"] += $new1[1]; } 472 if ($new2[0] == "strength") { $userrow["attackpower"] += $new2[1]; } 473 if ($new2[0] == "dexterity") { $userrow["defensepower"] += $new2[1]; } 474 475 if ($userrow["currenthp"] > $userrow["maxhp"]) { $userrow["currenthp"] = $userrow["maxhp"]; } 476 if ($userrow["currentmp"] > $userrow["maxmp"]) { $userrow["currentmp"] = $userrow["maxmp"]; } 477 if ($userrow["currenttp"] > $userrow["maxtp"]) { $userrow["currenttp"] = $userrow["maxtp"]; } 478 479 $newname = addslashes($droprow["name"]); 480 $query = doquery("UPDATE {{table}} SET slot".$_POST["slot"]."name='$newname',slot".$_POST["slot"]."id='".$droprow["id"]."',$old1[0]='".$userrow[$old1[0]]."',$old2[0]='".$userrow[$old2[0]]."',$new1[0]='".$userrow[$new1[0]]."',$new2[0]='".$userrow[$new2[0]]."',attackpower='".$userrow["attackpower"]."',defensepower='".$userrow["defensepower"]."',currenthp='".$userrow["currenthp"]."',currentmp='".$userrow["currentmp"]."',currenttp='".$userrow["currenttp"]."',dropcode='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 481 482 }else { 483 484 $new1 = explode(",",$droprow["attribute1"]); 485 if ($droprow["attribute2"] != "Aucun") { $new2 = explode(",",$droprow["attribute2"]); } else { $new2 = array(0=>"maxhp",1=>0); } 486 487 $userrow[$new1[0]] += $new1[1]; 488 $userrow[$new2[0]] += $new2[1]; 489 if ($new1[0] == "strength") { $userrow["attackpower"] += $new1[1]; } 490 if ($new1[0] == "dexterity") { $userrow["defensepower"] += $new1[1]; } 491 if ($new2[0] == "strength") { $userrow["attackpower"] += $new2[1]; } 492 if ($new2[0] == "dexterity") { $userrow["defensepower"] += $new2[1]; } 493 494 $newname = addslashes($droprow["name"]); 495 $query = doquery("UPDATE {{table}} SET slot".$_POST["slot"]."name='$newname',slot".$_POST["slot"]."id='".$droprow["id"]."',$new1[0]='".$userrow[$new1[0]]."',$new2[0]='".$userrow[$new2[0]]."',attackpower='".$userrow["attackpower"]."',defensepower='".$userrow["defensepower"]."',dropcode='0' WHERE id='".$userrow["id"]."' LIMIT 1", "users"); 496 497 } 498 $page .= 'L\'objet a été équipé.<br><br>Maintenant vous pouvez:<br><br><a href="index.php">» retourner en exploration</a>'; 499 display($page, 'Objet perdu'); 500 501 } 502 503 $attributearray = array("maxhp"=>"HP Max", 504 "maxmp"=>"MP Max", 505 "maxtp"=>"TP Max", 506 "defensepower"=>"Pouvoir de défense", 507 "attackpower"=>"Pouvoir d'attaque", 508 "strength"=>"Force", 509 "dexterity"=>"Dextérité", 510 "expbonus"=>"Experience Bonus", 511 "goldbonus"=>"Bonus rubis"); 512 513 $page .= 'Le monstre a fait tomber un objet se nommant <b>'.$droprow['name'].'</b><br><br>'; 514 $page .= 'Cet objet a l\'attribut(s) suivant:<br><b>'; 515 516 $attribute1 = explode(",",$droprow["attribute1"]); 517 $page .= $attributearray[$attribute1[0]]; 518 if ($attribute1[1] > 0) { $page .= " +" . $attribute1[1] . "<br><br>"; } else { $page .= $attribute1[1] . "<br><br>"; } 519 520 if ($droprow["attribute2"] != "Aucun") { 521 $attribute2 = explode(",",$droprow["attribute2"]); 522 $page .= $attributearray[$attribute2[0]]; 523 if ($attribute2[1] > 0) { $page .= " +" . $attribute2[1] . "<br><br>"; } else { $page .= $attribute2[1] . "<br><br>"; } 524 } 525 526 $page .= '</b>Pour vous équiper de l\'objet mettez le dans votre sac à dos à partir de la liste ci-dessous. Si votre sac est plein, vous pouvez remplacer un ancien objet, par celui-ci, en selectionnant celui de votre choix.<br><br> 527 <form action="index.php?do=drop" method="post"><div><select name="slot"><option value="0">Votre sac à dos</option><option value="1">Objet 1: '.$userrow['slot1name'].'</option><option value="2">Objet 2: '.$userrow['slot2name'].'</option><option value="3">Objet 3: '.$userrow['slot3name'].'</option></select> <input type="submit" name="submit" value="Valider"><br><br></div></form> 528 Vous pouvez également:<br><br><a href="index.php">» retourner en exploration</a>'; 529 530 display($page, 'Objet perdu'); 531 532 } 533 534 535 ?>