Aller au contenu

[Chat]Separé un chat par Zone


Messages recommandés

Posté(e)

Salut,

J'ai besoin d'aide car je n'ai pas trouvé de skript permettant de séparé un chat par Zone .

Quand je dis zone , c'est Rayon :)

 

J'aimerai que avec cette command :

/ setchat <Nom du chat> <Delimitation par Rayon> .

Merci pour toute les personne qui arrive a réalisé ce skript ! :)

 

[OPTIONNEL]Ps: si il n'y a pas de chat qui a ete set sa met le chat par défaut.

 

De plus , je suis débutant en skript et je ne suis pas sur que sela est possible :D

Posté(e)
command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

  • J'aime 1
Posté(e)

Salut !

Je vient de tester et sa fonctionne nikel :) Je t'en remercie .

Le seul probleme c'est que évidemment j'ai oublier de préciser de demander une commande pour delete une zone .

 

Et aussi si tu a le temps devant toi de faire une commande qui va send une list de zone qui a ete set, sa serai sympa.

_____

CDLT

Toute mes remerciements les plus sincères :)

Posté(e)

Voila voila

 

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 2%.location}
           clear {chat.%arg 2%.ray}
           remove arg 2 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

#Pour mettre une permission:

#command /test:
   #permission: ta_perm
   #permission message: message_si_le_joueur_as_pas_la_perm
   #trigger:
       #CODE

N'hésite pas s'il à des erreurs :)

[EDIT] jpeut tous te mettre dans une seul et même commande stv.

  • J'aime 1
Posté(e)

Hey,

Vous etes tout simplement des génies x)

Je testerai sa et je te dirais sa ;)

 

Et il y a une question qui me trotte dans ma tete :

Peut t'on intégré un chat de team ? , je m'explique lorsque qu'on commence son chat par "@" sa fait un message global dans la zone , et lorsque l'on met pas de "@" sa affiche le message juste a notre team ^^ .

Source : https://skript-mc.fr/forum/threads/chat-par-team.10178/

 

Code :

[spoiler=Code]

on chat:
   {team.%player%} is set
   if first character of message is "@":
       loop all players:
           {team.%loop-player%} is set
           send "%{team.%player%}% %player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%" to loop-player
   else:
       loop all players:
           {team.%loop-player%} is {team.%player%}
           send "%{team.%player%}% %player% &7> &f%message%" to loop-player

 

 

 

Faudrait plutot fusionner sa jai essayer par moi même et je dois avouer que sa a été la catastrophe x)

___

Sinon, merci quand même !

__

PS : Pour les commandes , ne les changes pas x) je l'ai aime deja comme sa ^^

[Edit] : aie , il y a actuellement 4 erreur qui a ete afficher dans la console :

[19:17:06 ERROR]: This command doesn't have any arguments (CHATT.sk, line 24: send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."')
[19:17:06 ERROR]: The command doesn't have a 2nd argument (CHATT.sk, line 33: clear {chat.%arg 2%.location}')
[19:17:06 ERROR]: The command doesn't have a 2nd argument (CHATT.sk, line 34: clear {chat.%arg 2%.ray}')
[19:17:06 ERROR]: The command doesn't have a 2nd argument (CHATT.sk, line 35: remove arg 2 from {areas::*}')
[19:17:06 INFO]: [skript] Encountered 4 errors while reloading CHATT.sk!

Je sais pas a quoi cet du , peut être qu'il faut un addon ? :/

Mes addon : WildSkript et SkQuery-lime 1.11 (car mon server est actuellement en 1.9 )

Posté(e)

D'après l'erreur,

dans la commande il n'y a pas l'information disant qu'il y a possibilité d'insérer des arguments.

 

 

ajoute un <text> ou <integer> suivant ce que tu veux après command !

  • J'aime 1
Posté(e)

Salut,

Je vais tenter ta solution mais par contre pour le /zones pas besoin d'ajouter un argument puisque sa va direct me send toute la liste de Chat qui a ete set avec les coordonnées , L'erreur ne doit pas venit de la , enfin je c'est pas trop ^^ je donne des hypothèse x)

  • J'aime 1
Posté(e)

This command doesn't have any arguments (CHATT.sk, line 24: send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au

coordonée :%{chat.%arg 2%.location}%."')

 

veut dire que la commande ou l'effet à la ligne 24 n'a aucun arguments, donc tu ne peux pas utiliser %arg-2%.

Regarde les lignes indiquées, puis remonte jusqu'à trouver l'erreur car sois tu n'as simplement pas vu, sois Skript à un sérieux problème.

 

 

Je ne sais pas quel est le code du /zones, mais sinon envoies-le et je te dirai où changer (ou si le plugin bug... beaucoup ?) ^^

  • J'aime 1
Posté(e)

Ah oui je vois , mais ducoup on est bloqué ^^

[spoiler=Code : /zones]

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."

 

___

[spoiler=Code Original]

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 2%.location}
           clear {chat.%arg 2%.ray}
           remove arg 2 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

 

 

  • J'aime 1
Posté(e)
Ah oui je vois , mais ducoup on est bloqué ^^

[spoiler=Code : /zones]

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."

 

___

[spoiler=Code Original]

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%arg 2%.ray}% au coordonée :%{chat.%arg 2%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 2%.location}
           clear {chat.%arg 2%.ray}
           remove arg 2 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

 

Salut, dans ton code pour lister les zones on peut y voir:

&7(Rayon de :%{chat.%arg 2%.ray}%

or, dans la commande /zones, il n'y a pas de arg 2 ! Je n'ai pas le temp de corriger le probleme mais au moins en voila la source ;) bonne soirée

Posté(e)

Petit erreur :

 

je regle sa:

 

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."

Voila voila si tu as encore des fautes pense à le dire :)

  • J'aime 1
Posté(e)

Tout est nikel 0 erreur :)

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 1%.location}
           clear {chat.%arg 1%.ray}
           remove arg 1 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

Mille merci a toute les personnes qui ont contribué a mon post !!!

 

Sinon il y aurai pas moyen de fusionner ce skript avec un autre skript qui consiste a quand on commence son chat par un "@" sa affiche le message a toute les teams qui sont dans la zone et si on met pas ce symbole "@" sa affiche je le message a sa team qui est dans la zone .

Le skript de team (@)

on chat:
   {team.%player%} is set
   if first character of message is "@":
       loop all players:
           {team.%loop-player%} is set
           send "%{team.%player%}% %player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%" to loop-player
   else:
       loop all players:
           {team.%loop-player%} is {team.%player%}
           send "%{team.%player%}% %player% &7> &f%message%" to loop-playe

 

Je pense que c'est compliqué a réalisé et si c'est trop long ne vous prenez pas la tête ! :)

__

merci a vous !

 

UP?

Posté(e)

_________

Merci :D !!!

_________

Edit: Au passage LeCraftDeOuf tu veut une rémunération ? Meme si je suis en difficulté derrière je pourrais me débrouiller ;)

Posté(e)
_________

Merci :D !!!

_________

Edit: Au passage LeCraftDeOuf tu veut une rémunération ? Meme si je suis en difficulté derrière je pourrais me débrouiller ;)

Je suis désolé :c je ne peut pas m'occuper de ton soucis, j'ai trop de boulot en ce moment (Et non pas de rémunération chez moi)

Posté(e)

Okey et merci pour l'aide que tu ma apporté .

Pour ce tout ce qui veulent le skript :

[spoiler=Skript]

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 1%.location}
           clear {chat.%arg 1%.ray}
           remove arg 1 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

 

 

___

Grand merci a : LeCraftDeOuf , PsYZiiK , ShiRzoOa , Stevie78 et bien sur a

Blackmine57 qui ma mis ma premiere sanction pour double poste x)

ps: je trouve ce skript original :p

  • J'aime 1
Posté(e)
Okey et merci pour l'aide que tu ma apporté .

Pour ce tout ce qui veulent le skript :

[spoiler=Skript]

command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

chat:
   loop {areas::*}:
       distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
       set {_zone} to loop-value
       exit loop
   {_zone} is set
   cancel event
   send "[Zone %{_zone}%] %player% : %message%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 1%.location}
           clear {chat.%arg 1%.ray}
           remove arg 1 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."

 

 

___

Grand merci a : LeCraftDeOuf , PsYZiiK , ShiRzoOa , Stevie78 et bien sur a

Blackmine57 qui ma mis ma premiere sanction pour double poste x)

ps: je trouve ce skript original :p

J'adore le merci à Blackmine57 pour ma premiere sanction xD vous m'avez tué x)

  • J'aime 1
Posté(e)

Bonsoir ou bonjour , sur internet le temps n'existe pas x)

Alors merci de me proposé sa parce que j'ai tenté de demandé a une personne qui je ne citerais pas le nom x) mais la personne a refusé .

Ducoup je suis coincé mais tu tombe a PIC :) !

___

Merci pour ta proposition, a demain ;)

Posté(e)
command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

on chat:
   if first character of message is "@":   
       if {team.%player%} is set:   
           loop {areas::*}:
               distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
               set {_zone} to loop-value
               exit loop
           {_zone} is set
           cancel event
           send "&2[GLOBAL] &a%{team.%player%}% &a%player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]   
   else:
       loop {areas::*}:
           distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
           set {_zone} to loop-value
           loop all players:
               {team.%loop-player%} is {team.%player%}
               distance between {chat.%loop-value-1%.location} and loop-player <= {chat.%loop-value-1%.ray}
               add loop-player to {_temp::*}
           exit loop
       {_zone} is set
       send "%{_temp::*}%"
       cancel event
       send "&2[Team] &a%player% &7> &f%subtext of message from characters 1 to (the length of message)%" to {_temp::*}

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 1%.location}
           clear {chat.%arg 1%.ray}
           remove arg 1 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."        

Dit le moi s'il tu as le moindre soucis

  • J'aime 1
Posté(e)
command /setchat <integer> <text>:
   trigger:
       set {chat.%arg 2%.location} to player's location
       set {chat.%arg 2%.ray} to arg 1
       {areas::*} where [arg 2 is text input] isn't set
       add arg 2 to {areas::*}

on chat:
   if first character of message is "@":  
       if {team.%player%} is set:  
           loop {areas::*}:
               distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
               set {_zone} to loop-value
               exit loop
           {_zone} is set
           cancel event
           send "&2[GLOBAL] &a%{team.%player%}% &a%player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%" to players where [distance between {chat.%{_zone}%.location} and player input <= {chat.%{_zone}%.ray}]  
   else:
       loop {areas::*}:
           distance between {chat.%loop-value%.location} and player <= {chat.%loop-value%.ray}
           set {_zone} to loop-value
           loop all players:
               {team.%loop-player%} is {team.%player%}
               distance between {chat.%loop-value-1%.location} and loop-player <= {chat.%loop-value-1%.ray}
               add loop-player to {_temp::*}
           exit loop
       {_zone} is set
       send "%{_temp::*}%"
       cancel event
       send "&2[Team] &a%player% &7> &f%subtext of message from characters 1 to (the length of message)%" to {_temp::*}

# Utilisation : /SetChat <Rayon> <Nom de la zone>

#Pour lister les zones
command /zones:
   trigger:
       if {areas::*} is set:
           loop {areas::*}:
               send "%loop-value% &7(Rayon de :%{chat.%loop-value%.ray}% au coordonée :%{chat.%loop-value%.location}%."
       else:
           send "&cAucune zone défini."
command /removechat <text>:
   trigger:
       loop {areas::*}:
           if loop-value is arg 1:
               set {_t} to true
       if {_t} is set:
           clear {chat.%arg 1%.location}
           clear {chat.%arg 1%.ray}
           remove arg 1 from {areas::*}
           send "&6Vous avez bien remove &2%arg 1% &6des zones."
       else:
           send "&6La zone &2%arg 1% &6n'éxiste pas."        

Dit le moi s'il tu as le moindre soucis

MERCI ,

Je test sa de suite , Je te tien au courent.

Posté(e)

Salut,

je vient tout juste de testé ton code mais sauf qu'il es semi fonctionnel :/

lorsque je commence mon message avec un @, sa m'affiche le message mais pas comme c'est écrit dans le "send" [spoiler=Code]

&2[GLOBAL] &a%{team.%player%}% &a%player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%

 

screen 1:

Aatt8tm.jpg

et lorsque je met pas de "@" sa m'affiche le message dans le chat <none>

screen 2:

YIlZFLj.jpg

sinon aucun erreur :)

___

CDLT

Posté(e)
Salut,

je vient tout juste de testé ton code mais sauf qu'il es semi fonctionnel :/

lorsque je commence mon message avec un @, sa m'affiche le message mais pas comme c'est écrit dans le "send" [spoiler=Code]

&2[GLOBAL] &a%{team.%player%}% &a%player% &7> &2@&f%subtext of message from characters 2 to (the length of message)%

 

screen 1:

Aatt8tm.jpg

et lorsque je met pas de "@" sa m'affiche le message dans le chat <none>

screen 2:

YIlZFLj.jpg

sinon aucun erreur :)

___

CDLT

Et tu sûr qu'il as une zone dessus ? (Sinon tu peut teamspeak ?)

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