I've reached a compromise using this script. Now when the door "talks" we are "in-game" and when Geralt talks the camera is facing him.void main(){ object oPC = GetFirstPC(); object oDoor = GetObjectByTag("talking_door"); if(GetDialogFlagValue("en_conv_door") == 1) // optional { if((GetIsDay() == 1) || (GetIsDusk() == 1)) // optional { SetCutsceneMode(oPC, TRUE); // to avoid the player walks around
AssignCommand(oDoor, SpeakOneLinerConversation("conv_door")); DelayCommand(3.0, AssignCommand(oDoor, SpeakOneLinerConversation("conv_door1"))); DelayCommand(8.0, AssignCommand(oPC, ActionStartConversation(oDoor, "witcher_door"))); } }}The conv_door.dlg files have, obviously, only one entry dialogue. The "DelayCommand" is set according to the length of the sentence. The witcher_door.dlg file must have only, and no less than, two "levels" of dialogue lines (dialog-entry --> dialog-reply), otherwise the game crashes or stops because of the cutscene-mode-on. During this conversation the camera is always facing the witcher. If we want the witcher has the possibility to choose a reply we can add more dialog-reply on the second "level".To continue the conversation after the witcher's reply we can put a script on the Action Script's field of the "second level" dialogue line:void TalkingDoor(){ object oPC = GetFirstPC(); object oDoor = GetObjectByTag("talking_door"); SpeakOneLinerConversation("conv_door2"); DelayCommand(2.0, SpeakOneLinerConversation("conv_door3")); //ActionDoCommand(SetCutsceneMode(oPC, FALSE)); // if the conversation ends here (use also DelayCommand) DelayCommand(7.0, AssignCommand(oPC, ActionStartConversation(oDoor, "witcher_door1"))); // if we want another reply of the witcher}void main(){ object oPC = GetFirstPC(); object oDoor = GetObjectByTag("talking_door"); DelayCommand(0.5, SetCutsceneMode(oPC, TRUE)); DelayCommand(1.0, AssignCommand(oDoor, TalkingDoor()));}I did it so because in that manner the game has never crashed or "forgotten" to show the dialogue lines. Maybe we can use only two conversation files with all the dialogue entry and some global flags to enable-disable them.In my opinion the effect is good, but I would prefer if, instead of using DelayCommand, the game waits for the mouse left click after the "SpeakOneLinerConversation", as happens on the "witcher_door" dialogue.Does anyone know how do it?Bye.