Aller au contenu

Anarchick

Membre
  • Compteur de contenus

    321
  • Inscription

  • Dernière visite

  • Jours gagnés

    17

Messages posté(e)s par Anarchick

  1. cette ligne là ne dois probablement pas marcher

    if player has enough space for {_Number.%player%}:

    car lorsque tu récupère une valeur YML elle est interprété comme un %string%

     

    et toi tu as besoin que ce soit un %itemstack%

     

    Donc test ceci :

    set {_Number.%player%} to "%random element out of {_list::*} %" parsed as items

    puis enleve le parse item qui est plsu bas dans le code du give.

     

    Ah et il y a un bug avec les variables list qui ont le même nom que les variable simple (déjà signalé à Bensku, il a placer le bug en priorité moyenne). donc renomme simplement {_list}, du style {_result}

  2. Donc pour vous cela semble être effectivement un bug,

    Je passe le sujet en résolu histoire de le mettre aux oubliette (vous pouvez toujours répondre pour donner votre avis)

     

    EN CONCLUSION : * Faites bien attention au nommage de vos variables temporaire, surtout si vous utiliser des Skript trouvé sur internet.

    ** Cela veut aussi dire qu'il est possible de créer une nouvelle astuce de codage asynchrone qui se synchronise par la suite avec par exemple :

    while {_x} is not set:

  3. C'est tout à fait normal, je t'explique, quand tu crée cet évent dans ton code:

    on jump:
       set {_test} to "hey"

     

    Le code défini la variable {_test} comme une variable TEMPORAIRE, à la fin de ton évent le variable {_test} se supprimera (non-inscrit dans le variable.cs)

    Pour que ton code marche je te conseille de réunir le broadcast et le set de variable dans le même évent donc d'obtenir ce code:

     

    on jump:
       set {_test} to "hey"
       wait 2 ticks
       broadcast "%{_test}%"

     

    N'hésite pas à me dire si ton problème est résolu ! :)

     

    Pas du tout puisque comme je l'ai dis tout au début CE N'EST PAS UN PROBLÈME MAIS UNE REMARQUE

     

    Je sais très bien Skripter ne t'en fais pas pour ça, je demandais juste si c'était un bug ou un comportement normal de Skript ;)

     

    (Et tu n'as pas du tester mon code car justement si tu sépare l'event en 2 tu te rendra compte que le message "hey" s'affichera alors qu'il n'a pas été défini avant le broadcast ! )

  4. j'ai pas envie de faire mon chieur mais tu as ceci :

    ece2860ae2.png

     

    Qui te dis (en Anglais), le nom d'une date, du style "%day name from date now%" te dira "Monday" (=Lundi)

     

    Et à la place de faire toutes les secondes tu peux juste faire toutes les minutes

  5. Plusieurs personnes ton dis que ce n'est pas possible de loop des grades, or de ce que j'ai compris tu cherche à avoir un truc du genre :

    Albert(Modo)

    Isaac(Modo)

    Bernard(Vip)

    Michel(unrank)

    Zoé(unrank)

    ...

     

    Donc faire une séparation entre les personnes de grades différents (avec possibilité de faire un tri par ordre alphabétique ?)

     

    Donc moi je ne te propose pas un code qui loop les grades car à priori ça n'existe pas, mais je te propose une logique de programmation qui reviens au même.

     

    Tu vas d'abord loop les joueurs qui possèdent une permission seulement disponible chez les Modo, et tu vas mettre tous ces pseudos dans le tab.

    Maintenant que c'est fait tu fais pareil pour les Vip, puis les Unrank.

     

    ( je dis Vip mais ça peut être autre chose, autant de rank que tu veux )

     

    Ceci aura pour conclusion de récuperer indépendamment les joueurs en fonction de leur rank.

  6. Loop les grades puis tri les.

    exemple :

    loop all players:
       if player have permission "modo.*":
           add player to {_modo::*}
       else if player have permission "vip.*":
           add player to {_vip::*}
        else:
           add player to {_unrank::*}
    loop {_modo::*}:
       #ta fonction de tri alphabétique + formatage du tab
    loop {_vip::*}:
       #ta fonction de tri alphabétique + formatage du tab
    loop {_unrank::*}:
       #ta fonction de tri alphabétique + formatage du tab

     

    En général on utilise les grades pour attribuer des permissions à un grade, donc tu as juste à vérifier si un joueur possède une permission modo/vip ou si il ne la pas.

     

    Je n'utilise jamais de permission ou de grade donc mon code est surement faut en terme de syntax ;)

  7. Version MC : Spigot 1.10.2

    Version Skript : dev-34

     

    Bonjour, ce n'est pas vraiment une demande d'aide, juste une demande d'information

     

    j'ai remarqué que les variables temporaires étaient partagées entre les événements du même type et je me demande simplement si c'est un bug ou si c'est voulu

    on jump:
       set {_test} to "hey"
    on jump:
       broadcast "%{_test}%"

     

    En soit c'est pratique mais ça veux dire qu'il faut éviter d'utiliser le même nom pour les évents utilisé plusieurs fois.

     

    Donc a votre avis : BUG ou PAS BUG ?

  8. Holà, tout le monde connais le "On rightclick" mais là je vous propose d'y ajouter plus de fonction tel que

    - Au début du clic

    - Pendant le maintient du clic

    - Lorsque l'on arrête d'appuyer

     

     

    le tout avec un paramètre anti-triche tel que :

    - Si on change d'item tout en gardant le clic appuyé

    - En déposant ou récupérant un item au sol tout en gardant le clic appuyé

    et on peut rajouter par exemple : empêcher le changement du nom de l'item en main ou plein d'autres sécurités en fonction de vos besoins

    Attention : *Il n'est pas possible de détecter un clic droit si le joueur n'a pas d'item en main et qu'il tape dans le vide (peut être qu'en plaçant un ArmorStand invisible qui chevauche le joueur on pourrait mais je ne peut pas tester)

    **Le code ci-dessous permet de détecter le clic droit si le joueur à un item en main ou si le joueur tape sur un bloc proche de lui MAIS PAS si il clic droit sur une entité ! Il suffit de remplacer "On rightclick:" par "On rightclick on Pig:"

    ***Cliquer très rapidement est considéré comme un clic maintenue mais le rythme de vérification ne change pas donc pas de soucis de triche avec ça.

     

    On rightclick:
       set {_slot} to (player's current hotbar slot)
       set {_item} to player's tool
       set {_id} to "%{_slot}%_%{_item}%"                                        #Modifier ici pour obtenir plus ou moins de sécurité
       if {rightclick_%player%::%{_id}%} is set:
           broadcast "%{rightclick_%player%::%{_id}%}%"                          #Remplacer par une action pendant le clic
           add 1 to {rightclick_%player%::%{_id}%}
       else:
           broadcast "Click holding at slot %{_slot}% holding %{_item}%"         #Remplacer par une action au début du clic
           set {rightclick_%player%::%{_id}%} to 1
       set {_number} to {rightclick_%player%::%{_id}%}
       wait 5 tick
       if {rightclick_%player%::%{_id}%} = {_number}:
           broadcast "Click released at slot %{_slot}% holding %{_item}%"        #Remplacer par une action à la fin du clic
           delete {rightclick_%player%::%{_id}%}
     
    • J'aime pas 1
  9. Mettre l''attribute modifier à zéro fait disparaitre cette phrase (et bien sûr permet de créer un objet purement cosmétique tel qu'une épée en diamant qui inflige aucun dégât). Cependand, les armures et les outils ont aussi une barre de durabilité qu'il est possible de faire disparaitre en rendant l'item incassable. Il y a aussi les Flags que l'on peut faire disparaitre avec "HideFlags:63".

    Exemple :

    add "{AttributeModifiers:[{AttributeName:""generic.attackDamage"",Name:""generic.attackDamage"",Slot:""mainhand"",Amount:0,Operation:2,UUIDMost:43467,UUIDLeast:126563}],HideFlags:63,Unbreakable:1}" to nbt of player's helmet

  10. voici de quoi t'aider :

    set player's current hotbar slot to {%player%.hotbar}     #force un joueur a être sur un slotprécis
    set {_number} to player's current hotbar slot +1     #récuperer dans uen variable le slot actuel du joueur
    set slot (player's current hotbar slot) of player to (tool of target player)     #Formater le slot actuel du joueur avec un item
    

  11. Ok je viens de voir que mon compte MySQL est arrivé à expiration hier ... tu m'étonne que ça ne me connecte pas.

     

    Mais bon je reconnais que le MySQL et Skript c'est plus galère qu'autre chose ...

    Donc si quelqu'un à une solution pour mon upload YML je suis preneur :)

     

    EDIT

     

    J'ai peut être une idée :

     

    set {_test::*} to contents from url "ftp://{@user}:{@password}@{@ip}:21/minecraft/plugins/PlayerStats/%{_name}%.yml"
    
    avec le protocol FTP, j'ai essayé et ça ne télécharge pas le fichier mais cependant j'ai le contenue du fichier !

    • J'aime 1
  12. Erreur : Acces denied for user 'sql1234567'@'54.168.7.3' (using password: YES)

    (note: l'user et l'ip ne sont pas les vrai)

     

    J'essaie de rendre mon serveur compatible avec bungeecoord et que chaque instance de mon serveur soit identique avec les autres.

    Actuellement je stock les données des joueurs dans un fichier YML ce qui fonctionne très bien, or ce fichier ne se trouve que sur une seule instance, j'ai donc voulu utiliser MySQL pour enregistrer le contenu du fichier YML dans la bdd et a chaque connexion à l'une des instance (différente) le serveur récupère le contenu de la bdd pour recréer le YML à l'identique.

     

    Je n'ai pas trouvé de solution pour Upload directement mon fichier YML, je ne vois que l'option Download sur skUnity.

    Sais tu comment je peux faire pour que les données de mes joueurs soit identique sur chaque instance ?

    (sachant certaine instance sont parfois hors ligne et se réactivent plus tard)

     

    Je cherche un moyen de stoker mes YML (ou son contenue texte) à chaque Déco du joueur.

     

    et oui j'utilise les YML même si je sais que certains n'aime pas ça, c'est très pratique pour stocker les statistiques et +

  13. Bonjour j'arrive à faire fonctionner les fonctions MySQL de Skellett mais pas celles de skript-db

     

    options:
       host: sql2.freemysqlhosting.net #vrai
       user: sql1234567                #pas le vrai
       password: dV1!sZ5*              #pas le vrai
       database: sql1234567            #pas le vrai et oui c'est le même nom que l'user
    
    on script load:
       set {sql} to the database "jdbc:mysql://{@host}:3306/{@database}?user={@user}&password={@password}&useSSL=true"
    command /dbtest:
       trigger:
           execute "select * from players" in {sql} and store the result in {output::*}
           loop {output::*}:
               broadcast "%loop-value%"
           broadcast "end"

     

    J'ai essayé avec et sans "jdbc:", de même pour use SSL=true ou false. Je n'ai que le broadcast "end"

     

    Spigot 1.10.2

    Skript : 2.2-v9b-fixes

     

     

    j'ai essayé mon code Skellett qui fonctionne avec Skript 2.2 sur un skript dev-34 et dev-32d mais il y a un bug sur la version bensku lors de la lecture de cette ligne avec un /skript reload all

     

    set {_value::*} to skellett mysql string "%{_name}%" from {_result}

    que ce soit le mot string, integer, object ou autre cette ligne affiche des erreurs dans la console mais pas dans le compte rendu après le reload.

     

     

    Quelqu'un peut il m'aider sur ces 2 problèmes, j'aimerai vraiment passer à la version Bensku mais c'est tellement plein de bug comparé aux versions Njol :( Merci

     

    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! [skript] Severe Error:
    [16:22:46] [server thread/ERROR]: #!#! Could not load btooom\aaafunction.sk
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Something went horribly wrong with Skript.
    [16:22:46] [server thread/ERROR]: #!#! This issue is NOT your fault! You probably can't fix it yourself, either.
    [16:22:46] [server thread/ERROR]: #!#! It looks like you are using some plugin(s) that alter how Skript works (addons).
    [16:22:46] [server thread/ERROR]: #!#! Here is full list of them:
    [16:22:46] [server thread/ERROR]: #!#! PirateSK skRayFall (http://sk.rayfall.net/) skript-mirror SkStuff skUtilities (https://tim740.github.io/) SkQuery Skellett (https://forums.skunity.com/resources/skellett-the-addon-with-a-beast-name.24/) MundoSK SkExtras TuSKe (github.com/Tuke-Nuke/TuSKe)
    [16:22:46] [server thread/ERROR]: #!#! We could not identify which of those are specially related, so this might also be Skript issue.
    [16:22:46] [server thread/ERROR]: #!#! You should try disabling those plugins one by one, trying to find which one causes it.
    [16:22:46] [server thread/ERROR]: #!#! If the error doesn't disappear even after disabling all listed plugins, it is probably Skript issue.
    [16:22:46] [server thread/ERROR]: #!#! In that case, you will be given instruction on how should you report it.
    [16:22:46] [server thread/ERROR]: #!#! On the other hand, if the error disappears when disabling some plugin, report it to author of that plugin.
    [16:22:46] [server thread/ERROR]: #!#! Only if the author tells you to do so, report it as Skript issue (url below)
    [16:22:46] [server thread/ERROR]: #!#! Issue tracker: https://github.com/bensku/Skript/issues (only if you know what you're doing!)
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Stack trace:
    [16:22:46] [server thread/ERROR]: #!#! ch.njol.skript.SkriptAPIException: No class info found for resultset
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.registrations.Classes.getClassInfo(Classes.java:263)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.createExprInfo(SkriptParser.java:1788)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.getExprInfo(SkriptParser.java:1755)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1503)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1476)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1515)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1449)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1449)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:225)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:180)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parseSingleExpr(SkriptParser.java:493)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parseExpression(SkriptParser.java:810)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1519)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse_i(SkriptParser.java:1515)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:225)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.SkriptParser.parse(SkriptParser.java:180)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.Statement.parse(Statement.java:59)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.loadItems(ScriptLoader.java:919)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.function.ScriptFunction.<init>(ScriptFunction.java:52)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.lang.function.Functions.loadFunction(Functions.java:134)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.loadScript(ScriptLoader.java:584)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.lambda$1(ScriptLoader.java:347)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:359)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.lambda$0(ScriptLoader.java:289)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.ScriptLoader.loadScripts(ScriptLoader.java:319)
    [16:22:46] [server thread/ERROR]: #!#!     at ch.njol.skript.Skript$2.run(Skript.java:444)
    [16:22:46] [server thread/ERROR]: #!#!     at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftTask.run(CraftTask.java:71)
    [16:22:46] [server thread/ERROR]: #!#!     at org.bukkit.craftbukkit.v1_10_R1.scheduler.CraftScheduler.mainThreadHeartbeat(CraftScheduler.java:350)
    [16:22:46] [server thread/ERROR]: #!#!     at net.minecraft.server.v1_10_R1.MinecraftServer.D(MinecraftServer.java:741)
    [16:22:46] [server thread/ERROR]: #!#!     at net.minecraft.server.v1_10_R1.DedicatedServer.D(DedicatedServer.java:399)
    [16:22:46] [server thread/ERROR]: #!#!     at net.minecraft.server.v1_10_R1.MinecraftServer.C(MinecraftServer.java:672)
    [16:22:46] [server thread/ERROR]: #!#!     at net.minecraft.server.v1_10_R1.MinecraftServer.run(MinecraftServer.java:571)
    [16:22:46] [server thread/ERROR]: #!#!     at java.lang.Thread.run(Unknown Source)
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Version Information:
    [16:22:46] [server thread/ERROR]: #!#!   Skript: 2.2-dev32d
    [16:22:46] [server thread/ERROR]: #!#!   Bukkit: 1.10.2-R0.1-SNAPSHOT
    [16:22:46] [server thread/ERROR]: #!#!   Minecraft: 1.10.2
    [16:22:46] [server thread/ERROR]: #!#!   Java: 1.8.0_144 (Java HotSpot(TM) 64-Bit Server VM 25.144-b01)
    [16:22:46] [server thread/ERROR]: #!#!   OS: Windows 10 amd64 10.0
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Running CraftBukkit: false
    [16:22:46] [server thread/ERROR]: #!#! Running Spigot (or compatible): true
    [16:22:46] [server thread/ERROR]: #!#! Running Paper (or compatible): false
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Current node: set {_value::*} to mysql string "%{_name}%" in {_result} (btooom\aaafunction.sk, line 176)
    [16:22:46] [server thread/ERROR]: #!#! Current item: null
    [16:22:46] [server thread/ERROR]: #!#! Thread: Server thread
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! Language: english
    [16:22:46] [server thread/ERROR]: #!#! Link parse mode: DISABLED
    [16:22:46] [server thread/ERROR]: #!#!
    [16:22:46] [server thread/ERROR]: #!#! End of Error.
    [16:22:46] [server thread/ERROR]: #!#! 

  14. Je ne pense pas que son problème soit encore résolu. Je lui ait fournit un code qui à priori ne marchera pas avec lui :

    send title from "titre" with subtitle "sous titre" to player for 10, 10, 10

     

    Il doit donc coder en Vanilla et il aura peut être des difficulté à le faire.

  15. normal :

    on join:
       if player is op:
           if player is "_Delling_":
               set the player's tablist name to "&cDelling"
               if player is "Xiood":
                   set the player's tablist name to "&c%player%"
                   if player is "010sid":
                       set the player's tablist name to "&3Sid"
       else:
           if player has permission "is.chevalier":
               set the player's tablist name to "&9%player%"
               stop
           else if player has permission "sk.vip":
               set the player's tablist name to "&6%player%"
               stop
           else if player has permission "is.citoyen":
               set the player's tablist name to "&8%player%"
               stop
           else if player has permission "is.princesse":
               set the player's tablist name to "&d%player%"

     

    Et si tu souhaite vraiment optimiser le tout tu devrait créer un système qui attribue une couleur en fonction d'un fichier de config YAML ;)

     

    Pense juste aux personnes qui ont plusieurs permission, tout particulièrement avec le grade vip qui devrait être placé en priorité et non en deuxième position

  16. Tester et ça marche :

    on load:
       add 1 diamond, 5 tnt, 10 apple, 1 iron sword and 64 wood to {random.item.list::*}
    
    on mine of gold ore or emerald ore or diamond ore or coal ore or iron ore or stone:
       chance of 100%:
           set {_randomitem} to random element out of {random.item.list::*}
           set event-block to chest
           wait 1 tick
           add {_randomitem} to inventory of block at event-block

     

    Je t'ai gardé la variable liste mais en vrai tu n'en a pas besoin :

    random element out of 1, 2 and 3

    • J'aime 1
  17. Cette effet s'appel en français : "Une transition en fondu" et en anglais un "fade in" ou "fade out"

     

    Pour supprimer cette effet il suffit de mettre la valeur "0" au fade in et "0" au fade out,

     

    Pour trouver la liste des commandes vanilla relative aux /title il y a ce site : http://minecraft.tools/fr/title.php?title=Minecraft Tools&subtitle

     

    Conseil : utilise une fonction du genre :

    function Title(players: players, title: string, subtitle: string, in: number, time: number, out: number):

     

    Voici ce que j'utilise personnellement :

    function Title(p: players, title: string, subtitle: string, in: integer, time: integer, out: integer):
       set {_in} to "%{_in}% ticks" parsed as timespan
       set {_time} to "%{_time}% ticks" parsed as timespan
       set {_out} to "%{_out}% ticks" parsed as timespan
       loop {_p::*}:
           send loop-value title "%{_title}%" with subtitle "%{_subtitle}%" for {_time} with {_in} fade in and {_out} fade out

  18. Holà, edit ton post car la première phrase ne veut rien dire ;)

    Je n'ai jamais utilisé GroupManagerX et CrazyCrate mais voici mon hypothèse :

     

    1 - Tu enregistre dans une variable le grade du joueur quand il click sur le coffre.

    2 - Tu enregistre le nouveau grade reçu dans une seconde variable.

    3 - Tu compare la première et la deuxième variable.

    4 - Si c'est une rétrogradation tu redonne le premier grade au mec.

     

    Et j'ai une idée pour toi :

     

    Au lieu de gagner un grade au pif, tu gagne le grade supérieur à celui actuel (ex: /Promote), ça créer une sorte de système d’expérience qui est plus sympa en terme de game design. (et surtout moins inégalitaire basé sur le hasard). Ainsi les joueurs haut gradé sont ceux qui ont passé du temps sur ton serv et qui ont ainsi pu débloquer plusieurs coffres, leur grade devient leur récompense pour avoir passé du temps sur le serv.

     

    Pourquoi un mec qui vient juste d'arriver aurait la chance d'avoir le grade le plus haut alors qu'un mec qui est là depuis 1 an n'a pas de chance et se coltine un grade pourri o.O ?

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