Aller au contenu
Nashoba

Du Skript au Java #4 - Les événements "At time" et "every X time"

Messages recommandés

Bonjour,

 

Aujourd'hui je vais vous expliquer comment réaliser en Java les événements "at XX:XX" et "every X seconds/ticks/hours..."

 

 

 

 

 

L'évent At Time

 

Pour l'évent "at time", il vous faudra d'abord une variable locale qui enregistrera l'heure du dernier test. Ensuite on pourra voir grâce à cette donnée si l'heure est passée ou non.

Donc ajouter votre variable juste après le "public class":

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Maintenant on passe au code. Vous devez mettre ce code lorsque le serveur démarre, soit dans la méthode onEnable(), soit dans une fonction qui est appelée en même temps que le onEnable().

Voici le code en question:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Dans ce code vous pouvez changer 3 paramètres:

  1. L'heure
  2. Le monde
  3. Le période de test (tous les combiens de ticks ça va être testé)

Vous pouvez les trouver aux lignes 2, 3, 4.

Pour le monde c'est tout simplement du texte. Pour la période de test c'est en ticks. Vous savez probablement que 20 ticks font 1 seconde. De base ça test ça toutes les 1/2 secondes (car 10/20 = 1/2).

 

Pour l'heure il faut la mettre en ticks. Dans une journée Minecraft il y a 24000 ticks. 0 tick correspond à 6h et 24000 correspond à 6h aussi.

On prend donc la différence d'heure entre 6h et l'heure voulue et on multiplie par 1000. Par exemple pour 8h on aura: 2*1000 = 2000. 8h correspond à 2000 ticks.

Pour 22h: 16 * 1000 = 16000

 

Exemple:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Ici à 12h dans le monde pvp, le code s'effectura.

Le code est à mettre à la place de "//CODE".

 

Exception:

Pour 6h, il faut remplacer:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

par:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

 

 

 

 

 

L'évent every X time

 

 

Pour l'évent every X time, c'est la même chose que précédemment mais simplifié.

Vous devez également le mettre à l'ouverture de votre serveur (dans le onEnable() ).

Voici le code:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Ici nous pouvons changer une seule variable:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

C'est le temps avant que le code soit répété. Il est exprimé en ticks (je rappelle 20 ticks = 1 seconde).

 

Par exemple pour executer mon code toutes les minutes je met:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

 

 

 

 

 

 

 

Voilà j'espère avoir encore une fois avoir été assez clair :)

Et proposez moi des idées pour les prochains tutos car là je ne sèche un peu sur les thèmes à aborder :eek:

Partager ce message


Lien à poster
Partager sur d’autres sites

La seule solution que je connais c'est avec une flèche, en testant sa hauteur lros de l'impact par rapport à la hauteur de la tête du zombie. Pour ce qui est de taper à l'épée, il faut faire un système très compliqué en utilisant des vecteurs 3d, des locations, l'orientation du joueur etc...

Partager ce message


Lien à poster
Partager sur d’autres sites
La seule solution que je connais c'est avec une flèche, en testant sa hauteur lros de l'impact par rapport à la hauteur de la tête du zombie. Pour ce qui est de taper à l'épée, il faut faire un système très compliqué en utilisant des vecteurs 3d, des locations, l'orientation du joueur etc...

Mince :/

Partager ce message


Lien à poster
Partager sur d’autres sites

A la place de diamondsword ça doit être une variable du type ItemStack. Si tu veux que ce soit une épée en diamant ton code doit être:

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

diamondsword cannot be resolved to a variable :(

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites

Comment je dois faire si je veut que sa fasse:

clear inventory

set slot 0 of player to diamond sword named "Ouvrir#" with lore "TEST"

 

J'ai comencé :o

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

 

Après comme c'est long, si tu veux utiliser ça plusieurs fois, tu peux passer par une fonction :

 

Contenu masqué

    Réagissez ou répondez à ce message afin de consulter le contenu masqué.

Partager ce message


Lien à poster
Partager sur d’autres sites

Créer un compte ou se connecter pour commenter

Vous devez être membre afin de pouvoir déposer un commentaire

Créer un compte

Créez un compte sur notre communauté. C’est facile !

Créer un nouveau compte

Se connecter

Vous avez déjà un compte ? Connectez-vous ici.

Connectez-vous maintenant

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