################################### ## Sous menu alliances et villes ## ################################### # Comprend Grimoire des villes | Votre ville | Grimoire des alliances sousMenuAllianceVille: type: task debug: false script: - define title "<&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&2>Villes et alliances" - define list # Gauche - define list <[list].include[menuIconRetour|scriptGlassPaneGray|sousMenuAllianceVilleGrimoireVille|scriptGlassPaneGray]> # Milieu - if ].read[guilde]> != none: - define list <[list].include[sousMenuAllianceVilleGrimoireVotreVille]> - else: - define list <[list].include[sousMenuAllianceVilleGrimoireSansVille]> # Droite - define allIcon <[list].include[scriptGlassPaneGray|sousMenuAllianceVilleGrimoireAlliance|scriptGlassPaneGray|menuIconFermer]> - define inv - inventory set o:<[allIcon]> d:<[inv]> - inventory open d:<[inv]> sousMenuAllianceVilleGrimoireVille: type: item debug: false material: book display name: <&2>Grimoire des villes lore: - "" - "<&7>Cliquez ici pour accéder" - "<&7>au grimoire des villes" sousMenuAllianceVilleGrimoireVotreVille: type: item debug: false material: iron_hoe display name: <&a>Votre ville lore: - "" - "<&7>Cliquez ici pour accéder au" - "<&7>menu de votre ville." mechanisms: flags: - hide_attributes sousMenuAllianceVilleGrimoireSansVille: type: item debug: false material: barrier display name: <&c>Sans ville lore: - "" - "<&7>Vous n'avez pas de ville, vous" - "<&7>pouvez demander a un maire ou" - "<&7>un adjoint de vous inviter. Vous" - "<&7>pouvez aussi regarder le salon" - "<&7>discord de présentation des villes." sousMenuAllianceVilleGrimoireAlliance: type: item debug: false material: book display name: <&9>Grimoire des alliances lore: - "" - "<&7>Cliquez ici pour accéder" - "<&7>au grimoire des alliances" sousMenuAllianceVilleMenu: type: inventory debug: false title: <&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&2>Villes et alliances size: 9 sousMenuAllianceVilleEventHandler: type: world debug: false events: on player clicks in sousMenuAllianceVilleMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : - case 1: - inventory open d:Tesseract_Core_MenuElysea - case 3: # Si il n'y a pas de ville, on ouvre pas le grimoire - if == 0: - inventory close - narrate format:g-guilde-error "Il n'y a pas de villes." - stop - define typeClassement moyenne - define numeroPage 1 - inject grimoireDesVilles - case 5: - if ].read[guilde]> != none: - inventory open d:GuildSystem_GuildMenu - case 7: # Si il n'y a pas de ville, on ouvre pas le grimoire - if == 0: - inventory close - narrate format:g-alliance-error "Il n'y a pas d'alliances." - stop - inject grimoireAlliance - case 9: - inventory close on player drags in sousMenuAllianceVilleMenu: - determine cancelled ###################################################################################################################### ## _____ ______ ________ ________ ___________ _____ ______ _____ _____ _ _ _____ _ _ _____ _____ # ## | __ \| ___ \_ _| \/ | _ |_ _| ___ \ ___| | _ \ ___/ ___| | | | |_ _| | | | | ___/ ___| # ## | | \/| |_/ / | | | . . | | | | | | | |_/ / |__ | | | | |__ \ `--. | | | | | | | | | | | |__ \ `--. # ## | | __ | / | | | |\/| | | | | | | | /| __| | | | | __| `--. \ | | | | | | | | | | | __| `--. \ # ## | |_\ \| |\ \ _| |_| | | \ \_/ /_| |_| |\ \| |___ | |/ /| |___/\__/ / \ \_/ /_| |_| |____| |____| |___/\__/ / # ## \____/\_| \_|\___/\_| |_/\___/ \___/\_| \_\____/ |___/ \____/\____/ \___/ \___/\_____/\_____/\____/\____/ # ## # ## Le grimoire des alliances utilisent aussi quelques bout du grimoire des villes # ###################################################################################################################### ########################## ## ## ## Villes : menu global ## ## ## ########################## grimoireDesVilles: type: task debug: false script: - if <[typeClassement]> == moyenne: - define listeVille - else: - define listeVille - define listeVilleTaille <[listeVille].size> - if <[numeroPage]> == 1: - define emeraudeId 04049c90-d3e9-4621-9caf-0000aaa15081 - define emeraudeTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNGY0MjEwOGI5ZGIzOTdlMzQxNmE1YjEyN2I5Njg0YjdkODM0MTViMjllMDg0YjYxNDQ3NTZjMGM3N2E0MzIifX19 - define emeraude player_head[display_name=<&2>Émeraude;skull_skin=<[emeraudeId]>|<[emeraudeTag]>] - define diamantId 04049c90-d3e9-4621-9caf-00000aaa8219 - define diamantTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvY2U5YzIzZTIzYmQwNDFjYmNmNDIxYzczNmEzMTdkNDNmNTFiMzQ0YjExNTQ4NDYyODI4ZjJlODJmYWE0NWQifX19 - define diamant player_head[display_name=<&b>Diamant;skull_skin=<[diamantId]>|<[diamantTag]>] - define orId 04049c90-d3e9-4621-9caf-00000aaa8221 - define orTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNTc1MWIyYzMxMWFjZDQ4ZTA2ZjcxNTA4YzY4NzM1ZmU5ZjNhNGY0ZDc1YjllZjFhMjRmYTEzMzNkNzcifX19 - define or player_head[display_name=<&e>Or;skull_skin=<[orId]>|<[orTag]>] - define argentId 04049c90-d3e9-4621-9caf-00000aaa8222 - define argentTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvNWJjMTljMTAzYTNmYTkzMTk2MTM5ZWNiMDFlZmE4MDU2MWUyY2JmNWQxZGIwZjI1YmViMTgzZDIxNDhlMDMyIn19fQ== - define argent player_head[display_name=<&f>Argent;skull_skin=<[argentId]>|<[argentTag]>] - define bronzeId 04049c90-d3e9-4621-9caf-00000aaa8217 - define bronzeTag eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvOWZhZmMzOTBmOTc0MmNiYjZhMWQyYjYyYWFhMTU0Y2RiMjI2ODU5ZWE3NjY1MGI3Y2IyZmNjNDE1OTRmMyJ9fX0= - define bronze player_head[display_name=<&6>Bronze;skull_skin=<[bronzeId]>|<[bronzeTag]>] - if <[listeVilleTaille]> >= 1: - define nomVilleEmeraude <[listeVille].get[1]> - define banniereEmeraude ].read[banniere]> - define ville <[nomVilleEmeraude]> - inject grimoireDesVillesInfoInjection - if <[banniereEmeraude].contains[pattern]>: - define patterns <[banniereEmeraude].patterns> - define iconeEmeraude <[banniereEmeraude].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeEmeraude <[banniereEmeraude]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeEmeraude air - if <[listeVilleTaille]> >= 2: - define nomVilleDiamant <[listeVille].get[2]> - define banniereDiamant ].read[banniere]> - define ville <[nom_ville_diamant]> - inject grimoireDesVillesInfoInjection - if <[banniereDiamant].contains[pattern]>: - define patterns <[banniereDiamant].patterns> - define iconeDiamant <[banniereDiamant].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeDiamant <[banniereDiamant]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeDiamant air - if <[listeVilleTaille]> >= 3: - define nomVilleOr <[listeVille].get[3]> - define banniereOr ].read[banniere]> - define ville <[nomVilleOr]> - inject grimoireDesVillesInfoInjection - if <[banniereOr].contains[pattern]>: - define patterns <[banniereOr].patterns> - define iconeOr <[banniereOr].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeOr <[banniereOr]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeOr air - if <[listeVilleTaille]> >= 4: - define nomVilleArgent <[listeVille].get[4]> - define banniereArgent ].read[banniere]> - define ville <[nomVilleArgent]> - inject grimoireDesVillesInfoInjection - if <[banniereArgent].contains[pattern]>: - define patterns <[banniereArgent].patterns> - define iconeArgent <[banniereArgent].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeArgent <[banniereArgent]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeArgent air - if <[listeVilleTaille]> >= 5: - define nomVilleBronze <[listeVille].get[5]> - define banniereBronze ].read[banniere]> - define ville <[nom_ville_bronze]> - inject grimoireDesVillesInfoInjection - if <[banniereArgent].contains[pattern]>: - define patterns <[banniereBronze].patterns> - define iconeBronze <[banniereBronze].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeBronze <[banniereBronze]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define iconeBronze air - define ligne1 <[emeraude]>|scriptGlassPaneGray|<[diamant]>|scriptGlassPaneGray|<[or]>|scriptGlassPaneGray|<[argent]>|scriptGlassPaneGray|<[bronze]> - define ligne2 <[iconeEmeraude]>|itemScript_glassPane_yellow|<[iconeDiamant]>|itemScript_glassPane_lime|<[iconeOr]>|itemScript_glassPane_lightBlue|<[iconeArgent]>|itemScript_glassPane_orange|<[iconeBronze]> - define ligne3 scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray - define listIcone # Cas ou y a strictement plus de 5 villes - if <[listeVilleTaille]> > 5: # Vu qu'on ajoute l'air on compte le 6 to 23 # On prend la liste, mais avec des get, on prend les 18 suivantes - define list6to23 <[listeVille].get[6].to[23]> # Boucle - foreach <[list6to23]>: # Définition de la ville en question - define ville <[value]> - inject grimoireDesVillesInfoInjection # Définition de la bannière - define banniere ].read[banniere]> - if <[banniere].contains[pattern]>: - define patterns <[banniere].patterns> - define icone <[banniere].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define icone <[banniere]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/1|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - define listIcone <[listIcone].include[<[icone]>]> # On prend la taille de la liste -6 et inverser - define nbCalcAir ]> - repeat <[nbCalcAir]>: - define listIcone <[listIcone].include[air]> # On retire le li@ devant - define listIcone <[listIcone].after[]> # Si on a 5 ou moins de ville - if <[listeVilleTaille]> <= 5: - repeat 18: - define listIcone <[listIcone].include[air]> # On retire le li@ devant - define listIcone <[listIcone].after[]> # Principalement, on doit enregistrer la page sur lequel est le joueur pour faire en fonction ou pas - define lastBar1 menuIconRetour - define lastBar4 "paper[display_name=Page précédente;nbt=numeroPage/1|typeClassement/<[typeClassement]>;lore=|<&e>Vous êtes à la première page.]" # Icone du milieu - if <[typeClassement]> == <[moyenne]>: - define lastBar5 "purple_dye[nbt=typeClassement/<[typeClassement]>|numeroPage/1;display_name=<&2>Classé par moyenne;lore=|<&7>Cliquez ici pour classer|<&7>les villes par notes|<&7>d'architecture]" - else: - define lastBar5 "pink_dye[nbt=typeClassement/<[typeClassement]>|numeroPage/1;display_name=<&5>Classé par architecture;lore=|<&7>Cliquez ici pour classer|<&7>les villes par notes|<&7>moyenne]" # Si le nombre de ville est supérieur ou égal à 23 - if <[listeVille]> > 23: - define lastBar6 "paper[nbt=typeClassement/<[typeClassement]>;display_name=Page suivante;nbt=numeroPage/1;lore=|<&e>Cliquez ici pour aller|<&e>à la page 2.]" # Sinon, on indique dernière page - else: - define lastBar6 "paper[display_name=Page suivante;nbt=numeroPage/1|typeClassement/<[typeClassement]>;lore=|<&e>Vous êtes à la dernière page.]" - define lastBar9 menuIconFermer - define lastBarFull <[lastBar1]>|scriptGlassPaneGray|scriptGlassPaneGray|<[lastBar4]>|<[lastBar5]>|<[lastBar6]>|scriptGlassPaneGray|scriptGlassPaneGray|<[lastBar9]> - define allIcon <[ligne1]>|<[ligne2]>|<[ligne3]>|<[listIcone]>|<[lastBarFull]> - else: - define numeroPage <[numeroPage]> - define baseFirst 24 - define baseLast 68 # Pour la deuxième page - if <[numeroPage]> == 2: - define first <[baseFirst]> - define last <[baseLast]> # Pour la troisième page et + - else: - define mulPageFirst <[numeroPage].*[45]> - define mulPageLast <[numeroPage].*[45]> - define first <[baseFirst].+[<[mulPageFirst]>]> - define last <[baseLast].+[<[mulPageLast]>]> - define listIcone - define nouvelleListe <[listeVille].get[<[first]>].to[<[last]>]> - define nouvelleListeTaille <[nouvelleListe].size> - foreach <[nouvelleListe]>: - define ville <[value]> # On récupère toutes les info qu'on défini - inject grimoireDesVillesInfoInjection - define banniere ].read[banniere]> - if <[banniere].contains[pattern]>: - define patterns <[<[banniere].patterns>]> - define icone <[banniere].material.item>[flags=HIDE_POTION_EFFECTS;patterns=<[patterns]>;nbt=ville/<[ville]>|numeroPage/<[numeroPage]>|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - else: - define icone <[banniere]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>|numeroPage/<[numeroPage]>|typeClassement/<[typeClassement]>;display_name=<[display]>;lore=<[lore]>] - define listIcone <[listIcone].include[<[icone]>]> # On calcule le nombre restant de case vide (nb de case à remplir : 45) - define nbAirRestant ]> - foreach <[nbAirRestant]>: - define listIcone <[listIcone].include[<[icone]>]> - define lastBar1 menuIconRetour - define lastBar4 "paper[display_name=Page précédente;nbt=numeroPage/<[numeroPage]>|typeClassement/<[typeClassement]>;lore=|<&e>Cliquez ici pour aller|<&e>à la page <[numeroPage].-[1]>.]" # Icone du milieu - if <[typeClassement]> == moyenne: - define lastBar5 "purple_dye[nbt=typeClassement/<[typeClassement]>|numeroPage/<[numeroPage]>;display_name=<&2>Classé par moyenne;lore=|<&7>Cliquez ici pour classer|<&7>les villes par notes|<&7>d'architecture]" - else: - define lastBar5 "pink_dye[nbt=typeClassement/<[typeClassement]>|numeroPage/<[numeroPage]>;display_name=<&5>Classé par architecture;lore=|<&7>Cliquez ici pour classer|<&7>les villes par notes|<&7>moyenne]" # Si le nombre de ville est supérieur ou égal au nombre possible - if <[listeVille].is[MORE].than[<[last]>]>: - define lastBar6 "paper[display_name=Page suivante;nbt=numeroPage/<[numeroPage]>|typeClassement/<[typeClassement]>;lore=|<&e>Cliquez ici pour aller|<&e>à la page <[numeroPage].+[1]>.]" # Sinon, on indique dernière page - else: - define lastBar6 "paper[display_name=Page suivante;nbt=numeroPage/<[numeroPage]>|typeClassement/<[typeClassement]>;lore=|<&e>Vous êtes à la dernière page.]" - define lastBar9 menuIconFermer - define lastBarFull <[lastBar1]>|scriptGlassPaneGray|scriptGlassPaneGray|<[lastBar4]>|<[lastBar5]>|<[lastBar6]>|scriptGlassPaneGray|scriptGlassPaneGray|<[lastBar9]> - define allIcon <[listIcone]>|<[lastBarFull]> # - flag server test_yolo:! # - foreach <[allIcon].as_list>: # - flag server test_yolo:->:<[value]> # - announce "Ajout terminé" # Ouverture du menu - define inv - inventory set o:<[allIcon]> d:<[inv]> - inventory open d:<[inv]> # TestInvOpen: # type: task # debug: false # script: # - define inv # - inventory set o:]> d:<[inv]> # - inventory open d:<[inv]> grimoireDesVillesMenu: type: inventory debug: false title: <&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&2>Grimoire des villes size: 54 # Il faut définir la ville en temps que "ville" pour que cela fonctionne ].read[]> grimoireDesVillesInfoInjection: type: task debug: false script: - define nomVille ].read[nomGuilde]> - define citoyenEnLigne _onlineMembers].size||0> - define citoyenTotal ].read[membres].size> - define territoire ].read[territoires].size> - define alliance ].read[alliance]> - define nomAlliance ].read[nomAlliance]||none> - define dateCreation ].read[dateCreation]> - define compteCommercial ].read[banqueCommerceLys]> - define nbShop ]> - define nbParcelleLibre ].read[nb_parcelle_type_libre_disponible]> - define description ].read[description]> - define spawnVisiteurActif ].read[spawnVisiteurActif]> - define noteEco ].read[note.economie]> - define noteInfra ].read[note.infrastructure]> - define noteArchi ].read[note.architecture]> - define moyenne ].read[note.moyenne]> - define maire ].read[maitreGuilde]> - define nomMaire <[maire].name> - if <[alliance]> == none: - define display <&2><[nomVille]> - else: - define display <&2><[nomVille]><&sp><&8>(<&9>].read[nomAlliance]><&8>) # Insertion de l'info alliance ici - define loreLigne0 "<&a><>><&3> Citoyens en ligne/total <&8>: <&a><[citoyenEnLigne]><&7>/<&c><[citoyenTotal]>" - define loreLigne1 "<&a><>><&3> Maire <&8>: <&7><[nomMaire]>" - define loreLigne2 "<&a><>><&3> Crée le <&8>: <&7><[dateCreation]>" - define loreLigne3 "<&a><>><&3> Annexion <&8>: <&7><[territoire]>" - define loreLigne4 "<&a><>><&3> Shop de ville <&8>: <&7><[nbShop]> <&8>(<&7><[compteCommercial]> Lys<&8>)" - define loreLigne5 "<&a><>><&3> Parcelle libre <&8>: <&7><[nbParcelleLibre]>" - define colorDescription <&f><[description]> - define loreLigne6 ].pass[|].fail[||<[colorDescription].split_lines_by_width[180].lines_to_colored_list..insert[<&sp>].at[1]>|]> - define loreLigne7 "<&2>-*- <&a>Notation <&2>-*-" - define loreLigne8 "<&5>→ <&a>Économie <&8>: <&7><[noteEco]>/10" - define loreLigne9 "<&5>→ <&a>Infrastructure <&8>: <&7><[noteInfra]>/10" - define loreLigne10 "<&5>→ <&a>Architecture <&8>: <&7><[noteArchi]>/10" - define loreLigne11 "<&2>Moyenne <&8>: <&7><[moyenne]>/10" - define loreLigne12 "<&3>Visite <&8>: ].pass[<&a>ouvert].fail[<&c>fermé]>" - define loreLigne13 "].pass[<&7>Cliquez ici pour vous téléporter ou|<&7>obtenir plus d'information sur <[nomVille]>.].fail[<&7>Cliquez ici pour obtenir plus|<&7>d'information sur <[nomVille]>.]>" - define lore |<[loreLigne0]>|<[loreLigne1]>|<[loreLigne2]>|<[loreLigne3]>|<[loreLigne4]>|<[loreLigne5]><[loreLigne6]>|<[loreLigne7]>|<[loreLigne8]>|<[loreLigne9]>|<[loreLigne10]>|<[loreLigne11]>||<[loreLigne12]>||<[loreLigne13]> grimoireDesVillesEventHandler: type: world debug: false events: on player clicks in grimoireDesVillesMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : # Possibilités de non bannière - case 1 2 3 4 5 6 7 8 9 11 13 15 17 19 20 21 22 23 24 25 26 27: - if : - define ville - define numeroPage - define typeClassement - define typeRetour ville - inject grimoireDesVillesSousMenu # La ou on est sûr que c'est une bannière - case 10 12 14 16 18 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45: - define ville - define numeroPage - define typeClassement - define typeRetour ville - inject grimoireDesVillesSousMenu # Retour - case 46: - inject sousMenuAllianceVille # Page précédente - case 49: # Définition de la page - define numeroPage - define typeClassement # Page précédente, on active l'icone uniquement si le joueur n'est pas à la page - if <[numeroPage]> != 1: # Si il est à la page 2 on reload le menu - if <[numeroPage]> == 2: - define numeroPage 1 - inject grimoireDesVilles # Autre, si le joueur est à la page 3 ou + - else if <[numeroPage]> >= 3: - define numeroPage <[numeroPage].-[1]> - inject grimoireDesVilles # Icone permettant de changer entre classement par moyenne ou architecture - case 50: - define typeClassement - define numeroPage # Si c'est actuellement classé par moyenne, on change en archi :on reload le menu - if <[typeClassement]> == moyenne: - define typeClassement architecture - inject grimoireDesVilles # Sinon c'est que le classement est effectué par architecture et on a juste à reload le menu - else: - define typeClassement moyenne - inject grimoireDesVilles # Page suivante (On tourne si on a un multiple ou un truc du genre). - case 51: # Définition du nombre de ville sur le serveur - define nbVille # Définition de la page actuelle du joueur (dans le nbt injecté de l'icone) - define numeroPage - define typeClassement # Si c'est actuellement la page 1, on vérifie si les icones sont strictement supérieure au nombre de 23 - if <[numeroPage]> == 1: - if <[nbVille]> > 23: - define numeroPage 2 - inject grimoireDesVilles # Si la page actuelle est la deuxième - else if <[numeroPage]> == 2: - if <[nbVille]> > 68: - define numeroPage 3 - inject grimoireDesVilles # Else si c'est 3 et plus - else: - define calcPage1 <[numeroPage].*[45]> - define calcPage2 ]> - if <[nbVille]> > <[calcPage2]>: - define numeroPage <[numeroPage].+[1]> - inject grimoireDesVilles # Fermer - case 54: - inventory close on player drags in grimoireDesVillesMenu: - determine passively ####################################################################################### ## ## ## Sous menu qui s'ouvre quand on clic sur une bannière d'une ville dans le grimoire ## ## ## ####################################################################################### grimoireDesVillesSousMenu: type: task debug: false script: - define title "<&sp><&sp><&sp><&sp><&sp><&sp><&8>Information de la ville" # Fin de la sélection du précédent menu - define nomVille ].read[nomGuilde]> - define spawn_visiteur ].read[spawnVisiteurActif]> - define alliance ].read[alliance]> # On ajoute le nbt "type" pour déterminer dans quel menu il doit revenir - define slot1 menuIconRetour[nbt=type/<[typeRetour]>|typeClassement/<[typeClassement]>|alliance/<[alliance]>|numeroPage/<[numeroPage]>] - define slot3 "paper[nbt=type/<[typeRetour]>|ville/<[ville]>|typeClassement/<[typeClassement]>|numeroPage/<[numeroPage]>;display_name=<&f>Citoyens;lore=|<&7>Cliquez ici pour afficher|<&7>les citoyens de <[nomVille]>]" - if <[spawnVisiteur]> == oui: - define cout - define slot5 "emerald[nbt=ville/<[ville]>;display_name=<&5>Téléportation;lore=|<&7>Cliquez ici pour vous|<&7>téléporter à <[nomVille]>||<&7>Coût <&8>: <&e><[cout]> <&7>Lys]" - else: - define slot5 "barrier[nbt=ville/<[ville]>;display_name=<&5>Téléportation;lore=|<&7>Vous ne pouvez pas vous téléporter|<&7>à <[nomVille]> car cette ville a fermé|<&7>les visites.]" - if <[alliance]> == none: - define slot7 "barrier[nbt=ville/<[ville]>;display_name=<&2>Alliance;lore=|<&7>La ville <[nomVille]> n'est pas|<&7>dans une alliance.]" - else: - inject grimoireInfoBanniereAlliance - define nomAlliance ].read[nomAlliance]> - define lore <[loreA0]>|<[loreA1]>|<[loreA2]>|<[loreA3]>|<[loreA4]> - define slot7 "].read[banniere]>[flags=HIDE_POTION_EFFECTS;display_name=<&b>Alliance <&8>(<&9><[nomAlliance]><&8>);lore=|<[lore]>]" - define slot9 menuIconFermer - define fullList <[slot1]>|scriptGlassPaneGray|<[slot3]>|scriptGlassPaneGray|<[slot5]>|scriptGlassPaneGray|<[slot7]>|scriptGlassPaneGray|<[slot9]> - define inv - inventory set o:<[fullList]> d:<[inv]> - inventory open d:<[inv]> # Besoin d'avoir la définition "alliance" de défini grimoireInfoBanniereAlliance: type: task debug: false script: - define loreA0 "<&a><>><&3> Ville dirigeante <&8>: <&7>].read[guildeDirigeante]>].read[nomGuilde]>" - define loreA1 "<&a><>><&3> Membres en ligne/total <&8>: <&a>_AonlineMembers].size||0><&7>/<&c>_AofflineTotalNumber].round>" - define loreA2 "<&a><>><&3> Nombre de villes <&8>: <&7>].read[guildes].size>" - define loreA3 "<&a><>><&3> Crée le <&8>: <&7>].read[dateCreation]>" - if ].read[description]> == none: - define loreA4 | - else: - define colorDescription <&f>].read[description]> - define loreA4 |<[colorDescription].split_lines_by_width[180].lines_to_colored_list.insert[<&sp>].at[1]>|| grimoireDesVillesSousMenuMenu: type: inventory debug: false title: <&sp><&sp><&sp><&sp><&sp><&sp><&8>Information de la ville size: 9 grimoireDesVillesSousMenuEventHandler: type: world debug: false events: on player clicks in grimoireDesVillesSousMenuMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : - case 1: # Pour le bouton retour, on défini le nbt "type" qui indique si on doit revenir au menu de ville ou d'alliance - define type # Si il vient du grimoire des villes - if <[type]> == <[ville]>: - define numeroPage - define typeClassement - inject grimoireDesVilles # Si il vient du grimoire d'alliance - else: - define alliance - inject grimoireAffichageVilleAlliance def:<[alliance]> # Ouverture des citoyens de la ville - case 3: - define type - define ville - define typeClassement - define numeroPage - inject villeJoueurMenu - case 5: - define ville - define nomVille ].read[nomGuilde]> - define spawn_visiteur_loc ].read[spawnVisiteur]> - define spawnVisiteurActif ].read[spawnVisiteurActif]> - if <[spawnVisiteurActif]> == Non: - stop # Si c'est sa propre ville, on le tp a son foyer - define villeJoueur ].read[guilde]> - if <[villeJoueur]> == <[ville]>: - define foyer ].read[foyer]> - inject Gestion_Sort_et_Delai_Teleportation_Task - teleport <[foyer]> - narrate format:g-guilde "Vous vous êtes téléporté au foyer de votre ville." - stop - else: - define cout # Si l'argent du joueur est inférieure à la somme requise - if < <[cout]> - if ]>: - narrate format:g-guilde-error "Vous n'avez pas les <[cout]> Lys requis pour vous téléporter à cette ville. Cependant votre boussole pointe désormais vers cette ville pour y aller en volant." - compass <[spawn_visiteur_loc]> - stop - inventory close - inject Gestion_Sort_et_Delai_Teleportation_Task - teleport <[spawn_visiteur_loc]> - take money quantity:<[cout]> - narrate format:g-guilde "Vous vous êtes téléporté au spawn visiteur de <[nomVille]>." - case 9: - inventory close on player drags in grimoireDesVillesSousMenuMenu: - determine cancelled ################################################### ## ## ## Sous menu - Affichage des membres d'une ville ## ## ## ################################################### villeJoueurMenu: type: task debug: false script: - define title " <&3>Citoyens" # Définition du nombre de citoyens de la ville - define nombre_citoyen ].read[membres].size> # Définition du nombre de case vide et du nombre restant de bloc d'air - define nbAir ]> # Création d'une liste vide pour insérer le rang, en utilisant le key/value - define listeRang # Pour tout les membres de la ville - foreach ].read[membres]>: # On défini le joueur avec p - define joueurP <[value]> # On défini le joueur sans p - define joueurUuid <[value].uuid> # On load le fichier joueur - yaml load:/joueurs/<[joueurUuid]>.yml id:<[joueurUuid]> # Définition du rang du joueur en question dans la ville - define rang ].read[rang].round> # Insertion dans la liste - define listeRang:->:<[rang]>/<[joueurUuid]> # On classe la liste des rang de 4 à 1 - define joueurClassedRang <[listeRang].numerical.reverse> # Définition d'une liste vide pour l'ouvrir à la fin - define listIcon # Pour tout les joueurs de la liste classé - foreach <[joueurClassedRang]>: # Définition du joueur et du rang - define joueurUuid <[value].split[/].get[2]> - define rang <[value].split[/].get[1]> - define joueurP <[joueurUuid].as_player> - define pseudo <[joueurP].name> - define genre ].read[genre]||false> - choose <[genre]>: - case Masculin: - define genre_affichage <&6><&chr[2642]><&sp> - case Féminin: - define genre_affichage <&6><&chr[2640]><&sp> - case "Non renseigné": - define genre_affichage - case Default: - define genre_affichage # Si le joueur ne contient pas de skinBlob car le skinblob a été ajouté plus tard et est désormais automatique pour chaque joueur qui se connecte - if ].contains[skinBlob].not>: - define skull ef7f0e94-bd68-4938-a8e4-f6c99f97cf02|eyJ0ZXh0dXJlcyI6eyJTS0lOIjp7InVybCI6Imh0dHA6Ly90ZXh0dXJlcy5taW5lY3JhZnQubmV0L3RleHR1cmUvODlhOTk1OTI4MDkwZDg0MmQ0YWZkYjIyOTZmZmUyNGYyZTk0NDI3MjIwNWNlYmE4NDhlZTQwNDZlMDFmMzE2OCJ9fX0= # Si le joueur a le skinblob - else: - define skull <[joueurUuid]>|].read[skinblob].split[;].get[1]> - define item player_head[display_name=<[genre_affichage]><&3><[pseudo]>;lore=|<[joueurP]>|<[rang]>|<[ville]>]>;skull_skin=<[skull]>] - define listIcon <[listIcon].include[<[item]>]> # Pour le nombre d'air restant - repeat <[nbAir]>: - define listIcon <[listIcon].include[air]> - define lastBar menuIconRetour[nbt=type/<[type]>|ville/<[ville]>|typeClassement/<[typeClassement]>|numeroPage/<[numeroPage]>]|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|menuIconFermer - define listFinal <[listIcon].include[<[lastBar]>]> # Unload du fichier pour les joueurs qui ne sont pas en ligne - foreach ].read[membres]>: - define citoyen <[value]> - define citoyenUuid <[value].uuid> - if <[citoyen].is_online.not>: - yaml unload id:<[citoyenUuid]> - define inv - inventory set o:<[listFinal]> d:<[inv]> - inventory open d:<[inv]> villeInfoJoueurMenu: type: procedure debug: false definitions: joueurUuid|joueurP|rang|ville script: - if <[joueurP].is_online>: - define info1 "<&a>En ligne|" - else: - define info1 "<&c>Hors ligne||<&3>Dernière connexion <&8>:|<&a><>><&sp><&7>].read[deconnexion]>" - choose <[rang]>: - case 1: - define infoRang Citoyen - case 2: - define infoRang Bâtisseur - case 3: - define infoRang Adjoint - case 4: - define infoRang Maire - define info2 "<&3>Rang <&8><&co>|<&a><>><&sp><&7><[infoRang]>" - define info3 "<&3>Citoyen depuis le <&8><&co>|<&a><>><&sp><&7>].read[joinDate]>" - define base <[info1]>|<[info2]>|<[info3]> - determine <[base]> villeJoueurMenuMenu: type: inventory debug: false title: " <&3>Citoyens" size: 54 villeJoueurMenuEventHandler: type: world debug: false events: on player clicks in villeJoueurMenuMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : - case 46: - define type - define ville - define typeClassement - define numeroPage - inject grimoireDesVillesSousMenu - case 54: - inventory close on player drags in villeJoueurMenuMenu: - determine cancelled ################################### ## ## ## Commande de notation de ville ## ## ## ################################### grimoireDesVillesCommandClassement: type: command debug: false name: classementville description: Commande permettant de classer les villes du serveur usage: /classementville <<>nom_de_la_ville<>> <<>note_de_0_à_10<>> permission: dcommand.admin.classementville script: - if !>: - stop - choose : - case false: - inject grimoireDesVillesCommandClassementInfo - case help: - inject grimoireDesVillesCommandClassementInfo - case aide: - inject grimoireDesVillesCommandClassementInfo - case set: # Nom de la ville - define nomVille - if ].not>: - narrate format:g-guilde-error "Cette ville n'existe pas." - stop - define noteEco - if <[noteEco]> == false: - narrate format:g-guilde-error "Note d'économie : Vous devez indiquer une valeur." - stop - if : - narrate format:g-guilde-error "Vous devez utiliser un point à la place de la virgule." - stop - if : - narrate format:g-guilde-error "Ceci n'est pas un nombre valide." - stop - define noteInfra - if <[noteInfra]> == false: - narrate format:g-guilde-error "Note d'infrastructure : Vous devez indiquer une valeur." - stop - if : - narrate format:g-guilde-error "Vous devez utiliser un point à la place de la virgule." - stop - if : - narrate format:g-guilde-error "Ceci n'est pas un nombre valide." - stop - define noteArchi - if <[noteArchi]> == false: - narrate format:g-guilde-error "Note d'architecture : Vous devez indiquer une valeur." - stop - if : - narrate format:g-guilde-error "Vous devez utiliser un point à la place de la virgule." - stop - if : - narrate format:g-guilde-error "Ceci n'est pas un nombre valide." - stop - define moyenne <[noteEco].+[<[noteInfra]>].+[<[noteArchi]>].div[3].round_to[2]> # Définition du nom de la ville via le fichier "nom_ville_alliance" - define villeId ]> - yaml id:<[villeId]> set note.economie:<[noteEco]> - yaml id:<[villeId]> set note.infrastructure:<[noteInfra]> - yaml id:<[villeId]> set note.architecture:<[noteArchi]> - yaml id:<[villeId]> set note.moyenne:<[moyenne]> - yaml savefile:/guildes/<[villeId]>.yml id:<[villeId]> - define ligne1 "<&2>* -------------------------------------- *" - define ligne2 "<&a>Résumé de la notation de <&2><[nomVille]>" - define ligne3 - define ligne4 "<&8>- <&7>Économie : <[noteEco]>/10" - define ligne5 "<&8>- <&7>Infrastructure : <[noteInfra]>/10" - define ligne6 "<&8>- <&7>Architecture : <[noteArchi]>/10" - define ligne7 - define ligne8 "<&8>- <&7>Moyenne : <[moyenne]>/10" - define ligne9 "<&2>* -------------------------------------- *" - narrate <[ligne1]><&nl><[ligne2]><&nl><[ligne3]><&nl><[ligne4]><&nl><[ligne5]><&nl><[ligne6]><&nl><[ligne7]><&nl><[ligne8]><&nl><[ligne9]> # On calcule avec une commande spécifique car on va pas recalculer la liste à chaque fois qu'une ville est noté. - case calcul: # Liste vide (préparation) - define list_ville # On supprime l'entrée du fichier - yaml id:classement_ville set classement:! # Pour toutes les villes du serveur - foreach : - define ville <[value].before[.yml]> - define moyenne ].read[note.moyenne]> - define list_ville <[list_ville].include[<[moyenne]>/<[ville]>]> # Classement - define list_classement <[list_ville].alphanumeric.get_sub_items[2]> # Écriture dans le yaml - foreach <[list_classement]>: - define ville_class <[value]> - yaml id:classement_ville set classement:->:<[ville_class]> # Classement architecture - define list_archi # Suppression de l'entrée archi - yaml id:classement_ville set classement_architecture:! # Pour toutes les villes du serveur - foreach : - define ville <[value].before[.yml]> - define noteArchi ].read[note.architecture]> - define list_archi <[list_archi].include[<[noteArchi]>/<[ville]>]> # Classement - define list_classement_archi <[list_archi].alphanumeric.get_sub_items[2]> # Écriture dans le yaml - foreach <[list_classement_archi]>: - define ville_class_archi <[value]> - yaml id:classement_ville set classement_architecture:->:<[ville_class_archi]> # Sauvegarde - yaml savefile:classement_ville.yml id:classement_ville - narrate format:g-guilde "Les villes ont été classés." grimoireDesVillesCommandClassementInfo: type: task debug: false script: - define ligne1 "<&4>---- <&c>Commandes de classement des villes <&4>----" - define ligne2 "<&7>Les notes vont de 0 à 10" - define ligne3 "<&7>/classement_ville set {nom_de_la_ville} {note_économie} {note_infrastructure} {note_architecture}" - define ligne4 "<&7>/classement_ville calcul : Permet de recréer une nouvelle liste. La commande doit être effectué après toutes les notations." - define ligne5 <&4>---------------------------------------- - narrate <[ligne1]><&nl><[ligne2]><&nl><[ligne3]><&nl><[ligne4]><&nl><[ligne5]> grimoireDesVillesStartEvent: type: world debug: false events: on server start: # Si le serveur n'a pas le fichier, on le crée - wait 1t - if : - yaml create id:classement_ville # On dois save avant de le load - yaml savefile:classement_ville.yml id:classement_ville # Load après vérification est nécessaire - yaml load:classement_ville.yml id:classement_ville # Si le serveur a le fichier - if != 0: # On établie un classement à 0 - foreach : - define ville <[value].before[.yml]> - yaml id:classement_ville set classement:->:<[ville]> - yaml id:classement_ville set classement_architecture:->:<[ville]> - yaml savefile:classement_ville.yml id:classement_ville # Load nécessaire - yaml load:classement_ville.yml id:classement_ville ########################################################################### ## ## ## Task permettant l'ajout d'une ville dans la liste lors de la création ## ## ## ########################################################################### # Injecté depuis Tesseract_Guilde # La ville doit être défini en "ville" grimoireTaskAjoutVilleCreation: type: task debug: false script: - yaml id:classement_ville set classement:->:<[ville]> - yaml id:classement_ville set classement_architecture:->:<[ville]> - yaml savefile:classement_ville.yml id:classement_ville ############################################################################### ## ## ## Task permettant de retirer une ville dans la liste lors de la suppression ## ## ## ############################################################################### # Injecté depuis Tesseract_Guilde # La ville doit être défini en "ville" grimoireTaskAjoutVilleSuppression: type: task debug: false script: - yaml id:classement_ville set classement:<-:<[ville]> - yaml id:classement_ville set classement_architecture:<-:<[ville]> - yaml savefile:classement_ville.yml id:classement_ville ########################################################################################################################################## ## _____ ______ ________ ________ ___________ _____ ______ _____ _____ ___ _ _ _____ ___ _ _ _____ _____ _____ # ## | __ \| ___ \_ _| \/ | _ |_ _| ___ \ ___| | _ \ ___/ ___| / _ \ | | | | |_ _|/ _ \ | \ | / __ \| ___/ ___| # ## | | \/| |_/ / | | | . . | | | | | | | |_/ / |__ | | | | |__ \ `--. / /_\ \| | | | | | / /_\ \| \| | / \/| |__ \ `--. # ## | | __ | / | | | |\/| | | | | | | | /| __| | | | | __| `--. \ | _ || | | | | | | _ || . ` | | | __| `--. \ # ## | |_\ \| |\ \ _| |_| | | \ \_/ /_| |_| |\ \| |___ | |/ /| |___/\__/ / | | | || |____| |_____| |_| | | || |\ | \__/\| |___/\__/ / # ## \____/\_| \_|\___/\_| |_/\___/ \___/\_| \_\____/ |___/ \____/\____/ \_| |_/\_____/\_____/\___/\_| |_/\_| \_/\____/\____/\____/ # ## # ########################################################################################################################################## ######################################## ## ## ## Affichage des alliances du serveur ## ## ## ######################################## grimoireAlliance: type: task debug: false script: # Définition d'une liste vide pour include les éléments - define listAlliance - define nombreAlliance - define nbAir 45 - define caseAirRestant <[nbAir].sub[<[nombreAlliance]>]> - foreach : - define alliance <[value].before[.yml]> - define nomAlliance ].read[nomAlliance]> # Injection du loreA1 à loreA5 sans la description en bas, le lore_a6 doit être collé au loreA5 car les retour à la ligne sont intégré dans le loreA5 - inject grimoireInfoBanniereAlliance - define loreA5 "<&7>Cliquez ici pour afficher les|<&7>villes de l'alliance <[nomAlliance]>" - define lore |<[loreA0]>|<[loreA1]>|<[loreA2]>|<[loreA3]>|<[loreA4]><[loreA5]> - define banniere ].read[banniere]> - if <[banniere].contains[patterns]>: - define patterns <[banniere].patterns> - define slot <[banniere].material.item>[flags=HIDE_POTION_EFFECTS;display_name=<&9><[nomAlliance]>;lore=<[lore]>;nbt=alliance/<[alliance]>;patterns=<[patterns]>] - else: - define slot <[banniere]>[flags=HIDE_POTION_EFFECTS;display_name=<&9><[nomAlliance]>;lore=<[lore]>;nbt=alliance/<[alliance]>] - define listAlliance <[listAlliance].include[<[slot]>]> - if <[caseAirRestant]> != 0: - repeat <[caseAirRestant]>: - define listAlliance <[listAlliance].include[air]> - define lastBar menuIconRetour|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|menuIconRetour - define listAlliance <[listAlliance].include[<[lastBar]>]> - define inv - inventory set o:<[listAlliance]> d:<[inv]> - inventory open d:<[inv]> grimoireAllianceMenu: type: inventory debug: false title: "<&sp><&sp><&sp><&sp><&sp><&sp><&9>Grimoire des alliances" size: 54 grimoireAllianceEventHandler: type: world debug: false events: on player clicks in grimoireAllianceMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : - case 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45: - define alliance - inject grimoireAffichageVilleAlliance def:<[alliance]> - case 46: - inject sousMenuAllianceVille - case 54: - inventory close on player drags in grimoireAllianceMenu: - determine cancelled ######################################## ## ## ## Affichage des villes de l'alliance ## ## ## ######################################## grimoireAffichageVilleAlliance: type: task debug: false definitions: alliance script: - define nomAlliance ].read[nomAlliance]> - define villeDirigeante ].read[guildeDirigeante]> - define villeDansAlliance ].read[guildes]> - define nbAir 45 - define nombre_ville_dans_alliance <[villeDansAlliance].size> - define nbAirRestant <[nbAir].sub[<[nombre_ville_dans_alliance]>]> # Création d'une liste avec les villes - define listeVilleAlliance - define listeVilleAlliance <[listeVilleAlliance].include[<[villeDirigeante]>]> - foreach <[villeDansAlliance].exclude[<[villeDirigeante]>]>: - define listeVilleAlliance <[listeVilleAlliance].include[<[value]>]> # Une fois que nous avons notre liste, nous pouvons faire une boucle et ajouter les info - define listeIcon - foreach <[listeVilleAlliance]>: - define ville <[value]> # On inject le script pour obtenir le "display" et le "lore" à afficher - inject grimoireDesVillesInfoInjection - define banniere ].read[banniere]> - if <[banniere].contains[patterns]>: - define patterns <[banniere].patterns> - define icon <[banniere].material.item>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>;display_name=<[display]>;lore=<[lore]>;patterns=<[patterns]>] - else: - define icon <[banniere]>[flags=HIDE_POTION_EFFECTS;nbt=ville/<[ville]>;display_name=<[display]>;lore=<[lore]>] - define listeIcon <[listeIcon].include[<[icon]>]> - if <[nbAirRestant]> != 0: - repeat <[nbAirRestant]>: - define listeIcon <[listeIcon].include[air]> - define lastBar menuIconRetour|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|scriptGlassPaneGray|menuIconRetour - define listeIcon <[listeIcon].include[<[lastBar]>]> - define inv - inventory set o:<[listeIcon]> d:<[inv]> - inventory open d:<[inv]> grimoireAffichageVilleAllianceMenu: type: inventory debug: false title: <&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&sp><&9>Villes de l'alliance size: 54 grimoireAffichageVilleAllianceEventHandler: type: world debug: false events: on player drags in grimoireAffichageVilleAllianceMenu: - determine cancelled on player clicks in grimoireAffichageVilleAllianceMenu: - determine passively cancelled - if == air: - inventory close - stop - choose : - case 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45: - define ville - define numeroPage 1 - define typeClassement moyenne - define typeRetour alliance # Pour les définitions 2 et 3 on peut mettre au hasard vu que la on vient du grimoire des alliances - inject grimoireDesVillesSousMenu - case 46: - inject grimoireAlliance - case 54: - inventory close ## Test grimoireTestCommand: type: command debug: false name: testadd description: commande de test pour l'ajout de ville dans le fichier usage: /testadd <<>nombre<>> permission: dcommand.admin.classementville script: - if == false: - narrate "ajout nombre nécessaire" - stop - if : - narrate "besoin decimal" - stop - define nombre - yaml id:classement_ville set classement:! - repeat <[nombre]>: - yaml id:classement_ville set classement:->:GUILDE_16 - yaml savefile:classement_ville.yml id:classement_ville - narrate "remise en place de la liste effectué"