Aller au contenu

Lemrigue

Membre
  • Compteur de contenus

    37
  • Inscription

  • Dernière visite

  • Jours gagnés

    4
  • Crédits

    395 [Faire un don]

Tout ce qui a été posté par Lemrigue

  1. Salut, tu peux récupérer le ou les groupes d'un joueur sans add-on, si tu as Vault d'installer, avec l'expression : %offlineplayers%'[s] group[(s)] if player's group is not {Rank::%player%}: make console execute command "/lp user %player% group set %{Rank::%player%}%" Il y a aussi l'add-on SkUniversal qui est compatible avec LuckPerms si ça t'intéresse, même si l'expression de skript au dessus suffit : [the] [LuckPerm[s]] [primary] group of %player% Doc : [Contenu masqué] + [Contenu masqué]
  2. Lemrigue

    résolu [Right Click] Question

    tu peux utiliser l'event value : event-entity on right click with 421 on player: send "&8[ &cModération &8] &e&lLe pseudo du joueur est : &5%event-entity%" to player
  3. Lemrigue

    résolu TuSKe | GUI

    Depuis skript 2.3.1 les lores sont des listes, il faut écrire ***** with lore "ligne 1", "ligne 2", "ligne 3" and "ligne 4" ou add "ligne 1" to {_lore::*} add "ligne 2" to {_lore::*} ******** with lore {_lore::*}
  4. Lemrigue

    résolu Error skript json

    command /jsontest: trigger: send "&3*&a===========================&3*" send "&6Voici le site comme demandé !" json("%player%", " Clique ici !||url:myrith.craftwb.fr||ttp:&cmyrith.craftwb.fr") send "&3*&a===========================&3*" tu as mis le send au même niveau que le trigger, faut décaler les send Sinon pour le message json, j'ai pas test en 1.13.2 mais y a cette méthode plus pratique que json.sk je trouve ça donnerait un truc comme ça <url:[Contenu masqué];
  5. Lemrigue

    résolu Jobs

    comme tu commences à le {_loop} à 0 essaye de loop 11 times au lieu de 10
  6. Lemrigue

    résolu Jobs

    oui, juste un "{_loop} < 10:" avant "add (1 + 0.25 * {_loop}) to {xp.jobs.bucheron.%player%}" devrait faire l'affaire if {level.jobs.bucheron.%player%} = {_loop}: if {_loop} < 10: add (1 + 0.25 * {_loop}) to {xp.jobs.bucheron.%player%} add (0.5 + 0.25 * {_loop}) to player's balance
  7. Lemrigue

    résolu Jobs

    Ah oui vu que c'est une loop ça continue après qu'il ait monté de niveau, il suffit de rajouter un "stop" après la monté de niveau : après le "send" rajoute un stop : send "&9Jobs &8» &aBravo vous êtes passé au &dlevel %{_loop} + 1% &adu métier &6Bûcheron" to player stop
  8. Lemrigue

    résolu Jobs

    la variable {_loop} commence à 0, et elle doit rester à 0 pour tout le code du level 0, du coup on ajoute 1 à cette variable à la fin de la loop. Quand toute la loop a été executée, on lui rajoute 1 et la loop recommence à 1. Si le "add 1 to {_loop}" était placé au début du code, ça commencerait au level 1 et ça zapperait le level 0 Pour ton code, c'est good, c'est ce à quoi je pensais, j'ai testé en local pour voir ce qui allait pas, et c'est juste le "if block is any log" qu'il faut changer en "if event-block is any log" ! Aussi, quand tu casses le block rajoute que ça doit suppr la variable "{block.%event-location%}" sinon tu en auras beaucoup, genre : on break: if event-block is any log: if {block.%event-location%} is set: delete {block.%event-location%} stop else: #la je met le code
  9. Lemrigue

    résolu Jobs

    Oui exact, si tu mets : "loop 10 times", le joueur ne pourra plus monter de niveau après le niveau 10, par contre j'ai oublié de préciser qu'il vaut mieux mettre le code pour monter de niveau après celui où tu gagnes de l'exp, puisque tu vas casser le bloc, recevoir l'exp et après que tu aies reçu l'exp ça va regarder si ton exp est assez élevé. Si ça regarde si ton exp est assez élevé avant que tu aies reçu l'exp ça va décaler la monter de niveau de 1 bloc Aussi, tu peux optimiser ça en mettant le code d'exp dans la boucle de départ. J'ai remarqué que l'exp et l'argent augmente de 0,25 à chaque monter de niveau donc ça donnerait une formule de ce style : on break: if block is any log: set {_loop} to 0 loop 10 times: #(10 = level max) if {level.jobs.bucheron.%player%} = {_loop}: add (1 + 0.25 * {_loop}) to {xp.jobs.bucheron.%player%} add (0.5 + 0.25 * {_loop}) to player's balance send action bar from "&a+ %0.5 + 0.25 * {_loop}%$ &e+ %1 + 0.25 * {_loop}% exp" to player if {xp.jobs.bucheron.%player%} >= {xp%{_loop}%.jobs}: set {xp.jobs.bucheron.%player%} to 0 set {level.jobs.bucheron.%player%} to ({_loop} + 1) send "&9Jobs &8» &aBravo vous êtes passé au &dlevel %{_loop} + 1% &adu métier &6Bûcheron" to player add 1 to {_loop} là c'est des maths tout simple : quand le joueur sera niveau 0 ça lui donnera 1 + 0.25 * 0, soit 1 exp, quand il sera niveau 4 ça lui donnera 1 + 0.25 * 4, soit 2 exp, etc etc (j'ai pas testé mais ça devrait marcher) Sinon pour vérifier si le bloc a été posé par un joueur je ne sais pas trop comment faire, tu peux tenter de set une variable de location à l'endroit où un joueur pose un bloc ( {block.%event-location%} ), et quand un joueur casse un bloc, vérifier si une variable avec cette location existe
  10. Lemrigue

    résolu Jobs

    Pour retirer le "every X ticks" c'est simple, il suffit de mettre ton code de au même event que la méthode de gain d'exp. Exemple, si tu gagnes de l'exp en cassant un log : on break of log: if {level.jobs.bucheron.%player%} = 0: if {xp.jobs.bucheron.%player%} >= {xp0.jobs}: set {xp.jobs.bucheron.%player%} to 0 set {level.jobs.bucheron.%player%} to 1 send "&9Jobs &8» &aBravo vous êtes passé au &dlevel 1 &adu métier &6Bûcheron" to player Pour optimiser tout ça (pour éviter de répéter le même code à chaque fois pour chaque level), tu peux loop l'action en ajoutant une variable provisoire qui augmentera jusqu'au niveau max. Exemple : on break of log: set {_loop} to 0 loop 100 times: #(100 = level max) if {level.jobs.bucheron.%player%} = {_loop}: if {xp.jobs.bucheron.%player%} >= {xp%{_loop}%.jobs}: set {xp.jobs.bucheron.%player%} to 0 set {level.jobs.bucheron.%player%} to ({_loop} + 1) send "&9Jobs &8» &aBravo vous êtes passé au &dlevel %{_loop} + 1% &adu métier &6Bûcheron" to loop-player add 1 to {_loop} Si tu gagnes de l'exp sur plusieurs event (une commande, casser des blocs, placer des blocs) tu peux aussi faire une function (comme ça t'auras pas à copier coller ton code à chaque event), tu mets juste ton code dans la function et à chaque event tu mets la function PS: je sais pas si c'est très compréhensible dsl
  11. Avec "%complete command%" tu devrais pouvoir y arriver, par exemple : (j'ai pas test si ça marche) on command: if "%complete command%" contains "/minecraft:": cancel event
  12. Utilise les messages json, exemple : message "<url:[Contenu masqué] ici pour être redirigé.<reset>"
  13. Set les deux variables sinon ça ne marchera que pour un joueur
  14. Quand le joueur accepte la demande de duel, rajoute une variable où il est stocké le pseudo de son adversaire, par exemple set {dueladversaire.%player%} to arg-1 set {dueladversaire.%arg-1%} to player Si un des deux joueurs se déconnecte en duel, tu peux récupérer le nom de son adversaire en faisant on disconnect: if {dueladversaire.%player%} is set: #ton code sachant que {dueladversaire.%player%} correspond à l'adversaire du joueur qui s'est déco et après tu delete la variable PS: j'ai pas lu tout ton code, donc je dis peut être n'importe quoi :s
  15. Lemrigue

    [Json chat] mot cliquable

    Dans un deuxième temps <command:/commande>texte cliquable, exécute la commande<reset>
  16. Ah oui au temps pour moi, j'ai ajouté cette ligne dans le script, la canne à sucre disparaîtra toujours quand elle sera update mais au moins le script est plus mieux merci ^^ block above event-block is air
  17. Salut ! Sur la doc j'ai trouvé cet event qui fonctionne avec l'addon ExtraSk: on crop grow: Le script donnerait alors (j'ai testé en 1.12, ça fonctionne, je ne sais pas pour la 1.8.8) : on crop grow: wait 1 tick if the event-crop is sugar cane block: set {_loc} to event-crop's location set y coordinate of {_loc} to (y coordinate of {_loc} - 2) block at {_loc} is sugar cane block set event-crop to air drop sugar cane item at event-crop's location Pour ce qui est de poser une canne à sucre sans eau autour j'ai essayé : on right click on dirt, grass or sand: player is holding sugar cane block above event-block is air set block at block above event-location to sugar cane block if player's gamemode is not creative: remove a sugar cane from player's inventory La canne à sucre se pose bien, mais quand elle est update (quand elle pousse, ou qu'un block est posé à côté, etc), elle disparaît (vu qu'il n'y a pas d'eau), donc je ne sais pas comment faire ou si c'est possible pour ça
  18. Lemrigue

    QualityLogs

    Je reposte mon ancien skript qui était disponible sur la V1, j'en ai profité pour changer un petit bout de code après avoir vu ce sujet :
  19. Version 2.1.0

    569 downloads

    QualityLogs QualityLogs est un skript assez simple qui permet de stocker les faits et gestes des joueurs dans un dossier à leur nom. Le skript vous propose de choisir vous même ce que vous souhaitez conserver dans les logs parmis 12 choix possibles : la connexion et déconnexion / les messages envoyés / les commandes exécutées en jeu et par la console / les blocs cassés et posés (ainsi que leur position et leur ID) / la mort et le kill d'un joueur (avec la position de mort), le changement de gamemode / la téléportation d'un joueur / la réapparition d'un joueur. Fonctionnalités Stocker les faits et gestes des joueurs dans un dossier à leur nom par jour. Stocker globalement leurs actions dans le dossier "global" Stocker les commandes exécutées en console dans le dossier "console" Choisissez ce que vous souhaitez conserver dans vos logs vis-à-vis des choix proposés : Connexion / Déconnexion / Chat / Commandes joueurs / Commandes console / Blocs placés / Blocs cassés / Kill / Mort / Changement de gamemode / réapparition / téléportation Changer les messages qui apparaissent dans les logs dans les options du skript Purgez automatiquement vos logs après un certain nombre de fichier (par défaut : 14 fichiers pour les logs globaux et 7 fichiers pour les logs des joueurs) Installation Placer le fichier "qualitylogs.sk" dans votre dossier "Skript/scripts/" puis chargez-le. Une fois le skript installé, un dossier "QualityLogs" sera créé lorsque les logs commenceront à apparaître, dans votre dossier Plugins. Vous pourrez modifier les messages et les options du skript à l'intérieur du skript (la purge, le chemin d'accès des logs, les catégories à ne pas sauvegardés et les messages qui apparaissent dans le fichier delog). Par défaut, casser et poser un bloc est désactivé, n'oubliez pas de l'activer si vous le souhaitez. J'en profite pour vous dire que je me suis servi du Skript de CrisisLP's pour une partie du skript de la purge. (plus le cas depuis la version 2.1.0) Dépendances Le skript a besoin de 2 dépendances pour fonctionner (skript testé en 1.16.4) Skript : https://github.com/bensku/Skript/releases (testé en 2.5.1) Skent : https://github.com/Olyno/skent/releases (testé en 2.0.1) (Si vous ne souhaitez pas utiliser d'add-on (Skent), une version sans add-on est disponible au téléchargement, mais sans purge et avec quelques options en moins) Screenshots Configuration Le dossier joueur et le dossier global Exemple de fichier de logs par joueur Exemple de fichier de logs global Le petit mot de la fin Contrairement au dossier logs de base, les informations sont stockées par joueur, afin de pouvoir facilement récupérer les faits et gestes d'un joueur en particulier. De nombreux fichiers sont créés (un par joueur et par jour, dans une limite de 7 jours (configurable)), ce qui peut ne pas être recommandé pour les petits stockages. Merci d'avoir pris le temps de regarder mon premier skript partagé sur Skript-MC !
  20. Salut ! Essaye de remplacer cette partie du code (qui se trouve a 4 endroits différents dans le skript (ctrl +f)) : set {_s} to "%now%" set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6) replace every "/" with "_" in {_now} Par ce bout de skript : set {_s} to "%now%" set {_now::*} to {_s} split at " " set {_now2::*} to {_now::1} split at "/" set {_now} to "%{_now2::1}%_%{_now2::2}%_%{_now2::3}%" L'expression "set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6)" ne fonctionne que si la date est sous la forme XX/XX/XX, sauf que s'il n'y a qu'un chiffre dans la date comme par exemple 8/9/18 ça va prendre des caracteres en plus. Avec le "split" il devrait plus y avoir ce problème.
  21. Lemrigue

    Skript Farm V2

    Je te propose de rajouter une variable au nom du joueur et de continuer la récolte uniquement si elle existe (et de la supprimer quand le joueur meurt ou ferme l'inventaire) Exemple: on rightclick on sand with a shovel: open chest with 1 row named "&9Récolte du sable..." to player wait 3 tick set {recolte.%player%} to true set {_pourcentage} to 10 loop 9 times: if {recolte.%player%} is set: send "&aRécolte en cours &c%{_pourcentage}%%%" add 10 to {_pourcentage} wait 1 second if {recolte.%player%} is set: send "&aVous avez récolté du &cSable" delete {recolte.%player%} close player's inventory give 1 sand to player on inventory click: if inventory name of player's current inventory contain "&3&lRécolte en cours ...": cancel event on quit: delete {recolte.%player%} on death of player: if {recolte.%victim%} is set: delete {recolte.%victim%} send "La récolte a été annulée" to victim on inventory close: if {recolte.%player%} is set: delete {recolte.%player%} send "La récolte a été annulée" je t'ai un peu opti comment envoyé le message aussi, j'ai fais une variable provisoire et elle est loop 9 fois en ajoutant 10 à chaque loop pour éviter de remettre le meme message à chaque fois Voilà du coup quand le joueur commence ça set la variable {recolte.%player%}, et tant qu'elle existe ça continue, mais si le joueur meurt ou ferme l'inventaire ça supprime la variable et la récolte s'arrête, si t'as des questions hésite pas
  22. Hum, je n'ai pas testé mais il n'y a pas d'erreur et je pense pas qu'il y ait besoin d'add-on : options: max_players: 8 minimum_players: 4 first_timer: 30 second_timer: 10 on join: if {game.start} is true: kick player due to "Partie commencée" stop if {game::*} is set: if size of {game::*} is equal to {@max_players}: kick player due to "Partie pleine" stop if number of all players is 1: delete {game::*} add player to {game::*} send "%player% a rejoint la partie (%size of {game::*}%/{@max_players}" to all players else: add player to {game::*} send "%player% a rejoint la partie (%size of {game::*}%/{@max_players}" to all players if size of {game::*} is equal to {@minimum_players}: if {game.timer} is not set: send "La partie va commencer dans {@first_timer} secondes." to all players set {game.timer} to {@first_timer} else if size of {game::*} is equal to {@max_players}: if {game.timer} > {@second_timer}: set {game.timer} to {@second_timer} send "La partie va commencer dans {@second_timer} secondes." on quit: remove player from {game::*} if {game.start} is true: send "%player% a quitté le jeu." to all players else if size of {game::*} is not equal to 0: send "%player% a quitté la partie (%size of {game::*}%/{@max_players}" to all players every 1 second: if size of {game::*} >= {@minimum_players}: if {game.timer} is set: if {game.timer} > 10: remove 1 from {game.timer} else if {game.timer} >= 1: remove 1 from {game.timer} send "La partie va commencer dans %{game.timer}% secondes !" to all players else if {game.timer} = 0: send "La partie commence !" to all players delete {game.timer} set {game.start} to true # loop {game::*}: # teleport loop-value to #endroit où le jeu commence else: delete {game.timer} J'ai ajouté quelques options : - quand un joueur rejoint quand le jeu a commencé il se fait kick - quand un joueur rejoint quand la partie est pleine il se fait kick - l'option first_timer en haut c'est le temps en secondes avant que le jeu commence quand le nombre minimum de joueurs est atteint, et second_timer c'est le temps en secondes avant que le jeu commence quand le nombre maximum de joueur est atteint Faudra delete {game.start} quand la partie sera terminée Si tu veux des précisions ou autres dis moi
  23. Lemrigue

    Erreur avec skUtilities

    Merci de ta réponse, je n'ai pas testé parce que je viens de trouver à l'instant, en fait l'erreur ne vient pas du bout de code que j'ai écris mais de cette ligne : if yaml value "test.test" from file "plugins/Folder/test.yml" exists: qui vérifie si la valeur existe, sauf qu'il fallait écrire : if yaml path "test.test" in file "plugins/Folder/test.yml" exists: pour vérifier que le chemin vers la valeur existe ! Merci quand même, je met en résolu !
  24. Lemrigue

    BetterLogs

    Lemrigue updated BetterLogs with a new update entry: Optimisation - Correction de bugs Read the rest of this update entry...
×
×
  • 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.