Aller au contenu
  • 0

Remplacer les variable par fichier yml


Question

Posté(e)

Bonjour,

 

J'ai fais un skript de porte (loin d'être parfait, mais mes joueurs l'aime bien).

Actuelement je passe par des variables pour stocker les coordonnées, les propriétaires et les joueurs autorisé a utiliser la porte.

J'aurais souhaiter passer par des fichier .yml.

Idéalement il me faudrait des fichiers de type "event-location" le soucis que je rencontre avec ça c'est que je ne peux pas l'ouvrir, surement a cause des symboles contenu dans les coordonnées.

J'ai donc essayé un fichier liste contenant les coordonnées, mais là encore j'ai un soucis.

Elle s'affiche comme ceci:

'x: -175':
 '5, y: 34':
   '5, z: 165':
     '5':
       owner:
       - ggdu490
       allow:
       - ggdu490

 

Fin, du coup je ne sais plus trop comment procédez.

Sachant que les coordonnées correspondent a un panneau a cliquer et que l'ajout et la suppression de membre ce fait avec une commande en regardant le panneau.

Si quelqu'un a une solution ou une idée a proposer, je suis preneur.

Merci par avance a vous

Messages recommandés

  • 0
Posté(e)

hummm J'ai fais un truc comme ça:

on rightclick on a sign:
   if line 1 is "&e[Porte]":
       if gamemode of player is survival:
           set {_x1} to x-location of event-location
           set {_y1} to y-location of event-location
           set {_z1} to z-location of event-location
           set "allow" to "%{_porteallow::*}%" in yaml file "../../Porte/%{_x1}%,%{_y1}%,%{_z1}%.yml"
           if {_porteallow::*} doesn't contain player:
               cancel event
               message "{@logo}&4Tu n'es pas autorisé a utiliser cette porte"

Je ne sais pas encore si c'est bon, je fais la partie pour enlever un personne allow pour voir si ça m'enleve bien

  • 0
Posté(e)

Ah oui ça fonctionne tout de suite mieux lol

Et effectivement ça ne récupère pas la liste, je cherche comment faire.

command /test <text> [<offline player>]:
   trigger:
       if targeted block is a sign:
           if line 1 of targeted block is "&e[Porte]":
               set {_x} to x-location of targeted block
               set {_y} to y-location of targeted block
               set {_z} to z-location of targeted block
               replace all "." with "," in {_x}
               replace all "." with "," in {_y}
               replace all "." with "," in {_z}
               if arg 1 is "add":
                   add "%arg 2%" to yaml list "allow" from file "../../Porte/%{_x}%,%{_y}%,%{_z}%.yml"
               if arg 1 is "del":
                   remove "%arg 2%" from yaml list "allow" from file "../../Porte/%{_x}%,%{_y}%,%{_z}%.yml"
               if arg 1 is "list":
                   set {_porteallow:} to value list "allow" get of "../../Porte/%{_x}%,%{_y}%,%{_z}%.yml"
                   send "%{_porteallow:}%"

Pour le moment cette parti là fonctionne sauf pour la liste qui affiche <none>

  • 0
Posté(e)

Bon, bah je suis content, tout fonctionne :)

Dis moi ce que tu en pense:

http://pastebin.com/5zvUMTzg

Et si jamais tu as des idées pour l'optimiser, je suis preneur lol

J'ai voulu mettre des subroutine mais ça ne passais pas, après je sais pas trop les utilisés.

Mais c'est vraiment sympa le yml, dans le futur je vais voir pour intégré l'option des vitres dans le fichier et même y mettre la couleur, ça pourra surement rétrécir le skript.

Pense a me dire ce que tu en pense et encore un grand merci pour ton aide.

PS: j'attends que tu réponde avant de mettre en résolu

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

:) ça fait plaisir.

C'est cool si c'est pas trop dégueux.

Je prend ton conseil en compte pour le yml, je trouve que ca bug moins que les variables. J'aurais pourtant pensé l'inverse

Encore merci pour ton aide.

Je passe en résolu

  • J'aime 1
×
×
  • 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.