Aller au contenu

Messages recommandés

Posté(e) (modifié)

minecraft version: 1.12.2

version skript: la toute dernière (2.3)

 

Voilà, je débute sur skript et je cherchais à créer un skript pour une ville. J'ai fais des tests pour afficher les messages et tout mais j'ai voulus ajouter une liste pour que les villes apparaissent quand on ferai une commande du style /city list pour voire les villes déjà créer. Je pensais ajouter aussi une commande ( /city info "NomVille")  permettant de voir un côté plus de gestion comme les membres de la villes, les taxes que mettrait le maire. Le côté gestion du maire devrait se faire avec un inventaire virtuel mais je me demandais si cet inventaire devait être dans le skript actuel ou si je peux le faire à côté de ce skript et qu'ils soit lié au skript plus des commandes : création; invitation; gestion du niveau de taxes; promotion de la personne. Si il faut que je détaille plus l'idée générale, vous pouvez me le précisez, j'ai à peut-prêt noter tout sur un document pour un minimum d'organisation 😅



options:
    villes.max: 1000


command /city <text> <text>:
    usage: §c/city <create/disband> <ville>
    trigger:
        if arg 1 is "create":
            if arg 2 is set:
                set {_n} to 0
                loop {villes::*}
                    add 1 to {_n}:
                    
                    if {_n} >= {@villes.max}:
                        send "§4 Le nombre maximum de villes est atteints, veuillez attendre une suppression de ville ou rejoignez une ville"
                    
                    if {_n} < {@villes.max}:
                        broadcast "§6La ville §l§b§n%arg 2% §r§6vient d'être créée !"
        
        else if arg 1 is "disband":
            clear {villes::%{_n}
            send "§c§o%arg 2% vient d'être détruite par une force supérieur !"

[Cliquer et glisser pour déplacer]

Donc, pour expliquer ce qui c'est passer dans ma tête pour écrire ça, tout d'abord, je fixe une limite de ville à 1000; ensuite si la commande /city "create/disband" "nomdeville" est tapé, les boucles if me permettent de savoir si il s'agit de créer ou supprimer sa ville. J'ai ensuite créer une liste à laquelle j'ajoute 1, si l'ajout de 1 fait arriver le nombre total 1000 à la liste, que ce soit supérieur ou égale, la liste a atteint le niveau max donc on envoie un message pour le signaler au joueur essayant de créer une ville. Si c'est la commande comportant le "disband", la ville est supprimé de la liste. Mais apparemment j'ai un problème avec la liste car sans la liste sa envoie juste le message mais une fois que j'ai mis la liste, plus rien... Je suis bloqué donc je vous demande de l'aide sur ce point là.

FoxiZ_, un simple débutant de skript 🙂

Modifié par FoxiZ
Posté(e)

Bon, j'ai modifié le code mais je cherche à faire apparaître la liste des villes aussi avec la commande /city list d'où les 3 dernières lignes pour la liste. Au passage, le skript est fonctionnelle pour créer une ville par personne, je vais travailler sur l'ajout de personne à la ville, me contacter si vous avez des conseils ou pour savoir si j'ai avançais sur ce skript, ça ne me dérange pas de partager mon travaille, j'ai tellement galérer à trouver le moyen de le faire que chaque personne intéressé peut me le demander...

command /city <text> <text>:
    usage: /city <create/disband/list> <Ville>
    trigger:
        if arg 1 is "create":
            if arg 2 is set:
                if {villes::%arg 2%} is set:
                    send "§cNom de ville déjà utilisé"
                else:
                    loop {villes::*}:
                        if {villes::%loop-value%::joueurs::*} contains player:
                            send "§cVous avez déjà une ville !"
                            stop
                    set {villes::%arg 2%} to arg 2
                    add player to {villes::%arg 2%::joueurs::*}
                    broadcast "§9%arg 2% §6§oa été fondé avec succès !"
            else:
                send "§cVous devez mettre un nom de ville"
        if arg 1 is "disband":
            if arg 2 is set:
                if {villes::%arg 2%} is set:
                    delete {villes::%arg 2%}
                    broadcast "§9%arg 2% §6§oa été détruite par une force supérieur !"
                else:
                    send "§ccette ville n'existe pas"
            else:
                send "§cvous devez mettre un nom de ville"
        if arg 1 is "list":
            loop {villes::*}:
                send "%loop-index%"

 

Posté(e) (modifié)

Bonjour,

Voici pour toi une première idée de ce que tu pourrais continuer :

options:
	max_cities: 3
				
command /city [<text>] [<text>]:
	executable by: players
	trigger:
		if arg-1 is not set:
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
			send " " to player
			send "&b&l» &3Créer une ville &7: &b/&fcity &fcreate &3<&fnom&3>" to player
			send "&b&l» &3Supprimer une ville &7: &b/&fcity &fdisband &3<&fnom&3>" to player
			send "&b&l» &3Infos sur une ville &7: &b/&fcity &finfos &3<&fnom&3>" to player
			send "&b&l» &3Liste des villes &7: &b/&fcity &flist" to player
			send ""
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
		else if arg-1 is "create":
			if arg-2 is not set:
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				send "&b&l» &3&lUsage : &f/city create &3<&fnom&3>" to player
				send "&b&l» &3&lExemple : &f/city create Paris" to player
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				stop
			set {_size} to size of {cities::*} / 2
			broadcast "%{_size}%"
			if {_size} = {@max_cities}:
				send "&b&l» &3&lAction impossible : &flimite de villes atteinte. Veuillez attendre qu'une ville soit dissoute ou rejoignez-en une." to player
				stop
			if {%uuid of player%::hasacity} is not set:
				set {%uuid of player%::hasacity} to false
			if {%uuid of player%::hasacity} is not false:
				send "&b&l» &3&lAction impossible : &fvous possédez déjà une ville." to player
				stop
			if {cities::*} contains arg-2:
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				send "&b&l» &3Cette ville existe déjà !" to player
				send "&b&l» &3Nom : &f%arg-2%" to player
				send "&b&l» &3Propriétaire : &f%{cities::%arg-2%::owner}%" to player
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				stop				
			add arg-2 to {cities::*}
			set {cities::%arg-2%::owner} to player
			set {%uuid of player%::hasacity} to true
			broadcast "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+"
			broadcast "&b&l» &3&lLa ville &b&l%arg-2% &3&lvient d'être fondée !" 
			broadcast "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+"
		else if arg-1 is "disband":
			if arg-2 is not set:
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				send "&b&l» &3&lUsage : &f/city disband &3<&fnom&3>" to player
				send "&b&l» &3&lExemple : &f/city disband Paris" to player
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				stop
			if {cities::%arg-2%::owner} is not set:
				send "&b&l» &3&lAction impossible : &fla ville renseignée n'existe pas." to player
				stop
			if {cities::%arg-2%::owner} is not player:
				send "&b&l» &3&lAction impossible : &fla ville renseignée ne vous appartient pas." to player
				stop
			clear {cities::%arg-2%}
			clear {cities::%arg-2%::owner}
			remove arg-2 from {cities::*}
			set {%uuid of player%::hasacity} to false
			broadcast "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+"
			broadcast "&b&l» &3&lLa ville &b&l%arg-2% &3&lvient d'être dissoute !" 
			broadcast "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+"
		else if arg-1 is "list":
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
			send "&b&l» Liste des villes :" to player
			loop {cities::*}:
				send "&3&l- &f%loop-value%" to player
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
		else if arg-1 is "infos":
			if arg-2 is not set:
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				send "&b&l» &3&lUsage : &f/city infos &3<&fnom&3>" to player
				send "&b&l» &3&lExemple : &f/city infos Paris" to player
				send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
				stop
			if {cities::%arg-2%::owner} is not set:
				send "&b&l» &3&lAction impossible : &fla ville renseignée n'existe pas." to player
				stop
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player
			send "&b&l» Informations sur %arg-2% :" to player
			send "&b&l» &3Nom : &f%arg-2%" to player
			send "&b&l» &3Propriétaire : &f%{cities::%arg-2%::owner}%" to player
			send "&3&l&m+--------------&b&l&m-------------------&3&l&m--------------+" to player

Ethnae

Modifié par Ethnae
  • Rémi a verrouillé ce sujet
Invité
Ce sujet ne peut plus recevoir de nouvelles réponses.
×
×
  • 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.