Aller au contenu

Messages recommandés

Posté(e)

Bonjour,

Voici ma demande de Skript:

Un Skript que quand un anvil (enclume) se brise par usure (quand on l'utilise trop) dans le monde "pvp", ça remet un anvil (enclume) dans la même position à la même place automatiquement.

 

Ps: Si ce n'est pas possible de remettre l'anvil dans la même position, ça n'est pas si grave que ça :p

 

J'ai la dernière version de Skript, j'ai aussi SkRayFall, Umbaska, SkQuery, ExtrasSk et WildSkript

Mon serveur est en 1.7.10 avec Spigot

 

Ps: Si ce n'est pas possible de remettre l'anvil dans la même position, ça n'est pas si grave que ça :p

 

Merci d'avance de votre temps!

Posté(e)

Voilà voilà

 

on right click on anvil:
   if clicked block is an anvil:
       if player's world is "pvp":
           set clicked block to anvil

Posté(e)
on right click on anvil:
   if clicked block is an anvil:
       if player's world is "pvp":
           set clicked block to anvil

 

Quelques trucs à dire sur ton code :

Tu testes deux fois si le bloc est une enclume ce qui représente un problème d'optimisation, je pense que tu seras d'accord :

on right click on anvil:
   if clicked block is an anvil:

 

Aussi il y a moyen de garder la direction de l'enclume. Elle se pose toujours face sud avec ta méthode. En fait, faut se pencher sur la différence entre enclume en bon état et enclume endommagée. L'enclume en bon état face sud a la métadonnée 0, ouest = 1, nord = 2, est = 3. Les enclumes en bon état ont donc les métadonnée 0 à 3 en fonction de leur direction. Sur le même principe, les enclumes un peu endommagées ont les métadonnées de 4 à 7 et très endommagé, c'est 8 à 11. Pour réparer ton enclume, tu peux donc regarder si l'enclume est endommagée un peu ou beaucoup, et retirer 4 à la métadonnée pour garder la même direction puisque par exemple, avec 5 (enclume un peu endommagée orientée ouest), tu obtiens 1 (enclume en bon état orientée ouest) :

if data value of targeted block is more than 3:
   remove 4 from data value of event-block

 

Ensuite, on peut toujours casser l'enclume si on fait tout ce qu'on a à faire d'une traite genre sans sortir de l'enclume, c'est pas impossible sur un serveur public. Tu peux palier à ça en changeant régulièrement la métadonnée au lieu de le faire seulement quand tu cliques dessus, tant que le joueur la regarde :

while targeted block is anvil:
   if data value of targeted block is more than 3:
       remove 4 from data value of event-block
   wait 15 seconds

 

Et donc à la fin, tu as ça qui fonctionne mieux :

on right click on anvil:
   if player's world is "pvp":
       while targeted block is anvil:
           if data value of targeted block is more than 3:
               remove 4 from data value of event-block
           wait 15 seconds

  • J'aime 1
Posté(e)

J'ai testé ceci:

on right click on anvil:
   if player's world is "pvp":
       while targeted block is anvil:
           if data value of targeted block is more than 3:
               remove 4 from data value of event-block
           wait 15 seconds

 

ça a fait crash...

Posté(e)

Avec WildSkript tu peux encore plus optimiser.

 

on rightclick on anvil:
   if player's world is "pvp":
       cancel event
       open anvil to the player

Le "open anvil to the player" va créer un GUI d'enclume sans user l'enclume sur laquelle on a fait clic droit.

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