Aller au contenu

Anarchick

Membre
  • Compteur de contenus

    321
  • Inscription

  • Dernière visite

  • Jours gagnés

    17

Tout ce qui a été posté par Anarchick

  1. Version 1.0.0

    67 téléchargements

    Vous avez déjà perdu votre épée full enchanté préféré suite à une erreur d'appuie sur la touche de drop ? Vous vous en êtes rendu compte juste avant que l'item ne disparaisse mais vous êtes trop loin pour arriver à temps ? Ce petit script rajoute deux commandes /trash et /publictrash Fonctionnement : Le joueur lâche des objets au sol, puis s'ils disparaissent naturellement (5 minutes par défaut, mais configurable dans le fichier spigot.yml). C'est à ce moment-là que l'objet est temporairement stocké dans un inventaire accessible via /trash , mais attention, à la fermeture du gui le contenu est supprimé. Cette commande n'as pas de permission et j'espère que vous n'en rajouterez pas. Si le joueur n'a pas exécuté la commande /trash, l'objet est envoyé dans la poubelle publique accessible via /publictrash. Cette poubelle est commune à tous les joueurs et ne se vide qu'une fois qu'elle est pleine. Cette commande à une permission mais vous pouvez la retirer si vous êtes généreux. Le code est volontairement fait de cette façon, afin d'être très court et de limiter l'utilisation d'addon ( hormis skBee ). S'il y a un risque de duplication merci de m'en informer pour que je corrige cela (normalement il n'y en a pas ^^). J'espère que vous ne perdrez plus jamais par erreur vos objets comme ça a été récemment le cas pour moi 😢 Et n'oubliez pas que le recyclage c'est bien !
  2. Anarchick

    skript-packet

    Version 1.2

    35 téléchargements

    Skript-packet est un remplacement de l'addon ThatPacketAddon qui n'est plus mis à jour depuis longtemps. Les packets sont les informations échangé entre le serveur et le client. On utilise souvent la manipulation des packets pour modifié le contenue visuel de chaque joueur indivuduellement, exemple : faire croire à un joueur qu'il a en fasse de lui un bloc de TNT alors qu'en vérité il s'agit d'un magnifique bloc de diamant ! Cet addon n'est absolument pas conseillé aux débutants, il faut des grosses connaissances en Minecraft / packet / java / skript / skipt-reflect pour l'utiliser à son plein potentiel ! Si vous avez déjà utilisé TPA, j'ai fait mon possible pour simplifié la migration du code. Les deux principales différences avec TPA sont : - Il n'y a plus besoin de spécifié le type de field ! - J'ajoute un support pour interagir avec les objets java et skript afin de l'imiter l'utilisation de skript-reflect. Vous aurez-besoin d'installer ProtocolLib 4.6.0+ pour faire fonctionner cette addon. L'utilisation de l'addon skript-reflect 2.1+ est plus que recommandé ! Retrouvez mes exemples de code utilisant skript-packet sur mon github : https://github.com/Anarchick/skript-packet , Si vous avez d'autres exemples utiles à me soumettre, je les acceptes. Désolé mais je ne donne pas de support sur l'utilisation des packets aux débutants, c'est un sujet très difficile à maitrisé et les tutos concernant TPA, MundoSK, Skellet ou même Java sont tous applicable à skript-packet ! Bonne chance :3
  3. Oula dsl de la réponse très tardive ^^ Il faut que tu arrive à identifier plus précisément où est le problème, quel ligne de code de ton script bug. Assure toi d'etre sur la dernière version de mon script (1.2) et fais un "/WGregions" puis donne moi le résultat. ça permettra peut être d'identifier plus précisément le problème.
  4. Anarchick

    xpBottle

    Version 2.0.0

    92 téléchargements

    Ce script permet de transférer son expérience dans une fiole et de le récupérer. En bonus J'ai ajouté une refonte du cout d'XP pour la table d'enchantement et de l'enclume. Comparé à d'autre scripts du même type, celui-ci propose une conversion avec un rendement de 100% , pas de perte ou de gain d'xp possible, la conversion est faite à 100%. Il vous sera possible de vendre votre expérience aux autres joueurs ! Vous n'aurez plus peur de perdre vos 50 niveaux lorsque vous vous absenter pour aller au pipiroom ! Comment cela fonctionne ? Prenez une bouteille vide en main et faite un clic droit dans le vide avec celle-ci pour la convertir en récipient à XP Pour remplir le récipient à XP : S'accroupir et maintenir le clic droit Pour vider le récipient à XP : Etre debout et maintenir le clic droit Placer un récipient à XP dans un distributeur (=dispenser) fonctionnera et donnera le nombre exact d'xp En bonus : Avez-vous remarqué que le cout de l'enchantement et de l'enclume ne prend pas en compte le niveau du joueur ? Ceci a pour principe de rendre presque inutile d'avoir un niveau supérieur à 30, eh bien ce script modifie cela afin de rendre utile les niveaux supérieurs à 30 ! En effet Minecraft calcule le cout en niveau d'expérience alors que mon script calcule le cout en nombre de points d'expérience réelle. /!\ vous faudra impérativement skript2.5+ et skBee1.6+ Plugins nécessaires : Skript skBee skript-mirror ou skript-reflect Testé avec Paper 1.16.3 Vous n'êtes pas autorisé à redistribuer ce script Vous n'êtes pas autorisé à vous attribuer ce script Vous avez le droit de modifier ce script mais pas de redistribuer la version modifiée Merci de vos retours, n'hésitez pas à me donner des suggestions d'ajouts et la liste des fautes d'horographe ^^
  5. Bonjour, ce que tu demande est très simple donc je ne vais pas te donner le code, cependant je vais t'aider à le faire. (si ça ne te conviens pas tu peux faire une demande de skript ou attendre que quelqu'un d'autre accepte de te donner le code tout prêt, merci de ta compréhension) lors du clic gauchesur un joueur avec une épée en diamant: Si le nom de l'épée est "&7ban": Si le joueur est un opérateur #= un op banir le joueur ciblé pour la raison "triche" envoyer un message à tout le serveur "%Le nom du joueur% a banni %le joueur ciblé% pour avoir triché, ne trichez pas !" Il faut vérifier que le joueur qui s’appète à ban quelqu'un est bien un admin et non pas un inconnu qui aurait trouvé l'épée par hasard dans un coffre ! https://skripthub.net/docs/?id=1094 if player is op: https://skripthub.net/docs/?id=1123 En espérant que ça t'aide, bonne chance. PS: Edit ton message pour indiquer les information demandé dans le template, version du serveur + skript + addons + ....
  6. Anarchick

    bloquer le / [tab]

    Salut, ta demande ne suit pas le template recommandé (enfin si mais tu n'as pas modifié les informations demandé, skript 2.X.X n'est pas très précis ! ) Pour répondre à ta demande, il me semble que tu as une partie de la solution dans le fichier spigot.yml , https://www.spigotmc.org/wiki/spigot-configuration/#commands (tab-complete) , exemple, si tu le met à -1 ça désactive COMPLÉMENT la suggestion du tab-completer (pas seulement celui des commandes) La chose à savoir c'est que la suggestion des commandes et la suggestion des arguments sont deux chose similaire mais DISTINCT. J'ai récemment codé un script qui permet de masquer la suggestion des commandes si le joueur ne possède pas la permission pour l’exécuter, il n'est pas fini à 100% donc je ne l'ai pas encore upload sur le forum, si tu le veux : https://discordapp.com/channels/205088974799241217/396976352487669762/721711688591605840
  7. Je trouve que c'est justement l'inverse : Si c'est simple (comme la cas présent) il ne faut pas spoonfeed car ce sont le bases , mais à l'inverse si c'est trop complexe à ce moment le spoonfeed se justifie. C'est mon avis perso en tout cas.
  8. Le spoonfeed n'est pas une pratique recommandé lorsque le besoin n'est pas justifié 😕 Faire en sorte que les dev skript apprennent par eux même est plus utile pour leur progression
  9. Salut, tu utilise skript 2.1+ donc tu as cette expression pour afficher les particules : https://skripthub.net/docs/?id=1108 ou avec skrayfall ceci : https://skripthub.net/docs/?id=89 Ensuite le truc à savoir c'est que la location d'un joueur (et de la majorité des entités) se situe à la position des pied du joueur. Et si tu veux que ce soit encore plus bas tu as ça : https://skripthub.net/docs/?id=903
  10. Salut, comme tu l'as dit ton problème viens du wait, et plus précisément de là où tu l'as placé dans ton code. Actuellement il est à l'intérieur de la boucle, il te suffit donc de le placer à l'extérieur de cette boucle. exemple : loop 10 times: broadcast "dans la boucle" broadcast "en dehors de la boucle, après que les 10 messages ont été affichés" PS : ton code pourrait être écris différemment mais si tu débute c'est très bien, on peut toujours s'améliorer 😉 et petit conseil, à la place d'utiliser la commande /effect, utilise plutôt ceci : https://skripthub.net/docs/?id=1101
  11. Je ne dis pas n'importe quoi , un peu de respect ... Si tu utilise skript2.5-alpha3 en 1.15.2 (informations donné par la personne qui a posté la demande d'aide) tu saurais que la double barre ne fonctionne plus ... et même depuis longtemps ! Et si tu as besoin d'une preuve la voici : alors qu'avec la méthode que j'ai indiqué ça fonctionne très bien : Pour l'avenir : Un peu plus de courtoisie dans ta façon de répondre aux gens s'il te plait.
  12. avec skript2.5-alpha3 (et même plusieurs versions avant) il faut utiliser des liste ! add "ligne 1" to {_lores::*} add "ligne 2" to {_lores::*} add "ligne 3" to {_lores::*} set {_item} to stone with lore {_lores::*} #OU set {_item} to stone with lore "1", "2" and "3"
  13. Il a parlé de //expand, il me semble que ça ne s'applique que aux regions cuboid (il me semble) ? Il a aussi dit que la region n'existait pas encore et c'est pour cela que je n'ai pas mis ton code 😉
  14. Avec l'addon skQuerry : set {_total} to size of blocks within {_loc1} and {_loc2} Autrement tu peux le calculer facilement, le volume d'un cube est égal à LxH*l
  15. "stop" au lieu de "stop loop", le stop loop te fait sortir de la loop tout en continuant le code, alors que le "stop" arrête complètement le code Tu n'es pas obligé d'utiliser une variable global pour {%player%.logout.coord} , tu peux utiliser {_loc} tout court (si tu ne réutilise pas la variable)
  16. Anarchick

    Heure IRL

    avec skUtilities https://skripthub.net/docs/?id=155 (cet addon n'est malheureusement plus recommandé) ou juste avec skript: https://skripthub.net/docs/?id=930
  17. n'utilise pas le on any move (cet event est appelé trop fréquemment) , lors du /quit tu créer une variable qui enregistre la position du joueur, et a chaque boucle tu vérifie que la position actuel du joueur et la même que celle de la variable. Si ce n'est pas le cas tu lui affiche un message pour dire qu'il a bougé et tu stop le code. Ne fait pas non plus de add -1 , mais plutot : remove 1 from {}
  18. Je n'utilise plus TuSke et dans l'api Spigot je n'ai pas vu l'event pour la combinaison dans l'enclume donc je pense que TuSke fait à peu près la même chose que moi
  19. Il n'existe pas d'event pour détecter qu'un item a fini de cuir ou est récupérer par un joueur, il faut effectivement faire comme as dit CptBeffHeart , voici le code que j'ai utilisé pour détécter l'utilisation d'une enclume, tu dois juste l'adapter pour les four (mais ça je te laisse faire) #On anvil Repair on inventory click: set {_topInv} to player.getOpenInventory().getTopInventory() {_topInv}.getType() is anvil inventory clicked slot is 2 set {_minLevel} to {_topInv}.getRepairCost() set {_level} to level of player wait 1 tick level of player < {_level} #CODE Je ne sais plus pourquoi j'ai utilisé skript-mirror pour les 2 premières ligne mais ça devrait fonctionne avec `set {_topInv} to top inventory of player`
  20. Anarchick

    Drop livres enchants

    Puisque ce n'est pas forcement évident à faire je te donne le code complet : function AddStoredEnchants(item: item, enchantments: enchantment types, force: boolean) :: item: set {_meta} to {_item}.getItemMeta() loop {_enchantments::*}: set {_ench} to loop-value set {_type} to {_ench}.getType() set {_level} to {_ench}.getLevel() {_meta}.addStoredEnchant({_type}, {_level} and {_force}) {_item}.setItemMeta({_meta}) return {_item} function GetStoredEnchants(item: item) :: enchantment types: set {_meta} to {_item}.getItemMeta() set {_ench} to {_meta}.getStoredEnchants() set {_keys::*} to ...{_ench}.keySet() set {_values::*} to ...{_ench}.values() loop {_keys::*}: set {_enchantmentType} to "%loop-value% %{_values::%loop-index%}%" parsed as enchantment type add {_enchantmentType} to {_return::*} return {_return::*} function RemoveStoredEnchants(item: item, enchantments: enchantments) :: item: set {_meta} to {_item}.getItemMeta() loop {_enchantments::*}: set {_enchantment} to loop-value {_meta}.removeStoredEnchant({_enchantment}) {_item}.setItemMeta({_meta}) return {_item} sachant que pour le Add et Remove tu as une particularité, set tool of player to RemoveStoredEnchants(tool of player, protection) = RemoveStoredEnchants(tool of player, protection) En gros si l'item existe dans le monde (dans un inventaire ou tombé au sol), tu n'a pas besoin de la première façon de l'écrire, CEPENDANT si l'item n'existe pas, donc si il s'agit d'une variable tu dois forcement utiliser la première façon !
  21. Anarchick

    Drop livres enchants

    Si tu sais utiliser skript-mirror, ça doit être ça je pense : https://hub.spigotmc.org/javadocs/spigot/org/bukkit/inventory/meta/EnchantmentStorageMeta.html#addStoredEnchant-org.bukkit.enchantments.Enchantment-int-boolean- je verrais si je créerai ce code dans les prochain jours (pas sûr depuis que j'ai découvert Netflix je suis beaucoup moins productif , coïncidence ? )
  22. Anarchick

    Drop livres enchants

    Dans le code java, les livres d'enchantement n'utilise pas le même d'enchantement que les classiques , ils "stockent" un enchantement. Ce qui explique pourquoi tu ne peux pas l'utiliser dans une enclume. Je pense que tu as besoin de passer par skript-mirror
  23. Anarchick

    Erreur fonction return

    Comme je l'ai dit, je n'ai pas testé, c'est de mémoire et avec 1 an sans avoir manipuler skript il y a certains trucs dont je ne suis pas sûr. C'était une hypothèse 😉
  24. Anarchick

    Erreur fonction return

    La requête SQL ne serait pas delayed (peut mettre plusieurs secondes avant de s’exécuter) par hasard ? Il me semble de toute façon que le return des fonctions skript ne permettent pas les effets avec du délai (comme un wait par exemple). Les customs expressions de skript-mirror le permettent. Après je dit peut être un truc qui n'as rien à voir, j'avoue que je n'ai pas testé.
  25. Version 1.0

    37 téléchargements

    Description: Ce script rajoute plusieurs syntax qui optimise l'utilisation des GUI vanilla skript afin de palier aux problèmes de gui proposé par skQuery et Tuske en 1.14. Le petit plus est que les SKinv possèdent un Identifiant et un système de paginations. Il n'y a pas de limite du nombre d'identifiant ou de page ! Pour changer de page il suffit de faire clic droit ou gauche dans la zone extérieur au GUI Il est même possible d'insérer des inventaire à une page précise, par exemple l'inventaire d'un joueur qui peut être modifié en temps réel. De plus tous les joueurs qui regardent la même page du même identifiant d'inventaire voit les changements en temps réel ! Je doute que mon script fonctionne parfaitement dans les versions antérieur à la 1.14. Il faut savoir que la 1.13 et la 1.14 ont subit des changements lié aux comportements des inventaires. Options: title : en cas de conflit entre variable, il est possible de changer le nom de mon script debug: Un debug mode qui affiche des broadcast lors de l'exécution du code cancelIfRealInv: si oui ou non il est possible de déplacer les items dans les vrai inventaires de joueur ou blocs Command: /skinv permet d’exécuter un test de bon fonctionnement de mon script. Syntax effects: [{@title}] create an inventory with id %string% [default] named %string% and %number% [default] row Note: Créer un inventaire de type coffre, mais il sera possible de modifier celui-ci create an inventory with id {_id} named {_name} and {_rows} rows [{@title}] add %items% to inventory with id %string% Note: Mon code se charge automatiquement de générer une nouvelle page (avec les paramètres par défaut) si la page actuel est pleine add {_items} to inventory with id {_id} [{@title}] delete inventory with id %string% delete inventory with id {_id} [{@title}] delete all inventories Note: Ne s'applique que aux variables de SKinv, il n'y a pas de risque de perdre ses objets dans ses coffres delete all inventories [{@title}] rename page %number% of inventory with id %string% to %string% Note: Cette effet oblige de créer un clone de l'inventaire ce qui implique qu'il n'aura pas la même signature java rename page {_page} of inventory with id {_id} to {_name} [{@title}] display page %number% of inventory with id %string% to %players% Note: Utiliser cette méthode plutôt que l'effet "Open %inventory% to %players%" de vanilla skript, autrement certaines fonctionnalité ne seront pas utilisable display page {_page} of inventory with id {_id} to {_players::*} [{@title}] display (0¦previous|1¦next|2¦first|3¦last) page to %player% Note: Du dernier skinv ouvert ! display previous page to {_player} display next page to {_player} display first page to {_player} display last page to {_player} Syntax expressions: [{@title}] page %number% of inventory with id %string% #get set {_inv} to page {_page} of inventory with id {_id} #set %inventory% set page {_page} of inventory with id {_id} to {_inv} [{@title}] amount of pages in inventory with id %string% #get set {_pages} to amount of pages in inventory with id {_id} [{@title}] (1¦previous|2¦current) (3¦id|4¦page) of inventory of %player% Note: Ne fonctionne que pour les inventaires ouvert avec mon display #get set {_id} to previous id of inventory of {_player} set {_id} to current id of inventory of {_player} set {_page} to previous page of inventory of {_player} set {_page} to current page of inventory of {_player} holder name of %inventory% Note: Il s'agit d'une correction de l'expression "%name of %inventory%" qui ne fonctionne pas en 1.14 Attention ! Ne fonctionne pas toujours, il faut que l'inventaire provienne d'un véritable block ou d'une entité et non d'un inventaire custom ! #get set {_name} to holder name of {_inv} [{@title}] default (0¦name|1¦row) of inventory with id %string% Note: Le nom par défaut n'est pas forcement le nom d'une page, idem pour les rows #get set {_name} to default name of inventory with id {_id} set {_rows} to default rows of inventory with id {_id} #set set default name of inventory with id {_id} to {_name} set default rows of inventory with id {_id} to {_rows} [{@title}] (0¦name|1¦row) of page %number% of inventory with id %string% Note: Si la page a préalablement remplacer par un autre inventaire, mon code n'affichera pas la bonne valeur. En attente de trouver une solution ... #get set {_name} to name of page {_page} of inventory with id {_id} set {_rows} to rows of page {_page} of inventory with id {_id} clone [of] %inventory% [renamed %-string%] Note: Créer une copie exact non connecté à l'inventaire d'origine. Le nouveau nom peut être spécifié, autrement l'inventaire n'aura pas de nom. Il n'est pas possible pour moi de récupérer le nom de l'inventaire d'origine ! #get %inventory% set {_clone} to clone {_inv} renamed {_name} #exemple set {_inv} to inventory of player set {_clone} to clone {_inv} if {_inv} is {_clone}: broadcast "cette ligne ne s'exécutera pas" Syntax conditions: [{@title}] current inventory of %player% is [a] {@title} Note: Si le gui a été exécuté avec un display, c'est la méthode la plus optimisé pour vérifier que l'inventaire qu'un joueur regarde est bien un skinv #check if current inventory of {_player} is a SKinv: %inventory% is [any page of] inventory with id %string% Note: Moyennement rapide mais permet de tester n'importe quel inventaire si l'on connait l'identifiant #check if {_inv} is any page of inventory with id {_id}: %inventory% is [a] {@title} Note: Méthode la plus demandeuse de calcul mais permet de vérifier si il s'agit d'un Skinv #check if {_inv} is a SKinv: Exemple d'utilisation: Mon API rend beaucoup plus pratique l'utilisation des gui sans addon, voici un exemple de comment l'utiliser pour exécuter une action lorsque le joueur clic sur un item spécifique (compatible avec le /skinv). Rajouter ce code dans un nouveau script par exemple on inventory click: set {_inv} to current inventory of player #Slow calcul method, une any inventory {_inv} is {@title} #Medium calcul method, check if match with any page {_inv} is any page of inventory with id "test" #Faster calcul method, use the player current inventory of player is a {@title} set {_item} to click item set {_name} to name of click item set {_type} to click type if {_item} is wool: broadcast "<cyan>%{_item}% <pink>%{_name}% <lime>%{_type}%" #write you're code here Avec cette exemple de code l'avantage est qu'il est par exemple possible d’exécuter un code pour peu que l'item soit "une montre en or nommé quel heure est-il" peut importe dans quel GUI il se trouve ! N'hésiter pas à regarder le code de la commande /skinv pour avoir une idée de comment utiliser mon api Note diverses: * Certains bug lié à skript-mirror m’empêche d'optimiser correctement mon code, j'ai déjà report ces bugs sur le github ** En 1.14 il n'est pas possible de changer/récupérer le nom d'un inventaire custom *** Il n'y a pas de limite du nombre d'inventaire ou de page possible **** Il est tout à fait possible d'utiliser des commandes vanilla skript ou d'un addon avec mes {_inv} ***** Il est impossible de conserver en mémoire un inventaire lors de l'extinction du serveur, c'est pour cela que toutes les variables sont supprimé lors du redémarrage du serveur. Il est donc recommander de créer les inventaires lors d'un "on load" Plugins nécessaires: Skript (testé avec la version 2.4Beta9) Skript-mirror 2.0.0-SNAPHOT Note : Si ce script fonctionne avec des version antérieur, ou ne fonctionne pas dans des versions antérieur, 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 Mon autre script : WGregions
×
×
  • 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.