Oyez, oyez !

Les résultats du vote sur les meilleurs RPG de tous les temps sont désormais dévoilés dans ce message !

Merci à toutes et à tous pour votre participation !

N'hésitez pas à aller commenter, ajouter des jeux auxquels vous n'auriez pas pensé...

Avec les différents outils peut-on faire dévier la trame du jeu ?

Répondre
Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne

Avec les différents outils peut-on faire dévier la trame du jeu ?

.

Message par emrys »

Salut à tous

Voila je suis en train de creer une nouvelle alternative à la sortie d'Ombre-Terre. Donc le problème c'est que l'on n'affrontera pas Bodhi lors du chapitre6 et qu'elle ne sera même une allié.
Mais là je me demande si on peut le faire car c'est quand même (à mon petit niveau) une grosse modification du jeu.

Au départ j'avais prévu de jongler sur la variable que j'ai crée BodhiRomanceActive, et d'implenter mon grand changement durant le dialogue avec Elhan. Mais Comme beaucoup de choses dans l'intrigue principal sont lié à Bodhi(rencontre avec Dritz, recherche d'allié pour faire une razzia chez les vampires,base de Bodhi rempli de méchant vampire,...) je me demandes si ça suffit ou si je dois effectuer plusieurs autres manip.

Au fait je l'ai posté ici vu que c'est pas un vrai problème technique(pas de donné précise)
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Avatar du membre
Shinook
Ours des cavernes
Messages : 1102
Enregistré le : mar. 18 mai 2004, 17:12
Localisation : Angers
Contact :
Statut : Hors ligne
.

Message par Shinook »

Je pense que c'est faisable. D'ailleurs, si ça se trouve, une partie très importante du jeu peut ne dépendre que d'une variable ( je dis ça comme ça, mais j'en sais rien ). En modifiant cette variable à certain moment, tu peux "dévier" l'intrigue principal, enfin j'imagine ( je préfère pas essayer :p ).

Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne
.

Message par emrys »

Au moins si quelqu'un comme toi qui est depuis longtemps dans la création de mod dit que c'est faisable ça me rassure.
D'après ce que j'ai vu il me semble avoir trouvé la variable lors du dialogue avec Elhan qui change le repaire de Bodhi en enfer. D'ailleurs j'ai remarqué un truc interressant c'est qu'ils ont carrément refais une map rien que pour ça, on a donc dans le jeu 2 maps du repaire de Bodhi pour le même niveau.
Bon ben si c'est faisable allez j'y vais.
Au fait merci pour la réponse:346:.
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Avatar du membre
Akadis
Adepte de Grondemarteau
Araignée éclipsante
Messages : 1224
Enregistré le : lun. 28 avr. 2003, 10:58
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par Akadis »

Malheureusement, je ne partage pas l'enthousiame de Shinook :361:

Si tu t'appuye uniquement sur ta variable tu vas devoir insérer des tests de sa valaur à toute les situations que tu as cités : rencontre avec Drizzt, recherche d'alliés chez les voleurs de l'Ombre ou au coeur radieux, dialogue à l'entrée du cimetière, comportement des vampires dans l'antre de Bodhi, etc.
Comme l'a dit Shinook, toutes ces situations sont peut-être liées directement, soit indirectement à une seule et unique autre variable. Je me rappele vaguement d'un truc basique du genre Chapter=6 mais je ne suis plus sûr du tout.
Pour savoir, il te faut lire le code source de plusieurs (sinon toutes )ces situations, et même si c'est faisable comme l'as dit Shinook, c'est une tache assez monumentale.

EDIT
Après avoir jeté un coup d'oeil en ce qui concerne le dialogue avec Bodhi (lorsqu'on entre au cimetière au chapitre 6 et qu'elle kidnappe éventuellement le personnage romancé par charname) ainsi que les maps du *nouvel* antre de Bodhi, on peut voir que tout cela est géré dans le premier bloc du script de la zone :
IF[INDENT] OnCreation()
GlobalGT("Chapter","GLOBAL",5)
Global("Deactivate0801","AR0800",1)
InMyArea(Player1)
[/INDENT]THEN[INDENT] RESPONSE #100[INDENT] FadeToColor([1.0],0)
SetGlobal("Deactivate0801","AR0800",2)
DayNight(MIDNIGHT)
FadeFromColor([20.0],0)
TriggerActivation("Tran0801a",FALSE)
TriggerActivation("Tran0801b",FALSE)
TriggerActivation("Tran0801c",FALSE)
TriggerActivation("Tran0801d",FALSE)
TriggerActivation("BodhiInfo1",TRUE)
TriggerActivation("BodhiInfo2",TRUE)
TriggerActivation("BodhiInfo3",TRUE)
TriggerActivation("Tran0808",TRUE)
Unlock("DOOR12")
CreateCreatureObjectOffScreen("BODHIAMB",Player1,0,0,0) // Bodhi
[/INDENT][/INDENT]END
Le seul trigger à portée globale est : chapitre strictement supérieur à 5.
Les actions TriggerActivation font tout ce qu'il faut pour le nouvel antre de Bodhi.
Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un M. P
Responsable de la maintenance du mod
Kim
Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne
.

Message par emrys »

Ouah un gros merci :up: :up: :up: , j'avais pas vu cette ressemblance sur le début des scripts des nouvelles map de Bodhi.(note sur le callepin, ne pas faire de codage et des recherches sur les modifications possibles après 00h00)

Si je mets après le IF une variable du style:

on creation()
GlobalGT("chapter","GLOBAL",5)
Global("Deactivate0801","AR0800",1)
InMyArea(Player1)
!Global("BodhiRomanceActive","GLOBAL",2)
!Global("BodhiRomanceActive","GLOBAL",1)
(d'après ce que j'ai vu le ! sert à dire qu'il ne faut pas que la variable soit activé )

là les nouvelles maps et le dialogue de Bodhi du chapitre 6 ne devraient pas se charger, par contre pour les autres rencontres j'avais déjà pensé à intégrer ma variable(beaucoup de boulots en perspective)
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Avatar du membre
Akadis
Adepte de Grondemarteau
Araignée éclipsante
Messages : 1224
Enregistré le : lun. 28 avr. 2003, 10:58
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par Akadis »

En effet ca devrait marcher. Le ! est le carectère de négation. Dans ton exemple ça veut dire BodhiRomanceActive n'est ni égal à 1 ni à 2.

Bon courage pour la modification des autres rencontres.
Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un M. P
Responsable de la maintenance du mod
Kim
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Le chapitre 6 est constitué uniquement de la recherche, auprès de Bodhi qui l'a volé aux elfes, de l'objet magique dont le nom précis m'échappe, permettant de voir l'entrée de la cité elfe. Si tu ne veux plus tuer Bodhi, il te faut fournir un autre moyen de récupérer l'objet (c'est faisable avec une romance, j'imagine). Il faut aussi neutraliser les actions de scripts, de dialogues, de zones (par exemple des pièges ou des portes) basées sur le chapitre 6, donc la variable, mais aussi (on n'est jamais trop prudent) les variables concernant la mort de Bodhi.
Je n'oublie pas non plus le fait que Bodhi enlève l'élu de la romance active à l'arrivée au cimetierre au chapitre 6. Il faudrait que tu modifies ça si tu veux éviter une incohérence.

La grosse difficulté de ces modifications (au delà de la recherche de tous les endroits à corriger) est que ce n'est pas du tout facile de coder un patch comme ça avec WeiDU. Les seuls exemples que tu vas pouvoir trouver sont des mods comme le BG2 Fixpack, Virtue ou la romance de Nalia (j'en oublie sans aucun doute). Et tu ne trouveras hélas pas beaucoup d'explications sur ce qu'ils font et pourquoi. Je veux dire par là qu'un bloc de patch est illisible si on ne sait pas ce qu'il y a dans le fichier avant et après le patch.

Pour conclure, il n'y a rien d'impossible, mais c'est loin d'être facile.
Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne
.

Message par emrys »

Hé bhé comme qui dirait c'est pas gagné.

Mais à ma grande surprise, j'ai trouvé que peu de rapports dans le jeu avec la mort de Bhodi :) :

-nouvelle zone de cimetierre(on peut l'empêcher de charger si j'inclues mes nouvelles variables, d'ou plus d'enlèvement et plus de Bodhi recroquevillé dans son QG avec plein de méchants suceur de sang)

-un seul dialogue à modifer celui d'Elhan(général Elfe)( bon là c'est comme d'habitude je fais un EXTEND_BOTTOM et comme condition mes variables, et hop le nouveau dialogue prend la place de l'ancien si on romance Bodhi)

-plusieurs dialogues mineurs :D rizzt, Warsa, Squirt, Clercs1,2,3 , le Prêlat de l'ordre ( il faut juste que je modifie les conditions de ces dialogues pour éviter un faux pas lors de ceux-ci)

Et ensuite je te code tout ça avec weidu:
COMPILE pour mes nouveaux dialogues
COPY pour les nouvelles conditions(je copie dans mon mod les fichiers modifié et après weidu les copie dans le jeu lors de l'installation du mod)

Et pour finir je finis ma tasse de café avant d'utiliser le marteau sur mon ordi car comme c'est facile à faire weidu ne voudra pas le faire, je commence à le connaître ce petit programme.

Bon voila mon idée, avis aux experts, cela peut-il marcher ou pas?
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Avatar du membre
Akadis
Adepte de Grondemarteau
Araignée éclipsante
Messages : 1224
Enregistré le : lun. 28 avr. 2003, 10:58
Localisation : Bordeaux
Contact :
Statut : Hors ligne
.

Message par Akadis »

Le gros problème si tu override les scripts (ou les dialogues) c'est les incompatibilité entre mod. je suppose que c'est pour ça qu'Isaya te conseille de regarder dans BG2FixPack ou d'autre pour pour PATCHER e non overrider ces scripts.
Développeur du mod Akadis version disponible Beta 3.1b : envoyez moi un M. P
Responsable de la maintenance du mod
Kim
Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne
.

Message par emrys »

Bon ok maintenant j'entrevois clairement le problème.
Désolé Isaya je n'avais compris la différence entre patcher et "overrider". Il n'ya pas de problème, il n'y a que des solutions pour la suite je vais regarder la structure de BG2Fixpack en espérant que ce soit lisible ou d'autre mod dans ce style et j'adapte mon mod sur leur méthode.
Merci encore à tous pour votre aide ^^

EDIT: Bon après avoir farfouillé dans tout les mod que je possède, j'ai trouvé plusieurs opérations qui me semblent possible:

1)COPY_EXISTING ~la zone en question.bcs~ ~override~
DECOMPILE BCS_TO_BAF
REPLACE_TEXTUALLY ~une variable déja présente~
~ma nouvelle variable~
COMPILE BCS_TO_BAF

2)EXTEND_BOTTOM ~la zone.bcs~ ~l'ajout~

Pour la façon 1 c'est un peu la même chose que faire un COPY dans mon cas.
Pour la façon 2 on ne peut implémenter l'ajout dans une partie précise du script.
Sinon il existe une façon PATCH_ IF, mais d'après ce que j'ai vu elle n'est pas utilisable pour les scripts
Bon pour modifier les conditions de certains dialogues je prends la 2ème façon, mais c'est pour le cimetierre que je ne sais comment faire.

Donc là encore je fais apelle au pro du weidu. Vivement ce point noir de mon mod terminé le reste sera beaucoup plus classique à réalisé.
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Avatar du membre
Isaya
Adepte de Grondemarteau
Planaire
Messages : 6990
Enregistré le : mar. 22 juil. 2003, 21:03
Localisation : Plaisir
Contact :
Statut : Hors ligne
.

Message par Isaya »

Le problème des EXTEND_BOTTOM, c'est justement qu'ils ajoutent des trucs à la fin des scripts ou des dialogues. Dans le cas des scripts (pour les dialogues, j'ai un doute sur l'ordre d'évaluation), ce nouveau bloc ne sera pris en compte que si aucun autre bloc avant n'a vu ses conditions vérifiées. Si le même ordre s'applique aux dialogues, l'ajout en fin de dialogue sera inutile si une condition précédente du dialogue d'Elhan existe pour te dire de dépêcher de tuer Bodhi. Si un tel cas existe, il te faudra aussi neutraliser le test qui déclencherait ce dialogue gênant.

La méthode consistant à décompiler puis patcher en texte est la bonne pour ce cas de patch. Néanmoins, pour avoir pratiqué ce genre de recherche-remplacement sous Unix, je peux dire que ce n'est pas chose facile si ce qu'il faut modifier déborde d'une ligne. Préciser qu'il faut inclure un saut de ligne dans le texte à chercher (par exemple pour supprimer une ligne d'une condition) n'est pas toujours chose aisée. J'ignore les possibilités de WeiDU en ce domaine.

Le patch WeiDU constitue d'après moi la partie finale de la création du mod. Pour ma part, avec un tel mod, je commencerais par mettre au point les scripts en les modifiant directement avec Near Infinity (ou autre compilateur direct). Une fois que tu as quelque chose qui fonctionne, tu peux alors te poser la question de réaliser le patch permettant d'arriver à ce que tu as pu tester. En faisant une analogie avec l'automobile, il n'est pas nécessaire d'attendre le premier de série pour commencer à tester le nouveau châssis et le nouveau moteur et te rendre compte des problèmes. Tu fais un prototype que tu testes à fond et ensuite tu le modifies si nécessaire pour pouvoir le produire en série. Autrement dit, mets d'abord au point tes scripts et dialogues sans te préoccuper des patchs et ensuite il sera temps de les écrire sous forme de patch. Pour sécuriser le principe et ne pas attendre la fin pour constater des gros problèmes, il te suffit de faire un essai de conversion en patch dès que tu as mis au point un dialogue ou un script modifié.
D'autres ont peut-être un avis différent sur la méthode de travail.

Sur un tout autre plan, le scénario, je me pose des questions. Tu parles de romance, donc il n'est plus question de tuer Bodhi mais au contraire de la recruter. Il faudrait neutraliser les offres d'aide des différents personnages qui intervenaient pour s'attaquer aux vampires, ou bien gérer le retournement d'alliance (le joueur a accepté l'aide puis cède à l'offre de Bodhi, donc les anciens alliés ne devraient pas rester les bras croisés dans le cimetierre ou ses cryptes). En pratique, il te faudrait même introduire des dialogues aux leaders (pas ceux qui interviennent dans l'antre) pour les convaincre de ne pas s'en prendre à elle ou au contraire les combattre.
Par la même occasion, il te faudrait aussi traiter le cas des joueurs qui ont une romance en cours avec un autre personnage féminin : tu donnes l'ancien amour en pâture à Bodhi ?
Avatar du membre
emrys
Gnoll
Messages : 150
Enregistré le : sam. 07 oct. 2006, 15:32
Localisation : Cabestany
Contact :
Statut : Hors ligne
.

Message par emrys »

Pour EXTEND_BOTTOM comme les dialogues sont numérotés il suffit de préciser à quel moment tu veux intégrer ton nouveau dialogue, dans le cas des dialogues lors de la recherche d'allié j'inclue dès le départ de nouveaux dialogues lorsque ma variable est à 2 ou 1. Pour le cas d'Elhan c'est juste avant qu'il me demande de récupérer le Lanthorn. Normalement les dialogues ne seront pas le plus gros problème(sauf si j'ai oublié un truc important)

OUAI j'ai une méthode qui marche!! mais comme tu le fais remarquer je ne suis pas sur que l'on peut remplacer une condition par plusieurs autres ou la supprimer car d'après les mods que j'ai vu je n'ais pas trouvé de précédent:361:

En ce qui concerne ta méthode j'apllique une méthode différente en couchant sur papier la plupart des changements que je veux opérer les protagonistes qui vont subir des changements et bien sur les nouveaux dialogues et les quêtes.Ensuite j'essaye de les insérer petit à petit en vérifiant à chaque fois que je n'ai pas de problème avec weidu et ENFIN(juste avant de mourrir d'une overdose de weidu) je fais mon petit alpha-test personel avant de chercher des bêta-testeurs. Je préfere coder avant pour voir justement si c'est possible ou pas avant de continuer dans la voie scénaristique que j'ai initialement prévu.

Pour le scénario voila comment je le prévoie durant le chapter 6 :
->lors du dialogue avec Elhan: possibilité de continuer, améliorer ou rompre sa romance avec Bodhi
->Si romance continue le PJ ne pourra pas demander l'aide d'allié pour tuer Bodhi car il sera contacté par un vampire assez rapidement(juste après la rencontre avec Drizzt)
->Bodhi lui fait une offre se le PJ accepte d'aider Bodhi a avoir plus de pouvoir sur Amn alors elle sera d'accord pour lui céder le Lanthorn(5 quêtes enclenchées, dont quelques une concernant les leaders adverses)
->évolution de la romance entre les quêtes( Bodhi en ayant acqui l'âme d'Imoen commence a éprouver des sentiments).
-> Si Imoen est dans le groupe un dialogue spécial s'enclenchera déterminant le reste de la romance et la vie d'Imoen(Si le PJ veut continuer la romance, Bodhi vampirisera Imoen pour en faire une alliée du PJ sans faille ou pire... )
-> Bodhi commence a entrevoir des possibilitées interressantes en se battant aux côtés du PJ( dont celle de pouvoir manipuler un enfant de Bhaal) elle décide de l'aider à se frayer un chemin jusqu'à Irénicus en se joignant au groupe
->Devant Elhan elle se fait passer( à l'aide d'un sort que l'un de ces vampires connait) pour une nouvelle allié du PJ
-> A la cité elfique elle ordennera au PJ de l'aider à vampiriser les elfes encore en vie(possibiliter de refuser= fin de romance)
-> Se retrouvera face à Irénicus avant de pouvoir mordre Ellisime, durant les épreuves de l'enfer elle fera le choix d'aider le PJ ou Irénicus ou de regarder le combat (Fin de la Romance)
En ce qui concerne les autres romances en cours Bodhi ne s'en inquiétera pas, mais si le PJ montre une très grande attirance envers Bodhi, les autres romances s'arrêteront.

Au fait sur mon mod je ne proposerai pas que la romance de Bodhi, mais c'est celle qui est le plus abouti pour l'instant

De toute façon je vais demander à un modérateur de m'ouvrir une section dans le coeur de la forge vu le nombre de post que je pose régulièrement dès que j'ai un problème ça permettra de les regrouper
Le retour de l'emrys :P
Je suis sur NWN 1&2,Dragonshare,BG 1&2,ICWD 1
Répondre

Retourner vers « Généralités sur la création d'un mod »

Qui est en ligne

Utilisateurs parcourant ce forum : Aucun utilisateur enregistré et 0 invité