PhpBB-Power Communauté francophone de support et de mods pour phpBB
|
| Voir le sujet précédent :: Voir le sujet suivant |
| Auteur |
Message |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Dim 23 Avr 2006 à 20:49 Sujet du message: Problème de calcul d'xp(encore une petite quest non resolue) |
|
|
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 |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Dim 23 Avr 2006 à 21:42 Sujet du message: |
|
|
| En fait j'aimerai bien qu'on ne gagne de l'xp que si on gagne le combat... |
|
| Revenir en haut de page |
|
 |
Alcazarfr Moddeurs

Inscrit le: 04 Nov 2004 Messages: 2408 Localisation: Dans le port d'Amsterdam, [...]
|
Posté le: Lun 24 Avr 2006 à 13:01 Sujet du message: |
|
|
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 |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Lun 24 Avr 2006 à 18:20 Sujet du message: |
|
|
je te remercie enormément,
et bravo pour ce magnifique mod. |
|
| Revenir en haut de page |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Lun 24 Avr 2006 à 18:28 Sujet du message: |
|
|
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 |
|
 |
Alcazarfr Moddeurs

Inscrit le: 04 Nov 2004 Messages: 2408 Localisation: Dans le port d'Amsterdam, [...]
|
Posté le: Lun 24 Avr 2006 à 18:51 Sujet du message: |
|
|
| 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 |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Lun 24 Avr 2006 à 20:02 Sujet du message: |
|
|
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 |
 |
|
| Revenir en haut de page |
|
 |
Alcazarfr Moddeurs

Inscrit le: 04 Nov 2004 Messages: 2408 Localisation: Dans le port d'Amsterdam, [...]
|
Posté le: Lun 24 Avr 2006 à 20:32 Sujet du message: |
|
|
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 |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Lun 24 Avr 2006 à 20:44 Sujet du message: |
|
|
ah oui, je me suis même pas apercu que c'était pour les fuites :p
Merci bcp pour les réponses rapides  |
|
| Revenir en haut de page |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Lun 24 Avr 2006 à 21:20 Sujet du message: |
|
|
Ca marche niquel sauf qu'il fallait le mettre "avant" et pas après
Merci beaucoup, je trouve le jeu encore plus passionnant :p |
|
| Revenir en haut de page |
|
 |
Secles Petit joueur
Inscrit le: 13 Avr 2006 Messages: 10
|
Posté le: Mar 25 Avr 2006 à 9:36 Sujet du message: |
|
|
| j'ai le même problème pour les guilds, mais là je trouve pas le changement a faire... |
|
| Revenir en haut de page |
|
 |
cooclabombe0 Canard emmitouflé
Inscrit le: 27 Déc 2005 Messages: 92
|
Posté le: Mar 25 Avr 2006 à 22:36 Sujet du message: |
|
|
| et pour mettre quand on perd 1/5 d'xp c'est possible ou pas |
|
| Revenir en haut de page |
|
 |
etienneb1 Pingouin carnivore

Inscrit le: 17 Nov 2005 Messages: 42 Localisation: Québec
|
Posté le: Jeu 10 Aoû 2006 à 16:28 Sujet du message: |
|
|
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 |
|
 |
|
|
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
|
|