![]() |
| Merci de prendre connaissance des conditions d'utilisation des forums, des blogs et du chat |
| | |||||||
| Problèmes Techniques Un problème technique lors de la création d'un mod? Exposez votre probleme et les membres vous aideront de leur mieux. |
![]() |
| | Outils de la discussion | Noter la discussion |
| | #1 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Bonjour, voilà j'aurai une petite question technique à poser. Dans un de mes dialogues (le premier en fait ![]() ) j'ai plusieurs fois la même réponse mais je l'utilise pour plusieurs suite qui modifie le jeu.Exemple: charname à le choix de rattraper un individus qu'il soupçonne et cela se divise en trois cas bien distinct: 1- charname possède l'objet que l'individu lui a vendu et lorsqu'il rattrape la personne les méchants arrivent 2- charname ne possède pas l'objet mais veut le rattraper, les méchants n'arrivent pas tout de suite mais un peu après 3- charname décide de ne pas rattraper le vendeur et il voit les méchants l'agresser Est ce que cela est possible même en partant d'une même réponse (si choix "a" alors 1 et 2 possibles suivant si il possède l'objet ou non)? Logiquement je dirais que oui en mettant le nombre de bloc en fonction des possibilités rattachés par le même label avec des conditions différentes qui bloquerait les autres possibilités mais pourriez vous m'éclaircir sur ce point? |
| | |
| | #2 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Oui, ce que tu décris est tout à fait possible, grâce à la possibilité de préciser des conditions s'appliquant aux différentes réponses possibles dans une réplique. Mais tu dois avoir suffisamment de conditions différentes pour distinguer les 3 cas, hors tu n'en as que 2 : avoir ou non l'objet. Tu devras impérativement passer par un texte différent pour le troisième cas, sinon ce ne sera pas compréhensible car le joueur aura deux fois le même texte de réponse. Pour que le joueur "décide" de ne pas le rattraper, il faut un texte clairement différent. En gros, ça donnerait : Code: IF ~~ THEN BEGIN Replique
SAY @1 /* ~Tu n'as aucune preuve.~ */
IF ~PartyHasItem("PREUVE")~ THEN REPLY @2 /* ~Tu te trompes. Je sais tout.~ */ DO ~SetGlobal("AttaqueDesMechants","ARxxxx",1)~ EXIT
IF ~!PartyHasItem("PREUVE")~ THEN REPLY @2 /* ~Tu te trompes. Je sais tout.~ */ DO ~SetGlobalTimer("VariableTimer","ARxxxx",10)~ EXIT
END Si tu ajoutes une troisième réponse sans condition, tu auras une deuxième réponse identique et ce qui se passera dépendra du choix du joueur mais ce ne sera pas clair. Le troisième cas serait alors : Code: IF ~!PartyHasItem("PREUVE")~ THEN REPLY @3 /* ~Tu ne perds rien pour attendre.~ */ DO ~SetGlobal("AttaqueDesMechants","ARxxxx",1)~ EXIT Code: IF ~!PartyHasItem("PREUVE")~ THEN REPLY @3 /* ~Tu ne perds rien pour attendre.~ */ DO ~~ GOTO Attaque
IF ~~ THEN BEGIN Attaque
SAY @4 /* ~Tu as laissé passer ta chance. On se retrouvera en enfer !~ */
IF ~~ THEN DO ~SetGlobal("AttaqueDesMechants","ARxxxx",1)
ChangeEnemyAlly(Myself,EVILCUTOFF)
Enemy()
Attack(NearestEnemyOf(Myself))~ EXIT
END Il y a quelque chose qui me chiffonne, somme toute. Tu veux faire ça par un dialogue, hors tu parles de poursuivre quelqu'un et de le rattraper, ce qui déclencherait l'attaque des méchants (ses amis ?). Si tu veux ça, il faut impérativement passer par des scripts et non par le dialogue. D'une part pour détecter que tu le rattrapes, par une détection de proximité dans le script du personnage, qui dépendrait également d'avoir fait le choix de le poursuivre dans le dialogue (qui mettrait une variable que le script vérifierait). N'hésite pas à préciser ton objectif. |
| | |
| | #3 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Code: @7 = ~Eh bien c'est... (Il n'a pas l'air de comprendre de suite votre réponse, semblant hésiter à le croire: apparemment vous êtes loin d'être le premier à qui cette prodigieuse offre fut faîte.) une bonne nouvelle. Vous avez fait un excellent choix. Le monde est à vous désormais, profitez-en bien! (Un soupir de soulagement semble le traverser, vous avez tout à coup des soupçons sur ce mystérieux personnage et son parchemin. Une sensation étrange parcours en ce même instant tout votre être...) Je dois vous laisser, j'ai fort à faire, adieu et merci.~ // Renvoie à @15-16 @8 = ~Je ne vends pas de... Oh laissez tomber. Mais l'inestimable vous est passé sous votre nez. (Il attend quelques secondes, comme si il espérait que vous reveniez sur votre décision. Finalement vous le voyez s'éloigner, l'air abattu. Cela attire votre curiosité...)~ // Renvoie à @15-16 @9 = ~2000! Je vous vends l'immensité et voilà votre prix? Vous ne méritez vraiment pas mon offre... Adieu. (Il attend quelque secondes, comme si il espérait que vous reveniez sur votre décision. Finalement vous le voyez s'éloigner, l'air abattu. En y réfléchissant son offre n'était peut être pas aussi inintéressante, de plus son attitude attire votre curiosité...)~ // Renvoie @15-16 @14 = ~Je... Euh...(Il attend quelques secondes, comme si il espérait que vous reveniez sur votre décision. Finalement vous le voyez s'éloigner, l'air abattu. En y refléchissant son offre n'était peut être pas aussi inintéressante malgré son air farfelue. De plus son attitude attire votre curiosité...)~ // Renvoie à @15-16 @15 = ~(Le rattraper.)~ @16 = ~Bah après tout peu importe...( Le laisser partir.)~ Je me suis pas très bien expliquer. En fait ce qu'il se passe ici c'est que j'ai 4 phrases qui renvoient à deux choix unique. La @16 va faire que des personnes vont agresser l'individus que l'on a laisser partir. C'est une description par dialogue de ce qui se passe. Après dans la pratique je verrais un truc du style le personnage s'éloigne, se fait accoster et assassiner(le tout dans la vision de charname), puis les agresseurs sans prennent à charname. Mais @16 comporte en elles même 2variantes à savoir si charname possède ou non l'objet et cela modifiera par la suite le dialogue avec les agresseurs. Dans l'autre (donc @15) et bien j'avoue que je ne sais comment procéder, j'imagine qu'il s'éloignerai et qu'il s'arrêterai à côté d'autre PNJ citoyens, de sorte qu'il suffirait de se rapprocher de lui pour recommencer le dialogue. Mais la aussi il y a deux variantes, toujours si il possède ou non l'objet et cela mofiera encore la suite. J'aimerai juste savoir si cela serait possible car je ne sais absolument rien sur ce genre de programmation (j'en suis à celle de "base", juste du dialogue), j'aimerais être sûr que la programmation est possible avec les enchaînements que j'ai choisi. J'espère que ce que j'ai écrit est compréhensible j'ai toujours tendance à compliquer les choses quand j'explique . |
| | |
| | #4 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Tu corriges mes défauts de perception de ce que tu souhaitais mais je dois avouer que ce n'est toujours pas clair pour moi... Tu ne donnes que quelques phrases du dialogue (celles du personnage) sans les réactions de l'équipe ni les enchaînements. Du coup je ne comprends pas si le dialogue est coupé en deux : d'abord l'achat de l'objet puis, plus tard, un nouveau dialogue dans lequel le fait d'avoir l'objet modifierait les réactions. Si ton dialogue s'enchaine sans interruption (le joueur achète ou non, fin du dialogue puis la scène de l'attaque intervient), il te suffit de provoquer les enchainements dans le dialogue lui même. Pas de test sur la possession de l'objet, elle découle d'avoir choisi de l'acheter dans le dialogue. Dans le cas contraire, tu dois prévoir une variable ou un test sur la possession de l'objet pour déclencher les conséquences (attaque, ...), d'une façon similaire à ce que j'ai indiqué hier. Pour ce qui concerne les séquences qui se déroulent hors dialogue (l'éloignement du personnage, le joueur qui le rattrape, l'attaque), il faut impérativement faire intervenir des scripts. Ces actions dans les scripts seraient alors déclenchées par des variables comme je le montrais hier. Certains enchainements ne sont pas simples à obtenir, notamment l'éloignement du personnage, puis le fait que le joueur le rattrape et enfin l'attaque par le groupe. De même faire un script de comportement des "méchants" qui attaque le personnage puis ensuite l'équipe n'est pas simple (plus précisément l'enchainement des attaques). Une alternative simple serait de déclencher une scène cinématique à la fin du dialogue, qui pourrait dès lors forcer l'enchainement éloignement du personnage, rapprochement du groupe, attaque par les méchants. Tout cela sans que le joueur ait le choix d'agir. A ce moment, tu mets fin à la scène pour que le joueur puisse reprendre la main sur la réaction à l'attaque. J'espère ne pas être à côté de la plaque encore une fois. ![]() |
| | |
| | #5 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Je dois préciser que je n'ai encore pas coder cette partie. Je viens de comprendre ce que tu veux dire, il n'y aura pas d'interruption du dialogue si achat. Je compte faire en sorte que dans ce cas -pas d'interruption, le personnage acquérira l'objet à la fin du combat (combat obligatoire pour le conserver), la cinématique serait une bonne alternative mais je tiens à ce qu'il y ait un dialogue avec les agresseurs (l'homme sera assassiner dans la cinématique) -si pas d'achat alors même procédé: cinématique, les agresseurs tuent le bonhomme et charname intervient, le dialogue s'ouvre = combat pour arrêter les criminels (gains de l'objet) ou les laissez partir (fin du dialogue et objet non acquis) Tout en sachant que quelque soit les réponses (@15 et 16) la cinématique aurait lieu. Les seuls variables étant celle cités ci-dessus. @16 et 15 mettent fin au dialogue, initie la cinématique puis les possibilités du joueur divergent ainsi que les dialogues en fonction de l'achat. J'aurais également une autre question: dois-je coder tout ces détails plus tard ou il est préférable de tout régler en même temps ? Mon idée d'origine était de réaliser absolument tout les dialogues du mod puis de passer à la section codage et programmation. Est ce un bon moyen de fonctionner? Dernière modification par Nightmare ; 18/03/2008 à 09h17. |
| | |
| | #6 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Il n'y a pas de bonne ni de mauvaise méthode, je pense. Dans beaucoup de milieu, il est d'usage d'avoir un script complet (au sens cinématographique par exemple) avant de réaliser quoi que ce soit. Dans le cas d'un mod, l'équivalent est d'avoir effectivement les dialogues écrits avant de coder, mais ça ne s'arrête pas là. En plus des textes, tu pourrais clairement différencier les répliques des réponses possibles et préciser les conditions dans lesquelles le joueur a ce choix (avoir ou non tel objet, ...) et les conséquences des choix lorsqu'elles ont des répercutions hors dialogue (déclencher l'attaque si quelque chose, au bout de ...). En contrepartie, tu es confronté à un autre problème, celui des questions de faisabilité (au contraire, un cinéaste sait en général ce qu'il peut faire). Pour ces problèmes, il est d'usage de statuer au plus vite sur la faisabilité, de façon à ne pas bâtir quelque chose qui va s'écrouler partiellement ou complètement parce qu'un élément n'est pas possible. Tu peux bien entendu faire ces expérimentations sur des "démonstrateurs" qui ne se retrouveront pas dans le mod (un dialogue "bonjour", "au revoir", attaque). Mais il peut s'avérer aussi intéressant de le faire sur des éléments directement utilisables dans le mod. Mais il faut veiller à garder le même caractère simple que dans le "démonstrateur", sous peine d'avoir des problèmes avec d'autres éléments du mod et non ce que tu voulais essayer. Enfin intervient le facteur personnel. Chacun a sa façon de travailler. Si on peut souvent apprendre en s'inspirant des façons des autres, parfois il n'est pas possible de reprendre telle quelle celle des autres pour tout un tas de raisons. |
| | |
| | #7 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Merci pour ces renseignements. Je vais régler ce problème comme suit: pour le dialogue avec l'agresseur celui-ci comportera deux variantes qui sont: charname possède ou non l'objet. Finalement je change d'avis: le dialogue s'interrompera si charname achète l'objet et il l'aura dans son inventaire. Ensuite il se retrouvera sur @15 et 16. Cinématique correspondant à la réponse. Puis je vais réaliser deux dialogues différents donc dans le codage deux parties différentes complètement séparés l'une de l'autre et pour cela l'un aura pour condition que charname est l'objet. Si il ne là pas l'autre dialogue s'activera par défaut (puisque pas de présence d'objet). Cela est possible ? Je vais faire des recherches sur le "démonstrateur", je n'ai aucune idée de ce que c'est .Encore merci. |
| | |
| | #8 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Chaque réplique d'un personnage peut être conditionnée afin de permettre justement d'adapter ce qu'il dit aux événements. Tu pourras donc ajouter la condition d'avoir l'objet. Les conditions se mettent dans la partie IF ~conditions~ THEN BEGIN Replique SAY .... Inutile de chercher démonstrateur, ça ne correspond à rien de particulier pour la création de mod. C'est un terme que j'ai employé pour évoquer quelque chose dont la fonction est de montrer comment faire pour obtenir ce que l'on souhaite. Par exemple, un concept car est souvent un démonstrateur de technologie automobile mais il n'est jamais vendu en tant que tel. Mais un concept car est complexe par rapport à ce que j'évoquais. Disons que l'équivalent serait plutôt un châssis avec quatre roues et un volant dans l'optique de tester un nouveau système de direction. Le démonstrateur dont je parlais serait un ensemble de dialogues et scripts le plus simple possible permettant d'identifier les besoins de ce que tu veux réaliser en terme de structure de dialogue, de script, de variable, ... |
| | |
| | #9 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| A d'accord, Ma dernière question: si le joueur achète le parchemin j'aimerai qu'il perde l'or (soit 4000) mais qu'il puisse récupérer la somme identique ensuite sur le cadavre du méchant pour que le joueur ne soit pas lésé. De plus si le joueur ne paie pas la somme j'aimerai que cette fois l'argent n'apparaisse pas sur son cadavre sinon ce serait injuste et illogique. Est-ce la aussi faisable? |
| | |
| | #10 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | L'action TakePartyGold(nnn) permet de transférer de l'argent (nnn pièces d'or) vers le personnage dont le dialogue ou le script y fait appel. L'argent va dans son inventaire, donc tu devrais le récupérer sur le cadavre. Pour d'autres recherches du même genre, consulte La Bible de l'Infinity Engine. C'est comme la bible, très long à lire, mais plein d'enseignements ! ![]() |
| | |
| | #11 |
| Goule ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: décembre 2007
Messages: 479
| Isaya,tu semmbles t'y connaîte en matière de script.Peux tu me dire ce qui peut provoquer le non déclenchement d'un dialogue dans un mod?J'essaie de faire le mod qui prolonge la sphère planaire mais le jeu bloque quand les aventuirers arrivent(le dialogue n'arrivepas).Je m'excuse pour le off topic mais le bug risquede bloquer le mod dans son intégralité et je risque de ne plus pouvoir me permettre de revenir dans la sphère. http://www.baldursgateworld.com/laco...nematique.html Dernière modification par Magnus ; 10/03/2008 à 20h21. |
| | |
| | #12 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Très bien. Merci pour le lien Isaya je me le suis mis dans mes favoris, je vais le petit à petit. |
| | |
| | #13 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Magnus : non, je ne te pardonne pas pour le off-topic. J'ai bien vu ton message dans l'autre partie du forum. Si je n'y ai pas répondu, ce que je ne sais pas donner de réponse et que je n'ai pas le mod en question. Alors, je t'en prie, ne viens pas polluer les autres sujets du forum avec la même demande. S'il te plaît, peux-tu activer les messages privés dans ton compte utilisateur ? Je préfèrerais traiter ce genre de chose en privé. Merci. Nightmare : tu trouveras d'autres liens utiles dans le forum consacré aux outils dans la forge des apprentis. Notamment dans ce sujet ([INDEX] Le marteau ? Où est le marteau ?) dont le nom, il est vrai, est peu indicatif de son contenu suite à la perte de son sous-titre. |
| | |
| | #14 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Une petite question: comment faire pour que les dialogues arrivent sous forme de vers comme au début de TOB et non sous forme de dialogue normal? Il suffit d'aller tout simplement à la ligne dans le fichier texte ? Ou bien est-ce plus complexe ? |
| | |
| | #15 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() | Oui, c'est bien en mettant des retours à la ligne là où tu le souhaites. Mais vise bien de façon à ce que l'effet soit bon aussi pour le jeu en 640x480 (on ne sait jamais que quelqu'un joue encore avec cette résolution-là ). Sinon tu auras quand même une coupure avant la fin d'une ligne dans ce cas. |
| | |
| | #16 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Oui d'accord j'y penserai. Merci bien ![]() |
| | |
| | #17 |
| Chien de Guerre ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: janvier 2008
Messages: 68
| Bonjour, je reviens en force avec mes pièces d'or pour une nouvelle demande de faisabilité dans la pratique. J'espère après cela ne plus vous déranger avec ça. j'ai donc des phrases qui ici seront cachés suivant la somme dépensé. Y'a-t'il une condition du style: uniquement si 4000 pièces d'or dépensé au dialogue z alors phrase y disponible? Cela m'arrangerai fort bien pour la forme du dialogue. Et peut-on faire en sorte à partir d'une même réplique (ici @19) de pouvoir récupérer soit 4000 ou 2000 à partir de la somme dépensé au dialogue précédent? Tout en faisant également perdre le parchemin à charname. J'espère avoir été clair dans mes propos. J'ai conscience de la redondance de mes questions sur ce sujets mais si cela est impossible je dois le savoir sinon tout tomberait à l'eau. + Dernière modification par Nightmare ; 18/03/2008 à 09h16. |
| | |
| | #18 |
| Gelée de Moutarde ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() ![]() Date d'inscription: juillet 2003 Localisation: Plaisir
Messages: 1&nb |