Accueil phpBB News phpBB Forum phpBB & support Mods Module Modification phpBB-Power Tutoriaux Tutoriel phpBB-Power Conseil personalisation phpBB-Power Conseil optimisation phpBB-Power Partenaires phpBB-Power



PhpBB-Power
Communauté francophone de support et de mods pour phpBB
 
 FAQFAQ   RechercherRechercher   Liste des MembresListe des Membres   Groupes d'utilisateursGroupes d'utilisateurs   S'enregistrerS'enregistrer 
 ProfilProfil   Se connecter pour vérifier ses messages privésSe connecter pour vérifier ses messages privés   ConnexionConnexion 

Problème de calcul d'xp(encore une petite quest non resolue)

 
Poster un nouveau sujet   Répondre au sujet    PhpBB-Power Index du Forum » Guilds' Adventure
Voir le sujet précédent :: Voir le sujet suivant  
Auteur Message
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Dim 23 Avr 2006 à 20:49    Sujet du message: Problème de calcul d'xp(encore une petite quest non resolue) Répondre en citant

Voila, donc bonjour tout le monde.

Est-ce normal qu'il est préférable de perdre contre un gros monstre plutot que de gagner contre un petit monstre? Car en 30 combats où j'ai perdu j'ai réussi à gagné 35 level simplement en affrontant un très gros monstre...

Donc j'ai réinstallé le jeu 3 fois mais toujours le même problème.

Pourrais-je savoir si il est possible d'avoir une formule de gain d'xp comme dans D&D c'est à dire en fonction des dégats infligés à l'ennemi en priorité mais en fonction du lvl du montre. Merci.


Dernière édition par Secles le Mar 25 Avr 2006 à 9:35; édité 1 fois
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Dim 23 Avr 2006 à 21:42    Sujet du message: Répondre en citant

En fait j'aimerai bien qu'on ne gagne de l'xp que si on gagne le combat...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Alcazarfr
Moddeurs


Inscrit le: 04 Nov 2004
Messages: 2408
Localisation: Dans le port d'Amsterdam, [...]

MessagePosté le: Lun 24 Avr 2006 à 13:01    Sujet du message: Répondre en citant

ouvres ga/includes/functions_combat_gvc.php

Normalement, tu auras:
Code:
   else if ( $type == 'defaite' )
   {
      $xp_fois = 1;


Remplacetes le 1 par 0
_________________
Je n'utilise en aucun cas MSN Messenger & je ne participe pas au projet de site

// En vacances
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Lun 24 Avr 2006 à 18:20    Sujet du message: Répondre en citant

je te remercie enormément,

et bravo pour ce magnifique mod.
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Lun 24 Avr 2006 à 18:28    Sujet du message: Répondre en citant

Excusez moi encore, mais je ne trouve pas ce qu'il faut rechercher...
Code:

<?php
/***************************************************************************
 *                                 functions.php
 *                            -------------------
 *   In GA par Alcazarfr
 *
 ***************************************************************************/

if (!defined('IN_PHPBB'))
{
   die('Hacking attempt');
}
function combat_fin($type)
{
   global $db, $ga_config, $guilde_infos, $userdata, $lang, $phpEx;

   $sql = "SELECT *
      FROM " . GA_COMBATS_TABLE . " 
      WHERE combat_guilde = " . $userdata['user_id'];
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Séléction du combat', '', __LINE__, __FILE__, $sql);
   }
   $combat_infos = $db->sql_fetchrow($result);

   $niveau_moyen_perso = $guilde_infos['guilde_puissance_persos'] / $guilde_infos['guilde_nombre_persos'];

   $variation_niveau = 2 + $combat_infos['combat_niveau'] - $niveau_moyen_perso;
   $variation_niveau_fuite = $niveau_moyen_perso - $combat_infos['combat_niveau'];

   if ( $type == 'victoire' )
   {
      $argent_var = ceil(mt_rand( $ga_config['ga_config_combat_gain_argent'] - ( $ga_config['ga_config_combat_gain_argent'] / 10 ), $ga_config['ga_config_combat_gain_argent'] + ( $ga_config['ga_config_combat_gain_argent'] / 10 ) ));
      $argent_var = $argent_var * $combat_infos['combat_niveau'];
      if ( $argent_var < 0 )
      {
         $argent_var = 0;
      }
      $alignement_mod = ceil(mt_rand($combat_infos['combat_niveau'] / 2, $combat_infos['combat_niveau'] / 4));
      $alignement_var = ( $combat_infos['combat_alignement'] >= 0 ) ? $guilde_infos['guilde_alignement'] - $alignement_mod : $guilde_infos['guilde_alignement'] + $alignement_mod ;

      $sql = "UPDATE " . GA_GUILDES_TABLE . "
         SET guilde_statut = 'repos', guilde_stats_combats = guilde_stats_combats + 1, guilde_stats_victoires = guilde_stats_victoires + 1, guilde_alignement = $alignement_var, guilde_argent = guilde_argent + $argent_var
                      WHERE guilde_id = " . $userdata['user_id'];
      if ( !($resultat = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, "Erreur52", "", __LINE__, __FILE__, $sql);
      }
      $message = substr($combat_infos['combat_texte'], 0, 300) . '...<br /><br /><br />' . sprintf($lang['Ga_combat_victoire'], $argent_var, $ga_config['ga_config_nom_argent_pluriel']) . '<br /><br />';
   }
   else if ( $type == 'defaite' )
   {
      $argent_var = ceil(mt_rand( ( $ga_config['ga_config_combat_gain_argent'] - ( $ga_config['ga_config_combat_gain_argent'] / 10 ) ) / 3, ( $ga_config['ga_config_combat_gain_argent'] + ( $ga_config['ga_config_combat_gain_argent'] / 10 ) ) / 3));
      $argent_var = $argent_var * $combat_infos['combat_niveau'];

      if ( $argent_var < 0 )
      {
         $argent_var = 0;
      }
      $sql = "UPDATE " . GA_GUILDES_TABLE . "
         SET guilde_statut = 'repos', guilde_stats_combats = guilde_stats_combats + 1, guilde_stats_defaites = guilde_stats_defaites + 1, guilde_argent = guilde_argent + $argent_var
                WHERE guilde_id = " . $userdata['user_id'];
      if ( !($resultat = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, "Erreur52", "", __LINE__, __FILE__, $sql);
      }
      $message = substr($combat_infos['combat_texte'], 0, 300) . '...<br /><br /><br />' . sprintf($lang['Ga_combat_defaite'], $argent_var, $ga_config['ga_config_nom_argent_pluriel']) . '<br /><br />';
   }
   else if ( $type == 'fuite' )
   {
      $alignement_mod = ceil(mt_rand($combat_infos['combat_niveau'] / 2, $combat_infos['combat_niveau'] / 4));
      $alignement_var = ( $combat_infos['combat_alignement'] <= 0 ) ? $guilde_infos['guilde_alignement'] - $alignement_mod : $guilde_infos['guilde_alignement'] + $alignement_mod ;

      $argent_var = ceil(mt_rand( ( $ga_config['ga_config_combat_gain_argent'] - ( $ga_config['ga_config_combat_gain_argent'] / 10 ) ) / 10, ( $ga_config['ga_config_combat_gain_argent'] + ( $ga_config['ga_config_combat_gain_argent'] / 10 ) ) / 10));
      $argent_var = $argent_var * $combat_infos['combat_niveau'];

      if ( $argent_var < 0 )
      {
         $argent_var = 0;
      }

      $sql = "UPDATE " . GA_GUILDES_TABLE . "
         SET guilde_statut = 'repos', guilde_stats_combats = guilde_stats_combats + 1, guilde_stats_fuites = guilde_stats_fuites + 1, guilde_alignement = $alignement_var, guilde_argent = guilde_argent + $argent_var
                   WHERE guilde_id = " . $userdata['user_id'];
      if ( !($resultat = $db->sql_query($sql)) )
      {
         message_die(GENERAL_ERROR, "Erreur52", "", __LINE__, __FILE__, $sql);
      }
      $message = sprintf($lang['Ga_combat_fuite'], $argent_var, $ga_config['ga_config_nom_argent_pluriel']) . '<br /><br />';
   }
   $sql = "SELECT cp.combat_perso_xp, p.perso_id, p.perso_nom
      FROM " . GA_PERSOS_TABLE . " p, " . GA_COMBATS_PERSOS_TABLE . " cp
      WHERE p.perso_guilde = " . $userdata['user_id'] . "
         AND p.perso_statut = 'combat'
         AND cp.combat_perso_perso_id = p.perso_id";
   if ( !($result = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Séléction du combat', '', __LINE__, __FILE__, $sql);
   }
   if ( $persos = $db->sql_fetchrow($result) )
   {
      do
      {
         $texte = ( $persos['combat_perso_xp'] > 1 ) ? sprintf($lang['Ga_combat_fin_xp_textes'], $persos['perso_nom'], $persos['combat_perso_xp']) : sprintf($lang['Ga_combat_fin_xp_texte'], $persos['perso_nom'], $persos['combat_perso_xp']);
         $xp_texte .= $texte . '<br />';
         $sql2 = "UPDATE " . GA_PERSOS_TABLE . "
            SET perso_xp = perso_xp + " . $persos['combat_perso_xp'] . ", perso_statut = 'repos', perso_pa = perso_pa_max, perso_pd = perso_pd_max, perso_pf = perso_pf_max, perso_pp = perso_pp_max, perso_pm = perso_pm_max
                  WHERE perso_id = " . $persos['perso_id'];
         if ( !($resultat = $db->sql_query($sql2)) )
         {
            message_die(GENERAL_ERROR, "Erreur2i13", "", __LINE__, __FILE__, $sql2);
         }
      }
      while ( $persos = $db->sql_fetchrow($result) );
      $db->sql_freeresult($result);
   }

   $message .= $xp_texte . '<br /><br />' .  sprintf($lang['Ga_retournez_region'], '<a href="' . append_sid("ga_region.$phpEx") . '">', '</a>'). '<br />' .  sprintf($lang['Ga_retournez_accueil'], '<a href="' . append_sid("ga.$phpEx") . '">', '</a>');

   $sql = "DELETE FROM " . GA_COMBATS_TABLE . "
      WHERE combat_guilde = " . $userdata['user_id'];
   if ( !($resultat = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Ne peux pas delete la', '', __LINE__, __FILE__, $sql);
   }
   $sql = "DELETE FROM " . GA_COMBATS_PERSOS_TABLE . "
      WHERE combat_perso_guilde_id = " . $userdata['user_id'];
   if ( !($resultat = $db->sql_query($sql)) )
   {
      message_die(GENERAL_ERROR, 'Ne peu', '', __LINE__, __FILE__, $sql);
   }
   message_die(GENERAL_MESSAGE, $message);
}



Edité par Alcazarfr pour les balises codes
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Alcazarfr
Moddeurs


Inscrit le: 04 Nov 2004
Messages: 2408
Localisation: Dans le port d'Amsterdam, [...]

MessagePosté le: Lun 24 Avr 2006 à 18:51    Sujet du message: Répondre en citant

Citation:
Après

Code:
$xp_texte .= $texte . '<br />';


Ajoutes

Code:
$persos['combat_perso_xp'] = ( $type == 'fuite' ) ? 0 : $persos['combat_perso_xp'];


Ca devrait marcher
_________________
Je n'utilise en aucun cas MSN Messenger & je ne participe pas au projet de site

// En vacances
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Lun 24 Avr 2006 à 20:02    Sujet du message: Répondre en citant

j'ai effectué le changement, et je gagne toujours beaucoup d'XP en combattant contre une créature de haut lvl et en perdant...

Citation:

Vous avez été vaincu par l'ennemi! Reprenez des forces et vengez-vous! Vos combattants apprennent de leur defaîte. Bon joueur, l'ennemi vous donne 270 Pièces d'or

Aragorn gagne 1080 Points d'expérience


Sad
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Alcazarfr
Moddeurs


Inscrit le: 04 Nov 2004
Messages: 2408
Localisation: Dans le port d'Amsterdam, [...]

MessagePosté le: Lun 24 Avr 2006 à 20:32    Sujet du message: Répondre en citant

ah, je croyais que tu le voulais pour les fuites ^^


A la place du code que je t'ai fait ajouté, met:

Code:
$persos['combat_perso_xp'] = ( $type == 'fuite' || $type == 'defaite' ) ? 0 : $persos['combat_perso_xp'];

_________________
Je n'utilise en aucun cas MSN Messenger & je ne participe pas au projet de site

// En vacances
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Visiter le site web de l'utilisateur
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Lun 24 Avr 2006 à 20:44    Sujet du message: Répondre en citant

ah oui, je me suis même pas apercu que c'était pour les fuites :p

Merci bcp pour les réponses rapides Wink
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Lun 24 Avr 2006 à 21:20    Sujet du message: Répondre en citant

Ca marche niquel sauf qu'il fallait le mettre "avant" et pas après Wink

Merci beaucoup, je trouve le jeu encore plus passionnant :p
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
Secles
Petit joueur


Inscrit le: 13 Avr 2006
Messages: 10

MessagePosté le: Mar 25 Avr 2006 à 9:36    Sujet du message: Répondre en citant

j'ai le même problème pour les guilds, mais là je trouve pas le changement a faire...
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé
cooclabombe0
Canard emmitouflé


Inscrit le: 27 Déc 2005
Messages: 92

MessagePosté le: Mar 25 Avr 2006 à 22:36    Sujet du message: Répondre en citant

et pour mettre quand on perd 1/5 d'xp c'est possible ou pas
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur
etienneb1
Pingouin carnivore


Inscrit le: 17 Nov 2005
Messages: 42
Localisation: Québec

MessagePosté le: Jeu 10 Aoû 2006 à 16:28    Sujet du message: Répondre en citant

Bonjour !

J'ai essayé de trouvé ces bouts de codes mais, apparamment, les fichiers ont changés depuis.

Alors, est-ce que je pourrais avoir le code à modifier et/ou ajouter pour ne pas gagner d'xp lors d'une fuite et d'une défaite ?

Pour la v1.1.2...
_________________
Pour tout savoir sur le jeu de stratégie Arsenal Extended Power et Taste the Power, ainsi que sur la TI-83/84 Plus, c'est ici : www.arsenalpc.net
Revenir en haut de page
Voir le profil de l'utilisateur Envoyer un message privé Envoyer un e-mail Visiter le site web de l'utilisateur MSN Messenger
Montrer les messages depuis:   
Poster un nouveau sujet   Répondre au sujet    PhpBB-Power Index du Forum » Guilds' Adventure Toutes les heures sont au format GMT + 2 Heures
Page 1 sur 1

 
Sauter vers:  
Vous ne pouvez pas poster de nouveaux sujets dans ce forum
Vous ne pouvez pas répondre aux sujets dans ce forum
Vous ne pouvez pas éditer vos messages dans ce forum
Vous ne pouvez pas supprimer vos messages dans ce forum
Vous ne pouvez pas voter dans les sondages de ce forum
Vous ne pouvez pas joindre des fichiers
Vous ne pouvez pas télécharger des fichiers


Powered by phpBB v2 © 2001, 2005 phpBB Group ¦ Theme: subSilver++
Traduction par : phpBB-fr.com