Fonction XP to level ?

Répondre
Partager Rechercher
Bonjour a tous

Voilà, je vous explique mon problème :
Je voudrais récupérer par une fonction le nombre d'XP nécessaire au joueur pour monter de niveau.
En fait, c'est pour être sûr de tomber à la base du niveau suivant, mais en prenant en compte que les multi-classes ne montent pas aussi vite (enfin il me semble )
Alors, si vous avez ce genre d'astuce dans vos cartons, je voudrai bien voir comment vous avez pu faire. Parce que là ca fait quelques heures que je cherche mon bonheur, mais sans succès
Menfin, si même pour les multi-classes, les limites sont identiques..... bah j'irais me cacher dans mon trou
Code PHP:

int GetXpLeftToUpLevel(int nXp)
{
    
int nXPLeft;
    if(
nXp <= XXXnXpLeft XXX nXP;
    else if(
nXp <= YYYnXpLeft YYY nXP;
    
//......
    
return nXP;

a la place de XXX tu met le taux d'xp qu'il faut pour arriver au dernier niveau, a la place de YYY , celui qu'il faut pour l'avant dernier, etc... jusqu'au premier niveau.
Yes, c'est déjà un début, mais mon problème c'est que si le perso est mal équilibré les passages de niveau ne sont pas les même que l'habitude. c'est pour ça que je voudrais pas les coder en dur.
Alors voila..... tu m'as déjà dépatouiller un peu, mais si il y avais moyen d'améliorer encore le truc, je cracherai pas dessus
avec
Code PHP:

// A creature can have up to three classes.  This function determines the
// creature's class level based on nClass Position.
// - nClassPosition: 1, 2 or 3
// - oCreature
// * Returns 0 if oCreature does not have a class in nClassPosition
//   (i.e. a single-class creature will only have a value in nClassLocation=1)
//   or if oCreature is not a valid creature.
int GetLevelByPosition(int nClassPositionobject oCreature=OBJECT_SELF
tu dois pouvoir réappliquer à la valeur récupérée les malus, si tu connais les règles ...
non ? c pas ca la question ? bon je sors ...
bin justement, le gros problème, c'est que je ne sais pas trop comment il gère tout ça
Peut-être que si je me pencher un peu sur le fichier xptable.2da, je trouverai quelque chose..... mais j'avoue que pour l'instant, je ne vois pas trop comment ça marche.

Parce que pour l'instant, j'arrive parfaitement a savoir ou le PC en est, mais pas où il va. C'est un peu rageant quand même

Enfin, si ça continue, je vais finir par croire que je suis tout seul a vouloir être gentil avec mes joueurs (enfin pas trop hein ) pour qu'ils gagnent vraiment un niveau (et pas juste un équivalent)...
arf.... je suis vraiment trop ****
La pénalité des multi-classes se calcule au moment des gains d'XP "automatiques" (Quand on tue des monstres par ex.) Mais effectivement, les passage de niveau se font toujours aux mêmes moment............
Donc maintenant, j'ai plus qu'a utilisé la trame de code que m'a filé Azra

Menfin, comme je le disais au début, je me suis pris la tête pour rien

*retourne au fond de son trou*
Les passages de niveaux sont les mêmes, c'est la quantité d'xp gagnée qui n'est pas la même me semble-t-il (ah... Dongeons et Dradons, 25 ans d'existence et toujours cette manie de se perdre dans des détails impossibles...) . Donc avec SetXP tu es tranquille a priori (on ne sait jamais).


Pour faire passer un perso au niveau supérieur:

Code PHP:

int nLevel GetHitDice(oPC);
SetXP(oPC1000 nLevel * (nLevel+1) / 2); 
EDIT:
accessoirement 1000/2 ça fait 500...
J'ai passé trop de temps sur les bancs des écoles moi...
Répondre

Connectés sur ce fil

 
1 connecté (0 membre et 1 invité) Afficher la liste détaillée des connectés