Aller au contenu

Retirer le PVP entre groupes


Messages recommandés

Posté(e)

Bonjour !

Alors voilà, j'aimerais savoir s'il est possible d'obtenir un skript pour pouvoir désactiver le pvp entre des membres d'un même groupe.

( exemple : Moi et mon ami sommes dans le groupe "Default" mais nous voulons ne pas pouvoir se taper )

Donc j'aimerais que les gens du même groupe de peuvent pas se taper mais peuvent taper les gens des autres groupes,

je sais que c'est assez difficile à comprendre, mais merci de votre aide,

cordialement,

Hqristone.

Posté(e)

Tu peux le faire avec des permissions :)

Donc

on damage:
   if victim has permission "Default":
       if attacker has permission "Default":
           cancel event
           message "&cTu ne peux pas faire ça !" to attacker

Posté(e)

Il y a juste un petit problème :

enfaite, je veux faire en sorte que les membres du groupes "default" ne peuvent pas se taper mais qu'ils peuvent taper les autres groupes.

Mais si je met le skript que tu m'as proposé, même en changeant bien les perms et tout, personne ne peut se pvp. :x

Posté(e)

Sinon, tu peux utiliser des variables, et du coup, en fonction du grade du joueur tu set la variable à qqchose

 

Avec Permission ex :

[spoiler=Pex]

on join:
   set {_uuid} to {_p}'s uuid
   set {_Grade} to single value "users.%{_uuid}%.group" get of "plugins/PermissionsEx/permissions.yml"
   replace all "[" with "" in {_Grade}
   replace all "]" with "" in {_Grade}
   if {_Grade} is "ton grade":
       set {grade.%player%} to "Default"
   else if {_Grade} is "ton grade 2":
       set {grade.%player%} to "VIP"
   #etc.

 

 

Avec Group manager :

[spoiler=GM]

on join:
   set {_monde} to {_p}'s world
   set {_a} to value "users.%{_p}%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"
   if {_a} is "ton grade":
       set {grade.%player%} to "Default"
   else if {_a} is "ton grade 2":
       set {grade.%player%} to "VIP"
   #etcà

 

 

Et ensuite tu fais le code que j'avais donne plus haute, et tu remplace les perms par les variables :)

Posté(e)

Hum, le truc c'est que je suis pas très codage, j'apprend peu à peu, je sais faire certaines choses, mais pas beaucoup. Donc, j'utilise GM, tu vas m'traiter mais, j'remplace par quelle variable pour le groupe default par exemple ? :x

 

Comme ça ?

on join:
   set {_monde} to {_p}'s world
   set {_a} to value "users.%{_p}%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"
   if {_a} is "Default":
       set {grade.%player%} to "Default"
   else if {_a} is "Essien":
       set {grade.%player%} to "Essien"
   #etc

on damage:
   if victim has permission "{_a}":
       if attacker has permission "{_a}":
           cancel event
           message "&cTu ne peux pas faire รงa !" to attacker

Posté(e)

C'est presque ça !

Sauf que dans l'événement "on damage", après il ne faut pas mettre {_a} mais {grade.%attacker%} et {grade.%victim%}

on join:
   set {_monde} to {_p}'s world
   set {_a} to value "users.%{_p}%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"
   if {_a} is "Default":
       set {grade.%player%} to "Default"
   else if {_a} is "Essien":
       set {grade.%player%} to "Essien"
   #etc

on damage:
   if {grade.%victim%} is "ton grade":
       if {grade.%attacker%} is "ton grade":
           cancel event
           message "&cTu ne peux pas faire ça !" to attacker

que tu peux ensuite simplifier en:

on damage:
   if {grade.%victim%} is {grade.%attacker%}:
       cancel event
       message "&cTu ne peux pas faire ça !" to attacker

Posté(e)

Re-Salut, la dernière fois j'ai du partir, mais bon, le skript se reload sans erreur, je suis bien d'accord avec toi, mais ne fonctionne pas, je me suis mis en default avec mon ami, et on peut quand même se frapper :x.

Posté(e)

Ah... bah je ne sais pas trop alors ^^

 

Essaye ca (c'est juste du débug):

on join:
   set {_monde} to {_p}'s world
   set {_a} to value "users.%{_p}%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"
   if {_a} is "Default":
       set {grade.%player%} to "Default"
   else if {_a} is "Essien":
       set {grade.%player%} to "Essien"
   wait 2 seconds
   broadcast "&cGrade : &6&l%{grade.%player%}%"
   #etc

on damage:
   if {grade.%victim%} is {grade.%attacker%}:
       cancel event
       message "&cTu ne peux pas faire ça !" to attacker

puis tu me dis quel message s'affiche quand tu rejoins le serveur

Posté(e)

Ok, je vais essayer, merci beaucoup d'ton aide ^^

 

Donc, quand je me connecte il me met "Grade : <none>", je croyais que c'était peut-être parce que j'étais en default, donc j'me suis manuadd et j'ai réessayé, mais toujours rien : http://prntscr.com/hjwo9q.

Je pense à un problème avec l'exportation des variables, il faut pas un add-on spécial ou autre?

Posté(e)

Salut,

Ok, je vais essayer, merci beaucoup d'ton aide ^^

Donc, quand je me connecte il me met "Grade : <none>", je croyais que c'était peut-être parce que j'étais en default, donc j'me suis manuadd et j'ai réessayé, mais toujours rien : http://prntscr.com/hjwo9q.

Je pense à un problème avec l'exportation des variables, il faut pas un add-on spécial ou autre?

Change

set {_monde} to {_p}'s world

par

set {_monde} to player's world

 

Et évite les double poste, merci.

Posté(e)

Du coup ca va donner

[spoiler=nouveau code sans erreurs]

on join:
   set {_monde} to player's world
   set {_a} to value "users.%player%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"
   if {_a} is "Default":
       set {grade.%player%} to "Default"
   else if {_a} is "Essien":
       set {grade.%player%} to "Essien"
   wait 2 seconds
   broadcast "&cGrade : &6&l%{grade.%player%}%"
   #etc

on damage:
   if {grade.%victim%} is {grade.%attacker%}:
       cancel event
       message "&cTu ne peux pas faire ça !" to attacker

 

  • J'aime 1
Posté(e)

Mets sa dans ton code et fais /grade et envoie un screen x)

function RecupGrade(p: player) :: string:
 set {_monde} to {_p}'s world
 set {_grade} to value "users.%{_p}%.group" get of "plugins/GroupManager/worlds/%{_monde}%/users.yml"

 return {_grade}


command /grade:
  trigger:
    send "%RecupGrade(%player%)%"

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