Leveling System

  • Initiateur de la discussion Androthus
  • Date de début
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Bonjour,

je suis actuellement en train de créer un serveur solo DarkRp pour m’entraîner et j'aimerais savoir si c'est possible avec l'addon de "vrondakis leveling system" d'augmenter le gain d'xp par périodes au fur et a mesure que l'ont grimpe des lvl ?

Car si je met 45xp / 3min les premiers level vont être rapide mais pour passer du lvl 49 a 50 je pense qu'il faut 3 semaines non stop

merci de proposer une solution ou alors une alternative :D
 
S

skillztv_

Geek suprême
Messages
248
Score réaction
47
Points
125
tu sais que c'est le principe des levels que plus ils sont haut plus ils sont dur a monter x)
 
  • J'aime
Réactions: Yoh Sambre ♪
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Je le sais tres bien, mais comme dans tout rpg ou mmo plus tu monte de niveaux plus l'xp que tu gagne aussi sera grand, dans un mmo tu gagne pas 100xp par quête du lvl 1 au lvl 80 c'est progressif et j'aimerais savoir si c'est possible de doubler l'xp a partir du lvl 20 / 30 etc pour que ça reste long a lvl up mais que ça prenne pas 3 jours pour 1 lvl a chaque fois
 
Ant00ine

Ant00ine

Geek suprême
Messages
455
Score réaction
225
Points
150
Tout simplement tu supprimes la fonction qui fait que l’XP diminue au cours du temps
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Ant00ine à dit:
Tout simplement tu supprimes la fonction qui fait que l’XP diminue au cours du temps
Je ne savais même pas qu'il y avait une fonction pareil dedans, je la trouve ou svp ? je suis pas trop calé en LUA
 
Ant00ine

Ant00ine

Geek suprême
Messages
455
Score réaction
225
Points
150
passe une partie du code, qui pour toi pourrait être à l’origine du problème.
C’est logique, l’XP ne devient pas plus dur tout seul, il y a forcément une fonction qui agit dessus. :)
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Ant00ine à dit:
passe une partie du code, qui pour toi pourrait être à l’origine du problème.
C’est logique, l’XP ne devient pas plus dur tout seul, il y a forcément une fonction qui agit dessus. :)
Salut, enfait il n'y a pas de probleme, j'utilise l'addon "Leveling-System" de vrondakis et dedans l'xp reste le meme, du lvl 1 au 99 tu met 100xp/3min ça restera 100xp meme pour du lvl 98 a 99, j'aimerais juste faire un script qui dit que si les joueur sont supérieur au lvl 20 ils gagnent xp *2 au lvl 30 xp*3 etc etc psk sinon les levels prennent une éternité a se faire, par exemple j'ai mis 1000xp/2min pour les premiers level ça passe tranquille mais a partir du lvl 20 ça devient long et horrible
 
ally

ally

Geek suprême
Messages
337
Score réaction
64
Points
100
Androthus à dit:
pour les premiers level ça passe tranquille mais a partir du lvl 20 ça devient long et horrible
En même temps c’est le but d’un addon de lvl...
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
ally à dit:
En même temps c’est le but d’un addon de lvl...
je le sais bien, je veux juste que ce soit plus rapide, psk du lvl 20 au 30 il faut a peut pres 2 semaines de jeux non-stop, et j'ai prévu des jobs jusqu'au lvl 70 donc j’imagine pas le temps
 
Ant00ine

Ant00ine

Geek suprême
Messages
455
Score réaction
225
Points
150
Androthus à dit:
Salut, enfait il n'y a pas de probleme, j'utilise l'addon "Leveling-System" de vrondakis et dedans l'xp reste le meme, du lvl 1 au 99 tu met 100xp/3min ça restera 100xp meme pour du lvl 98 a 99, j'aimerais juste faire un script qui dit que si les joueur sont supérieur au lvl 20 ils gagnent xp *2 au lvl 30 xp*3 etc etc psk sinon les levels prennent une éternité a se faire, par exemple j'ai mis 1000xp/2min pour les premiers level ça passe tranquille mais a partir du lvl 20 ça devient long et horrible
Oui mais l'apport d'XP ne se ralentit pas tout seul. Au lieu de rajouter une fonction qui le multiplie et faut trouver celle qui le divise
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Ant00ine à dit:
Oui mais l'apport d'XP ne se ralentit pas tout seul. Au lieu de rajouter une fonction qui le multiplie et faut trouver celle qui le divise
tu est sur qu'il y a une fonction qui divise l'xp au fur et a mesure ? C'est pas plutôt une fonction qui fait juste en sorte qu'il y ait besoin de plus d'xp a chaque level ?
 
Ant00ine

Ant00ine

Geek suprême
Messages
455
Score réaction
225
Points
150
Androthus à dit:
tu est sur qu'il y a une fonction qui divise l'xp au fur et a mesure ? C'est pas plutôt une fonction qui fait juste en sorte qu'il y ait besoin de plus d'xp a chaque level ?
C'est la même idée. Mais le but n'est pas de l'annuler mais de la supprimer :)
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
Ant00ine à dit:
C'est la même idée. Mais le but n'est pas de l'annuler mais de la supprimer :)
j'ai essayé d'éplucher le contenue du code mais j'ai pas réussis a trouver la fonction que tu demande, par contre j'ai trouvé la fonction qui ajoute de l'xp en fonction du timer donné la voici :

Code:
function meta:addXP(amount, notify, carryOver) local PlayerLevel = (self:getDarkRPVar('level')) local PlayerXP = (self:getDarkRPVar('xp')) amount = tonumber(amount) if((not amount) or (not IsValid(self)) or (not PlayerLevel) or (not PlayerXP) or (PlayerLevel>=LevelSystemConfiguration.MaxLevel)) then return 0 end if(not carryOver) then if(self.VXScaleXP) then amount=(amount*tonumber(self.VXScaleXP)) end end if not(notify) then DarkRP.notify(self,0,4,'Vous avez gagné'..amount..' XP!') end local TotalXP = PlayerXP + amount if(TotalXP>=self:getMaxXP()) then // Level up! PlayerLevel = PlayerLevel + 1 DarkRP.notifyAll(0,3,self:Name() .. ' est level '..PlayerLevel..'!') hook.Call( "PlayerLevelChanged", nil, self, PlayerLevel-1, PlayerLevel ) // call the PlayerLevelChanged hook and pass player, old level and new level. local RemainingXP = (TotalXP-self:getMaxXP()) if(LevelSystemConfiguration.ContinueXP) then if(RemainingXP>0) then self:setXP(0) self:setLevel(PlayerLevel) return self:addXP(RemainingXP,true,true) end end self:setLevel(PlayerLevel) self:setXP(0) DarkRP.storeXPData(self,PlayerLevel,0) else DarkRP.storeXPData(self,PlayerLevel,(TotalXP or 0)) self:setXP(math.max(0,TotalXP)) end return (amount or 0)
end
c'est pas possible de rajouter un truc du meme genre que le double salaire pour les VIP mais version XP comme ceci :

Code:
if table.HasValue({"vip"}, ply:GetUserGroup()) then
local PlayerXP = tonomber * 2
return false, "XP double pour les membres VIP."
end
j'ai écris ça un peu au pif je suis pas du tout calé mais bon j'essaye de comprendre ^^
 
S

skillztv_

Geek suprême
Messages
248
Score réaction
47
Points
125
Androthus à dit:
c'est pas possible de rajouter un truc du meme genre que le double salaire pour les VIP mais version XP comme ceci :

Code:
if table.HasValue({"vip"}, ply:GetUserGroup()) then
local PlayerXP = tonomber * 2
return false, "XP double pour les membres VIP."
end
j'ai écris ça un peu au pif je suis pas du tout calé mais bon j'essaye de comprendre ^^
L'idée est bonne, mais pas le code x)
 
  • Initiateur de la discussion
A

Androthus

Nouveau né
Messages
20
Score réaction
2
Points
15
skillztv_ à dit:
L'idée est bonne, mais pas le code x)
bon je m'y attendais mdr j'ai fais ça un peu au pif x)
mais du coup comment je peux m'y prendre psk la je sais plus trop ^^
 
thepsyca

thepsyca

Psychopathe
Messages
2 164
Score réaction
648
Points
365
Code:
function meta:addXP(amount, notify, carryOver) local PlayerLevel = (self:getDarkRPVar('level')) local PlayerXP = (self:getDarkRPVar('xp')) local groupevip = { 'vip', 'VIP', 'VIP+' } amount = tonumber(amount) if((not amount) or (not IsValid(self)) or (not PlayerLevel) or (not PlayerXP) or (PlayerLevel>=LevelSystemConfiguration.MaxLevel)) then return 0 end if(not carryOver) then if(self.VXScaleXP) then if table.HasValue(groupevip, self:GetUserGroup()) then amount=(amount*tonumber(self.VXScaleXP)) * 2 DarkRP.notify(self,0,4,'XP Doublé pour les VIP') else
amount=(amount*tonumber(self.VXScaleXP))
end end end if not(notify) then DarkRP.notify(self,0,4,'Vous avez gagné'..amount..' XP!') end local TotalXP = PlayerXP + amount if(TotalXP>=self:getMaxXP()) then // Level up! PlayerLevel = PlayerLevel + 1 DarkRP.notifyAll(0,3,self:Name() .. ' est level '..PlayerLevel..'!') hook.Call( "PlayerLevelChanged", nil, self, PlayerLevel-1, PlayerLevel ) // call the PlayerLevelChanged hook and pass player, old level and new level. local RemainingXP = (TotalXP-self:getMaxXP()) if(LevelSystemConfiguration.ContinueXP) then if(RemainingXP>0) then self:setXP(0) self:setLevel(PlayerLevel) return self:addXP(RemainingXP,true,true) end end self:setLevel(PlayerLevel) self:setXP(0) DarkRP.storeXPData(self,PlayerLevel,0) else DarkRP.storeXPData(self,PlayerLevel,(TotalXP or 0)) self:setXP(math.max(0,TotalXP)) end return (amount or 0)
end
 
Discord d'entraide
Rejoignz-nous sur Discord