Aller au contenu
  • 0

Problème avec 2 skript claim et hammeur.


Question

Posté(e) (modifié)

Bonjour, voilà en faite j'ai 2 skript qui fonctionne très bien seul soucis c'est que le skript de claim si dessous voici le code

 

Skript : dev35b

Version : 1.12.2

 

 

# ----------------------------------------------------------------------------------------------

options:                                                                        
   Max-Land: 30                     # The max land default players can claim.
                                   # Set to -1 for unlimited land claiming for default players)

   Max-Land-VIP: 60                # The max land VIP's can claim. Requires permission node land.claim.vip
                                   # Set to -1 for unlimited land claiming for VIP's)                    

   Max-Land-OP: -1                 # The max land staff can claim. Requires permission node land.claim.op
                                   # Set to -1 for unlimited land claiming for staff)                    

   World: monde                    # The world default players can claim.

   spawn_region : spawn    # If you have WorlGuard and you have a region 'Spawn', you can protect the region of command "/land"

# ----------------------------------------------------------------------------------------------

variables:
   {landclaims.%player%} = 0
   {claimedland.%player%} = 0

on join:
   if {played.%player%} is not set:
       set {played.%player%} to true  

every 1 ticks in world "{@World}":
   loop all players:
       {chunk.%chunk at location of loop-player%} is not set:
           {landnotify.%loop-player%} is not "&6» Ce terrain n'est pas claim.":  
               send "&aLe terrain est libre." to loop-player
               set {landnotify.%loop-player%} to "&6» Ce terrain n'est pas claim."
       {landnotify.%loop-player%} is not {chunk.%chunk at location of loop-player%}:
           {chunk.%chunk at location of loop-player%} is not set:
               {landnotify.%loop-player%} is not "&6» Ce terrain n'est pas claim.":  
                   # send "&aLe terrain est libre." to loop-player
                   set {landnotify.%loop-player%} to "&6» Ce terrain n'est pas claim."
                   set {land.unclaim.%loop-player%} to true
           {chunk.%chunk at location of loop-player%} is set:
               send "&aLe terrain appartient à &e%{chunk.%chunk at location of loop-player%}%&a." to loop-player
               set {landnotify.%loop-player%} to {chunk.%chunk at location of loop-player%}
       {landnotify.%loop-player%} is not set:
           {chunk.%chunk at location of loop-player%} is not set:
               send "&aLe terrain est libre." to loop-player
               set {landnotify.%loop-player%} to "&6» Ce terrain n'est pas claim."
               set {land.unclaim.%loop-player%} to true

on command "/land":
   if "%region at player%" contains "{@spawn_region}":  
       cancel event
       message "LandClaim &9> &7Impossible de claim cette region !"

on region enter:
   wait 2 ticks
   if "%region at player%" contains "{@spawn_region}":
       set action bar of player to "&aCette zone est protégé !"

on exiting of region "spawn_survie":
   set action bar of player to "&aCette zone n'est plus protégé !"

#startfold
command /land [<text>] [<offline player>]:
   description: For all land related commands
   usage: &c/land (claim, unclaim, add, remove)
   trigger:
       argument 1 is not set:
           message "-----------------------------------------------------"
           message "Nombre de terrain claim &9> &7%{claimedland.%player%}%"
           message "-----------------------------------------------------"
       #subfold @help
       argument 1 is "help" or "h":
           message "-----------------------------------------------------"
           message "/land &9> &7Pour afficher le nombre de terrain claim"
           message "/land list &9> &7Affiche la liste de vos claim"
           message "/land claim &9> &7Pour claim un terrain"
           message "/land unclaim &9> &7Pour unclaim un terrain"
           message "/land info &9> &7Affiche les informations du terrain ou vous vous trouvez"
           message "/land add <player> &9> &7Ajouter un joueur à votre claim"
           message "/land remove <player> &9> &7Supprimer un joueur de votre claim"
           message "/land teleport &9> &7Se teleporter à votre premier claim"
           message "/land delhome &9> &7Supprimer votre home"
           message "/land map &9> &7Affiche une mini-map"
           if player has permission "land.bypass":
               message "/land bypass &9> &7Accéder à tous les claims"
           message "-----------------------------------------------------"

       #subfold @stats
       argument 1 is "info" or "i":
           if {chunk.%chunk at location of player%} is set:
               message "-----------------------------------------------------"
               message "Propriétaire du terrain &9> &7 %{chunk.%chunk at location of player%}%"
               message "Membre(s) autorisé &9> &7 %{land.%chunk at location of player%::*}%"
               message "-----------------------------------------------------"
               stop
           message "&6Cette zone n'appartient actuellement à personne."
           stop
       #subfold @error
       argument 1 is "error":
           if player has permission "land.bypass":
               message "&cUtilisation incorrect. Essayez '/land [info, list, teleport, delhome, claim, unclaim, add, remove, bypass, map] (player)'"
           else:
               message "&cUtilisation incorrect. Essayez '/land [info, list, teleport, delhome, claim, unclaim, add, remove, bypass, map] (player)'"
           message "&7 ()'s = Options, []'s = Requis."
           stop
       #subfold @claim
       argument 1 is "claim" or "c":
           if {chunk.%chunk at location of player%} is set:
               message "&cCette zone est déjà claim."
               stop  
           if {@Max-Land} is -1:
               add name of player to {land.%chunk at location of player%::*}
               set {chunk.%chunk at location of player%} to name of player
               set {chunk.%chunk at location of player%.%player%} to true
               message "&6Vous possédez maintenant cette terre."
               add 1 to {claimedland.%player%}
               log "%player% dans le monde %world% en %player's location%" to "LandClaim/Claim.log"
               if {home.%player%} is not set:
                   set {home.%player%} to location of the player
               stop
           else:
               if {@Max-Land} is 0:
                   if player has permission "land.claim.vip" or "land.claim.op":
                       if {claimedland.%player%} is greater than {@Max-Land-VIP} -1:
                           if player has permission "land.claim.op":
                               if {claimedland.%player%} is greater than {@Max-Land-OP} -1:
                                   message "&cVous avez atteint votre limite de claim."
                                   stop
                           else:
                               message "&cVous avez atteint votre limite de claim."
                               stop
                   else:
                       message "&cVous avez atteint votre limite de claim."
                       stop
               if {claimedland.%player%} is greater than {@Max-Land} -1:
                   if player has permission "land.claim.vip" or "land.claim.op":
                       if {claimedland.%player%} is greater than {@Max-Land-VIP} -1:
                           if player has permission "land.claim.op":
                               if {claimedland.%player%} is greater than {@Max-Land-OP} -1:
                                   message "&cVous avez atteint votre limite de claim."
                                   stop
                           else:
                               message "&cVous avez atteint votre limite de claim."
                               stop
                   else:
                       message "&cVous avez atteint votre limite de claim."
                       stop
               add name of player to {land.%chunk at location of player%::*}
               set {chunk.%chunk at location of player%} to name of player
               set {chunk.%chunk at location of player%.%player%} to true
               set {loc.chunks::%chunk at location of player%} to location of player
               set {loc.chunks.%player%::%chunk at location of player%} to location of player
               message "&6Vous êtes maintenant propriétaire de cette zone."
               add 1 to {claimedland.%player%}
               log "%player% avec %world% at %player's location%" to "LandClaim/Claim.log"
               if {home.%player%} is not set:
                   set {home.%player%} to location of the player
               stop
           stop
       #subfold @unclaim
       argument 1 is "unclaim" or "u":
           if {chunk.%chunk at location of player%} is not set:
               message "&cCe terrain n'est pas claim."
               stop
           if {chunk.%chunk at location of player%} is not name of player:
               if {bypassland.%player%} is not true:
                   message "&cVous ne possédez pas cette terre."
                   stop
               else:
                   if {bypassland.%player%} is true:
                       remove 1 from {claimedland.%{chunk.%chunk at location of player%}%}
                       clear {land.%chunk at location of player%::*}
                       clear {chunk.%chunk at location of player%}
                       delete {loc.chunks::%chunk at location of player%}
                       message "&6Vous avez unclaim cette terre."
                       stop
               message "&cVous ne possédez pas cette terre."
               message "&cLe terrain appartient à %{chunk.%chunk at location of player%}%"
           else:
               if {chunk.%chunk at location of player%} is name of player:
                   remove 1 from {claimedland.%{chunk.%chunk at location of player%}%}
                   clear {land.%chunk at location of player%::*}
                   clear {chunk.%chunk at location of player%}
                   delete {loc.chunks::%chunk at location of player%}
                   message "&6Vous avez unclaim cette terre."
                   if {home.%player%} is set:
                       delete {home.%player%}
                   stop
       # subfold @add
       argument 1 is "add":
           if {chunk.%chunk at location of player%} is not set:
               message "&cCe terrain n'est pas claim"
               stop
           if {chunk.%chunk at location of player%} is not name of player:
               if {bypassland.%player%} is true:
                   if {land.%chunk at location of player%::%{_playersearch}%} is argument 2:
                       message "&cCe joueur est déjà membre de cette terre."
                       stop
                   else:
                       add "%name of argument 2%" to {land.%chunk at location of player%::*}
                       set {chunk.%chunk at location of player%.%argument 2%} to true
                       message "&6%name of argument 2% peut maintenant construire sur cette terre."
                       stop
               else:
                   message "&cVous ne possédez pas cette terre."
                   stop
           if {played.%argument 2%} is not set:
               message "&cCe joueur n'existe pas."
               stop
           if {chunk.%chunk at location of player%} is argument 2:
               message "&cVous ne pouvez pas vous ajouter à votre propre terre."
               stop
           set {_playersearch} to 0
           loop 10000 times:
               if {land.%chunk at location of player%::%{_playersearch}%} is argument 2:
                   message "&cCe joueur est déjà membre de cette terre."
                   stop
               else:
                   add 1 to {_playersearch}
           if {_playersearch} is 10000:
               message "&6%name of argument 2% peut maintenant construire sur cette terre."
               add "%name of argument 2%" to {land.%chunk at location of player%::*}
               set {chunk.%chunk at location of player%.%argument 2%} to true
               stop
       #subfold @remove
       argument 1 is "remove" or "r":
           if argument 2 is not set:
               make player execute command "&cland error"
               stop
           if {chunk.%chunk at location of player%} is not set:
               message "&cCe terrain n'est pas claim."
               stop
           if {chunk.%chunk at location of player%} is not name of player:
               if {bypassland.%player%} is not true:
                   message "&cVous ne possédez pas cette terre."
                   stop
               else:
                   if {bypassland.%player%} is  true:
                       if {land.%chunk at location of player%::%{_playersearch}%} is argument 2:
                           message "&cCe joueur est déjà membre de cette terre."
                           stop
                       else:
                           add "%name of argument 2%" to {land.%chunk at location of player%::*}
                           set {chunk.%chunk at location of player%.%argument 2%} to true
                           message "&6%name of argument 2% peut maintenant construire sur cette terre."
                           stop
           if {played.%argument 2%} is not set:
               message "&cCe joueur n'existe pas."
               stop
           if {chunk.%chunk at location of player%} is argument 2:
               message "&cVous ne pouvez pas vous retirer de votre propre terre."
               stop
           loop {land.%chunk at location of player%::*}:
               if loop-value is argument 2:
                   clear {chunk.%chunk at location of player%.%argument 2%}
                   delete {land.%chunk at location of player%::%loop-index%}
                   exit loop
               clear {chunk.%chunk at location of player%.%argument 2%}
           message "&6%name of argument 2% ne peut plus construire sur cette terre."
           stop
       #subfold @bypass
       argument 1 is "bypass":
           player has permission "land.bypass":
               if {bypassland.%player%} is true:
                   clear {bypassland.%player%}
                   message "&6Vous ne pouvez plus accéder à toutes les terres."
                   stop
               set {bypassland.%player%} to true
               message "&6Vous avez maintenant accés à toutes les terres claim."
               stop
           message "&cVous n'avez pas la permission d'utiliser cette commande."
           stop
       #subfold @list
       argument 1 is "list" or "l":
           argument 2 is not set:
               loop {loc.chunks.%player%::*}:
                   set {_loc} to {loc.chunks.%player%::%loop-index%}
                   set {_chunk} to chunk at location of {_loc}
                   set {_chunk.name} to {chunk.name.%{_chunk}%}
                   {_count} is not set:
                       set {_count} to 0
                   add 1 to {_count}
                   {chunk.name.%{_chunk}%} is not set:
                       set {chunk.name.%{_chunk}%} to "%{_count}%"
                   set {_chunk.name} to {chunk.name.%{_chunk}%}
                   {_chunk.name} is not set:
                       set {_chunk.name} to "&cNot Named"
                   send "&a%{_count}% ------ %{_chunk}% ------ %{_chunk.name}%" to player
               stop
           argument 2 is set:
               loop {loc.chunks.%argument 2%::*}:
                   set {_loc} to loop-value
                   set {_chunk} to chunk at location of {_loc}
                   set {_chunk.name} to {chunk.name.%{_chunk}%}
                   {_count} is not set:
                       set {_count} to 0

                   {_chunk.name} is not set:
                       set {_chunk.name} to "&cNot Named"
                   {chunk.%{_chunk}%.%player%} is true:
                       add 1 to {_count}
                       send "&a%{_count}%----->%{_chunk}%---->%{_chunk.name}%" to player
               stop
       #subfold @map
       argument 1 is "map" or "m":
           message "------------ [ Mini Map ] ------------"
           set {_mapX} to 11
           set {_mapY} to 6
           set {_m} to ""
           loop 13 times:
               loop 23 times:
                   set {_x} to {_mapX} * 16
                   set {_y} to {_mapY} * 16
                   set {_chunk2} to chunk at block {_y} blocks north {_x} blocks west of player
                   if {loc.chunks::%{_chunk2}%} isn't set:
                       set {_result} to ""
                   else:
                       set {_result} to {loc.chunks::%{_chunk2}%}
               # Position du joueur sur la mini-map
                   if {_chunk2} is chunk at player:
                       set {_m} to "%{_m}%&2█"
               # Claim du joueur
                   else if {_result} is {loc.chunks.%player%::%{_chunk2}%}:
                       set {_m} to "%{_m}%&a█"
                   else if {_result} is "":
                       set {_m} to "%{_m}%&7█"
                   else:
                       set {_m} to "%{_m}%&c█"
                   add -1 to {_mapX}
               message "%{_m}%" to player

               set {_m} to ""
               add -1 to {_mapY}
               set {_mapX} to 11
               set {_n} to "N"
               set {_s} to "S"
               set {_e} to "E"
               set {_w} to "W"
               if facing of player is north:
                   set {_n} to "&4N&6"
               else if facing of player is south:
                   set {_s} to "&4S&6"
               else if facing of player is west:
                   set {_w} to "&4W&6"
               else if facing of player is east:
                   set {_e} to "&4E&6"

           message " "
           message "&a█&7 &aVos claim &2█&7 &2Vous  &c█&7 &cAutre joueur  &6\%{_n}%/"
           message "&7█ Zone Libre                                &6%{_w}%+%{_e}%"
           message "                                                 &6/%{_s}%\"
       #subfold @tp
       argument 1 is "teleport" or "tp":
           if {home.%player%} is set:
               teleport player to {home.%player%}
               send "&aTéléportation réussie !" to player
               stop
           else:
               send "&cAucun home, vous devez claim au moins une fois !"
               stop
       #subfold @delhomeclaim
       argument 1 is "delhome" or "dh":
           if {home.%player%} is set:
               delete {home.%player%}
               send "&cVotre home a été supprimé."
               stop
           else:
               send "&cAucun home, vous devez claim au moins une fois !"
               stop

#endfold
on quit:
   if {bypassland.%player%} is true:
       clear {bypassland.%player%}

on place:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of block%} is set:
       if {chunk.%chunk at location of block%.%player%} is true:
           stop
       message "&cCe terrain appartient à &7%{chunk.%chunk at location of block%}%&c."
       cancel event

on break:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of block%} is set:
       if {chunk.%chunk at location of block%.%player%} is true:
           stop
       message "&cCe terrain appartient à &7%{chunk.%chunk at location of block%}%&c."
       cancel event

on right click:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of block%} is set:
       if {chunk.%chunk at location of block%.%player%} is true:
           stop
       message "&cCe terrain appartient à &7%{chunk.%chunk at location of block%}%&c."
       cancel event

on right click on horse:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of event-player%} is set:
       {chunk.%chunk at location of event-player%} is not event-player:
           {chunk.%chunk at location of event-player%.%event-player%} is set:
               stop
           send "&cTu ne peux pas monter cet animal!" to event-player
           cancel event
           stop trigger

on place of tnt:
   if {bypassland.%player%} is true:
       stop
   loop blocks in radius 10 of block:
       if {chunk.%chunk at location of loop-block%} is set:
           if {chunk.%chunk at location of loop-block%.%player%} is true:
               exit loop
           else:
               cancel event
               message "&cVous ne pouvez pas utiliser d'explosifs ici."
               stop
on explode:
   entity is creeper
   loop blocks in radius 10 of entity:
       if {chunk.live.%chunk at location of loop-block%} is set:
           cancel event
           set {_safe} to true
   {_safe} is set:
       create safe explosion of force 3 at event-location

on damage of a entity:
   victim is a chicken or a cow or a mooshroom or a horse or a sheep or a pig or a wolf or a ocelot or a villager or a squid or a item frame
   attacker is a player
   victim is a cow:
       attacker's tool is a empty bucket
       stop
   if {bypassland.%attacker%} is true:
       stop
   loop blocks in radius 3 of victim:
       if {chunk.%chunk at location of loop-block%} is set:
           if {chunk.%chunk at location of loop-block%.%attacker%} is true:
               stop
           send "&cTu ne peux pas tuer ce &7%victim% &c!" to attacker
           cancel event
           stop

on break glass:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of event-player%} is set:
       {chunk.%chunk at location of event-player%} is not event-player:
           {chunk.%chunk at location of event-player%.%event-player%} is set:
               stop
           send "&cCe terrain appartient à &7%{chunk.%chunk at location of block%}%&c." to event-player
           cancel event
           stop trigger

on right click on lead:
   if {bypassland.%player%} is true:
       stop
   if {chunk.%chunk at location of event-player%} is set:
       {chunk.%chunk at location of event-player%} is not event-player:
           {chunk.%chunk at location of event-player%.%event-player%} is set:
               stop
           send "&cCe terrain appartient à &7%{chunk.%chunk at location of block%}%&c." to event-player
           cancel event
           stop trigger

on enderman pickup:
   if {chunk.live.%chunk at location of block%} is set:
       cancel event

Et j'ai le skript hammeur :

options:
   GHamMSG: "&aTu as reçu %arg 2% hammeur(s) !"
   NNerr: "&cNombres négatifs non-autorisés !"

command /hammeur [<text>] [<number>] [<player>]:
   permission: hammeur.give
   trigger:
       if arg 1 is "give":
           if arg-2 > 0:
               give arg-2 of iron pickaxe of efficiency 6 and unbreaking 4 and fortune 3 named "&c[&6Hammeur&c]" to arg-3
               send {@GHamMSG}
           else:
               send {@NNerr}


on break:
   if name of player's tool is "&c[&6Hammeur&c]":
       set {_1.%player%} to location of event-block
       set {_2.%player%} to location of event-block
       if player's pitch is between -50 and 50:
           add 1 to y-coord of {_1.%player%}
           subtract 1 from y-coord of {_2.%player%}
           if player's horizontal facing is west or east:
               add 1 to z-coord of {_1.%player%}
               subtract 1 from z-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   if player's tool is enchanted with fortune 1:
                       chance of 3%:
                           drop 1 diamond at loop-block
                   else if player's tool is enchanted with fortune 2:
                       chance of 2%:
                           drop 2 diamond at loop-block        
                   else if player's tool is enchanted with fortune 3:
                       chance of 3%:
                           drop 3 diamond at loop-block            
                   else if player's tool is enchanted with fortune 4:
                       chance of 3%:
                           drop 4 diamond at loop-block    
                   else if player's tool is enchanted with fortune 5:
                       chance of 3%:
                           drop 5 diamond at loop-block
           else if player's horizontal facing is north or south:
               add 1 to x-coord of {_1.%player%}
               subtract 1 from x-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   if player's tool is enchanted with fortune 1:
                       chance of 3%:
                           drop 1 diamond at loop-block
                   else if player's tool is enchanted with fortune 2:
                       chance of 3%:
                           drop 2 diamond at loop-block        
                   else if player's tool is enchanted with fortune 3:
                       chance of 3%:
                           drop 3 diamond at loop-block            
                   else if player's tool is enchanted with fortune 4:
                       chance of 3%:
                           drop 4 diamond at loop-block    
                   else if player's tool is enchanted with fortune 5:
                       chance of 3%:
                           drop 5 diamond at loop-block        
       else:
           add 1 to x-coord of {_1.%player%}
           add 1 to z-coord of {_1.%player%}
           subtract 1 from x-coord of {_2.%player%}
           subtract 1 from z-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
               break loop-block with player's tool
               if player's tool is enchanted with fortune 1:
                   chance of 3%:
                       drop 1 diamond at loop-block
               else if player's tool is enchanted with fortune 2:
                   chance of 3%:
                       drop 2 diamond at loop-block        
               else if player's tool is enchanted with fortune 3:
                   chance of 3%:
                       drop 3 diamond at loop-block            
               else if player's tool is enchanted with fortune 4:
                   chance of 3%:
                       drop 4 diamond at loop-block    
               else if player's tool is enchanted with fortune 5:
                   chance of 3%:
                       drop 5 diamond at loop-block

Mon problème c'est que avec le hammeur on peut casser dans un claim si on est pas add dedans alors que avec quelque chose autre que le hammeur on peut pas. Comment bloquer ceci ?

Modifié par MaxDu56YT
  • Réponses 53
  • Créé
  • Dernière réponse

Meilleurs contributeurs dans cette question

Meilleurs contributeurs dans cette question

Messages recommandés

  • 0
Posté(e)
Non sa marche plus

Ok j'ai corrigé et j'ai aussi ajouté pour les joueurs qui sont add dans un claim

Par contre pas terrible l'optimisation de ton claim mais pas grave, Voici le code ^^:

options:
   GHamMSG: "&aTu as reçu %arg 2% hammeur(s) !"
   NNerr: "&cNombres négatifs non-autorisés !"

command /hammeur [<text>] [<number>] [<player>]:
   permission: hammeur.give
   trigger:
       if arg 1 is "give":
           if arg-2 > 0:
               give arg-2 of iron pickaxe of efficiency 6 and unbreaking 4 and fortune 3 named "&c[&6Hammeur&c]" to arg-3
               send {@GHamMSG}
           else:
               send {@NNerr}


on break:
   if name of player's tool is "&c[&6Hammeur&c]":
       set {_1.%player%} to location of event-block
       set {_2.%player%} to location of event-block
       if player's pitch is between -50 and 50:
           add 1 to y-coord of {_1.%player%}
           subtract 1 from y-coord of {_2.%player%}
           if player's horizontal facing is west or east:
               add 1 to z-coord of {_1.%player%}
               subtract 1 from z-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   if {chunk.%chunk at location of loop-block%} is not set:
                       set {_ok} to true
                   if {chunk.%chunk at location of loop-block%} is equal to player:
                       set {_ok} to true
                   if {chunk.%chunk at location of player%.%player%} is equal to true:
                       set {_ok} to true
                   if {_ok} is equal to true:
                       id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                       break loop-block with player's tool
                       if player's tool is enchanted with fortune 1:
                           chance of 3%:
                               drop 1 diamond at loop-block
                       else if player's tool is enchanted with fortune 2:
                           chance of 2%:
                               drop 2 diamond at loop-block         
                       else if player's tool is enchanted with fortune 3:
                           chance of 3%:
                               drop 3 diamond at loop-block             
                       else if player's tool is enchanted with fortune 4:
                           chance of 3%:
                               drop 4 diamond at loop-block     
                       else if player's tool is enchanted with fortune 5:
                           chance of 3%:
                               drop 5 diamond at loop-block
           else if player's horizontal facing is north or south:
               add 1 to x-coord of {_1.%player%}
               subtract 1 from x-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   if {chunk.%chunk at location of loop-block%} is not set:
                       set {_ok} to true
                   if {chunk.%chunk at location of loop-block%} is equal to player:
                       set {_ok} to true
                   if {chunk.%chunk at location of player%.%player%} is equal to true:
                       set {_ok} to true
                   if {_ok} is equal to true:
                       id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                       break loop-block with player's tool
                       if player's tool is enchanted with fortune 1:
                           chance of 3%:
                               drop 1 diamond at loop-block
                       else if player's tool is enchanted with fortune 2:
                           chance of 3%:
                               drop 2 diamond at loop-block         
                       else if player's tool is enchanted with fortune 3:
                           chance of 3%:
                               drop 3 diamond at loop-block             
                       else if player's tool is enchanted with fortune 4:
                           chance of 3%:
                               drop 4 diamond at loop-block     
                       else if player's tool is enchanted with fortune 5:
                           chance of 3%:
                               drop 5 diamond at loop-block         
       else:
           add 1 to x-coord of {_1.%player%}
           add 1 to z-coord of {_1.%player%}
           subtract 1 from x-coord of {_2.%player%}
           subtract 1 from z-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is equal to player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is equal to true:
                   set {_ok} to true
               if {_ok} is equal to true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   if player's tool is enchanted with fortune 1:
                       chance of 3%:
                           drop 1 diamond at loop-block
                   else if player's tool is enchanted with fortune 2:
                       chance of 3%:
                           drop 2 diamond at loop-block         
                   else if player's tool is enchanted with fortune 3:
                       chance of 3%:
                           drop 3 diamond at loop-block             
                   else if player's tool is enchanted with fortune 4:
                       chance of 3%:
                           drop 4 diamond at loop-block     
                   else if player's tool is enchanted with fortune 5:
                       chance of 3%:
                           drop 5 diamond at loop-block

  • J'aime 1
  • 0
Posté(e)
Ok j'ai corrigé et j'ai aussi ajouté pour les joueurs qui sont add dans un claim

Par contre pas terrible l'optimisation de ton claim mais pas grave, Voici le code ^^:

options:
   GHamMSG: "&aTu as reçu %arg 2% hammeur(s) !"
   NNerr: "&cNombres négatifs non-autorisés !"

command /hammeur [<text>] [<number>] [<player>]:
   permission: hammeur.give
   trigger:
       if arg 1 is "give":
           if arg-2 > 0:
               give arg-2 of iron pickaxe of efficiency 6 and unbreaking 4 and fortune 3 named "&c[&6Hammeur&c]" to arg-3
               send {@GHamMSG}
           else:
               send {@NNerr}


on break:
   if name of player's tool is "&c[&6Hammeur&c]":
       set {_1.%player%} to location of event-block
       set {_2.%player%} to location of event-block
       if player's pitch is between -50 and 50:
           add 1 to y-coord of {_1.%player%}
           subtract 1 from y-coord of {_2.%player%}
           if player's horizontal facing is west or east:
               add 1 to z-coord of {_1.%player%}
               subtract 1 from z-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   if {chunk.%chunk at location of loop-block%} is not set:
                       set {_ok} to true
                   if {chunk.%chunk at location of loop-block%} is equal to player:
                       set {_ok} to true
                   if {chunk.%chunk at location of player%.%player%} is equal to true:
                       set {_ok} to true
                   if {_ok} is equal to true:
                       id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                       break loop-block with player's tool
                       if player's tool is enchanted with fortune 1:
                           chance of 3%:
                               drop 1 diamond at loop-block
                       else if player's tool is enchanted with fortune 2:
                           chance of 2%:
                               drop 2 diamond at loop-block        
                       else if player's tool is enchanted with fortune 3:
                           chance of 3%:
                               drop 3 diamond at loop-block            
                       else if player's tool is enchanted with fortune 4:
                           chance of 3%:
                               drop 4 diamond at loop-block    
                       else if player's tool is enchanted with fortune 5:
                           chance of 3%:
                               drop 5 diamond at loop-block
           else if player's horizontal facing is north or south:
               add 1 to x-coord of {_1.%player%}
               subtract 1 from x-coord of {_2.%player%}
               loop blocks within {_1.%player%} to {_2.%player%}:
                   if {chunk.%chunk at location of loop-block%} is not set:
                       set {_ok} to true
                   if {chunk.%chunk at location of loop-block%} is equal to player:
                       set {_ok} to true
                   if {chunk.%chunk at location of player%.%player%} is equal to true:
                       set {_ok} to true
                   if {_ok} is equal to true:
                       id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                       break loop-block with player's tool
                       if player's tool is enchanted with fortune 1:
                           chance of 3%:
                               drop 1 diamond at loop-block
                       else if player's tool is enchanted with fortune 2:
                           chance of 3%:
                               drop 2 diamond at loop-block        
                       else if player's tool is enchanted with fortune 3:
                           chance of 3%:
                               drop 3 diamond at loop-block            
                       else if player's tool is enchanted with fortune 4:
                           chance of 3%:
                               drop 4 diamond at loop-block    
                       else if player's tool is enchanted with fortune 5:
                           chance of 3%:
                               drop 5 diamond at loop-block        
       else:
           add 1 to x-coord of {_1.%player%}
           add 1 to z-coord of {_1.%player%}
           subtract 1 from x-coord of {_2.%player%}
           subtract 1 from z-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is equal to player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is equal to true:
                   set {_ok} to true
               if {_ok} is equal to true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   if player's tool is enchanted with fortune 1:
                       chance of 3%:
                           drop 1 diamond at loop-block
                   else if player's tool is enchanted with fortune 2:
                       chance of 3%:
                           drop 2 diamond at loop-block        
                   else if player's tool is enchanted with fortune 3:
                       chance of 3%:
                           drop 3 diamond at loop-block            
                   else if player's tool is enchanted with fortune 4:
                       chance of 3%:
                           drop 4 diamond at loop-block    
                   else if player's tool is enchanted with fortune 5:
                       chance of 3%:
                           drop 5 diamond at loop-block

Merci et si tu sais l'optimiser sa sera sympa de ta part :)

  • 0
Posté(e)
Merci et si tu sais l'optimiser sa sera sympa de ta part :)

J'ai clairement trop la flemme XD

de plus les problèmes d'opti sont pas très grave, c'est juste quelques lignes qui pourrait être enlevé

  • 0
Posté(e) (modifié)

Bonsoir,

 

J'ai optimiser les lignes où tu regarde l'enchantement du "player's tool". Dit moi si c'est fonctionnel. Merci

 

Edit:

Si j'oublie le code sa va être compliquer a tester pour toi :p

options:
   GHamMSG: "&aTu as reçu %arg 2% hammeur(s) !"
   NNerr: "&cNombres négatifs non-autorisés !"

command /hammeur [<text>] [<number>] [<player>]:
   permission: hammeur.give
   trigger:
       if arg 1 is "give":
           if arg-2 > 0:
               give arg-2 of iron pickaxe of efficiency 6 and unbreaking 4 and fortune 3 named "&c[&6Hammeur&c]" to arg-3
               send {@GHamMSG}
           else:
               send {@NNerr}

on break:
   name of player's tool is "&c[&6Hammeur&c]"
   set {_1.%player%} to location of event-block
   set {_2.%player%} to location of event-block
   if player's pitch is between -50 and 50:
       add 1 to y-coord of {_1.%player%}
       subtract 1 from y-coord of {_2.%player%}
       if player's horizontal facing is west or east:
           add 1 to z-coord of {_1.%player%}
           subtract 1 from z-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is true:
                   set {_ok} to true
               if {_ok} is true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
                   set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
                   chance of 3%:
                       drop {_EnchantedItemOfPlayer2.%player%} at loop-block
       else if player's horizontal facing is north or south:
           add 1 to x-coord of {_1.%player%}
           subtract 1 from x-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is true:
                   set {_ok} to true
               if {_ok} is true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
                   set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
                   chance of 3%:
                       drop {_EnchantedItemOfPlayer2.%player%} at loop-block         
   else:           
       add 1 to x-coord of {_1.%player%}
       add 1 to z-coord of {_1.%player%}
       subtract 1 from x-coord of {_2.%player%}
       subtract 1 from z-coord of {_2.%player%}
       loop blocks within {_1.%player%} to {_2.%player%}:
           if {chunk.%chunk at location of loop-block%} is not set:
               set {_ok} to true
           if {chunk.%chunk at location of loop-block%} is player:
               set {_ok} to true
           if {chunk.%chunk at location of player%.%player%} is true:
               set {_ok} to true
           if {_ok} is true:
               id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
               break loop-block with player's tool
               set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
               set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
               chance of 3%:
                   drop {_EnchantedItemOfPlayer2.%player%} at loop-block

Modifié par Invité
  • 0
Posté(e)
Bonsoir,

 

J'ai optimiser les lignes où tu regarde l'enchantement du "player's tool". Dit moi si c'est fonctionnel. Merci

 

Edit:

Si j'oublie le code sa va être compliquer a tester pour toi :p

options:
   GHamMSG: "&aTu as reçu %arg 2% hammeur(s) !"
   NNerr: "&cNombres négatifs non-autorisés !"

command /hammeur [<text>] [<number>] [<player>]:
   permission: hammeur.give
   trigger:
       if arg 1 is "give":
           if arg-2 > 0:
               give arg-2 of iron pickaxe of efficiency 6 and unbreaking 4 and fortune 3 named "&c[&6Hammeur&c]" to arg-3
               send {@GHamMSG}
           else:
               send {@NNerr}

on break:
   name of player's tool is "&c[&6Hammeur&c]"
   set {_1.%player%} to location of event-block
   set {_2.%player%} to location of event-block
   if player's pitch is between -50 and 50:
       add 1 to y-coord of {_1.%player%}
       subtract 1 from y-coord of {_2.%player%}
       if player's horizontal facing is west or east:
           add 1 to z-coord of {_1.%player%}
           subtract 1 from z-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is true:
                   set {_ok} to true
               if {_ok} is true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
                   set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
                   chance of 3%:
                       drop {_EnchantedItemOfPlayer2.%player%} at loop-block
       else if player's horizontal facing is north or south:
           add 1 to x-coord of {_1.%player%}
           subtract 1 from x-coord of {_2.%player%}
           loop blocks within {_1.%player%} to {_2.%player%}:
               if {chunk.%chunk at location of loop-block%} is not set:
                   set {_ok} to true
               if {chunk.%chunk at location of loop-block%} is player:
                   set {_ok} to true
               if {chunk.%chunk at location of player%.%player%} is true:
                   set {_ok} to true
               if {_ok} is true:
                   id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
                   break loop-block with player's tool
                   set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
                   set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
                   chance of 3%:
                       drop {_EnchantedItemOfPlayer2.%player%} at loop-block        
   else:          
       add 1 to x-coord of {_1.%player%}
       add 1 to z-coord of {_1.%player%}
       subtract 1 from x-coord of {_2.%player%}
       subtract 1 from z-coord of {_2.%player%}
       loop blocks within {_1.%player%} to {_2.%player%}:
           if {chunk.%chunk at location of loop-block%} is not set:
               set {_ok} to true
           if {chunk.%chunk at location of loop-block%} is player:
               set {_ok} to true
           if {chunk.%chunk at location of player%.%player%} is true:
               set {_ok} to true
           if {_ok} is true:
               id of loop-block isn't 7 or 8 or 9 or 10 or 11 or 138 or 49 or 47 or 52 or 87 or 0 or 89 or 17 or 5 or 80 or 65
               break loop-block with player's tool
               set {_EnchantedItemOfPlayer.%player%} to the enchantment level of fortune on player's tool
               set {_EnchantedItemOfPlayer2.%player%} to "%{_EnchantedItemOfPlayer.%player%}% diamond" parsed as item
               chance of 3%:
                   drop {_EnchantedItemOfPlayer2.%player%} at loop-block

Heu il est totalement inutile de utiliser le .%player% si la variable n'est pas permanante non ?

{_EnchantedItemOfPlayer.%player%}

  • 0
Posté(e)
Heu il est totalement inutile de utiliser le .%player% si la variable n'est pas permanante non ?

{_EnchantedItemOfPlayer.%player%}

Oui et non, moi je prefère utiliser le %player% quand même dans les variable temporaire pour éviter des conflits ou bugs :p

  • 0
Posté(e)
Oui et non, moi je prefère utiliser le %player% quand même dans les variable temporaire pour éviter des conflits ou bugs :p

heu tu as déjà eu des bugs avec des variables non persistante ???

et pour les conflit faut juste bien gérer les noms...

  • 0
Posté(e)
heu tu as déjà eu des bugs avec des variables non persistante ???

et pour les conflit faut juste bien gérer les noms...

Non je n'est jamais eu de bugs ( Logique j'utilise jamais des variables tempo sans player dedans ), moi personnellement je trouve sa plus sécuriser de mettre ceci dedans.

  • J'aime 1
  • 0
Posté(e)
Non je n'est jamais eu de bugs ( Logique j'utilise jamais des variables tempo sans player dedans ), moi personnellement je trouve sa plus sécuriser de mettre ceci dedans.

C'est pas pour être méchant mais il n'y a strictement AUCUN intérêt à mettre un truc pour ne pas bugué à un truc qui ne bug pas...

  • 0
Posté(e)
C'est pas pour être méchant mais il n'y a strictement AUCUN intérêt à mettre un truc pour ne pas bugué à un truc qui ne bug pas...

Yep, après moi je fais comme sa c'est tous. Chaqu'un sa façon de développer ;)

  • J'aime 1
  • 0
Posté(e) (modifié)
C'est pas pour être méchant mais il n'y a strictement AUCUN intérêt à mettre un truc pour ne pas bugué à un truc qui ne bug pas...

J'ai déjà eux des confusions entre variables temporaires du coup je mes à chaque fois un %player% ou un %uuid of player% dans mes variables temporaires

Modifié par Invité
  • 0
Posté(e)
J'ai déjà eux des confusions entre variables temporaires du coup je mes à chaque fois un %player% ou un %uuid of player% dans mes variables temporaires

Par confusions c'est juste que les variables était mal nommé où autre chose ?

  • 0
Posté(e)
Nan juste parce que les variables avais les mêmes noms

Théoriquement si jamais ton skript ne concerne qu'un seul joueur (ce qui est le cas là...) il ne sert vraiment a rien de mettre .%player% car de toute manière le joueur reste le même...

  • 0
Posté(e) (modifié)
Qui te dit pour un joueur ?

Nan mais le hammeur a chaque fois qu'il exécute son programme, il le fait pour 1 joueur et vu que les variables avec un _ ne sont propre qu'au code qui s’exécute (donc même si deux code s’exécute exactement au même moment les variables ne se mélangeront pas) et comme durant le code le .%player% reste constamment le même ça ne change rien pour les problèmes de nom...

 

Exemple :

pour {_s} une variable quelconque qui sert d'exemple:

 

Pour des variables avec .%player%:

 

Je casse un bock

met {_s.%player%} a une valeur aléatoire (ex : 12)

att 5 second

affiche {_s.%player%} (donc 12)

 

Pour des variables sans .%player%

Je casse un bock

met {_s} a une valeur aléatoire (ex : 8)

att 5 second

affiche {_s} (donc 8)

 

Dans les deux cas, même si un autre joueurs casse un block dans les 5 second d'attente, la valeur affiché sera toujours la même pour le joueur que celle qui a été définis dés qu'il a cassé un block.

 

Conclusion le .%player% est totalement inutile dans une variables instables (avec un _ ) C'est le principe même des variables instable...

Modifié par uiytt
  • 0
Posté(e) (modifié)
Nan mais le hammeur a chaque fois qu'il exécute son programme, il le fait pour 1 joueur et vu que les variables avec un _ ne sont propre qu'au code qui s’exécute (donc même si deux code s’exécute exactement au même moment les variables ne se mélangeront pas) et comme durant le code le .%player% reste constamment le même ça ne change rien pour les problèmes de nom...

 

Exemple :

pour {_s} une variable quelconque qui sert d'exemple:

 

Pour des variables avec .%player%:

 

Je casse un bock

met {_s.%player%} a une valeur aléatoire (ex : 12)

att 5 second

affiche {_s.%player%} (donc 12)

 

Pour des variables sans .%player%

Je casse un bock

met {_s} a une valeur aléatoire (ex : 8)

att 5 second

affiche {_s} (donc 8)

 

Dans les deux cas, même si un autre joueurs casse un block dans les 5 second d'attente, la valeur affiché sera toujours la même pour le joueur que celle qui a été définis dés qu'il a cassé un block.

 

Conclusion le .%player% est totalement inutile dans une variables instables (avec un _ ) C'est le principe même des variables instable...

Je m'en fou je parle en général et c'est mieux d'avoir un skript vraiment safe qu'un truc malgache où faut prier pour qu'il n'y est pas de confusions

Modifié par Invité
  • J'aime 1
  • 0
Posté(e)
Je m'en fou je parle en général et c'est mieux d'avoir un skript vraiment safe qu'un truc malgache où faut prier pour qu'il n'y est pas de confusions

Mais un truc avec un .%player% et sans sont exactement aussi safe car si l'un est un "un truc malgache où faut prier pour qu'il n'y est pas de confusions" alors l'autre l'est aussi !!!!

Il y a absolument rien qui change entre les deux sauf que le premier rendra plus compliqué la compréhension de ton skript :/

  • 0
Posté(e)
Conclusion le .%player% est totalement inutile dans une variables instables (avec un _ ) C'est le principe même des variables instable...

C'est utile dans les boucles, mais pas ici visiblement.

Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.

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