LES VARIABLES S'il y a bien quelque chose à retenir au sujet d'une variable, c'est qu'il faut toujours, autant que faire se peut, en changer la valeur dès qu'un évènement est survenu (dialogue terminé, item donné, cutscene enclenchée ect). Ce doit être systématique et au reste, j'avoue ne pas comprendre la réticence à jalonner de variables les blocs de codes puisque non seulement, ça permet de se familiariser avec cet aspect de WeiDU (qui sera votre lot quotidien) mais en plus, ça ne mange pas de pain et ne nuit pas au jeu.
Si vous ne changez pas la valeur d'une variable, celle-ci restera donc vérifiée et vous risquez d'avoir quelques problèmes, notamment si vous jonglez aves les apparitions successives de mêmes personnages sur une même map (je l'ai moi-même vécu, autant dire que ça vaccine).
Je souligne au passage l'erreur dans la syntaxe du bloc que tu as recopié, Gaurox:
IF ~~ THEN BEGIN Presentation
SAY @9
IF ~~ THEN DO ~Join
tParty()~ EXIT
END
Avec une syntaxe pareille, la compilation par WeiDU sera impossible.
Je terminerai en ce qui concerne les variables par les propos de Richelieu :
"Le temps passe, ta variable est à 2 ...
Si Variable2 (+d'autres conditions) > Premier dialogue de Romance "
Traditionnellement, la romance obéit au système de variables suivant (exemple tiré du mod Severian):
Global("#SeverRomanceActive","GLOBAL",1) = Romance en cours
Global("#SeverRomanceActive","GLOBAL",2) = Romance confirmée
Global("#SeverRomanceActive","GLOBAL",3) = Romance échouée
Si votre joueur est perdu dans sa romance et qu'il désire savoir s'il a échoué ou réussi, et qu'il entre la variable Global("#SeverRomanceActive","GLOBAL") dans la CLUAConsole, la valeur donnée lui permettra de savoir si la romance est toujours active (1 ou 2) ou échouée (à 3).
Les dialogues de romance quant à eux peuvent être lancés par la variable (toujours mod Severian):
Global("#SeverLoveTlk","LOCALS",X)
(le X équivaut à une valeur indéterminée car il ne s'agit que d'un exemple)
Cette romance est assortie d'un timer temps réel (par exemple : 45 minutes passées dans la vraie vie déclencheront un dialogue) et c'est un script assez délicat qui fera l'objet d'une Annexe.
En attendant, j'écrirai dans les prochains jours le Chapitre 9 qui concerne la compilation et sans quoi il est impossible d'achever ne serait-ce qu'un embryon de mod.
SCRIPT D'IMPLANTATIONConcernant ta deuxième question, Gaurox, en effet le procédé qui permet de déterminer la position initiale d'un PNJ est de nature
script c'est-à-dire un fichier .baf, détaillé ici:
https://weiducommando.forumgaming.fr/outils-et-tutoriaux-f13/tutorial-creation-d-un-pnj-chapitre-8-t60.htmRichelieu a donné un exemple parfait de script d'implantation de personnage. Quelques précisions cependant concernant ce passage:
SetGlobal("FSFranzSchaede","GLOBAL",1)
SetGlobal("FSFranzExists","AR0700",1)
Je préconise l'emploi simultané de deux variables car la première sert à la gestion des dialogues ; la seconde ne doit plus être touchée de tout le jeu.
Si vous désirez virer votre personnage du jeu, dans ce cas il suffit de créer par exemple une variable ("PNJDepart","GLOBAL",1) qui vous servira pour vos adieux au PNJ, puis à son retour dans votre groupe.
C'est là une méthode personnelle mais elle me semble adaptée.
Pour la CLUAConsole, le Debug Mode=1 doit se placer juste en dessous du Program Options, mais ceci est déjà expliqué dans le Chapitre 1 du tutorial.