Aller au contenu
  • 0

Skript pour plusieurs joueurs


Question

Posté(e)

(Re)-Bonjour à tous. J'ai réaliser un skript qui selon son grade permet de donner une quantité d'argent toutes les 30 mins. Seuelement après test et reflexion je me suis rendu compte que lorsqu'un joueur cliqué sur le panneau pour récupérer son argent cela reset tous les timers de tous les grades.. Serait-il possible d'avoir plusieurs variable propre à chaque joueur ? Si je n'ai pas été assez clair n'hésitez pas à me poser des questions. Merci d'avance pour vos réponses ! Voici mon code, merci de ne pas le copier sans mon autorisation :)

variables:
   {secondes} = 0
   {minutes} = 0
   {ref} = 30
   {m.restant} = 30
   {s.restant} = 60

every 1 second:
   add 1 to {secondes}
   if {secondes} is 60:
       set {secondes} to 0
       add 1 to {minutes}
   remove 1 from {s.restant}
   if {s.restant} is 0:
       set {s.restant} to 60
       remove 1 from {m.restant}


on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player has permission "default.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30
               set {s.restant} to 60
           else:
           send "&aProchain salaire dans &4%{m.restant}% min &aet &4%{s.restant}% s." to player
on command "vbreset":
   if player has permission "vb.sk":
       set {secondes} to 0
       set {secondes} to 0
       set {minutes} to 0
       set {ref} to 30
       set {m.restant} to 30
       set {s.restant} to 60
       send "&6Tout a ete reset !" to player

on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player don't have permission "default.sk":
           send "&4Tu t'es trompe de panneau !" to player


on rightclick on sign:
   if line 4 of clicked block is "&3[Explorateur]":
       if player has permission "explorateur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&2[Rodeur]":
       if player has permission "Rodeur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&6[ingenieur]":
       if player has permission "Ingenieur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 6"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&d[illusioniste]":
       if player has permission "Illusioniste.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 7"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&a[Mage]":
       if player has permission "Mage.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 8"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&5[Legendaire]":
       if player has permission "Legendaire.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 10"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&b[supreme]":
       if player has permission "Supreme.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 15"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

Messages recommandés

  • 0
Posté(e)

Tu peux faire des variables sous cette forme qui utiliseront le pseudo du joueur: "{variable.%player%}" ou encore son UUID: "{variable.%player's uuid%}" :)

Par exemple pour moi la variable sera sous cette forme: "{variable.Izychiel}" et donc elle ne concerne seulement moi :D

 

Par contre évite le "every 1 second", généralement c'est beaucoup de lag pour rien, essaie plutôt d'utiliser des "every 30 minutes" ou un peu plus d'1 seconde "every 20 seconds" :p

  • J'aime 1
  • 0
Posté(e)
(Re)-Bonjour à tous. J'ai réaliser un skript qui selon son grade permet de donner une quantité d'argent toutes les 30 mins. Seuelement après test et reflexion je me suis rendu compte que lorsqu'un joueur cliqué sur le panneau pour récupérer son argent cela reset tous les timers de tous les grades.. Serait-il possible d'avoir plusieurs variable propre à chaque joueur ? Si je n'ai pas été assez clair n'hésitez pas à me poser des questions. Merci d'avance pour vos réponses ! Voici mon code, merci de ne pas le copier sans mon autorisation :)

variables:
   {secondes} = 0
   {minutes} = 0
   {ref} = 30
   {m.restant} = 30
   {s.restant} = 60

every 1 second:
   add 1 to {secondes}
   if {secondes} is 60:
       set {secondes} to 0
       add 1 to {minutes}
   remove 1 from {s.restant}
   if {s.restant} is 0:
       set {s.restant} to 60
       remove 1 from {m.restant}


on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player has permission "default.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30
               set {s.restant} to 60
           else:
           send "&aProchain salaire dans &4%{m.restant}% min &aet &4%{s.restant}% s." to player
on command "vbreset":
   if player has permission "vb.sk":
       set {secondes} to 0
       set {secondes} to 0
       set {minutes} to 0
       set {ref} to 30
       set {m.restant} to 30
       set {s.restant} to 60
       send "&6Tout a ete reset !" to player

on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player don't have permission "default.sk":
           send "&4Tu t'es trompe de panneau !" to player


on rightclick on sign:
   if line 4 of clicked block is "&3[Explorateur]":
       if player has permission "explorateur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&2[Rodeur]":
       if player has permission "Rodeur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&6[ingenieur]":
       if player has permission "Ingenieur.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 6"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&d[illusioniste]":
       if player has permission "Illusioniste.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 7"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&a[Mage]":
       if player has permission "Mage.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 8"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&5[Legendaire]":
       if player has permission "Legendaire.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 10"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

on rightclick on sign:
   if line 4 of clicked block is "&b[supreme]":
       if player has permission "Supreme.sk":
           if {minutes} is greater than or equal to {ref}:
               make server execute command "eco give %player% 15"
               set {secondes} to 0
               set {secondes} to 0
               set {minutes} to 0
               set {ref} to 30
               set {m.restant} to 30

 

 

Tu met juste %player% dans tes variables style

 

set {seconds.%player%} to 0

 

Voila

  • 0
Posté(e)

Une dernière aide : Je sais pas si vous avez vu mais j'ai crée une commande pour reset toutes las variables, du coup, existe-il une façon de tous reset avec les nouvelles variable du type "blabla.%player%"

  • 0
Posté(e)
Une dernière aide : Je sais pas si vous avez vu mais j'ai crée une commande pour reset toutes las variables, du coup, existe-il une façon de tous reset avec les nouvelles variable du type "blabla.%player%"

Il suffit de faire ceci

 

Set {liste.liste::%player%} to 0

 

Et ensuite

 

Clear {liste.liste::*}

  • 0
Posté(e)

Edit : après avoir changé les variables en rajoutant le player's uuid je recoit pleins d'erreur comme quoi le skript ne comprend pas la condition...

Y'a -t-il une place prédéfinit pour ce genre de variable ?

  • 0
Posté(e)
Edit : après avoir changé les variables en rajoutant le player's uuid je recoit pleins d'erreur comme quoi le skript ne comprend pas la condition...

Y'a -t-il une place prédéfinit pour ce genre de variable ?

Utilises simplement le %player% qui est plus simple d'utilisation dans des codes non complexe

  • 0
Posté(e)
Ouais mais vu que je suis en 1.8 si le joueur change de pseudo ca fonctionnera pas, quoi que sur ce skript la c'est pas gênant je pense.

Si ce n'est pas un skript de grade un simple player ça ira ;) sinon si tu veux vraiment le uuid

 

Essaye ça

 

Set {_uuid} to player's uuid

Set {list::%{_uuid}%}

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

J'ai mit quelque "world" par ci par là ^^

variables:
   {secondes.%player%} = 0
   {minutes.%player%} = 0
   {ref} = 30
   {m.restant.%player%} = 30
   {s.restant.%player%} = 60

every 1 second in "world":
   add 1 to {secondes.%player%} in "world"
   if {secondes.%player%} is 60 in "world":
       set {secondes.%player%} to 0
       add 1 to {minutes.%player%}
   remove 1 from {s.restant.%player%}
   if {s.restant.%player%} is 0 in "world":
       set {s.restant.%player%} to 60
       remove 1 from {m.restant.%player%}


on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player has permission "default.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30
               set {s.restant.%player%} to 60
           else:
           send "&aProchain salaire dans &4%{m.restant.%player%}% min &aet &4%{s.restant.%player%}% s." to player
on command "vbreset":
   if player has permission "vb.sk":
       set {secondes.%player%} to 0
       set {secondes.%player%} to 0
       set {minutes.%player%} to 0
       set {ref} to 30
       set {m.restant.%player%} to 30
       set {s.restant.%player%} to 60
       send "&6Tout a ete reset !" to player

on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player don't have permission "default.sk":
           send "&4Tu t'es trompe de panneau !" to player


on rightclick on sign:
   if line 4 of clicked block is "&3[Explorateur]":
       if player has permission "explorateur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&2[Rodeur]":
       if player has permission "Rodeur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 5"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&6[ingenieur]":
       if player has permission "Ingenieur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 6"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&d[illusioniste]":
       if player has permission "Illusioniste.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 7"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&a[Mage]":
       if player has permission "Mage.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 8"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&5[Legendaire]":
       if player has permission "Legendaire.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 10"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&b[supreme]":
       if player has permission "Supreme.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               make server execute command "eco give %player% 15"
               set {secondes.%player%} to 0
               set {secondes.%player%} to 0
               set {minutes.%player%} to 0
               set {ref} to 30
               set {m.restant.%player%} to 30




 

Maintenant j'ai des erreurs de ce type : gSUI7Fb.png

  • 0
Posté(e)
C'est pour ça que je demande votre aide ^^

Avant d'utiliser une fonction faudrait essayer quand même de se renseigner ^^

 

Ici tu as la doc, il te suffit de mettre "world" dans le champ de recherche et crois moi tu va trouver une réponse très rapidement ^^

http://www.skunity.com

  • 0
Posté(e)

Ok j'ai refait mon skript avec les world placés je suppose aux bon endroit mais j'obtient toujours l'erreur cité au dessus :/

variables:
   {secondes.%player%} = 0
   {minutes.%player%} = 0
   {ref} = 30
   {m.restant.%player%} = 30
   {s.restant.%player%} = 60

every 1 second in "world":
   add 1 to {secondes.%player%}
   if {secondes.%player%} is 60:
       set {secondes.%player%} to 0
       add 1 to {minutes.%player%}
   remove 1 from {s.restant.%player%}
   if {s.restant.%player%} is 0:
       set {s.restant.%player%} to 60
       remove 1 from {m.restant.%player%}


on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player has permission "default.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 5"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30
                   set {s.restant.%player%} to 60
               else:
               send "&aProchain salaire dans &4%{m.restant.%player%}% min &aet &4%{s.restant.%player%}% s." to player
on command "vbreset":
   if player has permission "vb.sk":
       set {secondes.%player%} to 0
       set {secondes.%player%} to 0
       set {minutes.%player%} to 0
       set {ref} to 30
       set {m.restant.%player%} to 30
       set {s.restant.%player%} to 60
       send "&6Tout a ete reset !" to player

on rightclick on sign:
   if line 4 of clicked block is "&f[Default]":
       if player don't have permission "default.sk":
           send "&4Tu t'es trompe de panneau !" to player


on rightclick on sign:
   if line 4 of clicked block is "&3[Explorateur]":
       if player has permission "explorateur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 5"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&2[Rodeur]":
       if player has permission "Rodeur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 5"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&6[ingenieur]":
       if player has permission "Ingenieur.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 6"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&d[illusioniste]":
       if player has permission "Illusioniste.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 7"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&a[Mage]":
       if player has permission "Mage.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 8"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&5[Legendaire]":
       if player has permission "Legendaire.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 10"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30

on rightclick on sign:
   if line 4 of clicked block is "&b[supreme]":
       if player has permission "Supreme.sk":
           if {minutes.%player%} is greater than or equal to {ref}:
               if player is in world "world":
                   make server execute command "eco give %player% 15"
                   set {secondes.%player%} to 0
                   set {secondes.%player%} to 0
                   set {minutes.%player%} to 0
                   set {ref} to 30
                   set {m.restant.%player%} to 30




  • 0
Posté(e)

Tu pourrais me dire ce que tu veux faire ou m'envoyer ton code complet stp que je le corrige car la ça en devient pas possible x)

 

EDIT: Att je viens de comprendre, j'ai mal lu les erreurs, ma faut, remet le every 1 seconds in "world"

 

Et parcontre, tu ne peux pas mettre de variable %player% dans le every

 

Pour vérifier le joueur, il te suffit de faire cela

every 1 second in "world":
   loop all players:      
 	if loop-player is in world "world":
          add 1 to {secondes.%loop-player%}
           if {secondes.%loop-player%} is 60:
               set {secondes.%loop-player%} to 0
               add 1 to {minutes.%loop-player%}
           remove 1 from {s.restant.%loop-player%}
            if {s.restant.%loop-player%} is 0:
               set {s.restant.%loop-player%} to 60
               remove 1 from {m.restant.%loop-player%}

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

Le problème c'est que j'ai l'impression que pour le skript {secondes.%loop-player%} et {secondes.%player} c'est pas la même chose, la j'ai pas d'erreur mais du coup les variables ne {machin.%player%} n'ont pas l'air de diminuer/augmenter

 

Edit : Ha si ca descend mais d'une seconde toutes les minutes je crois xD Je pense que ca vient des deux variables : {m.restant.%player%} et {s.restant.%player%}

  • 0
Posté(e)
Le problème c'est que j'ai l'impression que pour le skript {secondes.%loop-player%} et {secondes.%player} c'est pas la même chose, la j'ai pas d'erreur mais du coup les variables ne {machin.%player%} n'ont pas l'air de diminuer/augmenter

 

Edit : Ha si ca descend mais d'une seconde toutes les minutes je crois xD Je pense que ca vient des deux variables : {m.restant.%player%} et {s.restant.%player%}

Ah... Je pense qu'un plugin java aurais pu faire l'affaire, j'en connais un, mais je ne sais plus son nom, je sais qu'il y a rank (un rang)

  • 0
Posté(e)
En fait faudrait remplacer les variables de bases par des variable de type {variable.loop-player} mais on peut pas faire ça, du moins j'ai une erreur..

Mais je t'ai dis qu'il ne faut pas ... omg, lit le code avant de faire n'importe quoi,

 

Le loop est pour avoir le joueurs dans un event sans argument et sans joueur dans ta commande %player% donnera celui qui à éxécuter la commande donc NON il n'y a pas besoin de changer les variables de base ...

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