Aller au contenu

Classement


Contenu populaire

Affichage du contenu avec la meilleure réputation depuis le 06/11/20 dans toutes les zones

  1. 4 points
    J'ai déjà posté ça sur discord, mais je le poste ici aussi, sait-on jamais ! PS: Désolé je suis vraiment pas bon en formatting Fragment de code assez long qui permet de forcer un joueur à dormir et le reveiller utile pour des animations de réanimation par exemple, ou pour faire semblant qu'un joueur dort. • Fait en 1.15.2, également testé en 1.14.4 sous spigot (en 1.14, le snippet ne pourra pas empecher le joueur de bouger comme s'il était vraiment dans un lit, il apparaitra juste allongé) • Nécessite ThatPacketAddon, ProtocolLib et skript-mirror 2.0 Merci à King pour l'aide, Runa pour l'idée et Rush²Fer pour m'avoir appris (pour le script DisguiseMe) à utiliser les packets avec skript-mirror et ProtocolLib, ThatPacketAddon ne possédant pas tous les fields nécessaire. Le code à copier est dispo sur ce lien pastebin: [Contenu masqué] Quelques infos importantes: ∟ Ce snippet ne fonctionnera pas en dessous de la 1.14 (c'est pas la peine d'essayer), mettez à jour vos serveurs ∟ Si un joueur est forcé à dormir, il ne peut pas sortir seul de l'animation en cliquant sur "Leave Bed" (il est softlock). La seule façon de lui redonner la possibilité de bouger est de le wake up (ou de le kick) ∟ Je recommande d'utiliser des listes de joueur identiques pour forcer un joueur à dormir et le reveiller, pour éviter que certains puissent le voir allongé sans raison et d'autres non (le "all players" n'est pas toujours le même si un joueur déco par exemple) Utilisation: Infos sur les syntaxes: • (make|force) [the] %players% [to] sleep at %location% for %players% [to not be stuck in bed %-boolean%] : Forcer un/plusieurs joueurs à dormir à une certaine position pour d'autres joueurs (en pouvant éviter qu'il soit bloqué dans le lit) Si vous mettez "to not be stuck in bed true" dans la syntaxe (facultatif) le joueur sera libre de ses mouvements mais apparaitra comme allongé (uniquement en 1.15, car en 1.14 le joueur est *toujours* libre de ses mouvements) • wake [the][up] %players% [up] for %players% : Forcer un joueur à se lever (fonctionne après l'avoir forcé à dormir) Vous pouvez faire se lever certains joueurs pour d'autres, ils seront enlevés de la liste voyant les joueurs allongés Exemples d'utilisation avec des vidéos: • Forcer un joueur à dormir à l'endroit où il est, sans qu'il puisse bouger, pour tout les joueurs command /forcesleep <player>: trigger: force arg-1 to sleep at arg-1's location for all players send "&3%arg-1% &ddort désormais" • Forcer un joueur à se lever pour tout les joueurs command /wakeup <player>: trigger: wake up arg-1 for all players send "&3%arg-1% &ca été reveillé !" • Forcer un joueur à dormir pour les autres joueurs, mais en lui laissant la possibilité de se déplacer command /sleepmove <player>: trigger: force arg-1 to sleep at arg-1's location for all players to not be stuck in bed true send "&3%arg-1% &ddort désormais, mais peut se déplacer en étant allongé
  2. 3 points
  3. 2 points
    ❑ Pourquoi créer sa propre coloration syntaxique ? Créer sa propre coloration syntaxique rend votre code plus lisible. Cela facilite donc sa compréhension (Pour vous et pour les autres). Cela permet de différencier différentes parties de votre code (Textes, chiffres, conditions...), et pour finir, c'est je pense bien plus jolie qu'un code seulement en blanc. ❑ Sommaire Introduction Préparation Paramétrage thème/syntaxe Thème: Créer une règle Syntaxe: Basique Syntaxe: Complexe Fin ❑ 1 - Introduction C'est mon premier tutoriel donc soyez indulgents si des explications manquent. Conseillez-moi en répondant a ce sujet ! Quelques pré-requis pour suivre ce tutoriel: Sublime Text 3 (Sans blagues) - (Télécharger) Une connaissance de base des syntaxes de JSON Une connaissance de base des syntaxes du YML/YAML Une connaissance des Regex Liens pratiques: Générateur de couleurs (Accéder) Test de Regex (Accéder) De quoi sera constitué notre coloration syntaxique ? Un Thème, constitué de règles qui appliqueront des propriétés (Couleurs du texte, de l'arrière plan) à des identifiants (Voir ci-dessous) Une Syntaxe, permet l'envoie d'identifiant pour coloré le texte (Utilise des Regexs) En JSON, quelque soit son type, la valeur d'une propriété devra être mit en chaîne de caractère (Exemple: "valeur", "5", "#eeeeee"...). ❑ 2 - Préparation Pour commencer, nous allons créer nos fichiers nécessaires. Sur Windows [%appdata%.\Sublime Text 3\Packages] (Si vous utilisez un répertoire personnalisé, accéder à ce répertoire) Sur MacOS [~/Library/Application Support/Sublime Text 3/Packages] Sur Linux [~/.config/sublime-text-3/Packages] Créez-y un dossier nommé [User] et accédez-y. Vous choisirez un nom pour votre thème (Remplacez tout les [<nom>] dans ce tutoriel par le votre) Créez-y un fichier nommé [<nom>.sublime-color-scheme] (Le thème) Créez-y un fichier nommé [<nom>.sublime-syntax] (La syntaxe) Ouvrez ces deux fichiers ❑ 3 - Paramétrage thème/syntaxe Commençons par le thème ! (<nom>.sublime-color-scheme). Utilisation de: JSON // Ceci est un commentaire, retirez les commentaires avant de commencer { "name": "<nom>", // Donnons lui un nom "globals": { "parametre_1": "valeur_1", // Voici le format à respecter "parametre_2": "valeur_2", // Vous trouverez la liste des propriétés plus bas dans le tutoriel :) "background": "#14151F", // Exemple d'utilisation (Hexadecimal) "foreground": "white", // Exemple d'utilisation (Nom de la couleur) "selection": "rgb(187, 188, 199)" // Exemple d'utilisation (RGB) }, } Liste des propriétés (Page Officiel) Liste des propriétés traduites : (Incomplet) La configuration du thème est maintenant terminé ! Configurons la syntaxe ! (<nom>.sublime-syntax). Utilisation de: YAML # Ceci est un commentaire, retirez-les avant de faire le tuto # Laissez tout ce qui est ici (Sauf les commentaires), c'est important ! %YAML 1.2 --- name: Skript # Mettez le nom du language de programmation (Donc Skript) file_extensions: - sk # Listez les extensions scope: default.text # Identifiant par défault du code La configuration du thème est maintenant terminé ! Pour activer le thème, il vous suffit d'aller dans [Preferences > Color Sheme... > <nom>] Pour utiliser la syntaxe, il vous suffit d'ouvrir un fichier avec une des extensions indiquées dans file_extensions ❑ 4 - Thème: Créer une règle Créons maintenant notre première règle de notre thème (<nom>.sublime-color-scheme) { "name": "<nom>", "globals": { // Configuration }, "rules": // C'est ici que c'est important [ { "name": "THE_NAME_I_WANT", // Mettez le nom de votre choix "scope": "id", // Mettez un identifiant UNIQUE (exemple: skript.number, skript.green...) // Propriétés (Liste en dessous) }, { // Exemple 1 "name": "True", "scope": "boolean.true", "foreground": "#3EE709", "font_style": "bold" }, { // Exemple 2 "name": "Effects", "scope": "skript.effects", "foreground": "darkblue" } ] } Liste des propriétés traduites: (Incomplet) foreground - Couleur - Couleur du texte background - Couleur - Couleur de l'arrière plan foreground_adjust - ??? A rechercher ??? selection_foreground - ??? A rechercher ??? font_style - Style - bold et/ou italic (Si vous souhaitez mettre les deux, indiquez "bold italic") ❑ 5 - Syntaxe: Basique Pour créer une syntaxe, suivez le modèle ci-dessous: %YAML 1.2 --- name: Skript file_extensions: - sk scope: default.text contexts: main: - match: "REGEX" # Regex scope: "IDENTIFIANT" # Identifiant (Relié à celui du thème) - match: "REGEX_2" # Regex scope: "IDENTIFIANT_2" # Identifiant (Relié à celui du thème) # Exemples - match: "true" scope: "boolean.true" - match: "([0-9]*)" scope: "skript.numbers" ❑ 6 - Syntaxe: Complexe Vous vous posez peut-être la question de comment faire pour faire des sortes de "balises de texte". Voici la réponse: %YAML 1.2 --- name: Skript file_extensions: - sk scope: default.text contexts: main: - match: "\"" push: # Cela s'apparente à une boucle infini (Ou presque) - meta_scope: "text" # Identifiant - match: "\"" # Si le caractère est " pop: true # Sortir de la boucle - match: "test" # Attention: Ce qui est en dehors de la boucle ne pourra pas être "match" si celle si est toujours active. Vous pouvez donc les mettre dans cette boucle scope: "id.test" # Si un résultat est "test" utiliser l'identifiant "id.test" sur "test" Plus d'informations sur les syntaxes sur le site officiel. ❑ 7 - Conclusion Vous pouvez trouver l'exemple que j'ai réalisé: (En développement) Si vous avez des suggestions pour améliorer ce tutoriel, faites m'en part ! N'hésitez pas à partagez vos créations ! Citations: [Contenu masqué], [Contenu masqué], [Contenu masqué]. Si vous avez besoin d'aide suite à ce tutoriel, créer un nouveau sujet et mentionner ce tutoriel.
  4. 2 points
    Merci pour votre script, l'idée est plutôt bonne. J'ai très rapidement jeté un œil au code et il est visiblement très améliorable. 1. Il est inutile d'ajouter un stop s'il n'y a plus aucun code après cela. 2. Vous semblez utiliser du YAML et des variables ? 3. Vous chargez plusieurs fois le même fichier, alors qu'il est déjà chargé. 4. Vous récupérez les données du YAML pour les transformer en variables normales. C'est une perte d'intérêt. 5. Je devine qu'il faut utiliser skript-mirror au vu du code ? Je vous conseillerai de l'ajouter dans votre présentation. 6. Certaines fonctions sont inutiles. Pour rappel, le temps d'exécution d'une fonction est bien plus élevé qu'en le faisant directement dans le code. Vous pouvez donner plus d'intérêt à ces fonctions ou les supprimer. Dans l'ensemble votre code est bien construit, mais il y a quelques remarques que je vous ai faites. Cette note sera modifiée en cas de changement de votre script, n'hésitez pas à me mentionner
  5. 2 points
    Version de Minecraft : 1.7.10 Version de Skript : 2.1.2 Type du skript : Je voudrais un skript ou seul les staffs peuvent executer. Description du script : Je voudrais les commande : /warn Lenomdujoueur laraison /warn lenomdujoueur info /delwarn Lenomdujoueur laraisonduwarnquiavaitetaitmis pour avertir les joueur qui sont un warn est de stocker cette un infos que pour les staff style gmod est quaud bout de 3 il soit ban 24h. Merci d'avance.
  6. 2 points

    Version Build 2

    32 downloads

    Discord - Ticket Vous souhaitez des tickets sur votre discord? afin d'aider l'organisation de vos demandes? Alors ce skript est fait pour vous! Features: • Système de création de ticket avec une réaction • Création automatique des salons • Gestion des tickets dans une catégorie • Gestion des permissions (qui peut regarder?) • Clôturer un ticket avec une réaction. Commandes: • !tickets - Exécutable uniquement sur discord, la commande vous permet de "setup" le système de ticket. • Ajout de la commande !add <pseudo/id/@Mention> ; Permet d'ajouter un utilisateur à un ticket. • Ajout de la commande !remove <pseudo/id/@Mention> : Permet de retirer un utilisateur à un ticket. Addon nécessaire • Vixio Installation: • Veuillez télécharger le Skript • Ouvrez le fichier • Veuillez réaliser la configuration disponible dans "Options" afin que le Skript fonctionne correctement (token, ID des salons, ID de la catégorie etc) Si vous ne possèdez pas de token vous pouvez suivre ce tutoriel: https://skript-mc.fr/forum/topic/13223-vixio-créer-un-bot-discord/ Pour récupérer l'ID d'un rôle, il suffit de faire \@mentiondurôle Exemple: \@Administrateur : cela vous renverra : <@&539938803972964366> merci de ne seulement ajouter 539938803972964366. Pour récupérer l'ID d'une catégorie, il suffit de faire clique droit sur votre catégorie et de cliquer sur "Copier l'identifiant" Ensuite faîtes /sk reload ticket, votre bot devrait fonctionner! (si tout est bien configuré) Prochainement : - !close : Fermer un ticket - Système de log permettant de retracer ce qui a été dit dans un ticket, qui l'a fermé ... Support : Si vous rencontrez un problème, veuillez s'il vous plaît me contacter en message privé ou de créer une issue ici: https://github.com/Acenox/Ticket/issues
  7. 1 point
    Fais /passedecombat reset, et tu devrais rajouter en début de code ceci : on first join: set {passedecombat.palier.%player%} to 0 set {passedecombat.temps.%player%} to 0 set player's level to 0
  8. 1 point
    Si le serveur crash, c'est qu'il doit y avoir une erreur dans la console. Par ailleurs, je te conseille SkBee pour gérer les recettes.
  9. 1 point
    Oui, ça doit certainement venir du lore.
  10. 1 point
    voila on shoot: if projectile is arrow: set {diamond.%shooter%} to true while {diamond.%shooter%} is true: wait 3 ticks add 1 to {_name.%shooter%} set {_drop.%shooter%} to diamond named "&c%{_name.%shooter%}%" drop {_drop.%shooter%} at projectile on projectile hit: if {diamond.%shooter%} is true: delete projectile set {diamond.%shooter%} to false on pickup of diamond: loop 500 times: add 1 to {_arg} if "%name of event-item%" is "&c%{_arg}%": cancel event J'ai augmenté les ticks car sinon il y en avait beaucoup trop et pas besoin de faire une vérif pour savoir si la flèche est dur le sol ou non
  11. 1 point
    on join: set {_result} to result of connect to "[Contenu masqué]%" if {_result} is "": set {account::%player%} to "Crack" else: set {account::%player%} to "Premium" stop # Après, tu fais ce que tu veux. # Attention, ce n'est pas fiable à 100%, si un joueur crack se connecte au compte d'un joueur premium, il sera considéré comme premium ! # A toi de faire les vérification néccéssaire ainsi que des crée des moyens de sécurisé le compte de tes joueurs. # Personnellement, je vérifie les adresse IP et il est obligatoire de se "/login <Mot de passe> <Captcha>" à la connexion. # Le captcha sert à éviter les bots car ils ne comprendront pas comment le captcha fonctionne puisqu'il est toujours différent.
  12. 1 point

    Version 1.2.4

    405 downloads

    Hammer Possibilité de créer un outil qui casse une zone de 3x3x1, comparable aux marteaux de mods. Informations et dépendances : Version minecraft d'élaboration : 1.15.2 Version skript d'élaboration : 2.5-alpha3 Le script fonctionne sur toutes les versions à priori, à condition que votre version de Skript soit supérieure à la 2.4 Attention, il y a deux versions, une si vous avez un plugin de protection supporté par Skript (Worldguard principalement) et une autre si vous n'en n'utilisez pas ! Si vous utilisez la version nécessitant un plugin de protection sans en avoir, vous aurez une erreur. Fonctionnalités : - L'outil perd autant de durabilité qu'il y a de blocs cassés (Remerciements à @Romitou pour l'idée) - L'outil n'est utilisable qu'en survie et les enchantements de ce dernier sont pris en compte. (Mise à part l'enchantement unbreaking/solidité qui est inutile, je réglerai ça dans une prochaine mise à jour) - Si vous avez un plugin de protection, les joueurs ne pourront pas casser dans les zones protégées. (Merci à @Hordoss) Remarque : Ce script n'est qu'une base. C'est à vous ensuite de modifier à votre souhait les caractéristiques de l'objet auquel vous souhaitez donner ce pouvoir, il est par défaut donner à toutes les pioches en diamant. Droits et auteur : Ce script a été réalisé par @Lou'. Pour tout support ou suggestions, merci de vous diriger vers moi via mon discord (Louiiis#8078). J'ajoute que l'espace pour donner son avis n'est pas là pour demander de l'aide et que votre avis sera ignoré si vous n'utilisez pas le script comme indiqué ci-dessus. Vous avez le droit de modifier et utiliser ce script comme vous le souhaitez. Merci de ne pas vous l'approprier.
  13. 1 point
    derien mais si tu veut un truck plus élaborez tu me contact ! et passe le sujet en résolue
  14. 1 point

    Version 1.14-alpha

    115 downloads

    La description n'est toujours pas terminée. Des informations sont sûrement manquantes. N'hésitez pas à passer sur Discord pour en savoir plus.
  15. 1 point
    Ah mdr j'avais pas vu que c'était un Skript XD
  16. 1 point
    Plutôt une bonne idée mais aucune indication concernant les versions à utiliser pour Skript et pour les add-ons nécessaires que tu n'as pas listé non plus. Un développement de mauvaise qualité (j'ai vraiment vu des horreurs) et une optimisation à revoir. Juste une question, car j'ai du mal à comprendre ta logique : pourquoi utiliser le YAML si c'est pour tout convertir en variables à chaque chargement ?
  17. 1 point
    Très sympathique, bravo ! Au fait, les "while" s'arrêtent toutes seules si leur condition n'est plus vérifiée, pas besoin de check manuellement
  18. 1 point
    Bien, je vous invite à indiquer ici la solution si vous le souhaitez. Le cas échéant, le sujet sera déplacé vers la section Inactif. Rappel: Le sujet n'a pas reçu de réponse pouvant le résoudre. Il a donc été verrouillé. Cordialement, l'équipe.
  19. 1 point
    En effet c'est beaucoup plus sympa avec tout ça , mais j'avoue que je commence le skript depuis quelque jour , donc même si je vais pas l'utiliser maintenant , ça me servira pour plus tard ! j'te remercie énormément aussi . (P.S : j'updaterai mon skript avec tt ça )
  20. 1 point
    Oula, non skript-mirror n'est pas du tout conçu pour seulement utiliser Towny ou réparer des vieux scripts. Je t'invite à aller voir ce tutoriel sur skript-mirror : [Contenu masqué] En bref, skript-mirror permet de créer ses propres syntaxes et d'utiliser du java dans Skript. C'est un addon.
  21. 1 point
    Alors cela ne concerne pas du touuuuuut Umbaska. Cela concerne en vérité l'addon SharpSk à partir de la version 1.6.3. Par ailleurs, tu peux trouver une documentation sur skunity ou skript-hub en tapant towny dans la recherche de la documentation. Par contre, je crois que l'addon SharpSk ne fonctionne plus à partir de la 1.13+, en tous cas je sais que j'avais eu des problèmes avec. Et sachant qu'il n'est plus maintenu, je ne suis pas sûr que tu puisses sauf en passant par skript-mirror.
  22. 1 point
    J'avais SkQuery à l'époque et je mettais || donc je ne verrai pas pourquoi ça ne fonctionnait pas Sinon je te conseille skript-gui ou même simplement Skript pour faire des menus
  23. 1 point
    Avec SkQuery tu peux faire %nl% pour sauter une ligne normalement, ou ||
  24. 1 point
    Un skript Hikabrain a été réalisé par @RED_MASTERS. Je te le joint ci-dessous. hikabrain.sk
  25. 1 point
    Je n'ai pas encore téléchargé le script, mais c'est dommage d'utiliser TuSKe pour les menus :c Sinon, ça m'a l'air réellement intéressant, et je like sans même télécharger D'ici là à un futur proche ou lointain, ça a vraiment énormément de potentiel Courage à vous
  26. 1 point
    Bonjour, 2 choses: 1- Normalement si tu creer une commande qui existe déjà en provenant d'un plugin, sa doit marché 2- pour le "correct usage : /kit" c'est que tu t'es trompé dans la commande perso moi les menus s'ouvre oublie pas de mettre des "wait a tick" Exemple: command /warp: trigger: wait a tick open virtual chest with 5 rows named "&6&lWARPS" to player wait a tick format gui slot 22 of player with Diamond named "&b&lWARPS" to run: stop Ceci est un exemple donc le prends pas pour ton code (sauf si tu en as besoin) c'est un menu TUSKE.
  27. 1 point
    Merci, Fonctionne trés bien rien à dire.
  28. 1 point
    C'est un excellent skript globalement. Il y a cependant un petit élément fâcheux, lorsque qu'on mine à la limite d'une zone protégée, on peut casser les bords de celle-ci. Par exemple : Si je mine pile à la limite de la safezone, les blocs protégés se casseront quand même.
  29. 1 point
    Très sympathique, interface vraiment agréable ! Pour éviter de récupérer les plugins à chaque ouverture du menu, tu pourrais les stocker directement dans une variable fixe au chargement. Je te conseille aussi de rajouter un argument texte facultatif, i.e. [<text>] dans tes commandes pour éviter un message d'erreur provenant directement de Skript lorsqu'on ajoute des arguments ^^
  30. 1 point
    L'erreur indique que `if event-inventory is "blabal":` n'est pas valide. Remplace-le par la syntaxe que je t'ai apportée ci-dessus ; comme ceci : on leftclick with 6001: cancel event open chest with 1 rows named "&4Sac a dos de pompier" to player wait 1 tick set player's current inventory's serialized contents to {backpack::%player%} on rightclick with 4589: cancel event open chest with 1 rows named "&6Sac a dos" to player wait 1 tick set player's current inventory's serialized contents to {backpack::%player%} on inventory close: if inventory name of current inventory of player is "&4Sac a dos": set {backpack::%player%} to serialized contents of event-inventory
  31. 1 point
    Voila ton code command /warn [<player>] [<text>]: permission: warn.sk permission message: Unknown command. Type ""/help"" for help. trigger: if arg-1 is set: if arg-2 is "info": if {warn.%arg-1%} > 0: send "&b&m--------------------" send " &c&lWarn" send "" loop {warn::list::%arg-1%::*}: add 1 to {_arg} send "&c» &7(&c%{_arg}%&7) %loop-value%" stop else: send "&c&l[Warn] choisit un joueur" stop if arg-1 is set: if arg-2 is set: if {warn.%arg-1%} = 3: #ta commande de ban add arg-2 to {warn::list::%arg-1%::*} else: add 1 to {warn.%arg-1%} send "&c&l[Warn] &6Attention vous avez reçu un Warn pour &c%arg-2%." to arg-1 send "&c&l[Warn] &cA%arg-1% &6à bien reçu son warn pour &c%arg-2%" add arg-2 to {warn::list::%arg-1%::*} else: send "&c&l[Warn] /warn <pseudo> <raison>/<info>" else: send "&c&l[Warn] choisit un joueur" stop command /delwarn [<player>] [<text>]: permission: warn.sk permission message: Unknown command. Type ""/help"" for help. trigger: if arg-1 is set: loop {warn::list::%arg-1%::*}: if "%arg-2%" is "%loop-value%": add 1 to {_arg} send "&c&l[Warn] &aLe warn à bien été supprimé" remove arg-2 from {warn::list::%arg-1%::*} remove 1 from {warn.%arg-1%} if "%{_arg}%" is "<none>": send "&c&l[Warn] Cette raison est invalide" if {warn.%arg-1%} < 0: set {warn.%arg-1%} to 0
  32. 1 point

    Version 1.2

    43 downloads

    Interagissez avec WorldGuard grâce à de nouvelles syntax La commande /wgregions permet de vérifier que l'ensemble de l'API fonctionne correctement et indiquera un message d'erreur en cas d’échec Syntax: create [(WorldGuard|WG)] Cuboid region (from|between) %location% (and|to) %location% with id %string% create WorldGuard region between {_loc1} and {_loc2} with id "test" create [(WorldGuard|WG)] polygon[al] region (from|with) [locations] %locations% with id %string% create WorldGuard polygonal region from locations {_locs::*} with id "test" delete [(WorldGuard|WG)] region with id %string% in [world] %world% and remove children %boolean% delete WorldGuard region with id "test" in world "Lobby" and remove children true redefine [(WorldGuard|WG)] cuboid region with id %string% (from|between) %location% (and|to) %location% redefine WorldGuard cuboid region with id "test" between {_loc1} and {_loc2} [(WorldGuard|WG)] region %object% contain location %location% [(WorldGuard|WG)] region %object% (doesn't|does not|do not|don't) contain location %location% if WorldGuard region {_region} contain location {_loc}: #Code # OU BIEN if WorldGuard region {_region} do not contain location {_loc}: #Code [(Worldedit|WE)] volume of selection of %player% in [world] %world% set {_volume} to Worldedit volume of selection of player in world of player [all] [(Worldedit|WE)] blocks in selection of %player% in [world] %world% set {_blocks::*} to all Worldedit blocks in selection of player in world of player [(WorldGuard|WG)] region with (id|name) %string% in [world] %world% set {_region} to WorldGuard region with id "test" in world of player [all] [(WorldGuard|WG)] regions in [world] %world% set {_regions::*} to all wg regions in world world of player [all] [(WorldGuard|WG)] regions at [location] %location% set {_regions::*} to all wg regions at location of player # OU BIEN set {_region} to first element of all wg regions at player [(WorldGuard|WG)] region (id|name) of %region% set {_id} to region name of {_region} [(WorldGuard|WG)] world of region %object% set {_world} to WorldGuard world of region {_region} [all] [(WorldGuard|WG)] points location (from|of) region %object% set {_locs::*} to all WorldGuard points location of region {_region} [(WorldGuard|WG)] (0¦min[imum]|1¦max[imum]) location (from|of) region %object% set {_min} to WorldGuard minimum location of region {_region} [all] [(WorldGuard|WG)] blocks (from|in|of) region %object% set {_blocks::*} to all WorldGuard blocks of region {_region} [(WorldGuard|WG)] volume [of blocks] (from|in|of) region %object% set {_volume} to WorldGuard volume of blocks of region {_region} [(WorldGuard|WG)] type of region %object% set {_type} to WorldGuard type of region {_region} [all] [(WorldGuard|WG)] (0¦members|1¦owners) (in|of) %region% #get set {_memebers::*} to all wg members in {_region} #add add player and "Anarchick" to owners of {_region} #remove remove {_players::*} from members of {_region} [(WorldGuard|WG)] name of flag object %object% set {_name} to WorldGuard name of flag {_StateFlag} [(WorldGuard|WG)] flag object %string% set {_StateFlag} to flag object "block break" # OU BIEN set {_StateFlag} to flag object "block-break" # OU ENCORE set {_StateFlag} to flag object "BLOCK_BREAK" all [(WorldGuard|WG)] [registred] flags set {_Flags::*} to all WorldGuard registred flags all [(WorldGuard|WG)] flags (from|of) region %region% set {_StateFlags::*} to all wg flags in {_region} [(WorldGuard|WG)] flag %StateFlag/String% (from|of) region %region% #get set {_flagValue} to wg flag {_StateFlag} in {_region} #set set flag "USE" in {_region} to "DENY" set flag {_StateFlag} in {_region} to false #delete delete flag "pvp" in {_region} Note diverses: * Skript permet depuis la version 2.1 d'utiliser quelques expressions de régions worldguard mais il ne s'agit pas du même {_region} que moi donc attention ! N'utilisez les régions skript QUE pour connaitre l'identifiant d'une région ou pour ajouter des membres à celle-ci ** {_StateFlag} est un objet java de worldguard (comme {_region} ou {_flagValue}) , il ne contient pas de résultat ALLOW ou DENY *** Mon code qui gère les membres/propriétaires d'une région utilise le système UUID , il est donc possible d'ajouter des joueurs qui sont hors-ligne **** Actuellement la version 1.0 et 1.1 ne gèrent que les flags de type StateFlag , c'est à dire ayant pour valeur "ALLOW" ou "DENY" Plugins nécessaires: Skript (testé avec la version 2.4Beta8 , 2.4.1 et 2.5Alpha3) Skript-mirror 2.0.0-SNAPHOT WorldEdit (Obligatoire pour faire fonctionner WorldGuard) WorldGuard (testé avec la version 7.0.1 et 7.0.2) Note : Si ce script fonctionne avec des versions antérieurs, ou ne fonctionne pas dans des versions antérieurs, merci de me le signaler Droits d'utilisations: Ce script m'appartient exclusivement, vous êtes autorisé à le modifier pour une utilisation personnel, vous pouvez me suggérer des modifications ou des bugs, vous n'êtes pas autorisé à le publier avec ou sans votre nom sans mon accord. Ne me demander pas des mises à jour, je la ferais en temps voulu. Merci
  33. 1 point
    Bonjour, ceci devrait fonctionner. import: org.bukkit.event.block.BlockRedstoneEvent org.bukkit.event.block.BlockPhysicsEvent command /wl <text> <text> <timespan>: #Exemple: wl RESEAU-1 emetteur 30 ticks #Exemple: wl RESEAU-1 recepteur 30 ticks trigger: if arg-2 is "emetteur" or "recepteur": set {RESEAU::%arg-1%::%arg-2%::loc} to target block's location set {RESEAU::%arg-1%::time} to arg-3 set {RESEAU::%target block's location%::name} to arg-1 broadcast "%{RESEAU::%target block's location%::name}%" send "§8Un §a%arg-2% §8pour le reseau §c%arg-1% §8a été défini en §e%location of target block% §f(Délai: §7%arg-3%§f)" else: send "§cType de raccord invalide. (emetteur|recepteur)" on BlockPhysicsEvent: set {_d} to event.getBlock() set {_l} to location of block at {_d} set {_n} to {RESEAU::%{_l}%::name} if {RESEAU::%{_n}%::recepteur::loc} is {_l}: event.getBlock() != event.getSourceBlock() event.setCancelled(true) on BlockRedstoneEvent: set {_b} to event.getBlock() set {_l} to location of block at {_b} set {_n} to {RESEAU::%{_l}%::name} if {RESEAU::%{_n}%::emetteur::loc} is {_l}: wait {RESEAU::%{_n}%::time} set {_r} to block at {RESEAU::%{_n}%::recepteur::loc} set {_p} to {_b}.getBlockPower() set {_d} to {_r}.getBlockData() try {_d}.setPower({_p}) try {_r}.setBlockData({_d}, true) (Nécessite l'add-on skript-mirror)
  34. 1 point
    import: java.lang.Byte #METHODE 1 command /despawn: trigger: spawn an armor stand at player set {_d} to spawned entity set {_r} to {_d}.getEntityId() set {_p} to new play_server_entity_destroy packet set int array pnum 0 of {_p} to {_r} loop all players where [input isn't player]: send loop-value packet {_p} #METHODE 2 command /spawnentity: trigger: set {_r} to random integer from 50000 to 100000 set {_p} to new play_server_spawn_entity_living packet set int pnum 0 of {_p} to {_r} set int pnum 1 of {_p} to 30 set int pnum 2 of {_p} to player's x-coord * 32 set int pnum 3 of {_p} to player's y-coord * 32 set int pnum 4 of {_p} to player's z-coord * 32 set byte pnum 0 of {_p} to 0 set byte pnum 1 of {_p} to 0 loop 7, 8 and 9 : set int pnum loop-value of {_p} to 0 send player packet {_p} set {_p} to new play_server_entity_metadata packet set {_v::2} to "§a Texte ArmorStand" set {_v::0} to Byte.valueOf(32) # Invisibilité set {_v::3} to Byte.valueOf(1) #Is Custom Name Visible set int pnum 0 of {_p} to {_r} set {_json} to json from listvar {_v::*} set "watchablecollection" pjson 0 of {_p} to {_json} send player packet {_p} Nécessite MundoSK / ThatPacketAddon + skript-mirror (et ProtocolLib ça va de soi)
  35. 1 point
    Dans ce cas t'as juste à faire que quand on pose un bouton en pierre, s'il est nommé "telle chose" ca ajoute les coordonnées à une liste, et si on appuie sur un bouton, on vérifie si le bouton est pas dans la liste, s'il y est on tp le joueur
  36. 1 point
    ok merci beaucoup!!
  37. 1 point
    Bonjour / Bonsoir aujourd'hui je cherchait dans les dossiers infinie { presque me juger pas x) } du Web et je suis tomber sur une petite merveille :) Je suis tomber sur un convertisseur de script en java ! Voici le lien : [Contenu masqué] Merci de me mettre un like sa m'aiderais :)
  38. 1 point
    Cette communauté aura fait quand même naître de belles personnes talentueuses
  39. 1 point
    Merci beaucoup ! je regarde sa et je te donne des nouvelles ! parcontre je doit creez une region ? mais avec quel outils ? Edit: le skript a un probleme : [11:05:12] [Server thread/ERROR]: [Skript] Can't understand this condition/effect: toggle scoreboard of player on (ski.sk, line 10: toggle scoreboard of player on') [11:05:12] [Server thread/ERROR]: [Skript] Can't understand this condition/effect: set line 1 of player's scoreboard to "&f&l[&b&lSki&f&l]" (ski.sk, line 14: set line 1 of player's scoreboard to "{@ski}"') [11:05:12] [Server thread/ERROR]: [Skript] Can't understand this condition/effect: set line 2 of player's scoreboard to "&6&lCHronomètre:" (ski.sk, line 15: set line 2 of player's scoreboard to "&6&lCHronomètre:"') [11:05:12] [Server thread/ERROR]: [Skript] Can't understand this condition/effect: set line 3 of player's scoreboard to "&d&l%{chrono.ski.%player%}%" (ski.sk, line 16: set line 3 of player's scoreboard to "&d&l%{chrono.ski.%player%}%"') [11:05:12] [Server thread/ERROR]: [Skript] Can't understand this condition/effect: clear scoreboard of player (ski.sk, line 22: clear scoreboard of player') Edit2 : par contre ton idez de région... elle est juste génial ! c'est une tros bonne idée! bravo
  40. 1 point
    Il n'y a rien à dire, c'est juste de l’excellent travail !
  41. 1 point
    Bonjour, Faire un skript de chronomètre va pas forcement être compliquer, c'est juste pour le top list où je sait pas trop comment faire mais le chrono pas de soucis, juste comment tu définit le départ et l'arrivé région/plaque de pression/ autres ?
  42. 1 point
    Bonjour, Dans ce tutoriel, nous allons étudier les Loops. Celles-ci permettent par exemple de viser une variable ou un groupe de choses (de joueurs pas exemples). Nous allons voir ça de plus près. I/Loop avec un groupe: A)Les joueurs Grâce aux loop, vous pouvez sélectionner un groupe entier, par exemple tout les joueurs, exemple: command /sendall: trigger: loop all players: send "Tu a reçu ce message" to loop-player Là, ma commande prend en compte tout les joueurs présents sur le serveur et leur montre le message. Tout les joueurs présents reçoivent donc ce message. Il est aussi possible de faire une sélection, par exemple, sélectionner tout les joueurs, et trier ceux qui ont les permissions, exemple: command /checkperm: trigger: loop all players: if loop-player has permission "skript.test": send "Tu a la permission" to loop-player stop else: send "Tu ne possède pas la permission :(" to loop-player Là, ma commande sélectionne tout les joueurs du serveur et fait un tri, entre ceux qui ont la permission "skript.test" et ceux qui n'ont pas la permission. Avec ce tri, la commande montrera le message "Tu a la permission" aux joueurs ayant la permission, et montrera le message "Tu ne possède pas la permission :(" aux autres. B)Entitées Il est possible de sélectionner les entités par exemple, pour comme les joueurs, faire un tri ou autre, exemple: command /checkmob: trigger: loop all entities in world "test": if loop-entity is a creeper: add 1 to {creeper.variable} Là, la commande sélectionne tout les mobs dans le monde "test", ensuite il fait un tri entre ceux qui sont des creepers et ceux qui ne sont pas des creepers. Après avoir sélectionne tout les mobs, il ajoute 1 dans la variable {creeper.variable} pour chaque creeper. C)Les inventaires Il y a encore beaucoup de possibilités que je ne pourrais pas vous lister, mais, il est aussi possible de sélectionner les items dans les inventaires des joueurs, comme ici: command /checkmob: trigger: loop all players: loop all items in loop-player's inventory: if loop item is diamond: add 1 to {diamond.variable} Tout d'abord, vous devez sélectionner tout les joueurs à l'aide de "loop all players". Après avoir sélectionné tout les joueurs, grâce à "loop all items in loop-player's inventory", vous sélectionnez tout les diamants dans les inventaires, avec "if loop item is diamond", et si oui, cela ajoute 1 dans la variable {diamond.variable}. Il existe encore beaucoup de possibilités, mais nous allons nous arrêter là pour l'instant. II/Loop les listes: A)C'est quoi une liste ?: Une liste, ça marche comme une variable, sauf que seules les listes peuvent marchent avec les Loops. Et les listes peuvent stocker des entités, des joueurs, et bien d'autres choses par rapport aux variables. Une liste s'écrit comme ça: {liste.test::*}, par rapport à une variable qui s'écrit comme cela: {liste.test}. B)Ca sert à quoi ?: Grâce à cela, vous pouvez stocker des entités, des joueurs (pratique pour les groupes) et même des coordonées, des endroits précis. Nous allons voir de plus près l'utilité des loops. C)Utiliser des loops: Imaginons, vous voulez garder la position d'un bloc, à l'aide de ce skript: command /addpos: trigger: add location of targeted block to {blocs.liste::*} send "&eVous avez ajouté la position du bloc dans la liste" Là, en utilisant la commande /addpos, vous ajoutez la position du bloc que vous regardez dans la liste {blocs.liste::*}. Ajouter une position par exemple est une chose possible que avec les listes. Ensuite, nous allons faire un skript pour remplacer TOUT les blocks ajoutés dans la liste en bloc de diamant: command /replall: trigger: loop {blocs.liste::*}: set {_loc} to loop-value set block at {_loc} to diamond block Avec cette commande, vous sélectionnez tout les blocks enregistrés dans la variable {blocs.liste::*}. Ensuite, vous placez {_loc} à l'endroit de chaque bloc enregistré (loop-value correspond aux blocs enregistrés). Et ensuite le bloc qui est à {_loc} est transformé en bloc de diamant. Vous allez me dire qu'il est possible de faire la même chose sans les listes, mais l'avantage des listes, c'est que vous pouvez sélectionner tout les blocs enregistrés d'un coup ! Voilà, mon troisième tutoriel est terminé, j'espère qu'il vous aura aidé et n'hésitez pas à me poser des questions, surtout que la partie ci-dessus est assez compliqué à comprendre.
  43. 1 point
    Car tu pense que c'est une bonne mentalité de ne pas répondre par-ce qu'il ne respecte pas spécialement la règle ? Pour ce genre de demandes, surtout qu'il n'y à rien de plus simple, et que c'est pareil pour toutes les versions, c'est plutôt débile de ne pas répondre.
  44. 1 point
    Bonjour je revien aujourd'hui pour vous présenter un skript d'anti craft . J'ai ici pris l'exemple de la pomme cheat ! #Skript by liliandeplab on craft enchanted golden apple : #Ceci est l'evenement message "&6[NeoxiaProtect] &cAttention tu n'as pas le droit de craft ceci !" cancel event #Ceci empèche le craft de la pomme cheat
  45. 1 point
    Il faudra faire /reset à chaque fois ?
  46. 1 point
    Re, J'ai pris un bout de code du Skript BanInfo pour en faire un TempBan, voilà le code : command /tempban [<offline player>] [<time span>]: usage: &c/tempban <player> <time> trigger: if player has permission "tempban.use": if arg 1 is not set: send "&cErreur : La bonne commande est /Tempban [Pseudo] [Temps]" to player else if arg 2 is not set: send "&cErreur : La bonne commande est /Tempban [Pseudo] [Temps]" to player else: set {_player} to arg 1 if {_player} is player: if {tempban.time:%{_player}%} is not set: message "&cVous avez été banni temporairement !" set {tempban.time::%{_player}%} to arg 2 set {tempban.timestamp::%{_player}%} to now kick {_player} due to "&6Tu es banni pendant &b%arg 2% &6minutes" if {tempban.time::%{_player}%} is set: message "&cCe joueur est maintenant banni !" if "%{_player}%" is offline player: if {tempban.time:%{_player}%} is not set: message "Vous avez été banni temporairement !" set {tempban.time::%{_player}%} to arg 2 set {tempban.timestamp::%{_player}%} to now if {tempban.time::%{_player}%} is set: message "&cCe joueur est maintenant banni !" if {numbertempban.%arg 1%} is not set: set {numbertempban.%arg 1%} to 1 else: add 1 to {numbertempban.%arg 1%} add arg 2 to {tempbantime.%arg 1%::*} on join: if {tempban.time::%player%} is set: set {_tempban} to difference between now and {tempban.timestamp::%player%} reduce {_tempban} by {tempban.time::%player%} if difference between now and {tempban.timestamp::%player%} is bigger than {tempban.time::%player%}: clear {tempban.time::%player%} clear {tempban.timestamp::%player%} set {banned.%player%} to false unban player if difference between now and {tempban.timestamp::%player%} is smaller than {tempban.time::%player%}: set {tempban.%player%} to true kick player due to "&cErreur : Vous avez été banni temporairement !"
  47. 1 point
    Tu peux la récupérer sa faction avec l'addon SkRambled -> [Contenu masqué] Après faut essayer :p
  48. 1 point
    command /clef: description: Vous permet d'obtenir une clef gratuite trigger: if {cle.countdown.%uuid of player%} was less than 24 hours: send "&4Vous devez attendre 24 heures!!!" to player stop execute console command "crate key %player% gratuit" set {cle.countdown.%uuid of player%} to now stop Essaies ça :)
  49. 1 point
    Ok c'est bon... j'ai trouver les ID's :D et comme j'aime partager, je vous ais fait un ScreenShot et j'y mis les ID's via PSD Voilà cela pourrais vous servir à vous aussi :p Bon je marque en Résolu du coups désolé pour ceux qui n'ont pas pu m'aider :D
  50. 1 point
    alors le problème dans ton skript : command /truc: trigger: add player to {Truc-Player] On chat: if {TRuc.%player%} is true: send "&4&l[%player%]>> &c%message%" to {Truc-Player} cancel event c'est que tu veux mélanger 2 choses ! tu as la liste de variable : {example::*} et la variable {example.%player%} (à moins que tu veux faire {example.%player%::*}) soit tu fais : command /truc: trigger: set {truc.%player%} to true On chat: if {truc.%player%} is true: cancel event broadcast "&4&l[%player%]>> &c%message%" ou tu fais: command /truc: trigger: add player to {truc::*} on chat: if {truc::*} contains "%player%": cancel event broadcast "&4&l[%player%]>> &c%message%" dans le 1er cas .. ca vérifie si le joueur a une variable pour LUI et le deuxième cela vérifie si le joueur est dans une liste ! après si tu veux faire un message privé .. c'est autre chose ! Cordialement, MrSkyzZ.
×
×
  • 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.