Un moyen :
- Récupérer un script d'XP personnalisé (basé sur le OnDeath générique), et mettre la barre d'XP à 0
- Avant de donner de l'expérience au joeur, vérifier si (à partir du OnDeath générique modifié, donc) le joueur à une variable "nVariable" à 1, ou si l'XP du joueur est supérieure ou égale à l'XP minimum qu'il aurait en ayant atteint le niveau supérieur, et dans ce cas lui coller la variable nVariable à 1. L'ordre des vérifications est moyennement importante.
( L'xp a atteint le bon palier si : [Niveau du joueur + 1] x [Niveau du joueur] x 500 )
- Rajouter ces petites vérifications dans le script d'xp (basé sur le OnDeath générique) :
if(GetLocalInt(oKiller,"VARIABLE")==1) return;
else { int nLevel = GetHitDice(oKiller); nLevel = (nLevel+1)*nLevel*500; if(GetXP(oKiller)>=nLevel) { SetLocalInt(oKiller,"VARIABLE",1); return; } else { // le reste du script d'xp vient ici.
- Dans le OnPlayerLevelup (ou un nom similaire, je ne sais plus...), faire perdre un niveau au joueur s'il a la variable nVariable à 1.
- Enfin, un script (dans le dialogue du maître du camp d'entrainement par exemple) vient mettre la variable nVariable à 0.
- (optionnel) Faire le même système de vérification pour tout ce qui donne de l'XP dans ton module (notamment les quêtes).
- (optionnel) Interdire les MDs de ton module de donner de l'XP...
[Le tout sous réserve de tests]
|