Aller au contenu

Messages recommandés

Posté(e) (modifié)

Bonjour,

 

Quelque infos:

- Version du serveur : 1.8

- Version du plugin skript : 2.2

- Addon skUtilities : 0.9.2

Je n'arrive pas à faire en sorte que lorsque un joueur meurt sa affiche l'outils avec lequel il est mort en détaille. Voiçi mon code de base :

 

Code:

on command "/test":
   set {_day} to "%day name from date now%"
   send "&bnous sommes {_day}"

 

Le code en lui même n'a aucune érreur mais si je fait la command /test sa va me marquer &bnous sommes Mercredi même si nous sommes jeudi et si je refait la commande 1 minute / 30 seconde après sa va me mettre que l'on est Vendredi ...

Conclusion sa ne m'affiche le vrai jour que 1 fois sur 7.

 

Merci d'avance pour vos réponses :).

Cordialement,

Safarival

Modifié par Invité
Posté(e) (modifié)

Tu dois mettre sa

command /date:
    trigger:
.      message "%now%"

Le seul problème c'est que tu auras la date plus l'heure et l'année mais en anglais :/

Modifié par Invité
Posté(e)

oui mais le truc c'est que je veut mettre le NOM DU JOUR dans le message et en français. Et j'ai vu qu'il était possible avec l'addon Skutilities et c'est vrai seulement le jour change toutes les secondes... :(

Posté(e) (modifié)
Testé, aucun add-on nécessaire:

function Julien(MM:number,DD:number,YY:number) :: number:
   if {_MM} > 2:
       set {_y} to {_YY}
       set {_m} to {_MM}
   if {_MM} is 1 or 2:
       set {_y} to {_YY}-1
       set {_m} to {_MM}+12
   set {_B} to 0
   if {_YY} > 1582:
       if {_MM} > 10:
           if {_DD} > 15:
               set {_A} to floor({_y}/100)
               set {_B} to 2-{_A}+floor({_A}/4)
   return floor(365.25*{_y})+floor(30.6001*({_m}+1))+{_DD}+1720994.5+{_B}
function JJour(JJ:number) :: string:
   set {_a} to {_JJ}+1.5
   set {_r} to {_a}-7
   while {_r} > 7:
       remove 7 from {_r}
   set {_d::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
   return {_d::%{_r}%}
on command:
   if command is "jour":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:
               if {_a::3} parsed as number is set:

                   # /MM /DD /YY

                   if {_a::1} parsed as number is smaller or equal to 12:
                       send "%JJour(Julien({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))%"
       else:
           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           loop {_t::*}:
               set {_t::%loop-index%} to loop-value parsed as number
               if loop-index parsed as number is 1:
                   set {_t::%loop-index%} to {_t::%loop-index%}+1
               if loop-index parsed as number is 3:
                   set {_t::%loop-index%} to {_t::%loop-index%}+2000
           execute player command "/jour %{_t::2}% %{_t::1}% %{_t::3}%"

Je demande pas souvent des "likes" mais ca fait plaisir quand on se casse la tête pendant plusieurs minutes.

;)

Pourquoi la fonction s'appelle Julien xD c'est ton prénom ?

Modifié par Invité
Posté(e) (modifié)
Pourquoi la fonction s'appelle Julien xD c'est ton prénom ?

Très bonne question, c'est le jour julien dans le calendrier grégorien.

J'ai changé et j'ai mis "G" comme "Grégorien" et "JJour" c'est comme "Jour Julien".

Ici.

Modifié par Invité
  • J'aime 1
Posté(e)

Par contre comment je doit faire si je veut que quand j'éxecute la command /test si il est lundi sa envoie un send au joueur il est lundi si il est mardi send "il est mardi"... stp

 

Mais sinon je n'est aucune erreur donc gg à toi je te mais un j'aime dès que j'ai la réponse :)

Posté(e) (modifié)

si je marque :

send "il est %JJour(G({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))%"

Il faut que je fasse ex: /jour 1 2 3

et sa va me mettre il est <none>.

 

Conclusion:

1) Le send ne fonctionne pas.

et

2) je veut faire juste /jour pour que sa me marque le jour et pas /jour 1 2 3.

Modifié par Safarival
Posté(e)

options:
   gui name: <MM>/<YY> <M>

function G(MM:number,DD:number,YY:number) :: number:

   if {_MM} >= 3:
       set {_z} to {_YY}
   else if {_MM} is 1 or 2:
       set {_z} to {_YY}-1
   set {_A} to floor(23*{_MM}/9)
   set {_B::*} to floor({_z}/4), floor({_z}/100) and floor({_z}/400)
   if {_MM} is 1 or 2:
       set {_D} to {_A}+{_DD}+4+{_YY}+{_B::1}-{_B::2}+{_B::3}
   else:
       set {_D} to {_A}+{_DD}+4+{_YY}+{_B::1}-{_B::2}+{_B::3}-2

   return mod({_D},7)

function JDay(JJ:number) :: string:
   set {_d::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
   if {_JJ} is 0:
       set {_JJ} to 7
   return {_d::%{_JJ}%}

function MMonth(MM:number) :: string:
   set {_m::*} to "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre" and "Décembre"
   return {_m::%{_MM}%}

function isB(YY:number) :: boolean:
   if mod({_YY},4) != 0:
       return false
   else if mod({_YY},100) != 0:
       return true
   else if mod({_YY},400) != 0:
       return false
   else:
       return true

function nbMY(MM:number,YY:number) :: number:
   set {_n::*} to 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 and 31
   if isB({_YY}) is true:
       set {_n::2} to {_n::2}+1
   return {_n::%{_MM}%}

on command:
   if command is "jour":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:
               if {_a::3} parsed as number is set:

                   # /MM /DD /YY

                   if {_a::1} parsed as number is smaller or equal to 12:
                       send "%JDay(G({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))% %{_a::2}% %MMonth({_a::1} parsed as number)% %{_a::3}%" to player
       else:
           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           set {_t::1} to {_t::1} parsed as number
           set {_t::2} to {_t::2} parsed as number
           set {_t::3} to {_t::3} parsed as number+2000
           execute player command "/jour %{_t::2}% %{_t::1}% %{_t::3}%"

   else if command is "calendrier":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:

               # /MM /YY

               set {_MM} to {_a::1} parsed as number
               set {_YY} to {_a::2} parsed as number
               set {_i::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
               loop all numbers between 1 and nbMY({_MM},{_YY}):

                   set {_N} to loop-number
                   loop {_i::*}:

                       if loop-value-2 is JDay(G({_MM},{_N},{_YY})):
                           add {_N} to {_i::%loop-index%::*}

               set {_NAME} to "{@gui name}"

               replace all "<M>" with "%MMonth({_MM})%" in {_NAME}

               if {_MM} is smaller than 10:
                   replace all "<MM>" with "0%{_MM}%" in {_NAME}
               else:
                   replace all "<MM>" with "%{_MM}%" in {_NAME}

               replace all "<YY>" with "%{_YY}%" in {_NAME}

               open virtual chest inventory with size 6 named "%{_NAME}%" to player

               loop 7 times:

                   loop {_i::%loop-value%::*}:
                       if loop-value-2 is 1:
                           set {_S} to loop-value-1
                   loop {_i::%loop-value%::*}:
                       if loop-value-2 parsed as number - {_S} < 0:
                           format gui slot loop-value-1 + (loop-index parsed as number-1) * 9 of player with loop-value-2 of glass pane named "%{_i::%loop-value-1%}% %loop-value-2%"
                       else:
                           format gui slot loop-value-1 + loop-index parsed as number * 9 of player with loop-value-2 of glass pane named "%{_i::%loop-value-1%}% %loop-value-2%"

               if {_MM} is not 1:
                   format gui slot 45 of player with paper named "§fMois précédent" to run player command "/%command% %{_MM}-1% %{_YY}%"
                   if {_MM} is not 12:
                       format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% %{_MM}+1% %{_YY}%"
                   else:
                       format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% 1 %{_YY}+1%"
                   stop
               format gui slot 45 of player with paper named "§fMois précédent" to run player command "/%command% 12 %{_YY}-1%"
               format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% %{_MM}+1% %{_YY}%"
           else:
               execute player command "/calendrier"
       else:

           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           set {_t::2} to {_t::2} parsed as number
           set {_t::3} to {_t::3} parsed as number+2000
           execute player command "/calendrier %{_t::2}% %{_t::3}%"

 

Plus besoin de faire (J+1).

  • J'aime 1
Posté(e)
Je vais te le faire, sans aucune API hihi:p:p

 

Testé, aucun add-on nécessaire:

function G(MM:number,DD:number,YY:number) :: number:
   if {_MM} > 2:
       set {_y} to {_YY}
       set {_m} to {_MM}
   if {_MM} is 1 or 2:
       set {_y} to {_YY}-1
       set {_m} to {_MM}+12
   set {_B} to 0
   if {_YY} > 1582:
       if {_MM} > 10:
           if {_DD} > 15:
               set {_A} to floor({_y}/100)
               set {_B} to 2-{_A}+floor({_A}/4)
   return floor(365.25*{_y})+floor(30.6001*({_m}+1))+{_DD}+1720994.5+{_B}
function JJour(JJ:number) :: string:
   set {_a} to {_JJ}+1.5
   set {_r} to {_a}-7
   while {_r} > 7:
       remove 7 from {_r}
   set {_d::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
   return {_d::%{_r}%}
on command:
   if command is "jour":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:
               if {_a::3} parsed as number is set:

                   # /MM /DD /YY

                   if {_a::1} parsed as number is smaller or equal to 12:
                       send "%JJour(G({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))%"
       else:
           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           loop {_t::*}:
               set {_t::%loop-index%} to loop-value parsed as number
               if loop-index parsed as number is 1:
                   set {_t::%loop-index%} to {_t::%loop-index%}+1
               if loop-index parsed as number is 3:
                   set {_t::%loop-index%} to {_t::%loop-index%}+2000
           execute player command "/jour %{_t::2}% %{_t::1}% %{_t::3}%"

Je demande pas souvent des "likes" mais ca fait plaisir quand on se casse la tête pendant plusieurs minutes.

;)

 

[Fusion de deux messages]

 

Attention au doubles postes @McLincoln2 !

Posté(e)
options:
   gui name: <MM>/<YY> <M>

function G(MM:number,DD:number,YY:number) :: number:

   if {_MM} >= 3:
       set {_z} to {_YY}
   else if {_MM} is 1 or 2:
       set {_z} to {_YY}-1
   set {_A} to floor(23*{_MM}/9)
   set {_B::*} to floor({_z}/4), floor({_z}/100) and floor({_z}/400)
   if {_MM} is 1 or 2:
       set {_D} to {_A}+{_DD}+4+{_YY}+{_B::1}-{_B::2}+{_B::3}
   else:
       set {_D} to {_A}+{_DD}+4+{_YY}+{_B::1}-{_B::2}+{_B::3}-2

   return mod({_D},7)

function JDay(JJ:number) :: string:
   set {_d::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
   if {_JJ} is 0:
       set {_JJ} to 7
   return {_d::%{_JJ}%}

function MMonth(MM:number) :: string:
   set {_m::*} to "Janvier", "Février", "Mars", "Avril", "Mai", "Juin", "Juillet", "Août", "Septembre", "Octobre", "Novembre" and "Décembre"
   return {_m::%{_MM}%}

function isB(YY:number) :: boolean:
   if mod({_YY},4) != 0:
       return false
   else if mod({_YY},100) != 0:
       return true
   else if mod({_YY},400) != 0:
       return false
   else:
       return true

function nbMY(MM:number,YY:number) :: number:
   set {_n::*} to 31, 28, 31, 30, 31, 30, 31, 31, 30, 31, 30 and 31
   if isB({_YY}) is true:
       set {_n::2} to {_n::2}+1
   return {_n::%{_MM}%}

on command:
   if command is "jour":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:
               if {_a::3} parsed as number is set:

                   # /MM /DD /YY

                   if {_a::1} parsed as number is smaller or equal to 12:
                       send "%JDay(G({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))% %{_a::2}% %MMonth({_a::1} parsed as number)% %{_a::3}%" to player
       else:
           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           set {_t::1} to {_t::1} parsed as number
           set {_t::2} to {_t::2} parsed as number
           set {_t::3} to {_t::3} parsed as number+2000
           execute player command "/jour %{_t::2}% %{_t::1}% %{_t::3}%"

   else if command is "calendrier":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:

               # /MM /YY

               set {_MM} to {_a::1} parsed as number
               set {_YY} to {_a::2} parsed as number
               set {_i::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
               loop all numbers between 1 and nbMY({_MM},{_YY}):

                   set {_N} to loop-number
                   loop {_i::*}:

                       if loop-value-2 is JDay(G({_MM},{_N},{_YY})):
                           add {_N} to {_i::%loop-index%::*}

               set {_NAME} to "{@gui name}"

               replace all "<M>" with "%MMonth({_MM})%" in {_NAME}

               if {_MM} is smaller than 10:
                   replace all "<MM>" with "0%{_MM}%" in {_NAME}
               else:
                   replace all "<MM>" with "%{_MM}%" in {_NAME}

               replace all "<YY>" with "%{_YY}%" in {_NAME}

               open virtual chest inventory with size 6 named "%{_NAME}%" to player

               loop 7 times:

                   loop {_i::%loop-value%::*}:
                       if loop-value-2 is 1:
                           set {_S} to loop-value-1
                   loop {_i::%loop-value%::*}:
                       if loop-value-2 parsed as number - {_S} < 0:
                           format gui slot loop-value-1 + (loop-index parsed as number-1) * 9 of player with loop-value-2 of glass pane named "%{_i::%loop-value-1%}% %loop-value-2%"
                       else:
                           format gui slot loop-value-1 + loop-index parsed as number * 9 of player with loop-value-2 of glass pane named "%{_i::%loop-value-1%}% %loop-value-2%"

               if {_MM} is not 1:
                   format gui slot 45 of player with paper named "§fMois précédent" to run player command "/%command% %{_MM}-1% %{_YY}%"
                   if {_MM} is not 12:
                       format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% %{_MM}+1% %{_YY}%"
                   else:
                       format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% 1 %{_YY}+1%"
                   stop
               format gui slot 45 of player with paper named "§fMois précédent" to run player command "/%command% 12 %{_YY}-1%"
               format gui slot 53 of player with paper named "§fMois suivant" to run player command "/%command% %{_MM}+1% %{_YY}%"
           else:
               execute player command "/calendrier"
       else:

           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           set {_t::2} to {_t::2} parsed as number
           set {_t::3} to {_t::3} parsed as number+2000
           execute player command "/calendrier %{_t::2}% %{_t::3}%"

 

Plus besoin de faire (J+1).

 

Merci pour ce code mais il m'indique 8 erreur alors peut tu me dire quel est ta version de skript stp ? et ce que tu a comme addons ?

 

Merci pour le temp que tu prend pour moi :)

 

Cordialement,

Safarival.

Posté(e)
Merci pour ce code mais il m'indique 8 erreur alors peut tu me dire quel est ta version de skript stp ? et ce que tu a comme addons ?

 

Merci pour le temp que tu prend pour moi :)

 

Cordialement,

Safarival.

TuSKe suffit amplement.

Posté(e) (modifié)

J'avais supprimer Tuske il y a quelque jour,

Donc j'ai re installer Tuske et quand je fait /sk reload jour.sk, il y a une erreur dans ma console qui viens du skript que tu ma passer:

[16:30:38 ERROR]: null

org.bukkit.command.CommandException: Unhandled exception executing command 'sk' in plugin Skript v2.2-SNAPSHOT

at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at org.bukkit.craftbukkit.v1_8_R2.CraftServer.dispatchCommand(CraftServer.java:646) ~[minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.PlayerConnection.handleCommand(PlayerConnection.java:1139) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.PlayerConnection.a(PlayerConnection.java:974) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:45) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.PacketPlayInChat.a(PacketPlayInChat.java:1) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.PlayerConnectionUtils$1.run(SourceFile:13) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_91]

at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_91]

at net.minecraft.server.v1_8_R2.SystemUtils.a(SourceFile:60) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.MinecraftServer.A(MinecraftServer.java:712) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.DedicatedServer.A(DedicatedServer.java:368) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.MinecraftServer.z(MinecraftServer.java:651) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at net.minecraft.server.v1_8_R2.MinecraftServer.run(MinecraftServer.java:554) [minecraft_server.jar:git-Spigot-2ec6f06-7722428]

at java.lang.Thread.run(Thread.java:745) [?:1.8.0_91]

Caused by: java.lang.IllegalAccessError: tried to access method ch.njol.skript.SkriptEventHandler.addSelfRegisteringTrigger(Lch/njol/skript/lang/Trigger;)V from class com.github.tukenuke.tuske.manager.gui.v2.TriggerUnregisterListener

at com.github.tukenuke.tuske.manager.gui.v2.TriggerUnregisterListener.register(TriggerUnregisterListener.java:29) ~[?:?]

at com.github.tukenuke.tuske.manager.gui.v2.SkriptGUIEvent.register(SkriptGUIEvent.java:50) ~[?:?]

at com.github.tukenuke.tuske.manager.gui.v2.SkriptGUIEvent.<init>(SkriptGUIEvent.java:32) ~[?:?]

at com.github.tukenuke.tuske.manager.gui.v2.SkriptGUIEvent.getInstance(SkriptGUIEvent.java:24) ~[?:?]

at com.github.tukenuke.tuske.sections.gui.EffFormatGUI.init(EffFormatGUI.java:106) ~[?:?]

at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:244) ~[?:?]

at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:171) ~[?:?]

at ch.njol.skript.lang.Statement.parse(Statement.java:60) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:650) ~[?:?]

at ch.njol.skript.lang.TriggerSection.<init>(TriggerSection.java:56) ~[?:?]

at ch.njol.skript.lang.Conditional.<init>(Conditional.java:46) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:736) ~[?:?]

at ch.njol.skript.lang.Loop.<init>(Loop.java:68) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:686) ~[?:?]

at ch.njol.skript.lang.Loop.<init>(Loop.java:68) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:686) ~[?:?]

at ch.njol.skript.lang.TriggerSection.<init>(TriggerSection.java:56) ~[?:?]

at ch.njol.skript.lang.Conditional.<init>(Conditional.java:46) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:736) ~[?:?]

at ch.njol.skript.lang.TriggerSection.<init>(TriggerSection.java:56) ~[?:?]

at ch.njol.skript.lang.Conditional.<init>(Conditional.java:46) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:736) ~[?:?]

at ch.njol.skript.lang.TriggerSection.<init>(TriggerSection.java:56) ~[?:?]

at ch.njol.skript.lang.Conditional.<init>(Conditional.java:46) ~[?:?]

at ch.njol.skript.lang.Conditional.loadElseIf(Conditional.java:96) ~[?:?]

at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:724) ~[?:?]

at ch.njol.skript.ScriptLoader.loadScript(ScriptLoader.java:510) ~[?:?]

at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:245) ~[?:?]

at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:199) ~[?:?]

at ch.njol.skript.Skript.reload(Skript.java:639) ~[?:?]

at ch.njol.skript.SkriptCommand.onCommand(SkriptCommand.java:130) ~[?:?]

at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[minecraft_server.jar:git-Spigot-2ec6f06-7722428]

... 15 more

et en jeu sa me marque :

An internal error occurred while attempting to perform this command.

Modifié par Safarival
Posté(e) (modifié)
Je vais te le faire, sans aucune API hihi:p:p

 

Testé, aucun add-on nécessaire:

function G(MM:number,DD:number,YY:number) :: number:
   if {_MM} > 2:
       set {_y} to {_YY}
       set {_m} to {_MM}
   if {_MM} is 1 or 2:
       set {_y} to {_YY}-1
       set {_m} to {_MM}+12
   set {_B} to 0
   if {_YY} > 1582:
       if {_MM} > 10:
           if {_DD} > 15:
               set {_A} to floor({_y}/100)
               set {_B} to 2-{_A}+floor({_A}/4)
   return floor(365.25*{_y})+floor(30.6001*({_m}+1))+{_DD}+1720994.5+{_B}
function JJour(JJ:number) :: string:
   set {_a} to {_JJ}+1.5
   set {_r} to {_a}-7
   while {_r} > 7:
       remove 7 from {_r}
   set {_d::*} to "Lundi", "Mardi", "Mercredi", "Jeudi", "Vendredi", "Samedi" and "Dimanche"
   return {_d::%{_r}%}
on command:
   if command is "jour":
       cancel event
       set {_a::*} to arguments split by " "
       if {_a::1} is set:
           if {_a::2} parsed as number is set:
               if {_a::3} parsed as number is set:

                   # /MM /DD /YY

                   if {_a::1} parsed as number is smaller or equal to 12:
                       send "%JJour(G({_a::1} parsed as number,{_a::2} parsed as number,{_a::3} parsed as number))%"
       else:
           set {_n} to "%now%"
           set {_t::*} to first element of {_n} split by " " split by "/"
           loop {_t::*}:
               set {_t::%loop-index%} to loop-value parsed as number
               if loop-index parsed as number is 1:
                   set {_t::%loop-index%} to {_t::%loop-index%}+1
               if loop-index parsed as number is 3:
                   set {_t::%loop-index%} to {_t::%loop-index%}+2000
           execute player command "/jour %{_t::2}% %{_t::1}% %{_t::3}%"

Je demande pas souvent des "likes" mais ca fait plaisir quand on se casse la tête pendant plusieurs minutes.

;)

 

[Fusion de deux messages]

Un grand merci à toi pour ce skript qui MARCHE :) !

Je passe ce sujet en résolu :)

 

Cordialement,

Safarival.

Modifié par Invité
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.