Aller au contenu

TheBestMines

Membre
  • Compteur de contenus

    12
  • Inscription

  • Dernière visite

  • Crédits

    24 [Faire un don]

Réputation sur la communauté

0 Neutre

À propos de TheBestMines

  • Rang
    Nouveau
  1. Version de Minecraft : 1.20.1 (Paper) Version de Skript : 2.7.3 Addons utilisés: Aucun pour ce skript, mais utilisation du plugin Essentials en parallèle (pour obtenir les bons items). Type du skript : Commande créée avec Skript pour obtenir un kit (qui d'un point de vue joueur évolue), avec plusieurs argument dont seulement un doit être affecté par un cooldown. --- Bonjour/Bonsoir à tous, Je me permet de poster mon problème ici. Parce qu'à vrai dire, je sèche un peu pour trouver la solution malgré l'énorme doc SkriptLang... J'ai créé une commande Skript, qui permet d'obtenir un certain kit Essentials, selon les permissions qu'à le joueur qui exécute la commande. Autrement dit, l'intitulé de la commande ne change pas, mais d'un point de vue joueur, l'effet qu'elle a en l'utilisant "évolue" selon ses avantages. Le principe souhaité est totalement fonctionnel après tests. Cela convient à ce que je souhaite faire sur mon serveur. Cette commande /guilde a plusieurs arguments disponibles : aide (ou help) : Pour afficher une petite page d'aide pour que ce soit sympa kit : Pour obtenir son kit Ensuite, puisqu'il est préférable d'éviter le give facile, je souhaite mettre en place un cooldown sur l'argument "kit", mais pas sur les autres arguments qui ne font que de l'affichage pour "aider". Et c'est là que je bloque. Le cooldown fonctionne super bien trop bien. Si j'utilise l'argument "kit", je ne peux pas utiliser dans la foulée l'argument "aide" et même chose inversement ! J'ai tenté d'utiliser "cancel cooldown" ou encore "uncancel cooldown" dans les conditions des arguments "d'affichage" seulement, mais je reste bloqué. Voici le script en question ci-dessous (le cooldown montré ici est à 5 sec pour les tests. Le message d'erreur n'a juste pas été adapté). command /guilde <text>: usage: &8[<##F28834>HYTÉLIA&8] &cCommande incomplète ou incorrecte. Utilisation : /guilde <aide | kit> ou /hg <aide | kit> permission: hytelia.cmdguilde.usage permission message: &8[<##F28834>HYTÉLIA&8] &cVous n'avez pas accès à cette commande. aliases: /hg cooldown: 5 seconds cooldown message: &8[<##F28834>HYTÉLIA&8] &cVous ne pouvez utiliser cette commande qu'une fois toutes les 24 heures. Vous pourrez à nouveau l'utiliser dans &e%remaining time%&c. cooldown bypass: hytelia.kitguilde.bypasscooldown cooldown storage: {cooldown-cmdguilde::%player%} trigger: if arg-1 is not set: cancel the cooldown send "&8[<##F28834>HYTÉLIA&8] &cCommande incomplète. Veuillez préciser après la commande l'un des choix suivants :" to player send "&c▪ aide" to player send "&c▪ kit" to player uncancel the cooldown if arg-1 is not "aide" or "help" or "kit": cancel the cooldown send "&8[<##F28834>HYTÉLIA&8] &cCommande incorrecte. Veuillez préciser après la commande l'un des choix suivants :" to player send "&c▪ aide" to player send "&c▪ kit" to player uncancel the cooldown if arg-1 is "aide" or "help": cancel the cooldown send "&8[<##F28834>HYTÉLIA&8] <##7CBFCF>Utilisation de la commande /guilde (alias : /hg):" to player send "<##7CBFCF>▪ /guilde aide : Afficher cette page" to player send "<##7CBFCF>▪ /guilde kit : Obtenir son kit de guilde" to player uncancel the cooldown if arg-1 is "kit": if sender has permission "hytelia.kitguilde.tier1": make console execute command "/kit guilde-tier1 %player%" if sender has permission "hytelia.kitguilde.tier2": make console execute command "/kit guilde-tier2 %player%" if sender has permission "hytelia.kitguilde.tier4": make console execute command "/kit guilde-tier4 %player%" if sender has permission "hytelia.kitguilde.tier6": make console execute command "/kit guilde-tier6 %player%" if sender has permission "hytelia.kitguilde.tier8": make console execute command "/kit guilde-tier8 %player%" if sender has permission "hytelia.kitguilde.tier10": make console execute command "/kit guilde-tier10 %player%" Ce que je souhaite faire est-il possible ? Savez-vous où je me plante ? J'ajoute également ci-dessous le lien vers une vidéo du fonctionnement avec le blocage et les logs de la console au moment où j'utilise la commande Skript (depuis mon compte totalement déop). Y'a un avertissement que je comprends pas très bien qui s'affiche... Au cas où ce serait lié... Vidéo : [Contenu masqué] Logs : [22:04:04 INFO]: TheBestMines issued server command: /guilde kit [22:04:04 INFO]: [Skript] Variable {cooldown-cmdguilde::TheBestMines} was not a date! You may be using this variable elsewhere. This warning is letting you know that this variable is now overridden for the command storage. [22:04:04 INFO]: [Essentials] CONSOLE issued server command: /kit guilde-tier2 TheBestMines [22:04:04 INFO]: Don du kit guilde-tier2 à ꨂTheBestMines. [22:04:04 INFO]: [Skript] Variable {cooldown-cmdguilde::TheBestMines} was not a date! You may be using this variable elsewhere. This warning is letting you know that this variable is now overridden for the command storage. [22:04:06 INFO]: TheBestMines issued server command: /guilde aide En vous remerciant par avance pour votre aide ! Bonne journée/soirée
  2. Fausse alerte Je pensais que l'événement ne s'annulait pas, mais en fait ça prenait juste une flèche d'un autre stack sans le lore, dans mon inventaire. Tout est donc fonctionnel ! Merci pour l'aide apportée
  3. L'événement du chargement de l'arc s'annule de ton côté avec ce script ? Même avec la ligne cancel event, l'arc reste chargé et si on relâche le clic droit, la flèche est tout de même tirée. Par contre, je reçois bien le message écrit juste en dessous.
  4. Comment pourrais-je récupérer le slot le plus petit, afin de contrôler s'il contient une flèche ne devant pas être utilisée (contenant donc un lore) ? Avec un loop ? J'ai un peu de mal à trouver comme faire cela dans la doc... J'ai trouvé comment voir si l'inventaire du joueur contient l'objet en question (player's inventory contains ?), mais pas pour ce qui concerne le slot le plus petit. A côté, j'ai déjà essayé d'écrire cela pour tester si ça pouvait annuler l'événement, après avoir installé l'addon Skript-paper. Sans vraiment de surprise, ça ne fonctionne pas.
  5. Salut, Ok, merci de ta réponse. Je vais regarder ce que je peux déjà essayer de faire dans ce sens.
  6. Salut deventoncar, Avec "player's held item", mon script fonctionne ! Merci ! Sinon, dans le même principe, pour pouvoir empêcher l'utilisation d'une flèche, avec un arc et/ou une arbalète, dont le lore contient "&4&lCeci ne peut pas être utilisé en tant que projectile.". Ce serait un script du style ? Celui-ci ne fonctionne pas et je trouve pas la bonne syntaxe dans la documentation... Un peu comme la "super roche", le but serait d'empêcher le joueur de mettre la fèche sur son arc/arbalète (pour l'empêcher de tirer).
  7. Bonjour, Quelqu'un sait d'où pourrait provenir le problème ?
  8. Re, Pour te répondre deventoncar, la demande serait vraiment d'annuler la pose J'ai essayé ces deux scripts du coup: Ils ne fonctionnent pas, même après m'être retiré les droits d'op, redémarrer le serveur, checké et rechargé la config par défaut de Skript, comme pour les scripts actifs. En sachant que je suis sur Paper, y'a t-il quelque chose à activer ? Me manquerait-il un addon ? Et je n'ai aucun message d'erreur. Même en activant le debug...
  9. Ok, je vais tester tout cela. Je donnerai le résultat ici Il faut un addon en plus si l'on veut prendre en compte une ligne spécifique du lore ? Lequel ? Merci
  10. Salut, Merci pour ta réponse. J'étais donc sur la bonne voie avec mon script initial, sur mon premier message. Je vais tester celui-ci. Si au lieu du nom du bloc, je voudrais plutôt détecter ce qui est écrit sur la ligne 3 du lore de la super roche; "Ceci ne peut être posé", le script suivant serait bon ? Merci d'avance.
  11. Salut deventoncar, Merci pour ta réponse Je n'ai pas tout compris sur la mise en place d'une liste. Ce serait de lister dans un script tous les blocs enchantés que je viendrais à créer, pour qu'il soit reconnus lors du minage (s'il y a eu la pose de l'un d'eux) et qu'il puissent redevenir comme avant la pose ? Autrement, comment je pourrais faire avec des NBT ? De plus, j'ajoute quelques images et un gif pour illustrer le principe et donc donner plus de détails par rapport à ce que j'aimerai faire. Je prends à nouveau l'exemple de la roche. Sur l'image "trade 1", on a le coffre de roche, que le joueur aura avant l'échange avec le panneau. Sur l'image "trade 2", on a la roche enchantée, qui sera donnée au joueur après l'échange depuis le panneau, et ayant le lore "Ceci ne peut être posé" en 3e ligne. Sur le Gif, on peut voir l'échange complet: 1. J'ai, dans mon inventaire, les 1728 roches 2. Je clique sur le panneau pour avoir la super roche et ainsi gagner de la place dans mon stockage, car je pourrais compresser un coffre complet en un seul objet. 3. Je pose, sans faire exprès, la super roche. Problème, la pose s'est faite. Si je la casse, je récupère une pierre... , Quand je vais vouloir faire l'échange dans le sens contraire, le panneau me retournera que je n'ai donc pas de super roche dans mon inventaire. Résultat, j'ai perdu mon coffre de roche à cause d'un simple clic... Le but, serait que l'étape 3 soit supprimée. Qu'au moment où l'on cliquerait pour poser le bloc, que l'événement de pose (on place je crois) serait donc annulé, car il y aura eu détection du lore que l'on voit sur la super roche sur l'image "trade 2" et sur le gif "trade 3" (ou par la détection d'autre chose qui donnerait le même résultat). A la place, un message serait envoyé au joueur, disant que la pose de ce super bloc est impossible, me permettant de garder mon super bloc intact et de faire l'échange dans le sens contraire à tout moment. Ainsi, le joueur ne devrait pas avoir à miner le super bloc, puisqu'il ne pourra jamais le poser.
  12. Version de Minecraft : 1.16.3 Version de Skript : 2.4.1 Addons utilisés: SkQuery-Lime 4.1.3, skript-yaml 1.3.2, skUtilities 0.9.2 Je travaille sur la mise en place d'un système de stockage, permettant de compresser des objets en un seul (des blocs notamment). Cela en échangeant, par exemple, un coffre de roche pour une roche enchantée, avec un certain nom et un lore, qui représenterai donc ce coffre de roche, mais en un seul objet dans un seul emplacement d'inventaire. Mais le problème, en particulier pour les blocs, est que si le joueur pose un bloc enchanté, qui est donc au final un coffre de ce type de bloc, lors de la récupération, le bloc récupèrera ses valeurs par défaut (nom, aucun lore, etc...) et ainsi le coffre ne pourra plus être obtenu au niveau de l'échangeur. J'aurais donc aimé savoir s'il était possible de faire un skript, qui détecterai sur l'objet compressé (dans l'inventaire du joueur) un certain lore (exemple: "Ceci ne peut être posé."), et que dans le cas où ce lore est détecté, le joueur au moment de vouloir poser le bloc ne pourrait pas le poser et recevrai un message tel que "Vous ne pouvez pas poser ceci.". En simple, l'événement de poser le bloc serait donc annulé dès le moment où le lore voulu est détecté sur l'objet avant/pendant l'événement de pose. J'ai essayé de faire quelques recherches et de commencer à écrire ce skript, qui ne fonctionne pas. Il n'y a aucune erreur lors d'un /skript reload scripts et je ne trouve où est le problème. En sachant que je n'ai jamais vraiment écrit des scripts de ce type. Quelqu'un peut-il m'aider à réaliser un skript répondant à cette problématique, si cela est possible ? Je vous remercie d'avance
×
×
  • 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.