Sign in to follow this  
NothingElseMatters

 tutoriel / partage Théorie d'une table d'expérience cohérente

Recommended Posts

Salut membres de Funky Emulation,

 

Ceci est mon premier sujet concernant l'émulation Dofus, j'accepte toutes critiques constructives et améliorations pour ma théorie. Toutefois je tiens à préciser que celle-ci n'est pas parfaite, loin de moi l'idée de le croire, mais je pense qu'elle est très proche du système d'xp de Dofus.

Trêve de bavardage, commençons.

 

  • I - Problématique:

On a déjà tous été face à un problème très agaçant: trouver le nombre de points d'exp pour passer à un niveau +200. La plupart du temps on choisis un nombre fixe et on l'ajoute au nombre de pts actuels pour obtenir le nombre prochain, or, c'est pas très cohérent et les joueurs s'en lassent et se plaignent assez vite. Il arrive des fois où on choisit un pourcentage d'évolution, mais ça reste très "carré" (ou mainstream pour les puristes).

 

  • II - Théorie:

En réfléchissant pour trouver une solution à cette problématique, aucune solution ne me parait "viable"... Alors je me mis à étudier les statistiques des tables d'expérience (disponible ICI), j'ai essayé de trouver un rapport entre le niveau et l'expérience acquise, sans résultats, il n'existe aucun lien entre ces deux derniers. Néanmoins, j'ai cherché une fonction (avec comme paramètre le niveau du joueur) qui me retournerait l'expérience. Tout allait bien mais à force de tester, une fois dépassé le niveau 50, elle devient obsolète. Alors j'en fais une autre pour les niveaux 150+ et je combine mes deux fonctions.

J'obtiens donc cette fonction:


  • f(x) = (x^3*2 + ((x^3*2)x0,2)))*100*3,75
    Puis, on factorise et on a notre fonction:
    f(x) = x^3*9*10²
    sachant que x représente le niveau

Et voici la courbe qui représenterai notre fonction:

cFHhR.png

 

On se rend rapidement compte que pour les niveaux 200+, elle est idéale. (mais pas parfaite je dis bien)

 

  • III - Pratique:

Pour ce qui est de la pratique, vous le devinez sûrement, c'est très simple, voici une fonction PHP cadeau:

function cube( $nbr ) {
   retun($nbr*$nbr*$nbr);
}

function xpByLvl( $lvl ) {
   return (cube($lvl)*900);
} 

 

 

Je tâcherai, si la théorie plait, de faire un script PHP pour générer le code SQL voulu demain soir.

 

Je voudrais aussi des commentaires sur cette fonction, les défaillances que vous auriez aperçu (vu l'heure, je ne suis plus très lucide), les améliorations qu'on pourrait faire. Je tiendrais aussi à préciser que cette technique est abstraite et basée sur des statistiques, elle n'est donc pas parfaite comme je l'ai maintes fois précisé.

 

Cordialement,

NEM.

  • Like 1

Share this post


Link to post
Share on other sites

Ceci pourrais ette une bonne idée mais c est juste la quantitz d xp qui faut pour up qui change, mais une nouvel methode pour up qui ferais que chaque personne a besoin d un nombre de point d xp pour up, cela pourrais etre bien dans la theorie mais la pratique je pense que sa serais compliquer.

Share this post


Link to post
Share on other sites

Ceci pourrais ette une bonne idée mais c est juste la quantitz d xp qui faut pour up qui change, mais une nouvel methode pour up qui ferais que chaque personne a besoin d un nombre de point d xp pour up, cela pourrais etre bien dans la theorie mais la pratique je pense que sa serais compliquer.

 

Oui je comprends ce que tu essaies de dire, ça se fait sur l'émulateur ça. Sur Swarius2, on a fait exactement ce que tu dis, avec une formule secrète à laquelle on applique plusieurs bonus (cohérence des niveaux entre des équipes, sagesse..) et d'autres malus (mules..). Le système était parfait. Néanmoins, pour des niveaux 200 et plus tu auras toujours besoin des points hein ;)

Share this post


Link to post
Share on other sites

Ceci pourrais ette une bonne idée mais c est juste la quantitz d xp qui faut pour up qui change, mais une nouvel methode pour up qui ferais que chaque personne a besoin d un nombre de point d xp pour up, cela pourrais etre bien dans la theorie mais la pratique je pense que sa serais compliquer.

 

Oui je comprends ce que tu essaies de dire, ça se fait sur l'émulateur ça. Sur Swarius2, on a fait exactement ce que tu dis, avec une formule secrète à laquelle on applique plusieurs bonus (cohérence des niveaux entre des équipes, sagesse..) et d'autres malus (mules..). Le système était parfait. Néanmoins, pour des niveaux 200 et plus tu auras toujours besoin des points hein ;)

 

Oui il y a et aura toujours les points, mais l'ajout de condition spécifique pour up, peut être vraiment un truc pas mal, sa rajouterai un peu de difficulté à monté de niveau et plus de roleplay.

Share this post


Link to post
Share on other sites

Belle présentation avec un suivi de ta réflexion, pour un résultat qui à l'air très satisfaisant, je te dis donc merci & bon boulot !

Je déplace.

Share this post


Link to post
Share on other sites

@Cover3z mon skype est: akpakp60

@Nicky31, merci à toi pour avoir déplacé, content que mon premier sujet plaise :)

 

Des questions?

 

J'ai testé avec un algorithme de symétrie d'avéro. Apparemment si ta théorie prétend de savoir le nombre d'expérience a chaque monté de niveau, l’algorithme ne répond pas.

Share this post


Link to post
Share on other sites

En aucun cas ma théorie ne génère l'xp gagné en combat, uniquement l'xp pour les tables dans la base de données. De ce fait, je vois mal utiliser un algorithme pour mettre en pratique une fonction aussi simple.

Share this post


Link to post
Share on other sites

Hum... le cube est trop bas pour ce qui est de la vitesse d'augmentation de l'xp...

Une formule exponentiel serait mieux.

Share this post


Link to post
Share on other sites
Sign in to follow this