Aller au contenu
  • 0

Problème multi noms - variables


Question

Posté(e)

EDIT : Il ne s'agit pas vraiment de problème avec variables mais plus de problèmes avec listes.

 

Hey salut !

Bon j'ai un soucis : je souhaite faire en sorte que lorsqu'un joueur créer une arène (exemple : test), ca ajoute tout les blocs entre les position 1 et position 2 de l'arène (déjà fait) dans une liste (exemple : {arene.%player%.%arg-2%::*} en comptant que "%arg-2%" est le nom personnaliser de l'arène).

Après ca, je souhaite faire en sorte que lorsque j'ajoute une option via une commande à mon arène "test" (exemple : anti-break), via une commande genre "/option add anti-break <nom_de_l'arène>", ca fasse en sorte que les joueurs voulant casser l'arène "test" possédant l'option "anti-break" ne puisse pas.

Le soucis c'est que je ne sais pas comment je peux faire, je suis bloquer après le "on break" et je ne sais pas désigner l'arène spécifique.

 

Espérant que quelqu'un est compris mon problème et puisse m'aider

merci d'avance <3

11 réponses à cette question

Messages recommandés

  • 0
Posté(e)

C'est plutôt compliqué pour ce que tu veut faire, surtout qu'une variable stock qu'un seul information à la fois (Que des nombres, texte etc...) Mais tu peut créer des variables individuelles et par exemple, si "Arène1Variable" contient "NomArène" et "AntiKikoo", tu fait la suite.

  • 0
Posté(e)
C'est plutôt compliqué pour ce que tu veut faire, surtout qu'une variable stock qu'un seul information à la fois (Que des nombres, texte etc...) Mais tu peut créer des variables individuelles et par exemple, si "Arène1Variable" contient "NomArène" et "AntiKikoo", tu fait la suite.

 

Oui, MAIS le soucis c'est que je souhaiterais que l'utilisateur puisse créer un nom spécifique et que ce nom soit set dans une liste et que lorsqu'un block de l'arène créer est détruit, s'il s'agit d'une arène déjà set, alors ca cancel l'event

 

Je te montre ce que je veux faire a peu pres :

 

If arg 2 is "add":
               If arg 3 is set: #nom de l'arène
                   If arg 4 is "lock": #l'option
                       add {%arg-3%.lock} to {schema.%player%.%arg-3%.options::*} #ca set l'option
                       set {%arg-3%.lock} to true #ca active l'option
                       send "{@logo} &aL'option &elock &aa bien été ajouter au schema &d%arg-3%" #ca confirme les étapes précédentes

 

maintenant si parmis les blocs qui ont été set dans la variable "{schema.%player%.%arg-2%.blocks::*}" ("arg-2" = le nom de l'arène) pour la localisation des blocs (où ils étaient lorsqu'ils ont été sauvegarder) et dans la variable "{schema.%player%.%arg-2%.types::*}" pour le type des blocs (dirt, grass...), et qui ont été créer à un autre endroit (copier-coller) est casser, alors ca cancel l'event.

 

Espérant avoir été plus précis

  • 0
Posté(e)
Salut,

 

Pour cela il va nous falloir ton code en entier, sinon, on ne peut rien faire :-/ !

Je vais voir ce que je peux faire pour ta demande mais c'est que je reserve ce skript pour le concour du mois, et j'en ai déjà dit beaucoup donc je vais recourir à ca au dernier moment.

Bref je vais tout de même passer la partie du code qui nous interesse et sur laquelle on bug :

 

command /schematic <text> [<text>] [<text>] [<text>]:
   trigger:
       If arg 1 is "help":
           send "{@logo} &b/schematic create <name> &7- &fCrée un schema."
           send "{@logo} &b/schematic option [add/remove] <name> <name_of_option> &7- &fAjoute des options à un de vos schemas."
       if arg 1 is "create":
           If arg 2 is set:
               If {position.1.%player%} is set:
                   If {position.2.%player%} is set:   
                       loop blocks within {position.1.%player%} to {position.2.%player%}:
                           add location of loop-block to {schema.%player%.%arg-2%.blocks::*}
                           add type of loop-block to {schema.%player%.%arg-2%.types::*}
                           send "{@logo} &aLe schema &e%arg-2% &aa bien été créer."
       If arg 1 is "option":
           If arg 2 is "add":
               If arg 3 is set:
                   If arg 4 is "lock":
                       add {%arg-3%.lock} to {schema.%player%.%arg-3%.options::*}
                       set {%arg-3%.lock} to true
                       send "{@logo} &aL'option &elock &aa bien été ajouter au schema &d%arg-3%"

 

 

C'est mon maximum je ne peux pas en dire plus désolé (faudra trouver une altérnative sinon :/ )

 

Espérant pouvoir aider

  • 0
Posté(e)

Ce que tu vas faire c'est que quand tu vas créer une schema, tu ajoutes son nom à la liste {schematics::*}.

 

Et pour ensuite, on va faire une fonction qui permet de récupérer la schématique d'un joueur à son emplacement actuel :

 

function getPlayerSchematic(p: player) :: text:
   loop {schematics::*}:
       {schema.%player%.%loop-value%.blocks::*} contain {_p}'s location
       set {_schematic} to loop-value
   return {_schematic}

 

Comme ça dans le on break, pour récupérer la schématique du joueur, tu n'auras plus qu'à faire ça :

 

on break:
   set {_schematic} to getPlayerSchematic(player)

 

Edit : J'ai remarqué un truc bizarre, pourquoi tu créer des schematiques par joueur ({schema.%player%.%lenomdelashcmeatic.blocks::*}) ? Autant faire ça : {schema.%lenom%.blocks::*} etc...

  • 0
Posté(e)
Ce que tu vas faire c'est que quand tu vas créer une schema, tu ajoutes son nom à la liste {schematics::*}.

 

Et pour ensuite, on va faire une fonction qui permet de récupérer la schématique d'un joueur à son emplacement actuel :

 

function getPlayerSchematic(p: player) :: text:
   loop {schematics::*}:
       {schema.%player%.%loop-value%.blocks::*} contain {_p}'s location
       set {_schematic} to loop-value
   return {_schematic}

 

Comme ça dans le on break, pour récupérer la schématique du joueur, tu n'auras plus qu'à faire ça :

 

on break:
   set {_schematic} to getPlayerSchematic(player)

 

Edit : J'ai remarqué un truc bizarre, pourquoi tu créer des schematiques par joueur ({schema.%player%.%lenomdelashcmeatic.blocks::*}) ? Autant faire ça : {schema.%lenom%.blocks::*} etc...

 

Déjà, merci de ta réponse rapide je vais test ca et te répondrais de nouveau lorsque je l'aurais tester.

Ensuite, tu m'as demander :

Edit : J'ai remarqué un truc bizarre, pourquoi tu créer des schematiques par joueur ({schema.%player%.%lenomdelashcmeatic.blocks::*}) ? Autant faire ça : {schema.%lenom%.blocks::*} etc...
, et bien je le fais pour chaque joueur pour qu'un joueur ayant créer un schema, s'il veut l'envoyer à un de ses amis, sa créer le schema à la position de son ami, et que ce schéma, s'il a l'option "lock" par exemple, ca garde les même propriétés et ainsi, nous ne pouvons ni casser, ni ajouter de blocs dans ce schema malgrès sa position d'où 2 variables pour sauvegarder les blocs.
  • 0
Posté(e)
Ce que tu vas faire c'est que quand tu vas créer une schema, tu ajoutes son nom à la liste {schematics::*}.

 

Et pour ensuite, on va faire une fonction qui permet de récupérer la schématique d'un joueur à son emplacement actuel :

 

function getPlayerSchematic(p: player) :: text:
   loop {schematics::*}:
       {schema.%player%.%loop-value%.blocks::*} contain {_p}'s location
       set {_schematic} to loop-value
   return {_schematic}

 

Comme ça dans le on break, pour récupérer la schématique du joueur, tu n'auras plus qu'à faire ça :

 

on break:
   set {_schematic} to getPlayerSchematic(player)

 

Edit : J'ai remarqué un truc bizarre, pourquoi tu créer des schematiques par joueur ({schema.%player%.%lenomdelashcmeatic.blocks::*}) ? Autant faire ça : {schema.%lenom%.blocks::*} etc...

 

Bah c'était bien tenter mais c'est pas encore ca xD

Erreurs (2) :

 

1483902953-pas-encore-ca.png

  • 0
Posté(e)
Es tu sûr d'avoir Skript 2.2 ? Erreurs un peu chelou c'est la première fois que je vois ça.

 

J'ai tout les addons ainsi que la version de skript pour la version 1.10, ca fonctionne ?

  • 0
Posté(e)
J'ai tout les addons ainsi que la version de skript pour la version 1.10, ca fonctionne ?

Tu dois avoir Skript 2.2 Fixes V9B, elle est défaillante. Prend Skript et les Addons de ma signature.

  • 0
Posté(e)
Tu dois avoir Skript 2.2 Fixes V9B, elle est défaillante. Prend Skript et les Addons de ma signature.

 

Je n'ai plus d'erreur, je vois si ca fonctionne comme je le souhaite demain et je te redis ca (bien sûr, si sa fonctionne, je metterais ton nom dedans ca va de soie)

 

Sinon, j'ai un autre problème avec mon skript s'il y aurait aussi moyen que tu m'aides stp vu que t'as résolu un de mes soucis (ne te sens pas obliger t'en a déjà fait beaucoup) : https://skript-mc.fr/forum/threads/probl%C3%A8me-de-on-right-click.9632/

×
×
  • 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.