DylanVII Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Bonjour à tous, voilà je débute donc j'ai un peu du mal avec certaines fonctionnalités mais ici je suis vraiment bloqué donc je vous demande de l'aide, j'espère que vous saurez :D J'aimerai faire un villageois qui parle, lorsque l'on clic gauche dessus , mais que le dialogue change. Je m'explique, ce villageois servira à indiquer au joueur sa progression dans une quête et voici ce que j'aimerai faire : - Quand on arrive il nous dit bienvenue, on parle avec lui, il nous donne un objet (une hache, par exemple) pour aller récolter quelque chose et lui donner (par exemple, du bois) - Une fois qu'on a récolté l'objet et qu'on lui a donné, il nous donne une autre instruction, et ainsi de suite, ... J'espère avoir été clair et, merci d'avance pour vos réponses :)
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Ah, pardon je me suis mal exprimé, justement non je ne veux pas utiliser citizens car il ne marche pas ^^" et puis je préfère utiliser un villageois que un skin de Steve.. x)
Mastersfelix Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 on right click on villager: if {progression::%player%} is not set: send message "Jaccques » Bonjour à toi" wait 0.5 seconds send message "%player% » Yo Jacques, Whats up ?" wait 1 second give player 1 iron axe of efficiency 3 set {progression::%player%} to 1 else if {progression::%player%} is 1: if player's inventory contains 10 logs: send message "Jacques » Merci" Tu peux utiliser quelque chose de ce genre
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Merci beaucoup pour ta réponse aussi rapide, malheureusement ça ne va pas, je reçois la hache mais les messages ne s'affichent pas. Ah, et aussi, du coup ça m' affiche les trades donc ça gêne. Du coup, j'ai mis on left click, et là il me dit que je dois utiliser le "on damage" event
Rednathan Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 pour les trades il faut un cancel event apres la 2 eme ligne
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 on right click on villager: if {progression::%player%} is not set: send "Jacques » Bonjour à toi" wait 0.5 seconds send "%player% » Yo Jacques, Whats up ?" wait 1 second give player 1 iron axe of efficiency 3 set {progression::%player%} to 1 else if {progression::%player%} is 1: if player's inventory contains 10 logs: send "Jacques » Merci" Tu peux utiliser quelque chose de ce genre Tu t'es fail, j'ai corrigé le code dans le quote :).
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Merci à tous pour vos réponses cependant, je ne comprends pas, je n'ai aucun message d'erreur mais ça ne fonctionne pas.. et ça ouvre quand même le trade. (J'ai ajouté le cancel event) EDIT: Aussi, serai il possible de faire ceci avec un nom customisé ? Le PNJ est créé par shopkeeper (pour pas qu'il bouge) et s'appelle " Mineur ".
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Merci à tous pour vos réponses cependant, je ne comprends pas, je n'ai aucun message d'erreur mais ça ne fonctionne pas.. et ça ouvre quand même le trade. (J'ai ajouté le cancel event) EDIT: Aussi, serai il possible de faire ceci avec un nom customisé ? Le PNJ est créé par shopkeeper (pour pas qu'il bouge) et s'appelle " Mineur ". Oui bien sur : Le code : on rightclick on villager: cancel event if clicked-entity's name is "&aMineur": if {progression.%player%} is not set: send "&7Mineur &a>> Binvenue à toi mon ptit. Tiou bras m'iont l'air costauds!" to player send "&7Mineur &a>> Et si t'voudris bin m'miner &410 stones&a? Je suis triop ocoupé tu vois?" to player send "&4Narration &a>> Acceptez-vous la quête? Marquez ""quête acceptée"" dans le chat si vous voulez faire la quête" to player set {progression.%player%} to "Mineur : 1" stop if {progression.%player%} is "Mineur : 2": if player's inventory contains 10 stones: send "&7Mineur &a>> Merci bin mon ptit aventurier! Tiens, un cadeau pour toi!" to player give 1 emerald to the player send "&4Narration &a>> Vous venez de recevoir &41 éméraude &a!" to player else: send "&7Mineur &a>> Revins m'voir quand t'as &410 stones&a !" to player on chat: if {progression.%player%} is "Mineur : 1": cancel event if message is "quête acceptée": set {progression.%player%} to "Mineur : 2" send "&7%player% &a>> Je me ferais un plaisir de vous aider &7Mineur&a !" to the sender send "&7Mineur &a>> Merci du siervice l'ami! J'te rendrai la pareille un jour tu verras!" to the sender stop if message is "quête refusée": delete {progression.%player%} send "&7%player% &a>> Désolé mais je suis trop occupé..." to the sender send "&7Mineur &a>> C'pas grave mon ptit! Revin m'voir quand t'as l'temps!" to the sender stop else: send "&4Système &a>> Si vous voulez refuser la quête, marquez ""quête refusée"" dans le chat " send "&4Système &a>> Pour accepter la quête, marquez "quête acceptée"" dans le chat " send "&4Système &a>> Vérifiez que votre message est en minuscule. " N'hésite pas à remettre les TABS ^^
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Merci beaucoup pour ta réponse, ça m'a beaucoup aidé par contre j'ai juste un problème au tout début : " Can't compare "click-entity's name" with at texte "&aMineur"
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Merci beaucoup pour ta réponse, ça m'a beaucoup aidé par contre j'ai juste un problème au tout début : " Can't compare "click-entity's name" with at texte "&aMineur" Okay, alors remplace la ligne "if clicked-entity's name is "&aMineur": " par "if clicked entity's name contains "&aMineur": "
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Ok, donc maintenant je n'ai plus un seul message d'erreur mais ça ne marche pas, ça continue de m'afficher les trades :/ Je relance le serveur et je supprime manuellement la variable car elle existait déjà
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Alors rajoute ceci dans le code : on villager trade gui: cancel event Si tu ne veux que dans un monde : on villager trade gui: if player is in world "RP": cancel event
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Serai il possible de set ça pour une certaine région ? Car aucune des deux options ne m'arrange ^^
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Serai il possible de set ça pour une certaine région ? Car aucune des deux options ne m'arrange ^^ Okay : on villager trade: if player is in the region "RP": cancel event Je ne suis pas sur que ça marche
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 c'est le "on villager trade (gui)" qui pose problèmes apparemment EDIT : C'est bon, fallait mettre "on villager gui trade" par contre ça mets que un event de ce type ne peut pas être cancel :/
kumakuma215 Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 c'est le "on villager trade (gui)" qui pose problèmes apparemment EDIT : C'est bon, fallait mettre "on villager gui trade" par contre ça mets que un event de ce type ne peut pas être cancel :/ Ah :/.
DylanVII Posté(e) le 3 avril 2016 Auteur Posté(e) le 3 avril 2016 Faudrai que j'aie citizens au pire.. mais pas moyen de trouver le bon. Aujourdh'ui encore, j'en ai trouvé un, il était en vert dans la liste des plugins (donc il est censé marcher) et quand je fais /npc rien ne se passe.. x)
Mastersfelix Posté(e) le 3 avril 2016 Posté(e) le 3 avril 2016 Pour pas que le gui s'ouvre, tu ne fais que rajouter un cancel event
DylanVII Posté(e) le 4 avril 2016 Auteur Posté(e) le 4 avril 2016 ça ne marche toujours pas, ça me mets le même message : un événement de trade de PNJ ne peut pas être cancel Au pire, ce serai plus pratique d'utiliser le clic gauche
kumakuma215 Posté(e) le 4 avril 2016 Posté(e) le 4 avril 2016 Bah ouais, faut utiliser Citizens ou, si ton serveur est en 1.8 je pense que ça marche : execute console command "/summon %player's x location% %player's y location% %player's z location Villager {NoAi:1,Display:{Name:[""§aMineur""]}}" Je sais pas si ça marche
DylanVII Posté(e) le 4 avril 2016 Auteur Posté(e) le 4 avril 2016 Ouais mais toutes les versions de Citizens que j'essaye ne vont pas :( PS : Le serveur est en 1.8.7
DylanVII Posté(e) le 4 avril 2016 Auteur Posté(e) le 4 avril 2016 on damage: victim is a villager cancel event if damaged entity's name contains "&aMineur": if {progression.%attacker%} is not set: send "&7Mineur &a>> Binvenue à toi mon ptit. Tiou bras m'iont l'air costauds!" to attacker send "&7Mineur &a>> Et si t'voudris bin m'miner &410 stones&a? Je suis triop ocoupé tu vois?" to attacker send "&4Narration &a>> Acceptez-vous la quête? Marquez ""oui"" dans le chat si vous voulez faire la quête" to attacker set {progression.%attacker%} to "Mineur : 1" stop if {progression.%attacker%} is "Mineur : 2": if attacker's inventory contains 10 stones: send "&7Mineur &a>> Merci bin mon ptit aventurier! Tiens, un cadeau pour toi!" to attacker give 1 emerald to the attacker send "&4Narration &a>> Vous venez de recevoir &41 éméraude &a!" to attacker else: send "&7Mineur &a>> Revins m'voir quand t'as &410 stones&a !" to attacker J'ai essayé ton script avec "on damage", aucunes erreurs au niveau du script, par contre quand je teste, je ne reçois aucun messages :/
kumakuma215 Posté(e) le 4 avril 2016 Posté(e) le 4 avril 2016 on damage: victim is a villager cancel event if damaged entity's name contains "&aMineur": if {progression.%attacker%} is not set: send "&7Mineur &a>> Binvenue à toi mon ptit. Tiou bras m'iont l'air costauds!" to attacker send "&7Mineur &a>> Et si t'voudris bin m'miner &410 stones&a? Je suis triop ocoupé tu vois?" to attacker send "&4Narration &a>> Acceptez-vous la quête? Marquez ""oui"" dans le chat si vous voulez faire la quête" to attacker set {progression.%attacker%} to "Mineur : 1" stop if {progression.%attacker%} is "Mineur : 2": if attacker's inventory contains 10 stones: send "&7Mineur &a>> Merci bin mon ptit aventurier! Tiens, un cadeau pour toi!" to attacker give 1 emerald to the attacker send "&4Narration &a>> Vous venez de recevoir &41 éméraude &a!" to attacker else: send "&7Mineur &a>> Revins m'voir quand t'as &410 stones&a !" to attacker J'ai essayé ton script avec "on damage", aucunes erreurs au niveau du script, par contre quand je teste, je ne reçois aucun messages :/ Essaie de remplacer la condition "if damaged entity's name contains "&aMineur": " par "if the name of the attacked villager contains "&aMineur": "
Messages recommandés