Aller au contenu
  • 0

Interagir avec des joueurs sur un certain event


Question

Posté(e)

Hey !

Version du Skript: dev. 29

Version de MC: 1.12

 

Edit: J'ai "réglé" mon problème, étant donné que c'était compliqué à développer. Si vous voulez toujours résoudre ce problème de départ :)

 

[spoiler=Ancien Problème]

 

[spoiler=Explication de mon Skript]

Je voudrais que un joueur puisse "enregistrer" son inventaire et le restituer plus tard avec une boucle qui give tous les IDs des objets qui étaient dans son inventaire.

 

Exemple: Notch a une pomme, une épée en diamant et un lingot de fer dans son inventaire. On ne prendra pas en compte: l'emplacement, la quantité, le rename, la description ou même le NBT Tag. On veut juste se souvenir de la pomme/épée en diams'/lingot de fer. Notch fais la commande: /souvenir pour prendre en compte cet inventaire.

 

Avec la commande: /restituer, Notch verra dans le tchat ce qu'il avait. Il verra ainsi un message:

Tu possédais:

- Pomme

- Epée en diamant

- Lingot de fer

 

 

[spoiler=Le codage]

# Notez que c'est qu'une partie du skript :)
   loop 36 times: # Cases d'inventaire
       set {slot.%{_slot}%.souvenir} to slot {_slot} of player's inventory #Ici, je pense qu'il est utile de mettre les slots quelque part
       set {iditem.%{_slot}%.souvenir} to ?????  #Afin de les restituer, d'un moyen inconnu ici.
       add 1 to {_slot} # On ajoute 1 à {_slot} pour prendre en compte chaque cases.

 

 

 

[spoiler=Vous avez pas compris ? Explication en image]

1498340899-souvenir-commande.png

- On fait la commande /souvenir

1498340899-souvenir.png

- Cela nous affiche une confirmation

1498340899-restituer-commande.png

- Plus tard, on veut faire /restituer

1498340899-restituer.png

- Et on a les IDs ! (Ou les noms détectables par Skript.)

 

 

 

 

 

 

Voici le nouveau problème ! :)

 

[spoiler=Nouveau Problème]

Alors, là ça doit sûrement être simple. En fait, j'ai un évènement précis (on weather change) et sur cet évènement je veux faire interagir des joueurs.

 

Exemple:

on weather change on rain:
   send "il pleut !!" to player
#Et là, bah évidemment ça marche pas car l'évènement nécessite d'interagir avec ce type précis d'évènement. Vous voyez l'topo ? :)

 

 

 

Voilà, j'espère que vous m'avez compris et merci d'avance pour votre aide si précieuse ! Bonne soirée & bon skript :)

19 réponses à cette question

Messages recommandés

  • 0
Posté(e)

Alors oui, mais non ! :/

Enfaite je vois ce que tu veux dire, et je sais déjà le faire ^^ (pour une fois ! :P)

Ici, je voudrais vraiment retirer l'ID/nom des items de l'inventaire. C'est pour une utilisation bien spécifique :)

  • 0
Posté(e)

Je peux te faire ça mais le problème c'est que les nom risques d'être de 1 pas très beau et de 2 en anglais (enfin ça c'est pas il tisque c'est sur :P)

  • 0
Posté(e)
Je peux te faire ça mais le problème c'est que les nom risques d'être de 1 pas très beau et de 2 en anglais (enfin ça c'est pas il tisque c'est sur :p)

Ma foi j'attends de voir le résultat ! Tu pourrais me donner un exemple ? :) (et oui, en anglais c'était le résultat attendu au départ (ou l'ID)

  • 0
Posté(e)

Up ! L'ancien problème est contourné, mais j'en ai un autre ! Si vous pouvez apporter un peu d'aide :) (En plus ça doit être simple...)

  • 0
Posté(e)

On weather change to rain:
   Send "il pleut" to all players

Il ne peut y avoir de player dans "on weather change" puisque aucun joueur n'est à l'origine d'un changement de meteo tu vois ce que je veux dire?

  • J'aime 1
  • 0
Posté(e)
Il ne peut y avoir de player dans "on weather change" puisque aucun joueur n'est à l'origine d'un changement de meteo tu vois ce que je veux dire?

Yep, je sais :) Mais enfaite, j'ai cherché vite fait et je voudrais interagir avec les joueurs quand même. Du coup, en insérant une variable non temporaire (pas de {_variable} quoi), on peut faire en sorte que cette variable soit active et ainsi, on peut envoyer un message aux joueurs sans passer par l'évènement. Mais le problème maintenant c'est:

 

Comment faire pour que Skript puisse prendre en compte la variable ? (Un code du style: )

every 5 seconds:
   if {detectionpluie} is true:
         set {detectionpluie} to false
         loop all players:
              send "Il pleut !" to loop-player
# Le problème ici, c'est que il y a un "every 5 seconds". Et j'ai peur que ça soit gourmand en ressources !

  • 0
Posté(e)
Je n'ai pas tout compris viens sur discord pour qu'on en discute ;) https://discord.gg/JMxrk

 

J'y suis sur le discord :)

 

C est résolu?

 

Non, pas encore ! Et pourtant ça doit être simple. Si tu n'as pas compris mon nouveau problème, j'vais réessayer d'expliquer en d'autres termes:

j'aimerais, à l'event:

on weather change

qu'il se passe quelque chose avec le joueurs. Par exemple, leur envoyé un message: "Oh ! Il pleut !"

Mais en fait, le problème c'est que aucun joueur n'est à l'origine de cet évènement (comme dit plus haut.)

Et je voudrais savoir si il y a un moyen ou un autre (je pensais aux variables) pour qu'on puisse interagir avec eux. Toutes les solutions sont possibles, et je me disais ceci:

 

Si, avec un "every 5 seconds", on vérifie que la variable {detectionpluie} est activée, alors on envoie un message aux joueurs puis on désactive la variable. Cependant, la question que je me pose c'est: est-ce que ça ne va pas être trop gourmand en RAM ? (Si c'est un every 5 seconds par exemple). Voilà ! Si vous avez d'autres idées, n'hésitez pas ;)

  • 0
Posté(e)
En clair tu veux envoyer un message à tous les joueurs ?

alors fait:

 

Broadcast "ton msg"

 

Si tu veux faire une action alors fait une loop:

 

Loop all players:
   Kill loop-player

Alors oui... mais non ! Enfaite, je veux envoyer ce message aux joueurs uniquement si l'event s'active. Tu vois ? :)

  • 0
Posté(e)

Voila donc après avoir parlé avec toi sur discord j'en suis arrivé à ce code:

on weather change to rain:
   send "il pleut" to all players
   damage all players by 1

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

C'est résolu ! Je pensais pas que c'était aussi simple, mais grâce à l'aide de @romax7 et @KyloRen3600 j'ai trouvé la solution adaptée à mon Skript que je suis en train de codé ! Un grand merci à eux deux !

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