Compétences officiellement validées pour le mod ettelfight

Pour proposer vos codes de fonctions de magies/compétences/objets ou proposer une fonction à réaliser.

Vous jugez l'exposition de ces fonctions

Utile: cela permet à chacun de personaliser son mod en étant sûr de la validité.
0
Aucun vote
Inutile: autant prendre le mod déjà construit sans le modifier.
0
Aucun vote
Ne se prononce pas.
0
Aucun vote
 
Nombre total de votes : 0

Compétences officiellement validées pour le mod ettelfight

Messagede ettelcar le 20 Fév 2006, 10:16

Dernière édition par ettelcar le 17 Juil 2006, 13:25, édité 13 fois.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

Messagede ettelcar le 10 Mar 2006, 14:55

La plupart de ces magies étant facilement programmable avec l'interface de base, je ne les précise pas.

Pour les attaques portant sur toute une arène, cibles au choix, utilisez le précode:
Code: Tout sélectionner
$messageaffich .='Choisissez vos cibles :<BR>';
               $sqltgt = "SELECT ettel_id FROM `ettel_combats` WHERE combat_numb = '" . get_arena($ettel_user) . "'
                                                      AND (combat_numb <> '0' OR ettel_id='" . $ettel_user['ettel_id'] . "')";
               if ( !($resulttgt = $db->sql_query($sqltgt)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $select_mag_tgt='sélectionnez la cible pour le jet de dextérité:<select name="ciblemagie['.$idmag.'][0]">';
               $select_mag_tgt2='sélectionnez les cibles sur lesquelles vous voulez lancer le sort (la cible pour le jet sera également sélectionnée) :<BR>';
               for($itgt=0; $itgt<mysql_num_rows($resulttgt); $itgt++)
               {
                  $mag_cible = mysql_fetch_array($resulttgt);
                  $sql2tgt = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $mag_cible['ettel_id'] . "'; ";
                  if ( !($result2tgt = $db->sql_query($sql2tgt)) )
                  {
                     message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
                  }
                  $mag_cible2 = mysql_fetch_array($result2tgt);
                  $select_mag_tgt2 .='<input type="checkbox" name="ciblemagie['.$idmag.'][]" value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'<BR>';

                  $select_mag_tgt .= '<option value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'</option>';
               }
               $select_mag_tgt .='</select>';
               $messageaffich .= $select_mag_tgt.$select_mag_tgt2;                           


Puis pour le code, utilisez le même que pour les attaques classiques avec l'interface, en ajoutant devant la ligne
Code: Tout sélectionner
$cible = array_unique($cible);


Et choisissez bien sûr un nombre de cibles supérieur à la contenance de l'arène.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

terre brûlée : multi att 20 et rescussite les alliés

Messagede ettelcar le 01 Mai 2006, 13:55

Cette magie doit être lançable non uniquement sur soi, et non uniquement dans l'arène.
Comme pour les attaques multi, choisissez un nombre de cibles supérieur à la contenance de l'arène.

Utilisez le précode (code avancé) suivant:
Code: Tout sélectionner
$messageaffich .='Choisissez vos cibles :<BR>';
               $sqltgt = "SELECT ettel_id FROM `ettel_combats` WHERE combat_numb = '" . get_arena($ettel_user) . "'
                                                      AND (combat_numb <> '0' OR ettel_id='" . $ettel_user['ettel_id'] . "')";
               if ( !($resulttgt = $db->sql_query($sqltgt)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $select_mag_tgt='sélectionnez la cible pour le jet de dextérité:<select name="ciblemagie['.$idmag.'][0]">';
               $select_mag_tgt2='sélectionnez les cibles sur lesquelles vous voulez lancer le sort d\'attaque (la cible pour le jet sera également sélectionnée) :<BR>';
               for($itgt=0; $itgt<mysql_num_rows($resulttgt); $itgt++)
               {
                  $mag_cible = mysql_fetch_array($resulttgt);
                  $sql2tgt = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $mag_cible['ettel_id'] . "'; ";
                  if ( !($result2tgt = $db->sql_query($sql2tgt)) )
                  {
                     message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
                  }
                  $mag_cible2 = mysql_fetch_array($result2tgt);
                  $select_mag_tgt2 .='<input type="checkbox" name="ciblemagie['.$idmag.'][]" value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'<BR>';

                  $select_mag_tgt .= '<option value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'</option>';
               }
               $select_mag_tgt .='</select>';

               $sqltgtregen = "SELECT ettel_id, ettel_name FROM `ettel_users` WHERE vie = '0' ";
               if ( !($resulttgtregen = $db->sql_query($sqltgtregen)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
          
          $select_mag_tgtregen='Sélectionnez les cibles que vous voulez rescussiter :<BR>';
               for($itgt=0; $itgt<mysql_num_rows($resulttgtregen); $itgt++)
               {
                 
                  $mag_cible2regen = mysql_fetch_array($resulttgtregen);
                  $select_mag_tgtregen .='<input type="checkbox" name="ciblemagie['.$idmag.'][]" value="'.$mag_cible2regen['ettel_id'].'">'.$mag_cible2regen['ettel_name'].'<BR>';
               }


               $messageaffich .= $select_mag_tgt.$select_mag_tgt2.$select_mag_tgtregen;
et le code
Code: Tout sélectionner
$cible = array_unique($cible);
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   
   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d?infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d?infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   else {
      $immuno_final = $vict['immuno'];
      if($arena1==$arena2) {
         $vie_victime_coup = $vict_car['vie']-max( ( 20 * ($transeactive+1) + de(1) - $vict_car['endurance'] - de(2) ) ,  0,0 ) ;
         $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." le ramenant de ".$vict['vie']." PV à  ".$vie_victime_coup." PV. ";
         $vie_victime = min( max ( $vie_victime_coup , 0 ) , $vict_car['viemax'] );
         if ($vie_victime==0) {
            $sql = "SELECT gain_xp, gain_po FROM `ettel_config` ;";
            if ( !($result = $db->sql_query($sql)) ) {
               message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
            }
            $gain_vainqueur = mysql_fetch_array($result);
            $sql1 = "UPDATE `ettel_users` SET `PO` = PO + '" . $gain_vainqueur['gain_po'] . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
            $sql2 = "UPDATE `ettel_evolution` SET `xp` = xp + '" . $gain_vainqueur['gain_xp'] . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
            $sql3 = "UPDATE `ettel_users` SET `vie` = '0', `poison_puis`='0', `poison_dur`='0', `heracles`='0', `transe`='0', `spectral`='0', `immuno`='', `bonus_initiative_puis`='0', `bonus_initiative_dur`='0', `bonus_force_puis`='0', `bonus_force_dur`='0', `bonus_endurance_puis`='0', `bonus_endurance_dur`='0', `bonus_dexterite_puis`='0', `bonus_dexterite_dur`='0' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";       
            $sql4 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
            $sql5 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." le tuant.  Il gagne du même coup " . $gain_vainqueur['gain_xp'] . " XP et " . $gain_vainqueur['gain_po'] . " PO. ');";
            if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3) && $result4 = $db->sql_query($sql4) && $result5 = $db->sql_query($sql5)) ) {
               message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
            }      
            $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , ce qui s?avère mortel.<BR> Vous gagnez ".$gain_vainqueur['gain_xp'].' XP et '.$gain_vainqueur['gain_po'].' PO. <BR>';
         }
         else {
            $sql1 = "UPDATE `ettel_users` SET `vie` = '" . $vie_victime . "' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ;";       
            $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
            $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." l?amenant à ".$vie_victime_coup." PV. ');";
            if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
               message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
            }
            $sql2 = "UPDATE `ettel_users` SET `poison_puis` = poison_puis + 0,
                                       `poison_dur` = poison_dur + 0,
                                       `heracles` = heracles + 0,
                                       `transe` = transe + 0,
                                       `spectral` = spectral + 0,
                                       `immuno` = '".$immuno_final."',
                                       `bonus_initiative_puis` = bonus_initiative_puis + 0,
                                       `bonus_initiative_dur` = bonus_initiative_dur + 0,
                                       `bonus_force_puis` = bonus_force_puis + 0,
                                       `bonus_force_dur` = bonus_force_dur + 0,
                                       `bonus_endurance_puis` = bonus_endurance_puis + 0,
                                       `bonus_endurance_dur` = bonus_endurance_dur + 0,
                                       `bonus_dexterite_puis` = bonus_dexterite_puis + 0,
                                       `bonus_dexterite_dur` = bonus_dexterite_dur + 0
                                           WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
            if ( !( $result2 = $db->sql_query($sql2)) ) {
               message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
            }
            $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , l?amenant de ".$vict_car['vie'].' PV à '.$vie_victime.' PV. <BR>';
         }
      }
      elseif($vict_car['vie']==0) {
         $rapport .= "<p> ".$ettel_user['ettel_name']." utilise ".$mag['comp_name']." pour rescussiter ".$vict['ettel_name']." .</p> ";
         $sql1 = "UPDATE `ettel_users` SET `vie` = '".$vict_car['viemax']."' , `mana` = '".$vict_car['manamax']."' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ;";       
         $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
         $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." l?amenant à ses caracs maximales. ');";
         if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }
         $messageaffich .= 'Vous utilisez '.$mag['comp_name'].' pour rescussiter '.$vict['ettel_name'].' . <BR>';
      }
      else {
         $sql = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." dirigé par n°".$userdata['user_id']." tente de tricher avec ".$mag['comp_name'].". ');";
         if ( !($result = $db->sql_query($sql)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }
         die('Stop cheating ! <BR> Votre tentative de triche a été repérée et enregistrée. Si vous persévérez, vous risquez de vous faire banir du forum.');   
      }
   }               
}


NB: le code avancé permet de ne choisir que des personnages de la même arène pour les attaquer ou de personnages morts pour les rescussiter.
Comme il est possible à l'utilisateur de choisir les cibles qu'il envoie, s'il envoie une cible non accessible via le précode, on enregistre la tentative de triche dans l'historique.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

dissipation

Messagede ettelcar le 01 Mai 2006, 17:22

Voici la fonction dissipation pour supprimer tous les immunos et altérations d'état d'un coup à la cible:
Code: Tout sélectionner
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   
   $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." lui supprimant toute altération d&rsquo;état. ";
   $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
   $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." lui supprimant toute altération d&rsquo;état. ');";
   if ( !($result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
   }
   $sql1 = "UPDATE `ettel_users` SET `poison_puis` = '0',
                              `poison_dur` = '0',
                              `heracles` = '0',
                              `transe` = '0',
                              `spectral` = '0',
                              `immuno` = '' ,
                              `bonus_initiative_puis` = '0',
                              `bonus_initiative_dur` = '0',
                              `bonus_force_puis` = '0',
                              `bonus_force_dur` = '0',
                              `bonus_endurance_puis` = '0',
                              `bonus_endurance_dur` = '0',
                              `bonus_dexterite_puis` = '0',
                              `bonus_dexterite_dur` = '0'
                           WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
   if ( !( $result1 = $db->sql_query($sql1)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
   }
   $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name'].' , lui supprimant toute altération d&rsquo;état. <BR>';
}
Dernière édition par ettelcar le 03 Mai 2006, 10:37, édité 1 fois.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

immuno-X pendant 7 tours

Messagede ettelcar le 02 Mai 2006, 09:35

La durée est aisément modifiable dans le code (remplacer 7 par une autre durée).
Le X permet de choisir parmis toutes les possibilité en jeu.
Cette magie est applicable sur de cibles aux choix.
Si vous modifiez les codes ou créez d'autres fonctions vous-même, attention à la valeur de $-POST['ciblespecmagie'] (dans les fonctions validées, la compatibilité pour ce type de variable sera toujours assurée)

Voici donc le code avancé:
Code: Tout sélectionner
$messageaffich .='Vous choisissez d&rsquo;immuniser contre :<BR>';
$sql="SELECT code_immuno FROM `ettel_competences` WHERE `code_immuno`<>''";
if ( !( $result = $db->sql_query($sql)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd, coup non pris en compte.</p>'.mysql_error());
}
$messageaffich.='<select name="ciblespecmagie['.$idmag.'][0]">';
$choix=array();
for($i=0; $i<mysql_num_rows($result); $i++) {
   $code=mysql_fetch_array($result);
   if (!in_array($code['code_immuno'],$choix)) {
      $choix[]=$code['code_immuno'];
      $messageaffich.='<option value="'.$code['code_immuno'].'">'.$code['code_immuno'].'</option>';
   }
}
$messageaffich.='</select><BR><BR>';

$messageaffich .='Choisissez vos cibles (le jet de dextérité s&rsquo;effectue si besoin est par rapport à la première cible) :<BR>';
$sqltgt = "SELECT ettel_id FROM `ettel_combats` WHERE combat_numb = '" . get_arena($ettel_user) . "'
                                    AND (combat_numb <> '0' OR ettel_id='" . $ettel_user['ettel_id'] . "')";
if ( !($resulttgt = $db->sql_query($sqltgt)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
}
$select_mag_tgt='<select name="ciblemagie['.$idmag.'][]">';
for($itgt=0; $itgt<mysql_num_rows($resulttgt); $itgt++) {
   $mag_cible = mysql_fetch_array($resulttgt);
   $sql2tgt = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $mag_cible['ettel_id'] . "'; ";
   if ( !($result2tgt = $db->sql_query($sql2tgt)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $mag_cible2 = mysql_fetch_array($result2tgt);
   $select_mag_tgt .= '<option value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'</option>';
}
$select_mag_tgt .='</select>';
for($selnumb=0; $selnumb<$mag['nombre_cibles']; $selnumb++) {
   $messageaffich .= $select_mag_tgt;
}
et le code
Code: Tout sélectionner
$imm=str_replace("'", "&rsquo;", mysql_real_escape_string(stripslashes_gpc($_POST['ciblespecmagie'][$idmag][0])));

foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   
   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d&rsquo;infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d&rsquo;infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   else {
      $immuno_final = $vict['immuno'];
      
      $deja_immunise= substr_count($vict['immuno'],"ÞÞ".$imm."Þß");
      if ($deja_immunise == "0") {
         $immuno_final = $vict['immuno'] . 'ÞÞ'.$imm.'Þß7ßÞ'.$imm.'ßß';
      }
      else {
         eregi ("ÞÞ".$imm."Þß(.*)ßÞ".$imm."ßß" , $vict['immuno'] , $duree_immun);
         $nouv_nb_immun = intval($duree_immun[1]) + 7;
         $immuno_final = str_replace("ÞÞ".$imm."Þß" . $duree_immun[1] . "ßÞ".$imm."ßß", "ÞÞ".$imm."Þß" . $nouv_nb_immun . "ßÞ".$imm."ßß", $vict['immuno']);
      }
      $vie_victime_coup = $vict_car['vie']-max( 0,0 ) ;
      $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." le ramenant de ".$vict['vie']." PV à  ".$vie_victime_coup." PV.Il l&rsquo;immunise contre ".$imm." pour 7 tours. ";
      $vie_victime = min( max ( $vie_victime_coup , 0 ) , $vict_car['viemax'] );
      if ($vie_victime==0) {
         $sql = "SELECT gain_xp, gain_po FROM `ettel_config` ;";
         if ( !($result = $db->sql_query($sql)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
         }
         $gain_vainqueur = mysql_fetch_array($result);
         $sql1 = "UPDATE `ettel_users` SET `PO` = PO + '" . $gain_vainqueur['gain_po'] . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql2 = "UPDATE `ettel_evolution` SET `xp` = xp + '" . $gain_vainqueur['gain_xp'] . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql3 = "UPDATE `ettel_users` SET `vie` = '0', `poison_puis`='0', `poison_dur`='0', `heracles`='0', `transe`='0', `spectral`='0', `immuno`='', `bonus_initiative_puis`='0', `bonus_initiative_dur`='0', `bonus_force_puis`='0', `bonus_force_dur`='0', `bonus_endurance_puis`='0', `bonus_endurance_dur`='0', `bonus_dexterite_puis`='0', `bonus_dexterite_dur`='0' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";       
         $sql4 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
         $sql5 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." le tuant.Il l&rsquo;immunise contre ".$imm." pour 7 tours.  Il gagne du même coup " . $gain_vainqueur['gain_xp'] . " XP et " . $gain_vainqueur['gain_po'] . " PO. ');";
         if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3) && $result4 = $db->sql_query($sql4) && $result5 = $db->sql_query($sql5)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }      
         $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , ce qui s&rsquo;avère mortel.<BR> Vous gagnez ".$gain_vainqueur['gain_xp'].' XP et '.$gain_vainqueur['gain_po'].' PO. <BR>';
      }
      else {
         $sql1 = "UPDATE `ettel_users` SET `vie` = '" . $vie_victime . "' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ;";       
         $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
         $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." l&rsquo;amenant à ".$vie_victime_coup." PV. Il l&rsquo;immunise contre ".$imm." pour 7 tours. ');";
         if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }
         $sql2 = "UPDATE `ettel_users` SET `poison_puis` = poison_puis + 0,
                                    `poison_dur` = poison_dur + 0,
                                    `heracles` = heracles + 0,
                                    `transe` = transe + 0,
                                    `spectral` = spectral + 0,
                                    `immuno` = '".$immuno_final."',
                                    `bonus_initiative_puis` = bonus_initiative_puis + 0,
                                    `bonus_initiative_dur` = bonus_initiative_dur + 0,
                                    `bonus_force_puis` = bonus_force_puis + 0,
                                    `bonus_force_dur` = bonus_force_dur + 0,
                                    `bonus_endurance_puis` = bonus_endurance_puis + 0,
                                    `bonus_endurance_dur` = bonus_endurance_dur + 0,
                                    `bonus_dexterite_puis` = bonus_dexterite_puis + 0,
                                    `bonus_dexterite_dur` = bonus_dexterite_dur + 0
                                        WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
         if ( !( $result2 = $db->sql_query($sql2)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
         }
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$imm." pour 7 tours.<BR>";
      }
   }               
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

échange de caractéristiques

Messagede ettelcar le 02 Mai 2006, 11:39

Pour échanger quelques points entre ses caractéristiques de base.
La compétence doit être utilisable uniquement sur soit, dans l'arène.
Voici le code avancé:
Code: Tout sélectionner
$messageaffich .='Vous souhaitez échanger :<BR>
perdre <select name="ciblespecmagie['.$idmag.'][0]">
<option value="1">1 point de force</option>
<option value="2">1 point d&rsquo;endurance</option>
<option value="3">1 point d&rsquo;initiative</option>
<option value="4">1 point de dextérité</option>
<option value="5">5 points de vie max</option>
<option value="6">5 points de mana max</option>
</select>
contre un gain de
<select name="ciblespecmagie['.$idmag.'][1]">
<option value="1">1 point de force</option>
<option value="2">1 point d&rsquo;endurance</option>
<option value="3">1 point d&rsquo;initiative</option>
<option value="4">1 point de dextérité</option>
<option value="5">5 points de vie max</option>
<option value="6">5 points de mana max</option>
</select>.<BR><BR>
<input type="hidden" name="ciblemagie['.$idmag.'][]" value="' . $ettel_user['ettel_id'] . '">';

et le code
Code: Tout sélectionner
$carnum1=intval($_POST['ciblespecmagie'][$idmag][0]);
if($carnum1==1) {$car1txt='1 point de force'; $car1='force'; $car1val=1;}
elseif($carnum1==2) {$car1txt='1 point d&rsquo;endurance'; $car1='endurance'; $car1val=1;}
elseif($carnum1==3) {$car1txt='1 point d&rsquo;initiative'; $car1='initiative'; $car1val=1;}
elseif($carnum1==4) {$car1txt='1 point de dextérité'; $car1='dexterite'; $car1val=1;}
elseif($carnum1==5) {$car1txt='5 points de vie max'; $car1='viemax'; $car1val=5;}
elseif($carnum1==6) {$car1txt='5 points de mana max'; $car1='manamax'; $car1val=5;}
else {die("numéro de caractérisitque invalide");}
$carnum2=intval($_POST['ciblespecmagie'][$idmag][1]);
if($carnum2==1) {$car2txt='1 point de force'; $car2='force'; $car2val=1;}
elseif($carnum2==2) {$car2txt='1 point d&rsquo;endurance'; $car2='endurance'; $car2val=1;}
elseif($carnum2==3) {$car2txt='1 point d&rsquo;initiative'; $car2='initiative'; $car2val=1;}
elseif($carnum2==4) {$car2txt='1 point de dextérité'; $car2='dexterite'; $car2val=1;}
elseif($carnum2==5) {$car2txt='5 points de vie max'; $car2='viemax'; $car2val=5;}
elseif($carnum2==6) {$car2txt='5 points de mana max'; $car2='manamax'; $car2val=5;}
else {die("numéro de caractérisitque invalide");}

foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   
   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d&rsquo;infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d&rsquo;infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   elseif(($vict['force']<1 && $carnum1==1)||($vict['endurance']<1 && $carnum1==2)||($vict['initiative']<1 && $carnum1==3)||($vict['dexterite']<1 && $carnum1==4)||($vict['viemax']<6 && $carnum1==5)||($vict['manamax']<5 && $carnum1==1)) {
      $messageaffich.= "Cette transaction est impossible: vous ne pouvez pas faire passer une caractéristique de base en dessous de 0.";
   }
   else {
      $rapport .= "<p> ".$ettel_user['ettel_name']." échange une perte de ".$car1txt." contre un gain de ".$car2txt." avec ".$mag['comp_name'].".</p>";
      $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
      $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." échangeant une perte de ".$car1txt." contre un gain de ".$car2txt.". ');";
      if ( !($result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql2 = "UPDATE `ettel_users` SET `".$car1."` = ".$car1."-'".$car1val."',
                              `".$car2."` = ".$car2."+'".$car2val."'
                               WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
      if ( !( $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
      }
      $messageaffich .= "Vous perdez ".$car1txt." contre un gain de ".$car2txt.".<BR>";
   }               
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

pour une magie avec 1 cible au corps à corps.

Messagede ettelcar le 02 Mai 2006, 14:20

Dans le cas où une magie ne doit prendre qu'une cible au corps à corps (donc non uniquement sur soi mais dans la même arène),
on ajoutera au code automatique juste après
Code: Tout sélectionner
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
le morceau de code
Code: Tout sélectionner
   $sql1 = "SELECT * FROM ettel_combats WHERE ettel_id='" . $victime . "'" ;
   if ( !($result1 = $db->sql_query($sql1)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $combat_cible = mysql_fetch_array($result1);
   $sql1 = "SELECT * FROM ettel_combats WHERE ettel_id='" . $ettel_user['ettel_id'] . "';" ;
   if ( !($result1 = $db->sql_query($sql1)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $combat_user = mysql_fetch_array($result1);
   $lettertonumb = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6,'g'=>7);
   if(!(abs($combat_user['case_y']-$combat_cible['case_y'])<2 && abs($lettertonumb[$combat_user['case_x']]-$lettertonumb[$combat_cible['case_x']])<2 )) {
      message_die(GENERAL_MESSAGE,'<script language=Javascript>opener.opener.location.reload();opener.location.reload();</script>Choisissez un ennemi à votre portée.');
   }

et on utilisera le code avancé:
Code: Tout sélectionner
$messageaffich .= 'Choisissez votre cible :<BR><select name="ciblemagie['.$idmag.'][]">';
$lettertonumb = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6,'g'=>7, '1'=>'a', '2'=>'b', '3'=>'c', '4'=>'d', '5'=>'e', '6'=>'f', '7'=>'g', '0'=>'a', '8'=>'g');
$sql = "SELECT combat_numb, case_x, case_y FROM `ettel_combats` WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "'";
if ( !($result = $db->sql_query($sql)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
}
$arena = mysql_fetch_array($result);
$sql = "SELECT ettel_id, perso FROM `ettel_combats` WHERE combat_numb = '".$arena['combat_numb']."' AND combat_numb <> '0' AND (case_y='".$arena['case_y']."' OR case_y='".($arena['case_y']-1)."' OR case_y='".($arena['case_y']+1)."') AND (case_x='".$arena['case_x']."' OR case_x='".$lettertonumb[$lettertonumb[$arena['case_x']]-1]."' OR case_x='".$lettertonumb[$lettertonumb[$arena['case_x']]+1]."')";
if ( !($result = $db->sql_query($sql)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
}
for($i=0; $i<mysql_num_rows($result); $i++) {
   $ettel_cible = mysql_fetch_array($result);
   $sql2 = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $ettel_cible['ettel_id'] . "'";
   if ( !($result2 = $db->sql_query($sql2)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $ettel_cible2 = mysql_fetch_array($result2);
   $messageaffich .= '<option value="'.$ettel_cible2['ettel_id'].'">'.$ettel_cible2['ettel_name'].'</option>';
}
$messageaffich .='</select>';
Dernière édition par ettelcar le 02 Mai 2006, 22:58, édité 1 fois.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

absorb: vol jusqu'à 12 PV et 150 XP.

Messagede ettelcar le 02 Mai 2006, 22:57

Note: cette fonction est intégrée à la v0.1 au corps à corps uniquement grâce au code générique précédent. La version exposée ici est par contre celle possible à distance:

Cette compétence permet de voler aléatoirement entre 1 et 12 PV plus entre 1 et 150 XP, et ce dans la limite des réserves de la victime.
Etant donné l'efficacité de cette compétence, il est recommandé de la brider en la limitant au corps à corps et à 1 victime. Les autres options sont cependant réalisables sans problème:
Code: Tout sélectionner
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $sql = "select xp from ettel_evolution WHERE `ettel_id` = '" . $victime . "'";
   if ( !($victxp = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $victxp = mysql_fetch_array($victxp);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   $att_car=get_carac($att);

   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   else {
      $immuno_final = $vict['immuno'];
      
      $vievolee=min(rand(1,12),$vict_car['vie']);
      $expvolee=min(rand(1,150),$victxp['xp']);
      $victxp_coup = $victxp['xp']-$expvolee;
      $vie_victime_coup = $vict_car['vie']-$vievolee ;
      $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." le ramenant de ".$vict['vie']." PV à  ".$vie_victime_coup." PV et de ".$victxp['xp']." XP à ".$victxp_coup." XP. Il récupère donc ".$vievolee." PV et ".$expvolee." XP.";
      $vie_victime = min( max ( $vie_victime_coup , 0 ) , $vict_car['viemax'] );
      if ($vie_victime==0) {
         $sql = "SELECT gain_xp, gain_po FROM `ettel_config` ;";
         if ( !($result = $db->sql_query($sql)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
         }
         $gain_vainqueur = mysql_fetch_array($result);
         $xptot=$expvolee+$gain_vainqueur['gain_xp'];
         $pvtot=min($att_car['viemax'],($att_car['vie']+$vievolee));
         $sql1 = "UPDATE `ettel_users` SET `PO` = PO + '" . $gain_vainqueur['gain_po'] . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql2 = "UPDATE `ettel_evolution` SET `xp` = xp + '" . $xptot . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql6 = "UPDATE `ettel_users` SET `vie` = '" . $pvtot . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql3 = "UPDATE `ettel_users` SET `vie` = '0', `poison_puis`='0', `poison_dur`='0', `heracles`='0', `transe`='0', `spectral`='0', `immuno`='', `bonus_initiative_puis`='0', `bonus_initiative_dur`='0', `bonus_force_puis`='0', `bonus_force_dur`='0', `bonus_endurance_puis`='0', `bonus_endurance_dur`='0', `bonus_dexterite_puis`='0', `bonus_dexterite_dur`='0' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";       
         $sql4 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
         $sql5 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." le tuant et le ramenant de ".$victxp['xp']." XP à ".$victxp_coup." XP.  Il gagne du même coup " . $gain_vainqueur['gain_xp'] . " XP et " . $gain_vainqueur['gain_po'] . " PO. Il lui vole de plus ".$vievolee." PV et ".$expvolee." XP.');";
         if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3) && $result4 = $db->sql_query($sql4) && $result5 = $db->sql_query($sql5) && $result6 = $db->sql_query($sql6)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }      
         $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , ce qui s’avère mortel.<BR> Vous gagnez ".$gain_vainqueur['gain_xp']." XP et ".$gain_vainqueur['gain_po']." PO. Vous lui volez de plus ".$vievolee." PV et ".$expvolee." XP.<BR>";
      }
      else {
         $xptot=$expvolee;
         $pvtot=min($att_car['viemax'],($att_car['vie']+$vievolee));
         $sql1 = "UPDATE `ettel_users` SET `vie` = '" . $vie_victime . "' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ;";       
         $sql4 = "UPDATE `ettel_evolution` SET `xp` = xp + '" . $xptot . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql6 = "UPDATE `ettel_evolution` SET `xp` = xp - '" . $xptot . "' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
         $sql5 = "UPDATE `ettel_users` SET `vie` = '" . $pvtot . "' WHERE `ettel_id` = '" . $att['ettel_id'] . "' ";
         $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
         $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." l’amenant à ".$vie_victime_coup." PV et de ".$victxp['xp']." XP à ".$victxp_coup." XP. Il lui vole de plus ".$vievolee." PV et ".$expvolee." XP.');";
         if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
         }
         $sql2 = "UPDATE `ettel_users` SET `poison_puis` = poison_puis + 0,
                                    `poison_dur` = poison_dur + 0,
                                    `heracles` = heracles + 0,
                                    `transe` = transe + 0,
                                    `spectral` = spectral + 0,
                                    `immuno` = '".$immuno_final."',
                                    `bonus_initiative_puis` = bonus_initiative_puis + 0,
                                    `bonus_initiative_dur` = bonus_initiative_dur + 0,
                                    `bonus_force_puis` = bonus_force_puis + 0,
                                    `bonus_force_dur` = bonus_force_dur + 0,
                                    `bonus_endurance_puis` = bonus_endurance_puis + 0,
                                    `bonus_endurance_dur` = bonus_endurance_dur + 0,
                                    `bonus_dexterite_puis` = bonus_dexterite_puis + 0,
                                    `bonus_dexterite_dur` = bonus_dexterite_dur + 0
                                        WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
         if ( !( $result2 = $db->sql_query($sql2)) ) {
            message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
         }
         $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , l’amenant de ".$vict_car['vie'].' PV à '.$vie_victime.' PV et de '.$victxp['xp'].' XP à '.$victxp_coup.' XP. Vous gagnez ainsi '.$vievolee.' PV et '.$expvolee.' XP.<BR>';
      }
   }               
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

attaque magique

Messagede ettelcar le 03 Mai 2006, 10:46

Permet de frapper dans la jauge de mana.
(Cette compétence est réalisée au corps à corps)

Voici le code :
Code: Tout sélectionner
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   $att_car=get_carac($att);
   $sql1 = "SELECT * FROM ettel_combats WHERE ettel_id='" . $victime . "'" ;
   if ( !($result1 = $db->sql_query($sql1)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $combat_cible = mysql_fetch_array($result1);
   $sql1 = "SELECT * FROM ettel_combats WHERE ettel_id='" . $ettel_user['ettel_id'] . "';" ;
   if ( !($result1 = $db->sql_query($sql1)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $combat_user = mysql_fetch_array($result1);
   $lettertonumb = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6,'g'=>7);
   if(!(abs($combat_user['case_y']-$combat_cible['case_y'])<2 && abs($lettertonumb[$combat_user['case_x']]-$lettertonumb[$combat_cible['case_x']])<2 )) {
      message_die(GENERAL_MESSAGE,'<script language=Javascript>opener.opener.location.reload();opener.location.reload();</script>Choisissez un ennemi à votre portée.');
   }    
   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   else {
      $immuno_final = $vict['immuno'];

      $Dvi=max(0,$att_carac['force'] + de(1)- $vict_carac['endurance'] - de(2));
      $vie_victime_coup = max ($vict_carac['mana']-$Dvi,0);
      $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." le ramenant de ".$vict['mana']." MP à  ".$vie_victime_coup." MP. ";
      $vie_victime = min( max ( $vie_victime_coup , 0 ) , $vict_car['manamax'] );
      $sql1 = "UPDATE `ettel_users` SET `mana` = '" . $vie_victime . "' WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ;";       
      $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
      $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." l’amenant à ".$vie_victime_coup." MP. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql2 = "UPDATE `ettel_users` SET `poison_puis` = poison_puis + 0,
                                    `poison_dur` = poison_dur + 0,
                                    `heracles` = heracles + 0,
                                    `transe` = transe + 0,
                                    `spectral` = spectral + 0,
                                    `immuno` = '".$immuno_final."',
                                    `bonus_initiative_puis` = bonus_initiative_puis + 0,
                                    `bonus_initiative_dur` = bonus_initiative_dur + 0,
                                    `bonus_force_puis` = bonus_force_puis + 0,
                                    `bonus_force_dur` = bonus_force_dur + 0,
                                    `bonus_endurance_puis` = bonus_endurance_puis + 0,
                                    `bonus_endurance_dur` = bonus_endurance_dur + 0,
                                    `bonus_dexterite_puis` = bonus_dexterite_puis + 0,
                                    `bonus_dexterite_dur` = bonus_dexterite_dur + 0
                                        WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
      if ( !( $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
      }
      $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name']." , l’amenant de ".$vict_car['vie'].' MP à '.$vie_victime.' MP. <BR>';
   }               
}

et le code avancé:
Code: Tout sélectionner
$messageaffich .= 'Choisissez votre cible :<BR><select name="ciblemagie['.$idmag.'][]">';
$lettertonumb = array('a'=>1,'b'=>2,'c'=>3,'d'=>4,'e'=>5,'f'=>6,'g'=>7, '1'=>'a', '2'=>'b', '3'=>'c', '4'=>'d', '5'=>'e', '6'=>'f', '7'=>'g', '0'=>'a', '8'=>'g');
$sql = "SELECT combat_numb, case_x, case_y FROM `ettel_combats` WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "'";
if ( !($result = $db->sql_query($sql)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
}
$arena = mysql_fetch_array($result);
$sql = "SELECT ettel_id, perso FROM `ettel_combats` WHERE combat_numb = '".$arena['combat_numb']."' AND combat_numb <> '0' AND (case_y='".$arena['case_y']."' OR case_y='".($arena['case_y']-1)."' OR case_y='".($arena['case_y']+1)."') AND (case_x='".$arena['case_x']."' OR case_x='".$lettertonumb[$lettertonumb[$arena['case_x']]-1]."' OR case_x='".$lettertonumb[$lettertonumb[$arena['case_x']]+1]."')";
if ( !($result = $db->sql_query($sql)) ) {
   message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
}
for($i=0; $i<mysql_num_rows($result); $i++) {
   $ettel_cible = mysql_fetch_array($result);
   $sql2 = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $ettel_cible['ettel_id'] . "'";
   if ( !($result2 = $db->sql_query($sql2)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $ettel_cible2 = mysql_fetch_array($result2);
   $messageaffich .= '<option value="'.$ettel_cible2['ettel_id'].'">'.$ettel_cible2['ettel_name'].'</option>';
}
$messageaffich .='</select>';
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

Messagede ettelcar le 07 Mai 2006, 10:57

voici le code pour l'antidote. Perso, je m'en sert pour un objet, mais il peut aussi être utilisé en magie.
Code: Tout sélectionner
foreach( $cible as $victime) {
   $sql = "select * from ettel_users WHERE `ettel_id` = '" . $victime . "'";
   if ( !($vict = $db->sql_query($sql)) ) {
      message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
   }
   $vict = mysql_fetch_array($vict);
   $arena1 = get_arena($att);
   $arena2 = get_arena($vict);
   $vict_car=get_carac($vict);
   
   $joueur_immunise= substr_count($vict['immuno'],"ÞÞ".$mag['code_immuno']."Þß");
   if ($joueur_immunise != "0") {
      $rapport = $ettel_user['ettel_name']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." , mais celui-ci est immunisé contre les attaques de type ".$mag['code_immuno'].".";
      $sql1 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "')";
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '<p> ".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." tente d’infliger ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." sans succès car ce dernier est immunisé. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }      
      $messageaffich .= $vict['ettel_name']." est immunisé contre les attaques de type ".$mag['code_immuno'].".<BR>";
   }
   else {
      $rapport .= "<p> ".$ettel_user['ettel_name']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." lui supprimant tout poison. ";
      $vie_victime = min( max ( $vie_victime_coup , 0 ) , $vict_car['viemax'] );
      $sql2 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE (`combat_numb` = '" . $arena1 . "') OR (`combat_numb` = '" . $arena2 . "');";
      $sql3 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , '".$ettel_user['ettel_name']." n° ".$ettel_user['ettel_id']." inflige ".$mag['comp_name']." à ".$vict['ettel_name']." n° ".$vict['ettel_id']." dirigé par n°".$userdata['user_id']." luis upprimant tout poison. ');";
      if ( !($result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql2 = "UPDATE `ettel_users` SET `poison_puis` = 0,
                                 `poison_dur` = 0
                                  WHERE `ettel_id` = '" . $vict['ettel_id'] . "' ";
      if ( !( $result2 = $db->sql_query($sql2)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: <p>erreur accès bdd,  état non modifié</p>'.mysql_error());
      }
      $messageaffich .= 'Vous infligez '.$mag['comp_name'].' à '.$vict['ettel_name'].' , lui supprimant tout poison. <BR>';
   }               
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

Messagede ettelcar le 28 Juin 2006, 08:50

Attention vos yeux, voici le code de la magie associée au livre de sort.
Elle ne peut être utilisée qu'avec un objet qui, une fois qu'on se l'est approprié, permet d'apprendre les sorts dispo grâce aux objets.

L'effet détaillé:
La magie permet de s'approprier le livre de sort: cela crée un nouvel objet : livre de sort de <pseudo> et une nouvelle magie qui permet à <pseudo> seul d'apprendre tous les sorts de ses objets (sauf consommables) pour ne plus avoir beson des items. Si quelqu'un d'autre tente d'apprendre les sorts avec le livre de <pseudo>, il perd toute sa mana.

Cette magie est particulièrement délicate, puisqu'elle créera à volonté d'autres magies et objets. Attention donc si vous rajoutez d'autres magies ou objets après, à bien utiliser l'administration ou à faire attention aux id.

Remplacez la première ligne pour l'id voulue pour votre objet.

Code: Tout sélectionner
$id_livre = 53;/*id de l'objet livre de sorts qui contient cette magie.*/

foreach( $cible as $victime) {
   /*on ne va pas chercher de merdes avec les immunos et tout le bordel. Le rapport n'est mis à jour que chez le proprio*/
   /*rechercher le livre dans l'inventaire*/
   $items = explode("°", str_replace("&","",$ettel_user['items']));
   $items = array_diff($items,array ("0",""));
   if(! in_array($id_livre,$items))
   {
      $messageaffich = 'Vous ne possédez pas le livre de sorts!';
   }
   else
   {
      /*créer la magie d'apprentissage*/
      $sql = "INSERT INTO `ettel_competences` ( `comp_name` , `type` , `ct_mana` , `jet_dext` , `nombre_cibles` , `self_only` , `arena_only` , `code_immuno` , `precode` , `code` )
            VALUES ('apprendre tous les sorts conférés par les objets pour 50 MP', 'magenchant', '50', 'non', '1', 'oui', 'oui', '', '', 'foreach( \$cible as \$victime) {
   \$sql = \"select * from ettel_users WHERE `ettel_id` = \'\" . \$victime . \"\'\";
   if ( !(\$vict = \$db->sql_query(\$sql)) ) {
      message_die(GENERAL_MESSAGE, \'Fatal Error: \'.mysql_error());
   }
   \$vict = mysql_fetch_array(\$vict);
   if ( \$vict[\'ettel_id\'] == \'" . $ettel_user['ettel_id'] . "\') {
      \$magies_dispo=array();
      \$temp = explode(\"°\", str_replace(\"&\",\"\",\$vict[\'user_comp\']));
      foreach(\$temp as \$comp_id)
      {
         if(!in_array(\$comp_id,\$magies_dispo)) \$magies_dispo[]=\$comp_id;
      }
      \$items = explode(\"°\", str_replace(\"&\",\"\",\$vict[\'items\']));
      \$items = array_diff(\$items,array (\"0\",\"\"));
      foreach(\$items as \$itemid) {
         \$sql = \"SELECT magies_objet FROM `ettel_shop` WHERE item_id = \'\" . \$itemid . \"\' AND effet_objet=\'non\' \";
         if ( !(\$result = \$db->sql_query(\$sql)) )
         {
            message_die(GENERAL_MESSAGE, \'Fatal Error: \'.mysql_error());
         }
         if( \$itemid!=" . $id_livre . " && \$ettel_item = mysql_fetch_array(\$result) )
         {
            \$temp = explode(\"°\", str_replace(\"&\",\"\",\$ettel_item[\'magies_objet\']));
            foreach(\$temp as \$comp_id)
            {
               if(!in_array(\$comp_id,\$magies_dispo) && \$comp_id!= \$mag[\'comp_id\'] && \$comp_id > 0)
               \$magies_dispo[]=\$comp_id;
            }
         }
      }
      \$magies_dispo = array_diff(\$magies_dispo,array (\"0\",\"\"));
      \$nvmag = \'\';
      foreach(\$magies_dispo as \$mag) {
         \$nvmag.=\'&\'.\$mag.\'°\';
      }
      \$rapport .= \"<p> Vous apprenez tous les sorts que vous confèrent vos objets non consommables. Vous n&rsquo;avez plus besoin de ceux-ci pour manipuler ces sorts. </p>\";
      \$sql1 = \"UPDATE `ettel_users` SET `user_comp` = \'\" . \$nvmag . \"\' WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\' ;\";       
      \$sql2 = \"UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , \'\".\$rapport.\"\' ) , 10000 ) WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\';\";
      \$sql3 = \"INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , \'\".\$ettel_user[\'ettel_name\'].\" n° \".\$ettel_user[\'ettel_id\'].\" dirigé par n°\".\$userdata[\'user_id\'].\" apprend tous les sorts de ses objets, l&rsquo;amenant à connaître \".\$nvmag.\" . \');\";
      if ( !(\$result1 = \$db->sql_query(\$sql1) && \$result2 = \$db->sql_query(\$sql2) && \$result3 = \$db->sql_query(\$sql3)) ) {
         message_die(GENERAL_MESSAGE, \'Fatal Error: coup non pris en compte \'.mysql_error());
      }
      \$messageaffich .= \$rapport;
   }
   else {
      \$rapport .= \"<p> Le livre ne vous reconnaît pas comme son propriétaire. Il se défend et brûle toute votre mana. </p>\";
      \$sql1 = \"UPDATE `ettel_users` SET `mana` = \'0\' WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\' ;\";       
      \$sql2 = \"UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , \'\".\$rapport.\"\' ) , 10000 ) WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\';\";
      \$sql3 = \"INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , \'\".\$ettel_user[\'ettel_name\'].\" n° \".\$ettel_user[\'ettel_id\'].\" dirigé par n°\".\$userdata[\'user_id\'].\" tente d&rsquo;apprendre avec le livre d&rsquo;un autre et perd toute sa mana. \');\";
      if ( !(\$result1 = \$db->sql_query(\$sql1) && \$result2 = \$db->sql_query(\$sql2) && \$result3 = \$db->sql_query(\$sql3)) ) {
         message_die(GENERAL_MESSAGE, \'Fatal Error: coup non pris en compte \'.mysql_error());
      }
      \$messageaffich .= \$rapport;
   }         
}')";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql = "SELECT comp_id FROM `ettel_competences` ORDER BY comp_id DESC";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $row = $db->sql_fetchrow();
      /*et l'image*/
      if( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".gif") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".gif";$ext=".gif";
      }
      elseif( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".jpg") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".jpg";$ext=".jpg";
      }
      elseif( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".png") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_livre . ".png";$ext=".png";
      }
      else
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/0.gif";$ext=".gif";
      }
      copy($imurl,$phpbb_root_path . "ettel/design/imagescomp/".$row['comp_id'].$ext);
      
      /*créer le livre de $ettel_user['ettel_name']*/
      $sql = "INSERT INTO `ettel_shop` ( `nom_objet` , `nom_boutique` , `description_objet` , `type_port` , `effet_objet` , `puissance` , `magies_objet` , `distance` , `bonus_initiative` , `bonus_force` , `bonus_endurance` , `bonus_dexterite` , `bonus_viemax` , `bonus_manamax` , `prix_objet` , `nb_stock` , `restock_time` , `last_restock` )
            VALUES ('Livre de sorts de ".$ettel_user['ettel_name']."', 'Livres de sorts appropriés', 'permet à son propriétaire d&rsquo;apprendre des sorts', 'sac', 'non', '0', '".$row['comp_id']."', 'non', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0000-00-00 00:00:00')";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql = "SELECT item_id FROM `ettel_shop` ORDER BY item_id DESC";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $row = $db->sql_fetchrow();
      /*et l'image*/
      copy($imurl,$phpbb_root_path . "ettel/design/imagesshop/".$row['item_id'].$ext);
      
      /*remplacer le livre dans l'inventaire*/
      $nborig = substr_count($ettel_user['items'], "&" . $id_livre . "°");
      $newitems = str_replace("&" . $id_livre . "°", "", $ettel_user['items']);
      for ($poh =1; $poh < $nborig; $poh++)
      {
         $newitems .= "&" . $id_livre . "°";
      }
      $newitems.= "&". $row['item_id'] . "°";
      $sql1 = "UPDATE `ettel_users` SET `items` = '" . $newitems . "' WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "' ;";            
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " dirigé par n°".$userdata['user_id']." s&rsquo;approprie le livre objet n°" . $id_livre . " qui devient n° " . $row['item_id'] . ", ce qui l\'amène à posséder les items " . $newitems . " . ');";
      $rapport .= "<p> Vous vous appropriez le livre de sort. Cet objet vous permet désormais et à vous seul d&rsquo;apprendre des sorts. </p>";
      $sql3 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "';";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $messageaffich .= $rapport;
   }
}


EDIT: corrigée le 13/07/06
Dernière édition par ettelcar le 13 Juil 2006, 14:19, édité 1 fois.
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

Messagede ettelcar le 28 Juin 2006, 20:08

Et voici la compétence du bracelet d'invocation.

Il faut impérativement l'associer à un objet, comme pour le live de sort.
Cette compétence permet de s'approprier le bracelet, ce qui crée un bracelet customisé et la magie correspondante.
Cette magie permettra au propriétaire du bracelet de faire disparaître ses objets d'invocation dont il ne contrôle pas directement les invocations pour les contrôler directement. De plus, pour chaque invocation dont le contrôle est ainsi acquis, celle-ci gagne +20 vie max et +30 vie max.
Si une autre personne tente d'utiliser le bracelet, il perd toute sa mana.

Modifier la première ligne avec l'id de l'objet conderné.

Code: Tout sélectionner
$id_bracelet = 73;/*id de l'objet bracelet d'invocation qui contient cette magie.*/

foreach( $cible as $victime) {
   /*on ne va pas chercher de merdes avec les immunos et tout le bordel. Le rapport n'est mis à jour que chez le proprio*/
   /*rechercher le bracelet dans l'inventaire*/
   $items = explode("°", str_replace("&","",$ettel_user['items']));
   $items = array_diff($items,array ("0",""));
   if(! in_array($id_bracelet,$items))
   {
      $messageaffich = 'Vous ne possédez pas le bracelet d&rsquo;invocation!';
   }
   else
   {
      /*créer la magie d'apprentissage*/
      $sql = "INSERT INTO `ettel_competences` ( `comp_name` , `type` , `ct_mana` , `jet_dext` , `nombre_cibles` , `self_only` , `arena_only` , `code_immuno` , `precode` , `code` )
            VALUES ('Fusionner tous les objets d&rsquo;invocation disponibles et fortifier les caractéristiques de ces invocations pour 30 MP (ces objets et leurs autres bonus disparaîtront)', 'magenchant', '30', 'non', '1', 'oui', 'oui', '', '', 'foreach( \$cible as \$victime) {
   \$sql = \"select * from ettel_users WHERE `ettel_id` = \'\" . \$victime . \"\'\";
   if ( !(\$vict = \$db->sql_query(\$sql)) ) {
      message_die(GENERAL_MESSAGE, \'Fatal Error: \'.mysql_error());
   }
   \$vict = mysql_fetch_array(\$vict);
   if ( \$vict[\'ettel_id\'] == \'" . $ettel_user['ettel_id'] . "\') {
      \$magies_dispo=array();
      \$temp = explode(\"°\", str_replace(\"&\",\"\",\$vict[\'user_comp\']));
      foreach(\$temp as \$comp_id)
      {
         if(!in_array(\$comp_id,\$magies_dispo)) \$magies_dispo[]=\$comp_id;
      }
      \$newitems = \$vict[\'items\'];
      \$items = explode(\"°\", str_replace(\"&\",\"\",\$vict[\'items\']));
      \$items = array_diff(\$items,array (\"0\",\"\"));
      foreach(\$items as \$itemid) {
         \$sql = \"SELECT magies_objet FROM `ettel_shop` WHERE item_id = \'\" . \$itemid . \"\' AND effet_objet=\'non\' \";
         if ( !(\$result = \$db->sql_query(\$sql)) )
         {
            message_die(GENERAL_MESSAGE, \'Fatal Error: \'.mysql_error());
         }
         if( \$itemid!=" . $id_bracelet . " && \$ettel_item = mysql_fetch_array(\$result) )
         {
            \$objet_retire = false;
            \$temp = explode(\"°\", str_replace(\"&\",\"\",\$ettel_item[\'magies_objet\']));
            foreach(\$temp as \$comp_id)
            {
               if(!in_array(\$comp_id,\$magies_dispo) && \$comp_id < 0) {
               \$sql1 = \"UPDATE `ettel_users` SET `viemax` = viemax + 20 , `manamax` = manamx + 30 WHERE `ettel_id` = \'\" . \$comp_id . \"\' ;\";       
               \$sql2 = \"UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , \'<p>Vous gagnez 20 en vie max et 30 en mana max du fait que \".\$vict[\'ettel_name\'].\" vous ait associé à son bracelet d&rsquo;invoqueur.</p>\' ) , 10000 ) WHERE `ettel_id` = \'\" . \$comp_id . \"\';\";
               \$sql3 = \"INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , \'\".\$ettel_user[\'ettel_name\'].\" n° \".\$ettel_user[\'ettel_id\'].\" dirigé par n°\".\$userdata[\'user_id\'].\" fait gagner 20 vie max et 30 mana max à la chimère \".\$comp_id.\" avec son bracelet d&rsquo;invocation. \');\";
               if ( !(\$result1 = \$db->sql_query(\$sql1) && \$result2 = \$db->sql_query(\$sql2) && \$result3 = \$db->sql_query(\$sql3)) ) {
                  message_die(GENERAL_MESSAGE, \'Fatal Error: coup non pris en compte \'.mysql_error());
               }
               \$messageaffich .= \$rapport;
                  \$magies_dispo[]=\$comp_id;
                  if (! \$objet_retire) {
                     \$nborig = substr_count(\$newitems, \"&\" . \$itemid . \"°\");
                     \$newitems = str_replace(\"&\" . \$itemid . \"°\", \"\", \$newitems);
                     for (\$poh =1; \$poh < \$nborig; \$poh++)
                     {
                        \$newitems .= \"&\" . \$itemid . \"°\";
                     }
                     \$objet_retire = true;
                  }
               }
            }
         }
      }
      \$magies_dispo = array_diff(\$magies_dispo,array (\"0\",\"\"));
      \$nvmag = \'\';
      foreach(\$magies_dispo as \$mag) {
         \$nvmag.=\'&\'.\$mag.\'°\';
      }
      \$rapport .= \"<p> Vous fusionnez tous les objets d&rsquo;invocation qui vous donnaient de nouvelles chimères. Ceux-ci ont disparu de votre inventaire, mais leur pouvoir d&rsquo;invocation est désormais en vous.</p>\";
      \$sql1 = \"UPDATE `ettel_users` SET `user_comp` = \'\" . \$nvmag . \"\' , `items` = \'\" . \$newitems . \"\' WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\' ;\";       
      \$sql2 = \"UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , \'\".\$rapport.\"\' ) , 10000 ) WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\';\";
      \$sql3 = \"INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , \'\".\$ettel_user[\'ettel_name\'].\" n° \".\$ettel_user[\'ettel_id\'].\" dirigé par n°\".\$userdata[\'user_id\'].\" fusionne ses chimères, l&rsquo;amenant à connaître \".\$nvmag.\" et aux objets \".\$newitems.\" . \');\";
      if ( !(\$result1 = \$db->sql_query(\$sql1) && \$result2 = \$db->sql_query(\$sql2) && \$result3 = \$db->sql_query(\$sql3)) ) {
         message_die(GENERAL_MESSAGE, \'Fatal Error: coup non pris en compte \'.mysql_error());
      }
      \$messageaffich .= \$rapport;
   }
   else {
      \$rapport .= \"<p> Le bracelet ne vous reconnaît pas comme son propriétaire. Il se défend et brûle toute votre mana. </p>\";
      \$sql1 = \"UPDATE `ettel_users` SET `mana` = \'0\' WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\' ;\";       
      \$sql2 = \"UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , \'\".\$rapport.\"\' ) , 10000 ) WHERE `ettel_id` = \'\" . \$vict[\'ettel_id\'] . \"\';\";
      \$sql3 = \"INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , \'\".\$ettel_user[\'ettel_name\'].\" n° \".\$ettel_user[\'ettel_id\'].\" dirigé par n°\".\$userdata[\'user_id\'].\" tente d&rsquo;apprendre avec le bracelet d&rsquo;un autre et perd toute sa mana. \');\";
      if ( !(\$result1 = \$db->sql_query(\$sql1) && \$result2 = \$db->sql_query(\$sql2) && \$result3 = \$db->sql_query(\$sql3)) ) {
         message_die(GENERAL_MESSAGE, \'Fatal Error: coup non pris en compte \'.mysql_error());
      }
      \$messageaffich .= \$rapport;
   }         
}')";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql = "SELECT comp_id FROM `ettel_competences` ORDER BY comp_id DESC";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $row = $db->sql_fetchrow();
      /*et l'image*/
      if( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".gif") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".gif";$ext=".gif";
      }
      elseif( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".jpg") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".jpg";$ext=".jpg";
      }
      elseif( file_exists( $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".png") )
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/" . $id_bracelet . ".png";$ext=".png";
      }
      else
      {
         $imurl = $phpbb_root_path . "ettel/design/imagesshop/0.gif";$ext=".gif";
      }
      copy($imurl,$phpbb_root_path . "ettel/design/imagescomp/".$row['comp_id'].$ext);
      
      /*créer le bracelet d'invocation de $ettel_user['ettel_name']*/
      $sql = "INSERT INTO `ettel_shop` ( `nom_objet` , `nom_boutique` , `description_objet` , `type_port` , `effet_objet` , `puissance` , `magies_objet` , `distance` , `bonus_initiative` , `bonus_force` , `bonus_endurance` , `bonus_dexterite` , `bonus_viemax` , `bonus_manamax` , `prix_objet` , `nb_stock` , `restock_time` , `last_restock` )
            VALUES ('Bracelet de l&rsquo;invoqueur ".$ettel_user['ettel_name']."', 'Bracelets d&rsquo;invoqueurs appropriés', 'permet à son propriétaire de fusionner des objets d&rsquo;invocation', 'anneau', 'non', '0', '".$row['comp_id']."', 'non', '0', '0', '0', '0', '0', '0', '0', '0', '0', '0000-00-00 00:00:00')";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $sql = "SELECT item_id FROM `ettel_shop` ORDER BY item_id DESC";
      if ( !($result = $db->sql_query($sql)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $row = $db->sql_fetchrow();
      /*et l'image*/
      copy($imurl,$phpbb_root_path . "ettel/design/imagesshop/".$row['item_id'].$ext);
      
      /*remplacer le bracelet dans l'inventaire*/
      $nborig = substr_count($ettel_user['items'], "&" . $id_bracelet . "°");
      $newitems = str_replace("&" . $id_bracelet . "°", "", $ettel_user['items']);
      for ($poh =1; $poh < $nborig; $poh++)
      {
         $newitems .= "&" . $id_bracelet . "°";
      }
      $newitems.= "&". $row['item_id'] . "°";
      $sql1 = "UPDATE `ettel_users` SET `items` = '" . $newitems . "' WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "' ;";            
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L&rsquo;utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " dirigé par n°".$userdata['user_id']." s&rsquo;approprie le bracelet objet n°" . $id_bracelet . " qui devient n° " . $row['item_id'] . ", ce qui l&rsquo;amène à posséder les items " . $newitems . " . ');";
      $rapport .= "<p> Vous vous appropriez le bracelet d&rsquo;invocation. Cet objet vous permet désormais et à vous seul de fusionner des objets d&rsquo;invocation et de fortifier les chimères associées. </p>";
      $sql3 = "UPDATE `ettel_combats` SET `historique` = RIGHT(CONCAT(historique , '".$rapport."' ) , 10000 ) WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "';";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) && $result3 = $db->sql_query($sql3)) ) {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $messageaffich .= $rapport;
   }
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.

Messagede ettelcar le 17 Juil 2006, 13:23

Voici pour le mode mercenariat.
Ceci vous permet d'accéder à certaines magies uniquement en payant.
On choisit un montant à payer, et la magie effectuée dépend ensuite de ce montant.

Le précode est à adapter si certaines des magies choisies ont un précode: celui-ci doit alors y être rajouté.

précode adapté pour des attaques multi-cibles et terre brûlée:
remplacez dans les premières lignes les id dans array() par les id des magies que vous voulez rendre disponibles par rang de puissance d'attaque.
Code: Tout sélectionner
$attaques_1=array(12,//enflammer
            13//magnetisme
);
$attaques_2=array(14,//innondation
            18//terre brûlée
);
$attaques_3=array(43//Zanmato
);
$messageaffich .='Payer ce mercenaire vous permettra d\'utiliser des attaques multi-cibles. La qualité de l\'attaque dépendra du montant de la paye.<BR>';
$messageaffich .='Choisissez vos cibles :<BR>';
                      
               $sqltgt = "SELECT ettel_id FROM `ettel_combats` WHERE combat_numb = '" . get_arena($ettel_user) . "'
                                                      AND (combat_numb <> '0' OR ettel_id='" . $ettel_user['ettel_id'] . "')";
               if ( !($resulttgt = $db->sql_query($sqltgt)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $select_mag_tgt2='sélectionnez les cibles sur lesquelles vous voulez lancer le sort (la cible pour le jet sera également sélectionnée) :<BR>';
               for($itgt=0; $itgt<mysql_num_rows($resulttgt); $itgt++)
               {
                  $mag_cible = mysql_fetch_array($resulttgt);
                  $sql2tgt = "SELECT ettel_id, ettel_name  FROM `ettel_users` WHERE `ettel_id`='" . $mag_cible['ettel_id'] . "'; ";
                  if ( !($result2tgt = $db->sql_query($sql2tgt)) )
                  {
                     message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
                  }
                  $mag_cible2 = mysql_fetch_array($result2tgt);
                  $select_mag_tgt2 .='<input type="checkbox" name="ciblemagie['.$idmag.'][]" value="'.$mag_cible2['ettel_id'].'">'.$mag_cible2['ettel_name'].'<BR>';
               }

               $sqltgtregen = "SELECT ettel_id, ettel_name FROM `ettel_users` WHERE vie = '0' ";
               if ( !($resulttgtregen = $db->sql_query($sqltgtregen)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
             $select_mag_tgtregen='Sélectionnez les cibles que vous voulez rescussiter si possible :<BR>';
               for($itgt=0; $itgt<mysql_num_rows($resulttgtregen); $itgt++)
               {
                 
                  $mag_cible2regen = mysql_fetch_array($resulttgtregen);
                  $select_mag_tgtregen .='<input type="checkbox" name="ciblemagie['.$idmag.'][]" value="'.$mag_cible2regen['ettel_id'].'">'.$mag_cible2regen['ettel_name'].'<BR>';
               }            

               $messageaffich .= $select_mag_tgt2.$select_mag_tgtregen;
            $messageaffich .= 'Choisissez l\'attaque à effectuer pour chacune des qualités:<BR>';
            $messageaffich .= 'Qualité d\'attaque 1 : <select name="att_type_1">';
            foreach($attaques_1 as $id_att) {
                  $sql_attaque = "SELECT comp_name FROM `ettel_competences` WHERE comp_id='".$id_att."'";
               if ( !($result_attaque = $db->sql_query($sql_attaque)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $attaque_descr = mysql_fetch_array($result_attaque);
               $messageaffich .= '<option value="'.$id_att.'">'.$attaque_descr['comp_name'].'</option>';
            }
            $messageaffich .= '</select><BR>';
            $messageaffich .= 'Qualité d\'attaque 2 : <select name="att_type_2">';
            foreach($attaques_2 as $id_att) {
                  $sql_attaque = "SELECT comp_name FROM `ettel_competences` WHERE comp_id='".$id_att."'";
               if ( !($result_attaque = $db->sql_query($sql_attaque)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $attaque_descr = mysql_fetch_array($result_attaque);
               $messageaffich .= '<option value="'.$id_att.'">'.$attaque_descr['comp_name'].'</option>';
            }
            $messageaffich .= '</select><BR>';
            $messageaffich .= 'Qualité d\'attaque 3 : <select name="att_type_3">';
            foreach($attaques_3 as $id_att) {
                  $sql_attaque = "SELECT comp_name FROM `ettel_competences` WHERE comp_id='".$id_att."'";
               if ( !($result_attaque = $db->sql_query($sql_attaque)) )
               {
                  message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
               }
               $attaque_descr = mysql_fetch_array($result_attaque);
               $messageaffich .= '<option value="'.$id_att.'">'.$attaque_descr['comp_name'].'</option>';
            }
            $messageaffich .= '</select><BR>';
            $messageaffich .= 'Choisissez le montant de la paye (cet or doit être disponible dans l\'inventaire du mercenaire) : <input type="text" value="0" name="paye">POs ( '.$ettel_user['PO'].' POs disponibles ).';


et voici le code :
remplacez de même dans les array(), ainsi que les montants par ceux que vous souhaitez imposer comme limites. (ceux-ci doivent être dans l'ordre croissant strict) :
Code: Tout sélectionner
$attaques_1=array(12,//enflammer
            13//magnetisme
);
$pal1 = rand(75,1000);
$attaques_2=array(14,//innondation
            18//terre brûlée
);
$pal2 = rand(1000,10000);
$attaques_3=array(43//Zanmato
);


$newamount=$ettel_user['PO']-intval($_POST['paye']);
if(intval($_POST['paye'])>$ettel_user['PO']) {
   $messageaffich .= "<p>Vous n'avez pas l'argent que vous voulez utiliser. Votre tour est stupidement gâché.</p>";
}
elseif(intval($_POST['paye'])<1) {
   $messageaffich .= "<p>Le mercenaire ne se battra pas gratuitement. Votre tour est stupidement gâché.</p>";
}
elseif(intval($_POST['paye'])<$pal1) {
   if(!in_array(intval($_POST['att_type_1']),$attaques_1)) {
      $messageaffich .= "<p>Vous avez tenté de tricher en choisissant une attaque qui n'était pas dans la liste. Cette tentative a été enregistrée.</p>";
      $sql1 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " tente de tricher avec le mode mercenaire en choisissant une attaque non dispo. ');";
      if ( !($result1 = $db->sql_query($sql1)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
   }
   else {
      $sql1 = "UPDATE `ettel_users` SET `PO` = PO - '" . intval($_POST['paye']) . "' WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "' ;";            
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " dépense " . intval($_POST['att_type_1']) . " POs pour son attaque, ce qui l\'amène à " . $newamount . " POs. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) ) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
      $attaque_descr = mysql_fetch_array($result_attaque);
      $sqlmag="SELECT * FROM `ettel_competences` WHERE `comp_id`='".intval($_POST['att_type_1'])."'";
      if ( !($resultmag = $db->sql_query($sqlmag)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $mag=mysql_fetch_array($resultmag);
      eval($mag['code']);
   }
}
elseif(intval($_POST['paye'])<$pal2) {
   if(!in_array(intval($_POST['att_type_2']),$attaques_2)) {
      $messageaffich .= "<p>Vous avez tenté de tricher en choisissant une attaque qui n'était pas dans la liste. Cette tentative a été enregistrée.</p>";
      $sql1 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " tente de tricher avec le mode mercenaire en choisissant une attaque non dispo. ');";
      if ( !($result1 = $db->sql_query($sql1)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
   }
   else {
      $sql1 = "UPDATE `ettel_users` SET `PO` = PO - '" . intval($_POST['paye']) . "' WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "' ;";            
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " dépense " . intval($_POST['att_type_1']) . " POs pour son attaque, ce qui l\'amène à " . $newamount . " POs. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) ) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
      $sqlmag="SELECT * FROM `ettel_competences` WHERE `comp_id`='".intval($_POST['att_type_2'])."'";
      if ( !($resultmag = $db->sql_query($sqlmag)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $mag=mysql_fetch_array($resultmag);
      eval($mag['code']);
   }
}
else {
   if(!in_array(intval($_POST['att_type_3']),$attaques_3)) {
      $messageaffich .= "<p>Vous avez tenté de tricher en choisissant une attaque qui n'était pas dans la liste. Cette tentative a été enregistrée.</p>";
      $sql1 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " tente de tricher avec le mode mercenaire en choisissant une attaque non dispo. ');";
      if ( !($result1 = $db->sql_query($sql1)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
   }
   else {
      $sql1 = "UPDATE `ettel_users` SET `PO` = PO - '" . intval($_POST['paye']) . "' WHERE `ettel_id` = '" . $ettel_user['ettel_id'] . "' ;";            
      $sql2 = "INSERT INTO `ettel_historique` ( `date` , `evenement` ) VALUES (NOW( ) , 'L\'utilisateur  " . $ettel_user['ettel_name'] . " n°" . $ettel_user['ettel_id'] . " a dirigé par " . $userdata['id'] . " dépense " . intval($_POST['att_type_1']) . " POs pour son attaque, ce qui l\'amène à " . $newamount . " POs. ');";
      if ( !($result1 = $db->sql_query($sql1) && $result2 = $db->sql_query($sql2) ) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: '.mysql_error());
      }
      $attaque_descr = mysql_fetch_array($result_attaque);
      $sqlmag="SELECT * FROM `ettel_competences` WHERE `comp_id`='".intval($_POST['att_type_3'])."'";
      if ( !($resultmag = $db->sql_query($sqlmag)) )
      {
         message_die(GENERAL_MESSAGE, 'Fatal Error: coup non pris en compte '.mysql_error());
      }
      $mag=mysql_fetch_array($resultmag);
      eval($mag['code']);
   }
}
Maintenant, si vous écoutez ma voix et gardez mon alliance, je vous tiendrai pour mon bien propre parmi tous les peuples, car toute la terre est à moi. Je vous tiendrai pour un royaume de prêtres, une nation sainte.
Avatar de l’utilisateur
ettelcar
Dieu Créateur
Dieu Créateur
 
Messages: 1706
Inscription: 10 Mar 2004, 14:43
Localisation: Toulouse.


Retourner vers Nouvelles fonctions / compétences

Qui est en ligne

Utilisateurs parcourant ce forum: Aucun utilisateur enregistré et 0 invités

cron