Aller au contenu
  • 0

Effet bloc


Question

Posté(e)

Bien le bonjour,

 

J'aimerais que quand un joueur marche sur un bloc de verre rouge, il se face heal, un bloc vert, prenne du poison etc... Mon code n'a pas d'erreur mais ne fonctionne pas :c Help me please ^^

on walk on red stainless glass:
   set {_waited} to difference between {heal} and now
   if {_waited} is less than 10 seconds:
       message "&7Tu dois attendre &c%difference between a minute and {_waited}% &7avant de pouvoir reprendre l'effet !"
       stop
   if {_waited} is more than 10 seconds:
       apply regeneration 2 to the player for 5 second
       stop

 

Dernière version de Skript

 

Merci d'avance pour votre aide !

BoBsmil3Y

17 réponses à cette question

Messages recommandés

  • 0
Posté(e)
non :) Fin je ne sais pas, je commence le code donc mes connaissances et mon vocabulaire ... Hmm comment dire ? ^^

 

Cette variable "{heal}", si tu ne connais pas les variables ne commence pas à codé. Et va plutôt voir le forum Tutoriels

  • 0
Posté(e)

Tu peux utiliser cela aussi, mais je pense que ça utilise bcp de ressource serveur...

A tester !

[spoiler=CODE]

on load:

   loop all players:
           delete {Wait.%loop-player%}

every second:
   loop all players:
       if {Wait.%loop-player%} is set:
           remove 1 from {Wait.%loop-player%}
       if {Wait.%loop-player%} = 1:
           delete {Wait.%loop-player%}
           # message "&7Tu peux désormais utiliser ton HEAL..."

on walk on red stained glass:
   if {Wait.%player%} is set:
       message "&7Tu dois attendre &c%difference between a minute and {_waited}% &7avant de pouvoir reprendre l'effet !"
   else:
       apply regeneration 2 to the player for 5 second
       set {Wait.%player%} to 10

 

 

  • 0
Posté(e)

Déjà merci de vos réponses ! @NaolShow , on apprends en le faisant ^^ donc je continuerais à m'améliorer mais pour l'instant voilà mon niveau :p

@angelus76 je test ça ^^

et @XTReMxLogik oui je vais éviter de faire des loops ^^

 

Bon alors, fonctionne pas trop trop ^^

on walk on sand:
   set {_waited} to difference between {heal.%player%} and now
   if {_waited} is less than 10 seconds:
       message "&7Tu dois attendre &c%difference between a minute and {_waited}% &7avant de pouvoir reprendre l'effet !"
       stop
   if {_waited} is more than 10 seconds:
       apply swiftness 2 to the player for 5 second
       Set {heal.%player%} to now
       stop

  • 0
Posté(e)

Oki :p

Déjà merci de vos réponses ! @NaolShow , on apprends en le faisant ^^ donc je continuerais à m'améliorer mais pour l'instant voilà mon niveau :p

@angelus76 je test ça ^^

et @XTReMxLogik oui je vais éviter de faire des loops ^^

 

Bon alors, fonctionne pas trop trop ^^

on walk on sand:
   set {_waited} to difference between {heal.%player%} and now
   if {_waited} is less than 10 seconds:
       message "&7Tu dois attendre &c%difference between a minute and {_waited}% &7avant de pouvoir reprendre l'effet !"
       stop
   if {_waited} is more than 10 seconds:
       apply swiftness 2 to the player for 5 second
       Set {heal.%player%} to now
       stop

  • 0
Posté(e)

Tu peux tout simplement faire ceci pour appliquer un effet ^^

On walking on red stained glass:
   heal player

On walking on green stained glass:
   apply poison to player for 5 seconds

 

Ensuite pour le timer tu peux faire de cette façon :

(Mais n'affiche pas le temps restant, je ne sais pas si c'est ce que tu voulais)

On walking on red stained glass:
   if {heal.%player%} is true:
       heal player
       set {heal.%player%} to false
       wait 10 seconds #Tu peux changer la longueur du timer ici
       set {heal.%player%} to true
   else:
       send "&cTu ne peux pas encore récupérer de la vie"

 

EDIT :

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

  • 0
Posté(e)

Sauf que la,{heal.%player%} n'est pas set donc ça va te mettre que tu peux pas récup de vie éternellement vu que ta variable ne sera jamais true dans le code.

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

Ouais mais le truc c’est que je veux que tu marches sur le bloc, tu as l'effet pdt X temps, puis tu dois attendre X temps avant de pouvoir ravoir l'effet même si tu marches dessus.

  • 0
Posté(e)

Trouvé !

la variables heal n a jamais été definie et est donc egale à 0 de base:

 

0 est plus petit que 10 donc la deuxieme partie de ton code ne sera jamais lancée car il n y a aucun moyen que heal soit cet

 

Pour faire simple rajoute ça:

 

On join:
   Set {heal.%player%} to now

 

Je n ai rien testé mais je pense que l erreur viens de la

  • 0
Posté(e)
Ouais mais le truc c’est que je veux que tu marches sur le bloc, tu as l'effet pdt X temps, puis tu dois attendre X temps avant de pouvoir ravoir l'effet même si tu marches dessus.

Tu as testé ce que je t'ai passé ? J'ai edit mon message normalement ça devrait fonctionné

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