Aller au contenu

tiradorus

Membre
  • Compteur de contenus

    24
  • Inscription

  • Dernière visite

  • Jours gagnés

    2
  • Crédits

    38 [Faire un don]

tiradorus a gagné pour la dernière fois le 22 juin 2021

tiradorus a eu le contenu le plus aimé !

Réputation sur la communauté

3 Neutre

À propos de tiradorus

  • Rang
    Intérresé

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. Bon, après des mois de tests et avec l'aide d'un des Devs de skript directement, problème résolu. Je met la solution pour ceux qui auraient le même problème que moi à l'avenir: command /craftpurdp1: trigger: loop items in player's inventory: if: name of loop-item is "&f&lDiamant épuré" item amount of loop-item > 1 then: set {_diampur.%player%} to 1 if: loop-item is not enchanted loop-item is a diamond pickaxe custom model data of loop-item is 0 then: set {_item.%player%} to 1 if {_diampur.%player%} or {_item.%player%} are not 1: message "&7&m=====&6 Craft &4ECHEC&6 de &fPioche en diamant épuré &aI &7&m=====" to player play sound "block.note_block.bass" with volume 1.0 to player if {_diampur.%player%} is not 1: message "&cVous ne disposez pas de &6&l2 &f&lDiamant épuré&c" to player if {_item.%player%} is not 1: message "&cVous ne disposez pas de &6&l1 &7&lPioche en diamant non enchanté&c" to player if {_item.%player%} is 1: if {_diampur.%player%} is 1: loop items in player's inventory: if: {_item.%player%} is 1 name of loop-item is "&f&lDiamant épuré" item amount of loop-item > 1 then: set {_item.%player%} to 0 remove 2 of loop-item from player if: {_diampur.%player%} is 1 loop-item is not enchanted loop-item is a diamond pickaxe custom model data of loop-item is 0 then: set {_diampur.%player%} to 0 remove 1 of loop-item from player message "&c- &6&l2&c Diamant épuré" to player message "&c- &6&l1&c Pioche en diamant" to player play sound "block.note_block.chime" with volume 1.0 to player make console execute command "/mi give TOOL PIOCHED %player%"
  2. Version de Minecraft : 1.20.1 Version de Skript : 2.7.1 Type du skript : Commande unique permettant de lancer une commande de console, selon les items que le joueur a dans son inventaire Description du script : Le script doit permettre au joueur de lancer une commande console selon le nombre d'un certain item présent dans son inventaire, puis lui retirer ces mêmes items. L'item en question peut être n'importe quoi tant qu'il a une caractéristique bien précise à savoir recherché ici: Son nom. Exemple: Si le joueur a 3 (ou plus) diamants nommé "Diamant chanceux" dans son inventaire: Alors lui enlève 3 diamants nommé "Diamant chanceux" de son inventaire et exécute une commande console. ATTENTION! Difficulté en vue: Impossible d'utiliser un script de la sorte: command /test: trigger: set {_diampur} to amount of diamond named "&f&lDiamant épuré" in player's inventory #Compte les Diams renomés dans l'inventaire du joueur set {_diamgive} to {_diampur} - 3 #Rajoute une valeur utile pour plus tard if {_diampur} is more than 2: #Si le joueur a 3 ou plus Diamant rename dans son inv remove all diamond named "&f&lDiamant épuré" from player's inventory #Les lui supprime tous make console execute command "/mi give material DIAMANTPLUS %player% %{_diamgive}%" #Lui en rend son nombre initial - 3 make console execute command "/give %player% diamond_pickaxe 1" #Execute la commande finale Ce script... en soit fonctionne. Il n'y a pas d'erreurs, et en jeu il fonctionne bien et fait exactement ce qu'on lui demande. Cependant, quand le script cherche les diamants renommés, il ne prend en compte QUE les diamants qui ont PILE ce nom là, je sais que ça paraît stupide comme remarque, mais PILE ça veut dire PILE en INTERNE. En gros, si vous avez un plugin d'item, ici MMOItems ou encore MythicMobs, et que le nom de votre diamant est le même que le nom recherché à savoir: "&f&lDiamant épuré" et que vous l'avez généré sur un plugin de la sorte, il ne sera pas pris en compte dans la syntaxe : < .... diamond named "&f&lDiamant épuré" > ====> Même si les deux noms sont identique !!! <==== J'ai testé de passer par des loops, au plus loin j'ai réussi à trouver les noms FONCTIONNELS des items recherchés mais je me heurte à énormément de problèmes en faisant cela. 1: Je ne peux pas remove les diamants renommés en passant par la loop (Souvenez vous, le named "&f&lDiamant épuré" n'est pas accepté) 2: Je ne peux pas savoir le amount de la loop-value des diamants renommés. Voilà le plus loin que j'ai pu aller de fonctionnel à 100%, qui prend en compte les items d'autres plugins et de noms identique: command /test2: trigger: set {_inv.%player%::*} to items in player's inventory #Prend tout les items dans l'inventaire du joueur loop {_inv.%player%::*}: #Loop l'inventaire du joueur if name of loop-value is "&f&lDiamant épuré": #Vérifie le nom de chaque loop jusqu'à trouver le diamant == Là ça marche message loop-value to player #J'arrive pas à aller plus loin Et voici en concret ce que j'aimerai atteindre, la syntaxe est fausse et ne fonctionne pas! Mais l'idée du script demandé est là: command /test3: trigger: set {_inv.%player%::*} to items in player's inventory #Prend tout les items dans l'inventaire du joueur loop {_inv.%player%::*}: #Loop l'inventaire du joueur if name of loop-value is "&f&lDiamant épuré": #Trouve les diamants renommés if loop-value amount is more than 2: #ça marche pas mais vous saisissez, vérifie si y'en a plus que 3 remove 3 diamonds named "loop-value" in player's inventory #ça marche pas mais vous saisissez, en retire 3 make console execute commande "/ping" #commande finale à executer Voilà voilà, c'est assez technique, je suis moi-même à un niveau très élevé de skript et je sèche sur celui-ci, j'en appelle donc à d'autres scripteurs qui auraient peut-être un moyen de résoudre mon problème fort handicapant ^^' Bonne journée à tous!
  3. Bon, vous embrouillez pas j'ai résolu le problème moi-même xD Ne pouvant pas bouger l'item en lui-même dans l'inventaire ... j'ai décidé de le dupliquer dans l'inventaire et de supprimer l'ancien porté. Système D mais eh, ça marche mon gars! Pour les intéréssés: on item damage: if event-item is diamond boots: if tag "instancier" of nbt of event-item is set: #Là je cancel les dégâts de l'armure par du repair inversé lorsqu'on approche 0 de durabilité pour éviter le break et avoir une marge de sécurité if durability of event-item is higher than 426: cancel event repair player's boots by -1 #Là je vérifie que la durabilité des bootes en diamant est bien à 0 if durability of player's boots is 429: #Là je vérifie que le joueur a une place de libre dans son inventaire if player's inventory can hold 1 crossbow: give player's boots to player delete player's boots play sound "item.shield.break" with volume 1 to player message "&cVos &r%event-item% &csont tombées à 0 de durabilité." to player message "&cVous devrez utiliser un objet de réparation pour les utiliser de nouveau." to player else: apply potion of weakness of tier 50 to the player for 5 seconds apply potion of slowness of tier 2 to the player for 5 seconds apply potion of blindness of tier 3 to the player for 5 seconds apply potion of confusion of tier 3 to the player for 5 seconds message "&cVos &r%event-item% &csont tombées à 0 de durabilité." to player message "&c! Vous n'avez pas assez de place dans votre inventaire pour les récupérer, vous subbissez donc un malus de combat tant que vous portez cet item brisé!" to player on armor change: if event-item is diamond boots: if durability of event-item is 429: if player's inventory can hold 1 crossbow: give player's boots to player delete player's boots message "&cVous ne pouvez pas équiper un objet brisé!" to player play sound "block.note_block.bass" with volume 1 to player wait 2 ticks #Là Cette partie est une sécurité supplémentaire si le joueur essaie d'outre-passer les restrictions en équipant en boucle son item brisé. if player's boots is diamond boots: if durability of event-item is 429: if player's inventory can hold 1 crossbow: give player's boots to player delete player's boots kick the player due to "Arrêtez d'essayer d'équiper %event-item%!"
  4. Version de Minecraft : 1.18.+ Version de Skript : 2.6.1 Type du skript : Bouger un item/armure dans l'inventaire Description du script : Bonjour à tous! Après avoir cherché un peu partout et malgré mon expérience assez accrue avec Skript, je n'ai pas trouvé le moyen de simplement BOUGER un item de place dans l'inventaire. Par exemple: Un joueur a des bottes en diamant ... enchant Protection 4 (Au hasard hein) Bah avec un event, faire bouger ces bottes dans l'inventaire. Emplacement ... 9 (Au pif aussi) Avoir quelque chose dans ce style là: on (event): move player's boots to inventory slot 9 L'idée derrière ce skript, c'est de vérifier via des events et des conditions, que l'armure du joueur n'a pas 0 de durabilité (Tout ça je sais faire, et ça marche) ET que si l'armure en question a 0 de durabilité ... Bah d'une part qu'il ne puisse pas l'équiper, et d'autre part que si c'est déjà équipé, que ça le lui enlève SANS le détruire (Move en inventaire) Tout ce qui est event et conditions ça va j'ai pas de soucis, tout fonctionne. Par contre remplacer l'item à 0 de durabilité pour le mettre dans l'inventaire sans le supprimer, ça je sais pas faire! Et j'ai pas trouvé comment non plus (Je précise: Le problème n'est pas qu'à 0 de durabilité l'item BREAK, non ça ça va, je l'ai enlevé déjà, non le problème c'est bien que je ne sais pas comment faire bouger l'item en le conservant pour le joueur) Merciiii
  5. Utilise le plugin MythicMobs du coup. Apprend un peu à le manier. Voilà un exemple de mob dont tu as besoin: Exemple: Type: ZOMBIE Faction: spirit Display: 'Zombie' Health: 1000 AIGoalSelectors: - 0 clear - 1 meleeattack AITargetSelectors: - 0 clear - 1 players Skills: - goto{maxDistance=100;sh=5;sv=5} @location{c=-7,76,14} ~onSpawn Là je t'ai mis un "Goto" en "~onSpawn", mais clairement tu peux utiliser ça avec autant de conditions que tu veux. Exemple2: Exemple2: Type: ZOMBIE Faction: spirit Display: 'Zombie' Health: 1000 AIGoalSelectors: - 0 clear - 1 meleeattack AITargetSelectors: - 0 clear - 1 players Skills: - goto{maxDistance=100;sh=5;sv=5;delay=100} @location{c=-7,76,14} ~onSpawn Là avec le delay ajouté, il ira à la localisation, 5 secondes après avoir spawned. Enfin bref tu peux manier ça comme tu le souhaite, tes possibilités sont infinies X) Good luck! ==> Lien Wiki de Mythic ==> [Contenu masqué] ==> Lien mythic de download ==> [Contenu masqué] Au plaisir!
  6. Heu... alors avec skript simple je ne saurai faire. En revanche avec MythicMobs c'est d'une facilité sans précédent. Tu as besoin de skript absolument où tu peux te permettre d'utiliser des plugins annexe?
  7. Version de Minecraft : 1.18.1 Version de Skript : 2.6.1 Version de MMOITEMS: MMOItems-6.7.1-3 Bonjour à tous! Je cherche un développeur qui s'y connais en add-on de skript qui serait capable de créer un add-on, dans le but d'interagir avec la durabilité custom des items du plugin "MMOITEMS". ==> Cet addon serait capable: - de modifier la durabilité custom des items de MMOITEMS - d'arrêter l'event qui cause la perte de durabilité de ces items C'est tout XD ===> Explication du pourquoi j'en ai besoin et ne peut utiliser skript de façon basique pour combler ma demande: <=== MMOITEMS est un plugin de création d'items custom. Il est possible de définir une nouvelle durabilité pour les items que l'on a crée, par exemple, donner 5000 de durabilité à un casque en diamant. Cependant, il est IMPOSSIBLE d'interagir avec cette durabilité via skript. Ajouter, ou enlever de la durabilité VANILLA à l'item custom ne lui fera pas changer sa durabilité MMOITEMS qui, de part sa nature de plugin, prendra le dessus sur la durabilité initiale et n'acceptera pas les changements appliqués par skript. Il est aussi impossible d'empêcher l'event de la perte de durabilité des items de MMOITEMS, car on ne peut pas cancel l'event qui est déclenché. Or j'ai besoin de pouvoir empêcher l'event de perte de durabilité dans certaine régions, notamment les arènes de pvp ou les donjons. J'ai aussi besoin de pouvoir modifier la durabilité de ces items en cas de certains évènements (Comme par exemple la mort du jouer, attaqué par une certaine entité) etc etc. ==> Je tiens à préciser, que mes skripts actuels fonctionnent parfaitement bien sur les items VANILLA, ce n'est pas un problème de mon côté qui ait mal codé un skript. J'ai des skripts, de plusieurs milliers de lignes pour certains, codés à la main, avec des dizaines de sous-conditions intriquées. Je sais y faire pour un niveau BIEN supérieur à de tel skript basique. Ce dont j'ai besoin est ici bien d'une compatibilité entre deux plugins, or là, je n'ai hélas pas les compétences pour le faire moi-même et c'est pourquoi j'en recours à la demande générale sur ce forum. Si quelqu'un se sent capable de m'apporter son aide, ce serait plus que bienvenue! Cordialement. - tiradorus.
  8. Pas de soucis, oui je suis passé juste pour demander l'aide sur le script de ratio pis j'ai vu ton post au passage, comme c'était assez simple j'ai dévié un peu de mon temps pour résoudre ça Et nous de notre côté on a finis par réussir, après 16h de travail continu acharné sur la commande on a enfin réussi à débloquer la situation eheh. Laisse le post ouvert 24h et fais les tests de ton côté avec ce que je t'ai envoyé, pas besoin de revenir ici si tout fonctionne, mais si t'as un problème je garderai le forum en coup d'oeil pour la journée de dimanche, après quoi je retournerai bosser et n'ouvrirai plus cette page avant un bon moment xD Donc si t'as des tests à faire et que y'a un soucis quelque part, profites du fait que je sois là Dimanche pour report les problèmes (voir même demande) que tu pourrai faire. Au plaisir Bon week-end
  9. on first join: set {timer.changeteam.%player%} to now subtract a day from {timer.changeteam.%player%} set {team.%player%} to 0 on join: if {team.%player%} is not 0 or 1 or 2: set {team.%player%} to 0 command /forcechangeteam <player>: permission: force.changerteam trigger: subtract a day from {timer.changeteam.%arg-1%} send "&b&lSUPERCUBE &f» &7Le timer du joueur &c%arg-1% &7a été reset" to player command /infoteam <player>: permission: info.team trigger: if {team.%arg-1%} is 0: send "&eTeams Infos&f: &7Le joueur &c%arg-1% &7n'a pas de team" to player if {team.%arg-1%} is 1: send "&eTeams Infos&f: &7Le joueur &c%arg-1% &7est un &b&lHéros" to player if {team.%arg-1%} is 2: send "&eTeams Infos&f: &7Le joueur &c%arg-1% &7est un &e&lVilain" to player if {team.%arg-1%} is not 0 or 1 or 2: send "&eTeams Infos&f: &7Le joueur &c%arg-1% &7est un buggé mdr, la commande viens de le debug." to player set {team.%arg-1%} to 0 command /changeteam: aliases:/ct trigger: if {team.%player%} is 2: if {timer.changeteam.%player%} was less than 12 hours: send "&b&lSUPERCUBE &f» &7Timer &cnon terminé, &7tu doit attendre &c12 heures &7avant de rechanger de team !" to player else: send "&b&lSUPERCUBE &f» &7Tu es à présent un &b&lHÉROS &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des justicers !" to player make CONSOLE execute command "/rg addmember -w world heros %player%" make CONSOLE execute command "/rg removemember -w world vilains %player%" make CONSOLE execute command "/lp user %player% group add teamheros" make CONSOLE execute command "/lp user %player% group remove teamvilain" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&b&lHEROS&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&b&lHEROS&8&l]" set {team.%player%} to 1 set {timer.changeteam.%player%} to now else if {team.%player%} is 1: if {timer.changeteam.%player%} was less than 12 hours: send "&b&lSUPERCUBE &f» &7Timer &cnon terminé, &7tu doit attendre &c12 heures &7avant de rechanger de team !" to player else: send "&b&lSUPERCUBE &f» &7Tu es à présent un &b&lHÉROS &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des justicers !" to player make CONSOLE execute command "/rg addmember -w world heros %player%" make CONSOLE execute command "/rg removemember -w world vilains %player%" make CONSOLE execute command "/lp user %player% group add teamheros" make CONSOLE execute command "/lp user %player% group remove teamvilain" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&b&lHEROS&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&b&lHEROS&8&l]" set {team.%player%} to 1 set {timer.changeteam.%player%} to now else: send "&cVous n'avez actuellement aucune équipe!" to player send "&cVeuillez utiliser la commande &e&l/teamvilain &cpour devenir vilan" to player send "&cVeuillez utiliser la commande &a&l/teamheros &cpour devenir héros" to player command /teamvilain: aliases:/tv trigger: if {team.%player%} is 0: if {timer.changeteam.%player%} was less than 12 hours: send "&b&lSUPERCUBE &f» &7Timer &cnon terminé, &7tu doit attendre &c12 heures &7avant de rechanger de team !" to player else: send "&b&lSUPERCUBE &f» &7Tu es à présent un &c&Vilain &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des malicieux !" to player make CONSOLE execute command "/rg addmember -w world vilains %player%" make CONSOLE execute command "/rg removemember -w world heros %player%" make CONSOLE execute command "/lp user %player% group add teamvilain" make CONSOLE execute command "/lp user %player% group remove teamheros" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&c&lVILAIN&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&c&lVILAIN&8&l]" set {team.%player%} to 2 set {timer.changeteam.%player%} to now else: if {team.%player%} is 2: send "&b&lSUPERCUBE &f» &7Tu es &cdéjà &7un vilain..." to player else if {team.%player%} is 1: send "&b&lSUPERCUBE &f» &7Tu es à présent un &c&Vilain &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des malicieux !" to player make CONSOLE execute command "/rg addmember -w world vilains %player%" make CONSOLE execute command "/rg removemember -w world heros %player%" make CONSOLE execute command "/lp user %player% group add teamvilain" make CONSOLE execute command "/lp user %player% group remove teamheros" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&c&lVILAIN&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&c&lVILAIN&8&l]" set {team.%player%} to 2 set {timer.changeteam.%player%} to now command /teamheros: aliases:/th trigger: if {team.%player%} is 0: if {timer.changeteam.%player%} was less than 12 hours: send "&b&lSUPERCUBE &f» &7Timer &cnon terminé, &7tu doit attendre &c12 heures &7avant de rechanger de team !" to player else: send "&b&lSUPERCUBE &f» &7Tu es à présent un &b&lHÉROS &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des justicers !" to player make CONSOLE execute command "/rg addmember -w world heros %player%" make CONSOLE execute command "/rg removemember -w world vilains %player%" make CONSOLE execute command "/lp user %player% group add teamheros" make CONSOLE execute command "/lp user %player% group remove teamvilain" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&b&lHEROS&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&b&lHEROS&8&l]" set {team.%player%} to 1 set {timer.changeteam.%player%} to now else: if {team.%player%} is 1: send "&b&lSUPERCUBE &f» &7Tu es &cdéjà &7un héros..." to player else if {team.%player%} is 2: send "&b&lSUPERCUBE &f» &7Tu es à présent un &b&lHÉROS &7! Tu peux désormais &e&lconstruire &7et &e&lcasser &7du côté des justicers !" to player make CONSOLE execute command "/rg addmember -w world heros %player%" make CONSOLE execute command "/rg removemember -w world vilains %player%" make CONSOLE execute command "/lp user %player% group add teamheros" make CONSOLE execute command "/lp user %player% group remove teamvilain" make CONSOLE execute command "/tab player %player% tabsuffix &8&l [&b&lHEROS&8&l]" make CONSOLE execute command "/tab player %player% tagsuffix &8&l [&b&lHEROS&8&l]" set {team.%player%} to 1 set {timer.changeteam.%player%} to now Voilà Bon, j'ai fais quelques tests, je t'ai changé les commandes aussi. Désormais tu as un debug automatique qui check si le joueur n'a pas la variable principale de changement. Tu as une commande /infoteam <player> qui te permet de savoir dans quelle team est le joueur, si il est buggé en plus, ça le debug automatiquement en le remettant sur les rails Puis tu as une commande /changeteam qui te change de team selon la team dans laquelle tu te trouve, sans pour autant enlever les autres. Les /teamvilans et /teamheros sont compatible avec le /changeteam, et s'adaptent selon la team dans laquelle tu te trouve, le tout sur un seul cooldown de 12heures. Oh, et ton /forcechangeteam est désormais compatible avec tout ça aussi
  10. Après, si ton serveur est déjà lancé, je peux te changer l'évènement de condition qui permette de choisir son équipe. (Si le serveur est déjà actif avec des joueurs etc etc) Mais le script plus haut fonctionne sans soucis, sauf pour les joueurs ayant déjà join AVANT l'implantation de ce skript. Puis je vois des erreurs de script dans tes commandes ... Bon je te remet ça droit tu choisira la forme que tu veux
  11. Non pas d'erreur, c'est normal. La condition " if {team.%player%} is 0 or 1: " ne se valide qu'en cas de "on first join" Donc si tu as essayé alors que ce n'est pas ton first join, la variable "{team.%player%}" ne se met pas sur 0 Ce problème ne s'applique qu'à toi, et ne s'appliquera pas à tout les joueurs se connectant pour la première fois au serveur, pour te débloquer, tu peux créer une commande temporaire simple du style: command /tempo: trigger: set {team.%player%} to 0
  12. on first join: set {sql_deaths.%player%} to 1 set {sql_kills.%player%} to 1 set {sql_wins.%player%} to 1 set {sql_looses.%player%} to 1 on quit: set {_rangevalue.%player%} to ({sql_kills.%player%} / {sql_deaths.%player%}) + ({sql_wins.%player%} / {sql_looses.%player%}) set {_tempvar} to random integer between 1 and 1000000 set {sql_ratio.%player%} to ({_rangevalue.%player%} * 1 + (1 / {_tempvar})) if player has metadata value "arena": if {arena.join} is more than 0: remove 1 from {arena.join} delete metadata value "arena" of player delete metadata value "launch" of player toggle scoreboard of player off clear scoreboard of player loop all players: if loop-value does not have metadata value "arena": continue set line 1 of loop-value's scoreboard to "&eJoueurs dans la file: &6&l%{arena.join}% " command /arene: permission: varyal cooldown: 20 seconds cooldown message: &cVous ne pouvez pas spammer cette commande. &4&l%remaining time% &crestantes. trigger: if player has metadata value "arena": delete metadata value "arena" of player message "&aVous venez de quitter la file d'attente des Arènes classées." to player play sound "block.note_block.pling" with volume 1.0 to player toggle scoreboard of player off if {sql_arena} is more than 0: remove 1 from {sql_arena} if {arena.join} is more than 0: remove 1 from {arena.join} if {sql_arena.%player%.join} is more than 0: set {sql_arena.%player%.join} to 0 loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &6&l%{arena.join}% " message "&d%player% &ca quitté la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players else: if {sql_arena} is less than 5: add 1 to {sql_arena} add 1 to {arena.join} set {sql_arena.%player%.join} to 1 toggle scoreboard of player on message "&aVous venez de rejoindre la file d'attente des Arènes classées." to player message "&aVous pouvez quitter la file à tout moment avec &e/arena" to player play sound "block.note_block.pling" with volume 1.0 to player set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" set metadata value "arena" of player to true loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &6&l%{arena.join}% " message "&d%player% &aa rejoint la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players else if {sql_arena} is 5: add 1 to {sql_arena} add 1 to {arena.join} set {sql_arena.%player%.join} to 1 toggle scoreboard of player on set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" set metadata value "arena" of player to true loop all players: if loop-player has metadata value "arena": set metadata value "command" of loop-player to true add loop-players to {_pplist::*} add {sql_ratio.%loop-player%} to {_bestplayers::*} set {_palist::*} to sorted {_bestplayers::*} set {score.test} to 0 loop {_palist::*}: if {score.test} = 1: set {score.test} to 0 loop all players: if loop-player has metadata value "arena": if {sql_ratio.%loop-player%} = {_palist::%loop-index%}: make loop-player execute command "/startarena1" set metadata value "launch" of loop-player to true else: set {score.test} to 1 loop all players: if loop-player has metadata value "arena": if {sql_ratio.%loop-player%} = {_palist::%loop-index%}: make loop-player execute command "/startarena2" set metadata value "launch" of loop-player to true else if {sql_arena} is more than 5: add 1 to {temp.arena} add 1 to {sql_arena} add 1 to {arena.join} set {sql_arena.%player%.join} to 1 if {temp.arena} is 1: toggle scoreboard of player on set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" play sound "block.note_block.pling" with volume 1.0 to player set metadata value "arena" of player to true message "&aUne arène est déjà en cours, vous allez être envoyé en" to player message "&apartie quand un deuxième joueur aura joint" to player loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &6&l%{temp.arena}%&f/&4&l2 " message "&d%player% &aa rejoint la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players if {temp.arena} is 2: toggle scoreboard of player on set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" play sound "block.note_block.pling" with volume 1.0 to player set metadata value "arena" of player to true loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &a&l%{temp.arena}%&f/&2&l2 " message "&d%player% &aa rejoint la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players set metadata value "command" of loop-player to true make loop-player execute command "/startarena3"
  13. Okay la commu, vous fatiguez pas, avec mon dev on a finis par réussir. Je met la commande en dessous pour les curieux, et ceux qui voudraient prendre exemple.
  14. Yop, oui non désolé j'avais pas retesté avec le set. Vire les ":" de: set {team.%player%} to 0: En gros fais: set {team.%player%} to 0 Juste après, bon c'est qu'un avis personnel hein, mais une seule commande qui agit en fonction de l'équipe du joueur ne serait pas mieux? Genre /changeteam et si t'es vilain ça te met héros, et vice-versa? Nan parce-que ça je peux le faire aussi
  15. Version de Minecraft : 1.16.5 Version de Skript : Dernière dev Bonjours à tous! Le script demandé est ultra complexe, mon codeur et moi avons séché dessus, et j'en recours ainsi à l'expertise générale pour nous aider. Je demande un script qui permette de classer des joueurs, en fonction d'une variable d'un ratio, dans une variable type "liste" du ratio plus haut au plus bas (Le plus haut ratio en premier, le plus bas en dernier, de façon décroissante) Puis faire en sorte à ce que les joueurs et leur ratio associés, fassent une commande selon leur classement Description du script : * Le script sert à classer les joueurs en fonction de leur ratio de "Puissance" et ainsi, de les envoyer en équipe différente et équilibrer les équipes pour un mode de jeu d'arène classées. * Le script doit faire une seule liste, et faire en sorte que tout les joueurs de cette liste envoie la commande en même temps (Faire un loop de la liste) Ce type de script permet ainsi d'éviter à ce que tout les meilleurs joueurs se retrouvent dans la même équipe, contre les plus faibles. Que les meilleurs soient forcément l'un contre l'autre et ainsi de suite jusqu'aux joueurs n'ayant pas de ratio ou le ratio le plus bas. Cela permet aussi de lancer une arène à un instant T en y envoyant tout les joueurs en attente de l'arène en même temps. Exemple: ======= Loop de la liste ========= Joueur 1: Ratio 5.5 ===> commande entrée /commande 1 (Envoyé en équipe 1) Joueur 2: Ratio 4.3 ===> commande entrée /commande 2 (Envoyé en équipe 2) Joueur 3: Ratio 4.1 ===> commande entrée /commande 1 (Envoyé en équipe 1) Joueur 4: Ratio 3.7 ===> commande entrée /commande 2 (Envoyé en équipe 2) Joueur 5: Ratio 3.2 ===> commande entrée /commande 2 (Envoyé en équipe 2) Joueur 6: Ratio 2.1 ===> commande entrée /commande 1 (Envoyé en équipe 1) ======= Fin de la loop de la liste ========= - J'ai déjà fais le système de file d'attente - J'ai pas besoin des commandes spéciale "commande 1 et 2", je sais les faire - Liste de players de 6 serait bien, modulable si possible - J'ai déjà fais la commande de ratio: (La variable de ratio étant donc "{sql_ratio.%player%}") on quit: set {sql_ratio.%player%} to ({sql_kills.%player%} / {sql_deaths.%player%}) + ({sql_wins.%player%} / {sql_looses.%player%}) Voci la commande de file d'attente et là où j'attend à ce que la loop-check-commande soit intégrée (En fin de code) command /arene: permission: varyal cooldown: 20 seconds cooldown message: &cVous ne pouvez pas spammer cette commande. &4&l%remaining time% &crestantes. trigger: if player has metadata value "arena": delete metadata value "arena" of player message "&aVous venez de quitter la file d'attente des Arènes classées." to player play sound "block.note_block.pling" with volume 1.0 to player toggle scoreboard of player off if {sql_arena} is more than 0: remove 1 from {sql_arena} if {arena.join} is more than 0: remove 1 from {arena.join} if {sql_arena.%player%.join} is more than 0: set {sql_arena.%player%.join} to 0 loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &6&l%{arena.join}% " message "&d%player% &ca quitté la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players else: if {sql_arena} is less than 5: add 1 to {sql_arena} add 1 to {arena.join} set {sql_arena.%player%.join} to 1 toggle scoreboard of player on message "&aVous venez de rejoindre la file d'attente des Arènes classées." to player message "&aVous pouvez quitter la file à tout moment avec &e/arena" to player play sound "block.note_block.pling" with volume 1.0 to player set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" set metadata value "arena" of player to true loop all players: if loop-players has metadata value "arena": set line 1 of loop-player's scoreboard to "&eJoueurs dans la file: &6&l%{arena.join}% " message "&d%player% &aa rejoint la file" to loop-players play sound "block.note_block.pling" with volume 0.5 to loop-players else if {sql_arena} is 5: add 1 to {sql_arena} add 1 to {arena.join} set {sql_arena.%player%.join} to 1 toggle scoreboard of player on set title of player's scoreboard to "&6File d'attente" set line 2 of player's scoreboard to "&eFile d'attente rejoint&f: &c&lArena" set metadata value "arena" of player to true loop all players: if loop-player has metadata value "arena": #Ici entre la variable liste, et fais en sorte que tout les joueurs ayant #fais /arene fassent la commande, par ordre de leur ratio cf plus haut. #Je vous rassure, tout le code plus haut est bon et fonctionnel. #c'est l'intégration d'une variable par ratio de joueurs et commandes par niveau #décroissant du ratio que je sais pas faire. #Tout le reste je suis bon :D Merci à ceux qui pourraient apporter leur expertise. Nous, on a séché après 5 heures de tests en tout genre ^^ (Et pourtant, on s'y connais! :D)
×
×
  • 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.