Bonjour à tous,
Étant en "vacances", je m'amuse à coder un skript qui me trotte dans la tête depuis longtemps.
Le skript que j'essaye de coder est un skript permettant de créer un shop (joueur) avec une pancarte. Pour le moment tout fonctionne "bien" (C'est peut être pas optimisé, mais ça viendra?).
Je rencontre quand même un problème aux niveaux du remove de l'item. En effet quand je veux "stocker" l'item, je veux que l'item soit "clear" de l'inventaire du joueur, puis sauvegarder dans une variables.
Or je n'arrive pas à "remove" cet item.
C'est peut être un skript ridicule pour certains, mais ce n'est pas grave :p
----
Le problème vient de la variable : {save_item.%player%} qui correspaond au nombres + items, mais qui n'est plus valide quand on remove. Or si je remove avec le full id, ça fonctionne...
----
Voilà l'asticot :[ATTACH=full]985[/ATTACH]
# Shop : Première ligne
# %player% : Second line
# Nombre : Nombre
# items : item hand
command /SignShop [<text>] [<text>]:
aliases: schop
description: SignShop
usage: /SChop
executable by: players
trigger:
arg 1 is not set:
message "Commande utilisable:"
message "&7\__ &6/schop give : Vous donne une pancarte"
message "&7\__ &6/schop prix <prix> : Prix de l'item"
arg 1 is "give":
give a sign named "&a--[&b&lSignChop&a]--" to player's inventory
message "---------------------------------------------"
message " "
message "&aVous avez reçu votre pancarte!"
message " "
message "---------------------------------------------"
arg 1 is "prix":
arg 2 is set:
set {se.editing.4.%player%} to true
set {se.line4.%player%} to arg 2
send "&2Cliquer sur la pancarte pour ajouter le prix !"
on place sign:
name of player's tool is "&a--[&b&lSignChop&a]--"
if block behind is air:
cancel event
message "---------------------------------------------"
message " "
message "&cVous devez placer la pancarte sur un mur/bloc!"
message " "
message "---------------------------------------------"
else:
message "---------------------------------------------"
message " "
message "&aLe shop à été placé !"
message " "
message "---------------------------------------------"
on sign change:
name of player's tool is "&a--[&b&lSignChop&a]--"
set line 1 to "&aSignShop"
set line 2 to "%player%"
on rightclick on a sign:
line 1 of the clicked block is "&aSignShop"
# On défini le prix
{se.editing.4.%player%} is true:
cancel event
set line 4 to coloured {se.line4.%player%}
delete {se.editing.4.%player%}
delete {se.line4.%player%}
clear {se.line4.%player%}
set {_tool} to "%player's tool%"
set {_split::*} to {_tool} split at " "
set {_number} to {_split::1} parsed as number
if {_number} is not set:
set {_number} to 1
if {_number} is 0:
set line 3 to "<ERROR>"
message "&cVous ne pouvez pas vendre de l'air ..."
stop
# Si on a une pomme nommé oui ou non on bloque l'action
if name of tool of player contains "&aOui":
stop
else if name of tool of player contains "&cNon":
stop
else if name of tool of player contains "&6Reprendre":
stop
# Sinon, on écrit sur le panneau
set line 3 to "%{_number}% %1 of player's tool%"
set {save_item.%player%} to line 3
message "Voulez-vous vraiment vendre ces items? [Oui/Non]"
# Si on a déja une pomme nommé "oui"
if player's inventory contains a apple named "&aOui":
cancel event
else:
give a apple named "&aOui" to player's inventory
give a golden apple named "&cNon" to player's inventory
give a enchanted golden apple named "&6Reprendre" to player's inventory
on rightclick:
if name of tool of player contains "&aOui":
set {itemdonne.%player%} to true
if player's inventory does not contain {save_item.%player%}:
message "L'item n'existe pas -.-"
else:
message "Vos %{save_item.%player%}% ont été stockés."
remove {save_item.%player%} from player
if name of tool of player contains "&cNon":
message "&cVous ne vendrez pas ceci : &6%{save_item.%player%}%"
if name of tool of player contains "&6Reprendre":
if {itemdonne.%player%} is true:
give {save_item.%player%} to player's inventory
message "&aItems redonné."
clear {itemdonne.%player%}
else:
cancel event
message "&cAucun item stockés !"
Edit :
Correction d'un petite parti du skript.
Problème toujours pas résolu.
Merci d'avance pour l'aide que vous pourrez m'apporter !
Cordialement