Aller au contenu

deventoncar

Membre
  • Compteur de contenus

    33
  • Inscription

  • Dernière visite

  • Jours gagnés

    4
  • Crédits

    120 [Faire un don]

Tout ce qui a été posté par deventoncar

  1. Salut, Je te rassure concernant ta demande, elle est parfaitement réalisable. Cela est un peu fastidieux à réaliser mais n'est pas impossible . As-tu déjà commencé à écrire un bout de code ?
  2. Salut, Il y a des documentations qui te permettent en plus de t'aider dans les syntaxes parmi quasi tous les addons disponibles, te permettent également de rechercher des mots-clés. Je te conseille la doc de SkriptHub.net qui est, selon moi, l'une des meilleures si ce n'est la meilleure. Concernant ta demande, voilà ce que ça donne : [Contenu masqué] On tombe sur skRayFall, Skellett ou encore SkUtils... Je ne te conseille de ne plus utiliser WildSkript, ce n'est dernier n'est plus à jour et le projet a été archivé par son créateur depuis un bon moment.
  3. Avant de te dévoiler la solution, je vais te laisser chercher un peu. Premièrement, un conseil que je peux te donner est de toujours de debugger ton code. Comment ? Simplement en envoyer des messages dans le chat de ce que les différents objets que tu manipule retournent. Cela constitue le meilleur moyen de te débloquer d'une situation compliqué. Dans ton cas, tu peux envoyer un debug au joueur qui utilise l'arc contenant le lore de la flèche. Cela te permettra de vérifier s'il contient bel et bien quelque chose et de savoir si tu peux employer cette méthode pour poursuivre dans ton code. Mais comme je te l'ai dit plus haut, à partir du moment ou la flèche devient une entité, tu ne peux plus récupérer ses informations-là. Il faut donc agir plus tôt i.e. récupérer l'info à partir de l'inventaire du joueur. Pour résumer, avant de penser à résoudre ton problème, il te faut mettre tout en oeuvre pour t'assurer que le chemin que t'as décidé de prendre fonctionne. Aussi simple que ça. Une fois que tu as compris cette notion, tu pourras aller plus loin et comprendre pourquoi certaines choses ne fonctionnent pas. Si tu veux savoir pourquoi, voici une petite explication et au passage une très bonne application d'un debug. Dans le premier screen, je montre le NBT d'une flèche dans mon inventaire dont j'ai modifié quelques attributs comme le nom, la couleur et auquel j'ai rajouté un tag "Type" égal à "BlaBla[...]Bla" histoire qu'il soit très visible. Dans ce second screen, tu vois le NBT de cette même flèche une fois planté dans un bloc. De nouveaux tags sont apparus (spécifiques à Paper ou à ton soft) et d'autres ont complètement disparus dont ceux qui nous intéressaient : name, color, lore et le type. Du coup, pour pallier à ce problème, plusieurs solutions sont possibles. Celle que je t'ai proposé me paraît la plus simple à mettre en oeuvre. C'est tout à fait ça : tu récupères toutes les flèches de l'inventaire du joueur ainsi que leur position (item's slot) via un loop et tu détermines lequel est le plus petit et vérifie si celui-ci contient le fameux lore. Si c'est le cas, tu bloques l'évènement. EDIT : Je viens de voir que tu as utilisé skript-paper et l'event on player ready arrow, ce qui te facilite grandement la tâche ! D'après la documentation ([Contenu masqué]), tu peux récupérer event-player, event-itemtype et event-world. Ici, c'est event-itemtype qui nous intéresse et permet de résoudre le problème. Ce que tu as écris est correct et fonctionne de mon côté !
  4. Salut, La solution que t'as proposé @alexistb2904 n'est vraiment pas optimale. Il y a une manière moins lourde et plus efficiente de réaliser ce que tu demandes : utiliser le chat recipient. Voilà la solution que je te suggère : command /chat: trigger: if {chat::%player%} is false: set {chat::%player%} to true send "&7Chat : &aactivé" to player else: set {chat::%player%} to false send "&7Chat : &cdésactivé" to player on join: if {chat::%player%} is not set: set {chat::%player%} to true on chat: set chat recipients to all players where [{chat::%player input%} is true] Voilà ! Les joueurs qui ont leur chat de désactivé ne devraient plus recevoir les messages des autres joueurs Si tu as d'autres questions, n'hésite pas !
  5. D'un point de vu purement réalisation, ce n'est pas impossible. Voici les étapes qui me viennent en tête : Déterminer la partie du skin à changer : il faudra certainement mettre en place un fichier .png avec un skin entier transparent sauf au niveau de la partie à changer Récupérer le skin actuel du joueur : prévoir si on prend en compte l'overlay du skin ou pas Envoyer les informations à un programme : il se chargera de superposer le skin actuel du joueur à celui de la partie à changer, ce qui aura pour conséquence, sachant que c'est un .png, de ne modifier que la partie désirée Récupérer le skin modifié Appliquer le skin au joueur Voici ce que ça pourrait donner d'un point de vu théorique. Au niveau de la pratique, pour récupérer le skin d'un joueur tu peux utiliser le site Crafatar.com. Pour se faire, il suffit d'utiliser la lien suivant : [Contenu masqué] en remplacement uuid par l'uuid du joueur désiré. Il faudra creuser pour trouver des librairies open source (ou le faire toi-même) qui te permettront de faire la superposition de deux .png et de récupérer le fichier résultant. Par la suite il te faudra upload le fichier résultant sur une plateforme comme imgur.com ou sur ton propre CDN. Pour définir le nouveau skin au joueur, tu peux éventuellement le faire toi-même (ce qui sera plus long et plus compliqué à réaliser notamment sur Skript). Si cette solution t'intéresse, tu auras besoin d'utiliser MineSkin.org créée par la talentueuse inventativetalent pour générer tes skins plus facilement. Ou si tu n'as pas envie de t'embêter, simplement utiliser SkinsRestorer qui dispose de nombreux outils notamment les commandes suivantes /sr createcustom <nom du skin> <skin.png url> /sr set <joueur> <nom du skin> /sr update <joueur> Voilà comment résoudre le problème posé. Il y a énormément d'outils notamment libres d'usage (open source) à disposition pour réaliser ce que tu souhaites. J'espère t'avoir aidé, si tu as des questions supplémentaires, n'hésites pas @MahMoud
  6. C'est toujours un plaisir d'aider Concernant ta nouvelle demande, c'est un peu plus technique et compliqué que ça... Comme je te l'ai indiqué au-dessus pour le event-block, event-projectile ne correspond qu'au projectile lorsqu'il est tiré, en tant qu'entité et ne contient donc plus les informations de l'item (name, lors, nbt etc...). Pour palier à ce problème il te faut récupérer l'ensemble des flèches dans l'inventaire du joueur, notamment ceux dans un slot le plus petit (cf. image ci-dessous). Pourquoi ? Car ce sont ceux qui vont être utiliser en premier lorsque tu vas tirer et notamment lorsque tu as plusieurs stacks de différents types de flèches dans ton inventaire. Une fois que tu auras réussi à déterminer quel stack va être utilisé il te suffira de récupérer le lore des flèches et de déterminer si le joueur peut l'utiliser ou non. Il faudra aussi prévoir un cas de figure : lorsque le joueur possédera plusieurs stacks de flèches dans son inventaire, une contient le fameux lore et l'autre non. Il faudra vérifier que l'autre stack peut être utilisé et tiré... C'est théoriquement ce qu'il faut faire, tu as ta ligne directrice ! Il faut maintenant appliquer cette théorie et tester différentes méthodes. Une fois que tu auras essayé quelque chose, reviens vers moi pour qu'on puisse voir ce que ça donne. Si tu as des d'autres questions, n'hésite pas !
  7. Tu n'es pas loin de la solution, tu t'y prends juste mal. Ce n'est pas event-block dont il faut récupérer le lore mais plutôt l'item que le joueur a en main. En effet, event-block est le bloc déjà placé, il ne dispose donc plus des mêmes informations que l'item en main (name, lore, nbt etc...). Je te suggère la solution suivante qui devrait résoudre ton problème : on place: if lore of player's held item contains "Ceci ne peut-être poser": cancel event send "&cErreur : vous ne pouvez pas poser ce block !" to player J'espère t'avoir suffisamment aidé, si tu as d'autres questions, n'hésite pas !
  8. La solution que je t'ai proposé intervient dans le cas où tu ne veuille pas annuler la pose de ta super roche mais plutôt dans le cas où tu veuilles récupérer ta super roche (l'item) en cassant le bloc que t'as posé. Si ta demande était tout autre, je m'en excuse, je l'avais mal comprise. Si ce n'est pas le cas, ma solution fonctionnera très bien et sans addons
  9. Salut, Il y a plusieurs manière de réaliser ce que tu souhaites. Premièrement, il me semble bon de rappeler que des documentations très complètes existent concernant les addons, celle que je préfère car plus complète et ayant le plus d'exemples est celle de SkriptHub.net : [Contenu masqué]. Elle te permet de faire de recherche filtrer par addon et par mots-clés ce qui est très pratique et intuitif. Pour accéder à la documentation de skript-gui : [Contenu masqué]?addon=skript-gui Une fois sur la documentation de skript-gui tu remarqueras qu'il y a déjà de nombreux exemples ainsi que des explications généralement fournies par l'auteur de l'addon en question. Concernant ta demande, seules quelques secondes de recherches permettes de trouver solution à ton problème. Voici la solution que je te propose est la suivante : create a gui with virtual chest inventory with 3 rows named "Ceci est un test" make gui 10 with stone: make console execute command "/manuadd %player% modo" Source : [Contenu masqué]?id=4204 J'espère t'avoir suffisamment aidé. Si tu as d'autres questions, n'hésite pas !
  10. Salut, Ta demande me semble largement réalisable. Tout d'abord, pour palier au problème que tu as cité, tu peux mettre en place une liste contenant les blocs enchantés posés (contenant les inventaires). Cela te permettra de savoir lorsqu'un joueur mine un bloc s'il appartient à la liste précédemment définie, donc s'il est un bloc enchanté contenant un inventaire dont le contenu aura été préalablement enregistré dans une liste ou une sous-liste. Voilà, résumé en 2 phrases ce que tu peux faire afin de résoudre ton problème ! Cela constitue une solution. Une éventuelle autre solution serait de faire usage des NBT. J'espère avoir été assez clair, si tu as besoin d'amples précisions, n'hésite pas !
  11. Salut, Pour résoudre ton problème, il suffit simplement de faire comme ceci : loop all players: if loop-player doesn't have permission "maintenance.bypass": kick loop-player due to "Le serveur passe en maintenance" Dans un premier temps, on parcours la liste de tous les joueurs connectés. On vérifie ensuite si chaque joueur n'a pas la permission requise et enfin, si la condition est vérifiée : on expulse le joueur du serveur. J'espère t'avoir aidé, si ce n'est pas le cas, n'hésite pas !
  12. Salut, Oui, cela est possible. Il te nécessite les mêmes connaissances que celles que je t’ai expliquée dans ta précédente demande d’aide : [Contenu masqué] Si tu as un suivis et compris ce que j’ai expliqué, tu devrais réussir à réaliser ce que tu veux. As-tu au moins essayer quelque chose ? Si oui, montre-nous ce que tu as fait. C’est un bon début.
  13. deventoncar

    résolu ✔ Commande /nick

    Salut, Ce n’est pas une erreur mais plutôt un avertissement. Cela se produit généralement lorsqu’il y a des erreurs syntaxiques i.e. une mauvaise utilisation de la syntaxe. Ici, la cause de cet avertissement vient de la ligne où du modifies le display name du joueur : l’argument 1 étant déjà un texte (spécifié dans la 1ère ligne) il est donc inutile de mettre "%arg-1%", tu peux directement utiliser arg-1 comme ceci : set display name of player to arg-1 Concernant les préfixes en fonction de ton grade, tout dépend de comment tu gères ça. Mais si tu n’as pas ce genre de système, tu peux utiliser l’expression suivante pour colorer les nicks : coloured arg-1 Source : [Contenu masqué] J’espère avoir été assez clair et surtout t’avoir suffisamment aidé. Si tu as d’autres questions, n’hésite pas !
  14. C'est un forum d'entre-aide, ta réponse ne l'aide aucunement. Concernant ta demande, c'est une chose très fondamentale et banale à faire. Si tu as compris le concept de variables et de conditions, tu devrais t'en sortir. Pour rappel, une variable te sers à stocker un certain type d'information. Cela peu être un entier, une chaîne de caractère, un flottant, un booléen (oui / non) etc... Avec Skript, contrairement en Java ou même en C, tu n'as pas à déclarer quel est le type de variable que tu vas utiliser, ce qui peut éventuellement faciliter la vie des débutants Par concéquent, si tu veux créer une variable contenant la valeur entière 100, il te suffit de faire ceci : set {_variableTemporaire} to 100 Pareil si tu veux sauvegarder une valeur de type booléennes (oui / non ou true / false) ou de type chaîne de caractère : set {_test} to false set {_hello} to "Hello World!" Note : ici, j'utilise un "_" devant le nom de ma variable car avec Skript, c'est ce qui permet de créer des variables éphémères c-à-d qu'elles ne seront pas sauvegardées en mémoire. Ensuite, tu as les conditions. Si tu es peu familier avec ces dernières, ce petit rappel ne te fera pas de mal. Le concept de condition se marie très bien avec le concept de variable qu'on a vu juste au-dessus. Comme en français, cela permet de vérifier si une un paramètre est vérifié. set {_vies} to 3 if {_vies} == 3: send "Il vous reste 3 vies !" to player else if {_vies} == 2: send "Il vous reste 2 vies !" to player else if {_vies} == 1: send "Il ne vous reste qu'une seule vie !" to player else: send "Vous n'avez pas de vie :(" to player L'exemple ci-dessus montre un exemple basique d'utilisation des variables et des conditions. Bonne nouvelle : c'est tout ce dont tu as besoin pour créer ton système de monnaie ! Si tu veux en savoir davantage ces concepts-là, je te renvoie aux vidéos tutoriels de Skript-MC : [Contenu masqué] Maintenant, revenons à un exemple plus concret. Réalisons ensemble un système de porte-feuille par joueur ! On va faire en sorte que chaque nouveau joueur puisse commencer avec 100 billets dans son porte-feuille : on first join: set {portefeuille::%uuid of player%} to 100 Maintenant qu'il a un solde de départ, il faut maintenant que son solde puisse changer : qu'il puisse soit gagner soit perdre des billets. Pour commencer, on va faire en sorte qu'à chaque mort, le joueur perdre 10 billets dues à une taxe : on death of player: remove 10 from {portefeuille::%uuid of player%} On a ensuite décidé qu'il était impossible d'avoir en-dessous de 10 billets dans son porte-feuille. on death of player: set {_resultat} to {portefeuille::%uuid of player%} - 10 if {_resultat} is greater than 0: remove 10 from {portefeuille::%uuid of player%} S'il ne peut plus payer sa taxe, on décide d'expulser le joueur du serveur. On a donc les conditions suivantes : on death of player: set {_resultat} to {portefeuille::%uuid of player%} - 10 if {_resultat} is greater than 0: remove 10 from {portefeuille::%uuid of player%} else: kick the player due to "Vous ne pouvez plus payer la taxe de mort !" Pour que le joueur puisse gagner des billets, on décide de récompenser sa présence en lui offrant 5 billets toutes les 5 minutes versés automatiquement dans son porte-feuille. every 5 minutes: loop all players: if {portefeuille::%uuid of loop-player%} is not set: set {portefeuille::%uuid of loop-player%} to 100 add 5 to {portefeuille::%uuid of loop-player%} send "Pour vous remercier, le serveur vous offre 5 billets !" to loop-player Il reste un dernier problème, le joueur ne peut pas consulter son solde... Il faut créer une commande ! command /portefeuille: trigger: if {portefeuille::%uuid of player%} is not set: set {portefeuille::%uuid of player%} to 100 send "Vous avez %{portefeuille::%uuid of player%}% billets dans votre porte-feuille !" to player Voilà, un petit système de porte-feuille très basique Si tu as bien suivi et compris, tu devrais pouvoir t'en inspirer afin de réaliser ce que tu souhaites. Si tu as d'autres questions, n'hésite pas !
  15. Comme dit au-dessus, c'est techniquement impossible et cela même en utilisant les packets. En effet, il n'y a aucun packet fait pour cet usage.
  16. Je t'ai donné le fil conducteur. À toi de faire la suite, si tu n'essaies pas, tu ne vas jamais améliorer tes compétences. Pour se faire, voici quelques indications supplémentaires : Il te suffit de faire quelques manipulations en plus i.e. tout d'abord sauvegarder l'item frame qui apparaît ainsi que son contenu dans une liste. Tu devrais avoir un truc qui ressemble à ça : set {_itemFrame} to last spawned item frame add {_itemFrame} to {itemFrames::*} set {itemFrames::%{_itemFrame}%::item} to event-item Ensuite, vu que tu sauvegardes directement l'item de l'évènement, tu n'as normalement pas à t'en faire vis-à-vis du NBT de celui-ci. Il me semble que c'est pris en compte nativement, si ce n'est pas le cas, rajoute ceci au moment de la pose de l'item dans l'item frame : set {itemFrames::%{_itemFrame}%::item_nbt} to nbt of event-item Pour restituer l'item, tu n'as qu'à faire le chemin inverse en restituant le NBT précédemment sauvegardé si la méthode de restitution de l'item de base ne fonctionne pas. Normalement, tu as désormais toutes les cartes en main pour réussir. Si jamais, voici le lien vers la documentation de SkBee : [Contenu masqué] Si tu ne parviens toujours pas à faire ce que tu veux avec toute cette aide, reviens vers moi Je t'aiderais seulement à condition que tu ai essayé des choses de ton côté, dans le cas contraire, ça ne sert à rien.
  17. Salut, Pour définir la longueur de ton drawLine (à 10 blocs), il te suffit de définir la longueur de ce dernier comme ceci : length 10 Pour stopper un effet avec un ID spécifique, il te suffit d'utiliser l'effet suivante : stopEffect id "<ton_id>" Concernant le fait que ton drawLine ne fonctionne pas en visant dans le ciel vient du fait que tu utilises un target block pour déterminer là où le joueur vise, je te suggère plutôt d'utiliser le raytracing. C'est le seul moyen à ma connaissance. Au final, on a donc ça : on right click with a stick: # position de départ pour le drawLine set {_startLoc} to location of player add 1.4 to y-loc of {_startLoc} # target position pour le drawLine set {_endLoc} to location of target block drawLine particle redstone, RGB 0, 139, 139, center {_startLoc}, target {_endLoc}, id "baguettemagique::%player%", solid true, density 50, length 10, visibleRange 50, pulseDelay 1 wait 3 ticks stopEffect id "baguettemagique::%player%" Pastebin : [Contenu masqué] Si tu m'en laisse un peu le temps, je pourrais éventuellement t'aider avec le raytracing. Je pourrais au moins te proposer un workarround. J'espère t'avoir aidé, si t'as d'autres questions, n'hésites pas
  18. Salut, Voilà ce que tu as demandé : command /b: trigger: if size of {lastJoinedPlayer::*} is equal to 1: make player send message "Bienvenue à toi %{lastJoinedPlayer::*}% !" else if size of {lastJoinedPlayer::*} is greater than 1: set {_players} to "%{lastJoinedPlayer::*}%" replace first " and " in {_players} with " et " make player send message "Bienvenue à vous %{_players}% !" else: send "&cIl n'y aucun nouveau joueur..." to player on load: clear {lastJoinedPlayer::*} on first join: broadcast "&eBienvenue à &7%player% ! &7/b" add player to {lastJoinedPlayer::*} wait 10 seconds remove player from {lastJoinedPlayer::*} Pastebin : [Contenu masqué] Cela ne nécessite aucun autre addon que Skript (version 2.5.3). Si tu as d'autres questions, n'hésite pas
  19. Salut, Si j'ai bien compris ta demande, le code suivant devrait faire ce que tu souhaites. Attention, Skript brut ne te permet pas d'utiliser des NBT, il te faut l'addon SkBee pour que ça fonctionne correctement. on rightclick: if player is sneaking: if event-entity is event-player: if event-item is set: cancel event spawn a item frame event-direction the event-block with nbt "{Invisible:1b}" add "{Item:{id:""%raw name of event-item%"",Count:1b}}" to entity-nbt of last spawned item frame Pastebin : [Contenu masqué]
  20. Version 0.1.1

    53 downloads

    Qu'est-ce que Easy Claim ? Easy Claim est un système simple et efficace de revendication de chunks. Ce Skript est amené à évoluer progressivement au cours du temps notamment grâce à votre aide, en y ajoutant des fonctionnalités qui me seront demandées. Quelles sont les fonctionnalités présentes ? Pour le moment, Easy Claim n'est qu'à ses débuts, les fonctionnalités sont donc peu nombreuses. Cette liste est ainsi susceptible de changer en fonction des différentes versions qui sortiront. [v0.1] Système de revendication et de suppression de chunk [v0.1] Interdiction d'interaction : poser, casser ou utiliser un bloc [v0.1] Présence d'une API permettant de faciliter les actions (cf. fonctions) NOUVEAU! [v0.1.1] Système de limitation de claims par joueur (cf. options) Les commandes /easyclaim help : afficher l'aide /easyclaim version : afficher les informations sur le skript /easyclaim options : afficher les paramètres activés ou désactivés /easyclaim claim : revendiquer un chunk /easyclaim unclaim : supprimer un chunk revendiqué Les permissions easyclaim.* : accéder à toutes les fonctionnalités easyclaim.help : accéder à la commande /easyclaim help easyclaim.version : accéder à la commande /easyclaim version easyclaim.options : accéder à la commande /easyclaim options easyclaim.claim : accéder à la commande /easyclaim claim ou /claim easyclaim.unclaim : accéder à la commande /easyclaim unclaim ou /unclaim L'API (les fonctions utilisables) Il y a une fonctionnalité qui peut s'avérer très utile : la présence de divers fonctions directement intégrés dans le Skript. Ces dernières vous permettront de l'utiliser dans vos propres Skript afin de vous faciliter la vie. Voici la liste, susceptible de changer, des fonctions disponibles avec quelques exemples d'utilisation : # usage : canClaim(<player>) # return : booléan # description : vérifie si un joueur est autorisé à revendiquer un chunk canClaim(p: player) :: boolean # usage : claimChunk(<chunk>, <player>) # return : booléan # description : permet de revendiquer un chunk, # retourne "true" si succès et "false" si échec claimChunk(c: chunk, p: player) :: boolean # usage : unclaimChunk(<chunk>, <player>) # return : booléan # description : permet de supprimer un chunk # revendiqué, retourne "true" si succès, "false" sinon unclaimChunk(c: chunk, p: player) :: boolean # usage : isClaimed(<chunk>) # return : booléan # description : permet de vérifier si un chunk # est déjà revendiqué, retourne "true" si oui, "false" sinon isClaimed(c: chunk) :: boolean # usage : getClaimsAsList(<player>) # return : objets # description : récupérer la liste des claims d'un joueur getClaimsAsList(p: player) :: objects # usage : getClaimsAsSize(<player>) # return : nombre # description : récupérer le nombre de chunks revendiqués par un joueur getClaimsAsSize(p: player) :: number # usage : getAllowedClaimsAsSize(<player>) # return : nombre # description : récupérer le nombre de chunks que le joueur peut revendiquer (permission) getAllowedClaimsAsSize(p: player) :: number # usage : getOwner(<chunk>) # return : text # description : permet de récupérer le propriétaire # d'un chunk revendiqué, retourne "<nom du joueur>" si existe, rien sinon getOwner(c: chunk) :: text # usage : isOwner(<chunk>, <player>) # return : booléan # description : permet de vérifier si le joueur est bien # propriétaire d'un chunk, retourne "true" si oui, "false" sinon isOwner(c: chunk, p: player) :: boolean Par exemple, si vous souhaitez récupérer le propriétaire d'un chunk revendiqué il suffit de faire appel à deux fonctions : command /aquiappartientcechunk: trigger: set {_chunk} to chunk at player if isClaimed({_chunk}) is true: send "Le chunk où vous êtes appartient à %getOwner({_chunk})% !" to player else: send "Ce chunk n'appartient à personne..." to player Quelques screenshots Comment l'installer ? Premièrement, ce Skript a été conçu en 1.16.5 et il peut théoriquement fonctionner dans toutes les versions inférieures. Je tiens cependant à préciser qu'il n'y aura pas de support pour les personnes utilisant les vieilles versions de Minecraft. Pour installer Easy Claim, c'est simple, il suffit de suivre les instructions suivantes : Vérifier votre version de Skript, ce dernier a été conçu avec la dernière version stable : 2.5.3 Si vous n'utilisez pas la dernière version de Skript, téléchargez-la ici : https://github.com/SkriptLang/Skript/releases/tag/2.5.3 Si vous utilisez la dernière version de Skript, tout devrait parfaitement fonctionner ! Ce Skript ne nécessite aucun addons supplémentaires Téléchargez le fichier easyclaim.sk Déplacez-le dans votre dossier /plugins/Skript/scripts/ Exécutez la commande /sk reload easyclaim.sk en jeu ou depuis la console pour charger ce dernier. Profitez Me contacter Le support pour ce Skript se passe exclusivement sur Discord : deventoncart#1073
  21. Salut, Tu peux éventuellement utiliser l'expression suivante pour récupérer le nom "minecraft" de ton item : raw name of event-item Source : [Contenu masqué] Dans ton exemple, cela donnerait ceci : on break: send "&7Tu viens de casser : %raw name of event-item%" to player Si t'as des précisions concernant ta demande, n'hésite pas.
  22. Salut, Je pense que tu t'y prends mal. Skript est un "langage" interprété, il suffit de lire ce que tu as écrit pour s'apercevoir de quelques erreurs. Pour commencer, je ne vois pas l'intérêt d'avoir fait une boucle sur tous les joueurs alors que tu ne te sers pas du résultat de cette boucle... De plus, cela ne fonctionne pas car tu récupères le chunk où se situe le joueur et non le chunk où le bloc se situe : c'est pour cela qu'en dehors du chunk claim, le joueur peut toujours cassé un bloc. Voici ce que je te propose : # # commands # command /claim: trigger: # on vérifie si le chunk où si situe le joueur appartient à quelq'un if {claimed_chunks::*} contains chunk at player: # on vérifie si le propriétaire du chunk n'est pas le même que le joueur if {claimed_chunks::%chunk at player%::owner} is not player: send "&cCe chunk a déjà été revendiqué par %{claimed_chunks::%chunk at player%::owner}% !" to player else: send "&cCe chunk vous appartient déjà !" to player # le chunk n'appartient à personne, donc on lui donne le chunk else: send "&aVous venez de revendiquer ce chunk votre propriété :)" to player add chunk at player to {claimed_chunks::*} set {claimed_chunks::%chunk at player%::owner} to player command /unclaim: trigger: if {claimed_chunks::%chunk at player%::owner} is player: remove chunk at player from {claimed_chunks::*} delete {claimed_chunks::%chunk at player%::owner} send "&7Ce chunk ne vous appartient désormais plus." to player else: send "&cCe chunk ne vous appartient pas !" to player # # events # on place: # on vérifie si le bloc placé fait partie d'un chunk revendiqué if {claimed_chunks::*} contains chunk at event-block: # on vérifie que le joueur qui essaye de casser le bloc n'est pas propriétaire du chunk if {claimed_chunks::%chunk at event-block%::owner} is not player: cancel event send "&cVous ne pouvez pas placer des blocs dans ce chunk. Propriété de %{claimed_chunks::%chunk at event-block%::owner}% !" to player on break: if {claimed_chunks::*} contains chunk at event-block: if {claimed_chunks::%chunk at event-block%::owner} is not player: cancel event send "&cVous ne pouvez pas casser des blocs dans ce chunk. Propriété de %{claimed_chunks::%chunk at event-block%::owner}% !" to player Je t'ai inclus quelques explications directement en commentaire dans le code.. Si toutefois, il y a une chose que tu ne comprends pas, fais-le moi savoir je t'expliquerai au mieux.
  23. Salut, Tout d'abord, je te conseille vivement de mettre à jour la version de Skript que tu as sur ton serveur. En effet, certaines versions contiennent des problèmes et en utilisant les dernières, ces problèmes ont peut-être été réglé. Cela est indiqué noir sur blanc sur l'erreur que tu viens d'envoyer. [12:19:09 ERROR]: #!#! Something went horribly wrong with Skript. [12:19:09 ERROR]: #!#! This issue is NOT your fault! You probably can't fix it yourself, either. [12:19:09 ERROR]: #!#! You're running outdated version of Skript! Please try updating it NOW; it might fix this. [12:19:09 ERROR]: #!#! Run /sk update check to get a download link to latest Skript! [12:19:09 ERROR]: #!#! You will be given instructions how to report this error if it persists after update. Lien vers la dernière release stable de Skript : [Contenu masqué] Une fois que tu auras essayé de mettre à jours Skript, vérifie que tu n'as fais aucune erreur syntaxique. Pour en être sûr, reporte-toi à ce qui est présent sur la documentation de TuSKe (disponible ici : [Contenu masqué]) et effectue des tests. Une fois toutes ses vérifications effectuées, si cela ne marche toujours pas : précise ton problème avec les nouveaux éléments que tu auras découverts avec tes tests...
  24. Je t'ai distribué toutes les cartes pour que tu réussisses Même étant débutant, le but est de s'améliorer... Si tu n'essaies pas de toi-même, tu n'évolueras certainement pas ! J'ignore comment tu as appris à développer mais l'avantage avec Skript c'est que c'est un "langage" très haut niveau, c'est un "langage" interprété. De simples connaissances en anglais te suffiront à faire à peu près ce que tu souhaites... Bien que d'amples connaissances techniques et mathématiques sont requises pour faire des choses plus complexes. L'essentiel c'est de comprendre les concepts de base qui sont quasi communs à tous les langages de programmation, entre autre : comprendre ce qu'est une variable, assimiler les conditions, savoir créer une boucle et comprendre l'intérêt des fonctions. Pour comprendre et assimiler ces concepts, il faut t'entraîner. Ces 4 concepts-là, tu les retrouveras partout et en ayant compris ça, ça te débloquera pleins de choses. Voici quelques conseils / ressources qui pourront t'aider à l'avenir : Toujours faire plusieurs recherches Google : généralement, si tu te poses une question, elle a déjà été posée quelque part par une autre personne ayant rencontré le même problème. Si ta recherche n'aboutie pas, change de mots clés, tourne ta question différemment... Il ne faut surtout pas se contenter d'une seule source, confronte-les et teste tous les bouts de code que tu pourras voir. Attention : le copier / coller ne sert à rien, il faut que tu comprennes ce que tu es en train de faire, sinon ça n'a pas d'intérêt. Te servir des documentations officielles (celle de Skript-MC par exemple, celle de SkriptHub.net que je trouve plus complète, celle de SkUnity etc..) : l'avantage avec les documentations, c'est qu'il y a généralement des exemples pouvant t'aider à la résolution de ton problème. Lien vers la documentation officielle (toujours la plus complète) de Skript : [Contenu masqué] Dans le cas où tes recherches ne t'aident pas du tout, demander de l'aide sur les forums peut constituer une très bonne solution Si je pouvais te donner un dernier conseil, ça serait de ne jamais abandonner face à une quelconque difficulté. Ce que tu trouveras compliqué aujourd'hui, tu le trouveras plus ou moins facile demain. Mais pour s'en rendre compte, il faut pratiquer et tester massivement.
×
×
  • 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.