Aller au contenu
noftaly

[Simple] Sauvegarde d'inventaire

Messages recommandés

Salut !

je suis pas la pour vous apprendre comment cette fonction fonctionne mais juste pour vous la partager parce que c'est assez utile.

Ce n'est pas moi qui l'ai faite, je l'ai trouvé il y a super longtemps, sous forme de commande.

Voila la bête :

function inventoryManager(action: text, p: player):
	if {_action} is "save":
		loop 36 times:
			add slot (loop-number - 1) of {_p}'s inventory to {inv.%{_p}%::items::*}
		set {inv.%{_p}%::maingauche} to slot 40 of {_p}'s inventory
		set {inv.%{_p}%::casque} to helmet of {_p}
		set {inv.%{_p}%::plastron} to chestplate of {_p}
		set {inv.%{_p}%::pantalon} to leggings of {_p}
		set {inv.%{_p}%::bottes} to boots of {_p}
	if {_action} is "give":
		set {_s} to 0
		loop {inv.%{_p}%::items::*}:
			set slot {_s} of {_p}'s inventory to loop-value
			add 1 to {_s}
		set slot 40 of {_p}'s inventory to {inv.%{_p}%::maingauche}
		set helmet of {_p} to {inv.%{_p}%::casque}
		set chestplate of {_p} to {inv.%{_p}%::plastron}
		set leggings of {_p} to {inv.%{_p}%::pantalon}
		set boots of {_p} to {inv.%{_p}%::bottes}

Et ensuite vous pouvez l'utiliser comme cela : (ca peut être pratique pour les systèmes de login avec skript, ou pour les inventaires par mondes)

on quit:
	inventoryManager("save", player)
on join:
	clear player
	inventoryManager("give", player)

 

Enjoy ! ?

Modifié par noftaly
Merci a uiytt, Weber et bobinho
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites
Il y a 3 heures, noftaly a dit :

Salut !

je suis pas la pour vous apprendre comment cette fonction fonctionne mais juste pour vous la partager parce que c'est assez utile.

Ce n'est pas moi qui l'ai faite, je l'ai trouvé il y a super longtemps, sous forme de commande.

Voila la bête

function inventoryManager(action: text, p: player):
	if {_action} is "save":
		set {inventaire.%{_p}%} to player's inventory
		set {inv.%{_p}%::inventaire} to serialized contents of player's inventory
		set {inv.%{_p}%::casque} to helmet of player
		set {inv.%{_p}%::plastron} to chestplate of player
		set {inv.%{_p}%::pantalon} to leggings of player
		set {inv.%{_p}%::bottes} to boots of player
	if {_action} is "give":
		give {inventaire.%player%} to player
		set player's inventory's serialized contents to {inv.%{_p}%::inventaire}
		set helmet of player to {inv.%{_p}%::casque}
		set chestplate of player to {inv.%{_p}%::plastron}
		set leggings of player to {inv.%{_p}%::pantalon}
		set boots of player to {inv.%{_p}%::bottes}

Et ensuite vous pouvez l'utiliser comme cela : (ca peut être pratique pour les systèmes de login avec skript, ou pour les inventaires par mondes)

on quit:
	inventoryManager("save", player)
on join:
	clear player
	inventoryManager("give", player)

 

Enjoy ! ?

Le problème que j'ai avec  ça c'est qu'on peut pas faire ça pour des gui ou manipuler l'inventaire après (drop l'inventaire)

donc je conseil plus

function inventoryManager(action: text, p: player):
	if {_action} is "save":
		loop 36 times:
			add slot (loop-number - 1) of {_p}'s inventory to {inv.%{_p}%::items::*}
		set {inv.%{_p}%::casque} to helmet of player
		set {inv.%{_p}%::plastron} to chestplate of player
		set {inv.%{_p}%::pantalon} to leggings of player
		set {inv.%{_p}%::bottes} to boots of player
	if {_action} is "give":
		set {_s} to 0
		loop {inv.%{_p}%::items::*}:
			set slot {_s} of {_p}'s inventory to loop-value
			add 1 to {_s}
		set helmet of player to {inv.%{_p}%::casque}
		set chestplate of player to {inv.%{_p}%::plastron}
		set leggings of player to {inv.%{_p}%::pantalon}
		set boots of player to {inv.%{_p}%::bottes}

 

  • J'aime 2

Partager ce message


Lien à poster
Partager sur d’autres sites

Si je puis me permettre, il faut aussi sauvegarder la main gauche ^^ Et donc ça donnerai :

function inventoryManager(action: text, p: player):
	if {_action} is "save":
		loop 36 times:
			add slot (loop-number - 1) of {_p}'s inventory to {inv.%{_p}%::items::*}
		set {inv.%{_p}%::maingauche} to slot 40 of {_p}'s inventory
		set {inv.%{_p}%::casque} to helmet of player
		set {inv.%{_p}%::plastron} to chestplate of player
		set {inv.%{_p}%::pantalon} to leggings of player
		set {inv.%{_p}%::bottes} to boots of player
	if {_action} is "give":
		set {_s} to 0
		loop {inv.%{_p}%::items::*}:
			set slot {_s} of {_p}'s inventory to loop-value
			add 1 to {_s}
		set slot 40 of {_p}'s inventory to {inv.%{_p}%::maingauche}
		set helmet of player to {inv.%{_p}%::casque}
		set chestplate of player to {inv.%{_p}%::plastron}
		set leggings of player to {inv.%{_p}%::pantalon}
		set boots of player to {inv.%{_p}%::bottes}

 

 

  • J'aime 3

Partager ce message


Lien à poster
Partager sur d’autres sites

Ups, on a utilisé player dans une fonction ! Merci Bobinho de me l'avoir signalé !

function inventoryManager(action: text, p: player):
	if {_action} is "save":
		loop 36 times:
			add slot (loop-number - 1) of {_p}'s inventory to {inv.%{_p}%::items::*}
		set {inv.%{_p}%::maingauche} to slot 40 of {_p}'s inventory
		set {inv.%{_p}%::casque} to helmet of {_p}
		set {inv.%{_p}%::plastron} to chestplate of {_p}
		set {inv.%{_p}%::pantalon} to leggings of {_p}
		set {inv.%{_p}%::bottes} to boots of {_p}
	if {_action} is "give":
		set {_s} to 0
		loop {inv.%{_p}%::items::*}:
			set slot {_s} of {_p}'s inventory to loop-value
			add 1 to {_s}
		set slot 40 of {_p}'s inventory to {inv.%{_p}%::maingauche}
		set helmet of {_p} to {inv.%{_p}%::casque}
		set chestplate of {_p} to {inv.%{_p}%::plastron}
		set leggings of {_p} to {inv.%{_p}%::pantalon}
		set boots of {_p} to {inv.%{_p}%::bottes}

 

Modifié par noftaly
  • J'aime 1

Partager ce message


Lien à poster
Partager sur d’autres sites

Si je puis me permettre, il ne faut pas utilisé player dans une fonction ?

C'est boby, je ne sais pas comment changer de nom ?

Modifié par Eralysium

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui je viens de modifier ? et tu peux pas changer de nom si t'es pas Ancien ou MA

Partager ce message


Lien à poster
Partager sur d’autres sites

Oui mais Ancien c'est 500 msg et 50 likes ? c'est pas en fonction de la date, comme on pourrait le penser. Ya une une MaJ des grades

 

EDIT : J'ai modifié le code, il est maintenant lisible xD

Modifié par noftaly
  • Triste 2

Partager ce message


Lien à poster
Partager sur d’autres sites
Invité
Vous postez un commentaire en tant qu’invité. Si vous avez un compte, merci de vous connecter.
Répondre à ce sujet…

×   Collé en tant que texte enrichi.   Coller en tant que texte brut à la place

  Seulement 75 émoticônes maximum sont autorisées.

×   Votre lien a été automatiquement intégré.   Afficher plutôt comme un lien

×   Votre contenu précédent a été rétabli.   Vider l’éditeur

×   Vous ne pouvez pas directement coller des images. Envoyez-les depuis votre ordinateur ou insérez-les depuis une URL.


×

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.