Map [Map AdventureCraft] [1.12] Jojo's Incredible Adventure (ancien nom:CouCouCouCou) (+4000 DLs) V0.3.5

papimouzo

c'est plus d'mon âge!
24 Février 2013
16
0
1
euh, captain, pas besoin de vouvoyer. Ça me vieillit tellement. Sinon essaye de m'envoyer un mp pour expliquer ton problème. Malgré mon manque d'expérience dans AC, je pourrai toujours tenter de t'aider à y jouer (et pour les mp, ça évitera de polluer le sujet).

Quant à toi Xeroes, je ne comprends ce que tu veux. Les coordonnées de la map? Tu parles bien de celle proposée par Gouloudrouioul? Si oui, il te suffit de télécharger son aventure (lien dans son premier post) et... d'ouvrir/charger l'aventure (Coucoucoucou) et d'y jouer. C'tout. Ou alors ton problème est bien plus complexe que ce que mon pauvre petit cerveau arrive à endurer.
 

Gouloudrouioul

Architecte en herbe
2 Juillet 2011
275
18
124
D'ailleurs, Gouloudrouioul, pourrais-tu éclairer ma lanterne, pliz?
Aurais-tu la gentillesse de m'expliquer ce que signifie "etat_patatipatata" dans tes scripts npc et comment passer d'un état 1 à 2? Tout ce que j'ai compris là dessus, c'est que le changement d'état (mais qu'est-ce qu'un état? le fait que le npc soit passé d'un pathblock à un autre par exemple? Comment est-ce pris en compte? Comment le définir dans un script? Pourquoi pour certains npc l'état 5 n'existe pas alors qu'il y a l'état=4 puis l'état=6? Pourquoi 42?)

D'abord je tiens à préciser que si tu veux apprendre comment faire des scripts, il ne vaut mieux pas s'inspirer de ceux de ma map :D . Je suis du genre très très bordélique, et des fois il peut être difficile de comprendre le lien entre les différents fichiers. Concernant les états, tout d'abord deux choses à clarifier :
- etat_patatatipatata ne correspond à aucune "instruction" officielle, c'est juste moi qui ai choisi d'appeler cela ainsi. Tu peux très bien appeler ça "patate" ou "cerise", pour ce que ça changera.
- les nombres n'ont pas de signification particulière (si j'ai mis 42, donc, c'est juste pour le fun).

Voilà, maintenant explication ! Je vais essayer de t'expliquer le plus clairement possible, mais comme je ne connais pas tes bases en javascript, je risque de m'éparpiller un peu.

En gros lorsque dans un script tu mets "objet = 1", objet sera défini comme étant 1 (jusque là je pense que c'est limpide). A partir de là tu peux faire dire plusieurs choses différentes à tes NPC's. Par exemple, si "objet = 1", le chat affichera "patate" lorsque tu cliqueras sur un NPC, tandis que si "objet = 0", le chat affichera "cerise".

Je ne sais pas si tu sais comment fonctionne, basiquement, un script. En gros tu poses une condition, qui se caractérise comme ceci : "if (objet == 1)". Si cette condition est vérifiée - c'est à dire si objet est bien égal à 1 et non pas à autre chose - le reste du script se déroulera.
Un exemple commenté, d'un script qui ne s'active QUE si tu cliques sur un NPC :


if (etat_arbrophileprison < 1) <-- la condition en question, < 1 signifiant 0. Donc, si etat_arbrophileprison est égal à 0, les instructions qui suivent s'activeront.

{ <-- délimite le début des instructions.

etat_arbrophileprison=15; <-- si la première condition est respectée, etat_arbrophile prison passera de 0 à 15. Je fais cela pour éviter que le dialogue se réaffiche une seconde fois si l'on reclique sur le NPC. Puisque 15 n'est assigné à aucune commande, si tu cliques il ne se passera rien.

sound.playSoundUI("sound.dialogues"); <-- une instruction pour faire le son des dialogues.

chat.print("<Arbrophile> Merci mec, tu m'as libere !")
chat.print("Si tu as besoin de quoi que ce soit, viens me voir.") <-- affiche ce texte dans la barre de tchat.

time.sleep(4); <-- laisse 4 unités de temps s'écouler avant l'instruction suivante.

sound.playSoundUI("sound.dialogues");
chat.print("Moi et mes autres freres spirituels nous ferons")
chat.print("un plaisir de te venir en aide.")

etat_arbrophileprison=0; <-- etat_arbrophileprison passe de 15 à 0, afin de permettre au joueur de relire le dialogue s'il clique une nouvelle fois sur le NPC. La boucle est bouclée.

} <-- délimite la fin des instructions.

if (etat_arbrophileprison == 2) <-- Lorsque etat_arbrophileprison sera égal à 2, les instructions suivantes s'afficheront, et non pas les précédentes.
{
sound.playSoundUI("sound.dialogues");
chat.print("<Arbrophile> Emmene nous des cookies si tu")
chat.print("veux qu'on t'aide.")
}

En gros, tout cela te permet d'établir des "paliers".
Admettons que tu veuilles qu'un seigneur ne dévoile son secret qu'une fois que le héros aura atteint une grotte magique. Le script basique que tu devras faire est celui-ci :

if (seigneur < 1)
{
chat.print("<Seigneur> Je ne te révélerai mon secret que si tu trouves la grotte magique.")
}

if (seigneur == 1)
{
chat.print("<Seigneur> Tu as donc trouvé cette grotte ! Mon secret c'est que je dors toujours avec mon doudou.")
}

Tu devras assigner ce script dans la partie "OnInteract" du NPC.

Au préalable, tu devras également avoir mis l'instruction suivante dans ton script "OnNewSave" :
seigneur = 0;
Pourquoi ? Car "OnNewSave" active les scripts dès que tu commences une nouvelle partie. Ainsi, lorsque tu chargeras pour la première fois le jeu, celui-ci détermineras d'office que l'état de seigneur est égal à 0, te permettant donc de lui parler. Si tu ne fais pas ça, lorsque tu cliqueras sur le seigneur, le tchat affichera que "seigneur n'est pas défini".

Pour changer l'état de seigneur en 1, il y a plusieurs façons. Tu peux établir un simple script où il y a marqué : "seigneur = 1;". Tu assignes ce script à un Script Block, que tu relies à des Triggers. Lorsque tu passeras sur les Triggers, le script assigné au Script Block s'activera, et changera par conséquent l'état de seigneur en 1. C'est tout con. Tu peux installer tout ça à l'entrée de la grotte, et c'est imparable.
Tu peux aussi le faire via un NPC. Admettons que tu décides d'en mettre un dans la grotte secrète. Sur sa case OnInteract, tu mets un script avec les instructions suivantes :

chat.print("Je suis dans une grotte.");
seigneur = 1;

L'état de seigneur sera changé de cette façon, sans que le joueur ne le remarque.

Voilà, j'ai développé le plus possible, mais c'est un vaste sujet avec beaucoup de ramifications, j'ignore donc si j'ai été clair ou non. Si tu as la moindre question par rapport à tout ça, je suis dispo :)
 

Gouloudrouioul

Architecte en herbe
2 Juillet 2011
275
18
124
Pour tous ceux qui ont des problèmes à installer Adventure Craft, même en utilisant le patch, je vous suggère de regarder cette vidéo :

 

papimouzo

c'est plus d'mon âge!
24 Février 2013
16
0
1
Gouloudrouioul... merci merci merci! Ton explication est on ne peut plus limpide et mine de rien tu as réussi à mettre le doigt sur ce qui me bloquait (définir l'état de base d'un npc. Oui bon c'est tout con mais comme précisé, ou pas d'ailleurs, je commence le js avec adventurecraft).
Il ne me reste qu'à appliquer tes conseils pour mon projet. Peut être un jour arriverai-je à la cheville (désolé mais je ne saurai définir si ton aventure coucoucoucou a une ou plusieurs chevilles) de ton aventure.

Encore un grand et sincère merci.
 

papimouzo

c'est plus d'mon âge!
24 Février 2013
16
0
1
Bon test réalisés et ça fonctionne beeaaaucoup mieux. Sinon je partagerai volontiers ma map (en t'incluant dans les remerciements) mais comme tu le sais, c'est extrêmement long à créer donc ce n'est pas pour tout de suite.
 

papimouzo

c'est plus d'mon âge!
24 Février 2013
16
0
1
Bonsoir à vous.

Je me permets de revenir sur ce topic car je bloque sur quelque chose. En fait il s'agit de la modification d'un texture (bon je ne parle pas de passer un template de textures à un autre car tout s'effectue facilement car aux script, etc.).
En gros j'aimerai créer une texture animée (un peu comme l'eau ou la lave) mais à partir d'un bloc (exemple: la terre serait animée). Il y a bien quelques tuto à droite et à gauche sur la façon de faire: utiliser un modèle de 16 images de 16x16 pixels alignées les unes au-dessus des autres avec des modif entre chaque image pour donner l'impression de mouvement. Ce n'est pas compliqué à créer.

Là où je bloque c'est que tous les tuto s’appuient sur minecraft (un exemple parmi tant d'autres:
). Oui, minecraft et non adventurecraft! Alors bien entendu il faut créer un dossier "anim" dans lequel on place l'animation puis... c'est là que le bât blesse car il faut utiliser mcpatcher...

Petit soucis (ou petits soucis): pour adventurecraft il me semble que l'on ne peut utiliser mcpatcher ET le dossier "anim" ne sera pas pris en compte.
Auriez-vous une idée de comment résoudre mon problème?


Pour repréciser: je veux modifier et animer la texture d'un bloc terrain qui n'est ni de l'eau, ni de la lave.

Merci beaucoup pour vos éventuelles réponses.


[EDIT] j'affiche ce message dans un autre sujet histoire d'arrêter de polluer ton post :)
 

Gouloudrouioul

Architecte en herbe
2 Juillet 2011
275
18
124
Mwahaha, ça y est c'est parti, ils sont en train de faire un Adventure Craft 2 (officiellement). Leur priorité est de faire en sorte que les maps déjà créées soient compatibles.
Dès que ça sortira, je m'y remettrai :)