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é...

[DLG] Comment lancer un dialogue après un repos ?

Répondre
Avatar du membre
Anouchka
Grouilleux malade
Messages : 3
Enregistré le : dim. 13 mars 2011, 17:51
Localisation : Lyon
Statut : Hors ligne

[DLG] Comment lancer un dialogue après un repos ?

.

Message par Anouchka »

Salut!

Pour un premier post sur le forum, j'aurai besoin des weidusiens:

NI et IESDEP sont restés muets, et pourtant, dans la jeu, il y a nombre de moments ou un dialogue ou un combat se déclenche quand on appuie sur "repos" (ex: Romance d'Anomen pour faire simple)
J'ai besoin de lancer un dialogue de la même façon: le joueur appuie sur repos, le dialogue se lance;

Bref, PartyRested() n'est que pour l'"après repos" et ne corresponds pas à ce que je veux, j'ai donc testé divers petits moyens sans trouver ZE truc qui corresponds..... :dash1:

Quelqu'un l'aurai sous le coude? Ou mieux encore, l'aurai intégré à son mod/projet?

Merci d'avance! ^^
Xune Amduval, sortie courant 2011
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 »

Bonjour Anouchka,

Ce mécanisme est pris en charge par un script, généralement appelé nompnjD.BCS. Ce script doit être référencé dans le fichier pdialog.2da, dans la colonne DREAM_SCRIPT_FILE.

On peut penser qu'il est appelé à chaque repos. Il faut donc introduire dans le script les conditions nécessaires pour qu'il ne se déclenche qu'au moment opportun, typiquement en fonction de la variable qui dicte l'avancement de la romance.

Puisque tu cites Anomen, voici ce que donne le script ANOMEND.BCS

Code : Tout sélectionner

IF
	!Global("AnomenRomanceActive","GLOBAL",0)
	!Global("AnomenRomanceActive","GLOBAL",3)
	Global("AnomenMatch","GLOBAL",1)
	See(Player1)
	CombatCounter(0)
	OR(2)
		Global("LoveTalk","LOCALS",31)
		Global("LoveTalk","LOCALS",35)
THEN
	RESPONSE #100
		IncrementGlobal("LoveTalk","LOCALS",1)
		RealSetGlobalTimer("AnomenRomance","GLOBAL",1)
		PlaySong(35)
		Interact(Player1)
END
Cela ressemble beaucoup aux blocs de script employés dans le script principal du PNJ pour les autres dialogues de romance.

Parmi les mods qui s'en servent, je peux citer Chloe Romance. Ce n'est peut-être pas un modèle en général, car il est très ancien. Mais il exploite cette possibilité. J'aurais dû m'en souvenir, car il m'avait fallu corriger le fichier TP2 du mod pour que ça fonctionne après la conversion pour compatibilité avec BGT. ;) Il doit même encore rester un commentaire à mon nom dans le fichier. Pourtant j'avais oublié.

Pour l'écriture de romance, il existe à ma connaissance un seul tutorial qui couvre un peu tous les aspects. C'est celui de Rastor. Il n'est pas tout à fait complet, notamment parce qu'il ne traite pas du dialogue de l'arbre de vie, mais il couvre justement cet aspect du dialogue avant et après le sommeil.

Bonne continuation.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Anouchka
Grouilleux malade
Messages : 3
Enregistré le : dim. 13 mars 2011, 17:51
Localisation : Lyon
Statut : Hors ligne
.

Message par Anouchka »

Merci pour ta réponse, je vais potasser tout ça ^^

Dératiseur m'a aussi fourni des éléments de réponse, et m'a permis d'avancer:

http://weiducommando.forumsactifs.com/t ... e-sur-dodo

Testé in game, ca marche, le dialogue se lance parfaitement ;)

Merci beaucoup en tous cas!
Xune Amduval, sortie courant 2011
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 »

Je vois deux défauts (le second est seulement potentiel) à la méthode suggérée par dératiseur :
  • comme il semble que ce soit dans le script de comportement du personnage, ce bloc sera testé en permanence pour rien, ce qui aura pour effet de ralentir le jeu ; peut-être pas beaucoup, mais ce genre de surcharge inutile d'un script exécuté en permanence participe au ralentissement global en cas de méga-installation
  • j'ignore si cette combinaison d'états testée (CD_STATE_NOTVALID) est fiable pour ce que tu veux faire. Quand on regarde cette valeur (ajoutée par le BG2 Fixpack, elle n'existe pas avec un jeu non moddé, donc il faudra prévoir dans ton TP2 le code pour l'ajouter, ou alors vérifier que le BG2 Fixpack est bien installé), on constate qu'elle couvre presque tous les cas où le personnage n'est effectivement pas disponible, sauf STATE_CHARMED, ce qui pourrait signifier que le dialogue pourrait se déclencher même dans le cas où CHARNAME est charmé (pour Xan, dans l'exemple cité par dératiseur, on peut imaginer que son script ne s'exécute plus sous l'effet d'un charme).
A contrario, la méthode indiquée par Rastor utilise un script qui est lancé uniquement au moment du repos et n'a probablement pas besoin de contrôle d'état sortant de l'ordinaire : le repos est refusé si le jeu détecte des conditions de type combat (personnage sous l'effet de certains sorts notamment).

Enfin, il vaut toujours mieux avoir deux solutions possibles au lieu d'une seule.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Avatar du membre
Anouchka
Grouilleux malade
Messages : 3
Enregistré le : dim. 13 mars 2011, 17:51
Localisation : Lyon
Statut : Hors ligne
.

Message par Anouchka »

Désolée je réponds un peu tardivement, j'ai eu peu de temps à moi recemment

pour le (CD_STATE_NOTVALID) , aucun problème, mon TP2 en est équipé depuis le début, c'est "rodé" ;)

Pour ce qui est du problème du ralentissement, en effet je n'y avait pas pensé. chez moi, il n'y aucun ralentissement, mais je te fais confiance si tu dis que ca peut poser problème...Je tenterais la version de Rastor sous peu, histoire de voir laquelle des deux façon me convient le mieux!

Merci pour ton aide en tous cas! ^^
Xune Amduval, sortie courant 2011
Avatar du membre
Wolghaï
Grouilleux
Messages : 9
Enregistré le : mer. 28 mars 2012, 13:37
Localisation : Bordeaux
Statut : Hors ligne
.

Message par Wolghaï »

Bonjour
J'ai vu que des solutions fiables avaient été trouvées pour ce problème, mais j'en ai trouvé une autre en parcourant des tutos.
Vous pourrez lire la totalité du tuto à cette adresse : http://www.shsforums.net/topic/36780-co ... -romances/
Triggering dialogues before rest
When you want something to happen before rest, it needs to go into the NPC's dream script. All NPC dream scripts are checked right before resting. An NPCs dream script is the same as their override script, with a "D" on the end. So, if the override script is ##NPC the dream script would be ##NPCD.
Je ne peux pas vous certifier que ça marche, je me suis juste rappelé en le lisant que la question avait été posée ici. ;)


EDIT pour Isaya:
Désolé pour le doublon de réponse alors qu'en plus "je sors de nul part" :$
Je me suis senti redevable à force d’apprendre plein de trucs, et j'ai cru ne pas avoir lu la solution ici et je suis tombé dessus ailleurs ...
Bref, je vais laisser "aux grands" le soin de répondre, surtout quand c'est déjà fait, et m'acheter des lunettes ;)
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 »

Il me semble que c'est exactement ce que j'ai écrit dans le message #2, et en français. ;)

Wolghaï : il n'y a ni grand ni "sorti de nulle part" quand il s'agit d'apporter des bonnes réponses. Le tutoriel que tu cites est très intéressant et montre que ma remarque du message #2 était fausse : il existe d'autres tutoriels que celui que j'indiquais.

Mes excuses pour la remarque présomptueuse.
:!: Peu disponible
Guide d'installation (et FAQ) de Baldur's Gate, Baldur's Gate II, Baldur's Gate Trilogy (BGT), BG1Tutu, Widescreen, BGEE
Pensez à utiliser à la fonction Recherche pour trouver une réponse à votre question !
Répondre

Retourner vers « Dialogues »

Qui est en ligne

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