Aller au contenu
  • 0

Taux d'XP Manquant


Question

Posté(e)

Bonsoir tout le monde ! ?

Je suis en train de créer mon serveur sous skript et je cherche à faire un système d'xp qui marche comme ça : quand on tue un joueur, on gagne un certain taux d'xp stocké dans une variable.

On commence le serveur au lvl 1 : variable {LVL.%player's UUID%}. Pour passer au lvl supérieur, il faut 100 * {LVL.%player's UUID%} xp. Mais ce calcul ne marche pas. Mon code :

on join:
	if {LVL.%player's UUID%} isn't set:
		set {LVL.%player's UUID%} to "1"
	if {XP.%player's UUID%} isn't set:
		set {XP.%player's UUID%} to "0"
	set {XPLvl.%player's UUID%} to 100 * {LVL.%player's UUID%}
	set {XPManquant.%player's UUID%} to {XPLvl.%player's UUID%} - {XP.%player's UUID%}

on death:
	if attacker is a player:
		if victim is a player:
			chance of 5%:
				add 10 to {XP.%attacker's UUID%}
				send "&aTu as gagné 10%% d'XP"
			chance of 10%:
				add 9 to {XP.%attacker's UUID%}
				send "&aTu as gagné 9%% d'XP"
			chance of 20%:
				add 8 to {XP.%attacker's UUID%}
				send "&aTu as gagné 8%% d'XP"
			chance of 30%:
				add 7 to {XP.%attacker's UUID%}
				send "&aTu as gagné 7%% d'XP"
			chance of 40%:
				add 6 to {XP.%attacker's UUID%}
				send "&aTu as gagné 6%% d'XP"
			chance of 100%:
				add 5 to {XP.%attacker's UUID%}
				send "&aTu as gagné 5%% d'XP"
			if {XP.%attacker's UUID%} >= {XPLvl.%player's UUID%}:
				set {XP.%attacker's UUID%} to 0
				add 1 to {LVL.%attacker's UUID%}
				send "&aTu es désormais &eniveau %{LVL.%player's UUID%}% &a!"
		else:
			stop

 

8 réponses à cette question

Messages recommandés

  • 0
Posté(e)
il y a 16 minutes, Kinri a dit :

Bonsoir tout le monde ! ?

Je suis en train de créer mon serveur sous skript et je cherche à faire un système d'xp qui marche comme ça : quand on tue un joueur, on gagne un certain taux d'xp stocké dans une variable.

On commence le serveur au lvl 1 : variable {LVL.%player's UUID%}. Pour passer au lvl supérieur, il faut 100 * {LVL.%player's UUID%} xp. Mais ce calcul ne marche pas. Mon code :


on join:
	if {LVL.%player's UUID%} isn't set:
		set {LVL.%player's UUID%} to "1"
	if {XP.%player's UUID%} isn't set:
		set {XP.%player's UUID%} to "0"
	set {XPLvl.%player's UUID%} to 100 * {LVL.%player's UUID%}
	set {XPManquant.%player's UUID%} to {XPLvl.%player's UUID%} - {XP.%player's UUID%}

on death:
	if attacker is a player:
		if victim is a player:
			chance of 5%:
				add 10 to {XP.%attacker's UUID%}
				send "&aTu as gagné 10%% d'XP"
			chance of 10%:
				add 9 to {XP.%attacker's UUID%}
				send "&aTu as gagné 9%% d'XP"
			chance of 20%:
				add 8 to {XP.%attacker's UUID%}
				send "&aTu as gagné 8%% d'XP"
			chance of 30%:
				add 7 to {XP.%attacker's UUID%}
				send "&aTu as gagné 7%% d'XP"
			chance of 40%:
				add 6 to {XP.%attacker's UUID%}
				send "&aTu as gagné 6%% d'XP"
			chance of 100%:
				add 5 to {XP.%attacker's UUID%}
				send "&aTu as gagné 5%% d'XP"
			if {XP.%attacker's UUID%} >= {XPLvl.%player's UUID%}:
				set {XP.%attacker's UUID%} to 0
				add 1 to {LVL.%attacker's UUID%}
				send "&aTu es désormais &eniveau %{LVL.%player's UUID%}% &a!"
		else:
			stop

 

Alors ça n'a pas grand chose a voir mais

Je te conseil d'utiliser pour tes variables des listes : {LVL::%player's UUID%} 

tu n'es pas obligé mais crois c'est plus opti et plus pratique 

 

Ensuite pour ton problème

if {LVL.%player's UUID%} isn't set:
		set {LVL.%player's UUID%} to "1"
	if {XP.%player's UUID%} isn't set:
		set {XP.%player's UUID%} to "0"
	set {XPLvl.%player's UUID%} to 100 * {LVL.%player's UUID%}

tu set ta première variable à "1" or une valeur entre "" sera un texte et un texte ne peut pas être multiplié, pour que ça soit un nombre tu as juste à set tes variable à 0 et à 1 au lieu de "0" et "1".

 

  • J'aime 1
  • 0
Posté(e) (modifié)
Il y a 1 heure, uiytt a dit :

Alors ça n'a pas grand chose a voir mais

Je te conseil d'utiliser pour tes variables des listes : {LVL::%player's UUID%} 

tu n'es pas obligé mais crois c'est plus opti et plus pratique 

 

Ensuite pour ton problème


if {LVL.%player's UUID%} isn't set:
		set {LVL.%player's UUID%} to "1"
	if {XP.%player's UUID%} isn't set:
		set {XP.%player's UUID%} to "0"
	set {XPLvl.%player's UUID%} to 100 * {LVL.%player's UUID%}

tu set ta première variable à "1" or une valeur entre "" sera un texte et un texte ne peut pas être multiplié, pour que ça soit un nombre tu as juste à set tes variable à 0 et à 1 au lieu de "0" et "1".

merci ca marche je me suis fais avoir comme ca... ?

 

Et pour ca {LVL::%player's UUID%}  tu en sais plus ?

Modifié par Kinri
  • 0
Posté(e)
il y a 12 minutes, Kinri a dit :

Et pour ca {LVL::%player's UUID%}  tu en sais plus ?

Je m'y connais très bien en liste ^^ 

Que veut tu savoir ? ?

(P.S : vite edit tes messages, tu vas te prendre un truc pour double poste :/)

  • J'aime 1
  • 0
Posté(e)

Ah désolé pour le double message, je peux pas supprimer le deuxieme.

tu as dis ca :

Citation

Je te conseil d'utiliser pour tes variables des listes : {LVL::%player's UUID%} 

tu n'es pas obligé mais crois c'est plus opti et plus pratique 

tu peux m'en dire plus ? plus opti et pratique dans quel sens ? ca m'intéresse ^^

  • 0
Posté(e)
il y a 10 minutes, Kinri a dit :

Ah désolé pour le double message, je peux pas supprimer le deuxieme.

tu as dis ca :

tu peux m'en dire plus ? plus opti et pratique dans quel sens ? ca m'intéresse ^^

Les listes sont plus pratique pour beaucoup de raison, la raison la plus simple c'est que c'est beaucoup plus simple pour supprimer toute les variables, ça permet aussi de voir tout les joueurs ayant de l'xp, très pratique si par exemple tu voudra faire un classement ^^

Ensuite skript est coder de tel manière que aller chercher un truc dans une liste est plus rapide et prend moins de ressource que une variable normale ?

utiliser des listes pour des variables est une bonne habitude à prendre permettant après de faire des trucs plus complexe ? 

  • J'aime 1
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • Créer...

Information importante

Nous avons placé des cookies sur votre appareil pour aider à améliorer ce site. Vous pouvez choisir d’ajuster vos paramètres de cookie, sinon nous supposerons que vous êtes d’accord pour continuer.