Aller au contenu

deventoncar

Membre
  • Compteur de contenus

    33
  • Inscription

  • Dernière visite

  • Jours gagnés

    4
  • Crédits

    120 [Faire un don]

deventoncar a gagné pour la dernière fois le 26 août 2022

deventoncar a eu le contenu le plus aimé !

Réputation sur la communauté

7 Neutre

2 abonnés

À propos de deventoncar

  • Rang
    Apprenti

Visiteurs récents du profil

Le bloc de visiteurs récents est désactivé et il n’est pas visible pour les autres utilisateurs.

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