rpgillusion

RPG Illusion: French fork of Dragon Knight
git clone https://git.neuralcrash.com/rpgillusion.git
Log | Files | Refs | README

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 ?>