![]() |
The Black Wyrm's Lair Terms of Use |
![]() ![]() ![]() ![]() |
![]() |
![]() ![]()
Post
#1
|
|
![]() Supremacy of the Metal Kingdom ![]() Mod Developer Posts: 223 Joined: 1-September 05 From: Bulgaria ![]() |
I'm having problems getting this cutscene to work. It is supposed to make the NPC Azure kill Trajan, but all that happens is that she receives the 25000 XP.
I rewrote the code several times, but all in vain. The first time it inserted the code into azure.bcs, which is her script. Next I tried to put it into the dialogue file, but it didn't work again. I tried different actions, neither of which actually did anything. I even tried to make a cutscene.bcs but all it did was to give the XP, just like all the others. Next I looked into the DLG file of Camitis (one of the guys from the "Find who burried Tirdir" quest) and copied his cutscene, as it gives a working example of what I am trying to achieve. Here's his code as it is in "camitis.dlg": QUOTE StartCutSceneMode() SetInterrupt(FALSE) DialogueInterrupt(FALSE) AttackOneRound("amsi") Kill("amsi") SetGlobal("CamRetiEscape","GLOBAL",1) SetGlobalTimer("CamitisRun","LOCALS",5) EscapeAreaObjectMove("AR0500","TRAN0500",1550,3627,13) SetInterrupt(TRUE) EndCutSceneMode() I pasted this code into my dialogue file and made the cosmetic changes it needed (you can see them in the two examples below. Both of them are used in my *.d file. After compilation, one goes to Trajan.dlg and the other - to Azurej.dlg). But guess what happened when I tested it - only XP again. QUOTE StartCutSceneMode() SetInterrupt(FALSE) DialogueInterrupt(FALSE) ActionOverride("Azure",AttackOneRound("trajan")) ActionOverride("Azure",Kill("trajan")) SetGlobal("TrajanPlot","GLOBAL",8) Wait(2) AddexperienceParty(25000) SetInterrupt(TRUE) EndCutSceneMode() QUOTE StartCutSceneMode() SetInterrupt(FALSE) DialogueInterrupt(FALSE) AttackOneRound("trajan") Kill("trajan") SetGlobal("TrajanPlot","GLOBAL",8) Wait(2) AddexperienceParty(25000) SetInterrupt(TRUE) EndCutSceneMode() -------------------- Blessed be the one who has nothing to say, and yet remains silent.
Too many chieftan, too little indian. http://balduran.blackwyrmlair.net -- Azure NPC Romance -- BG2 Improvements -- IWD Improvements |
|
|
![]() |
![]()
Post
#2
|
|
![]() Master of energies ![]() Council Member Posts: 3328 Joined: 9-July 04 From: Magyarország ![]() |
The latter problem is interesting. I suppose the dialogues are pausing dialogues, so even if an AI script (due to the enabled Party AI) triggered for some reason, it still shouldn't affect your dialogue. And if this were the problem, it wouldn't have worked for jastey either.
'Trembling body' occurs when the game tries to display the dialogue but its condition is FALSE for some reason. (This is similar to the case when a creature has SHOUTDLG in its Override script slot, but the DLG file is unavailable, or the dialogue's line has no condition or its condition returns FALSE.) Breaking dialogue is another matter. Direct references (CHAIN) have no condition, so the aforementioned phenomenon can't happen. Was Azure's DLG file available when the dialogue stopped? Perhaps you left it open in a DLG editor program which keeps the file open (and it can't be accessed in GENERIC_READ mode) until you close it... in this case it has nothing to do with the Party AI, maybe it was just a coincidence. Otherwise I have no idea why the dialogue breaks. QUOTE This time the scene worked and Trajan really died. But it seems that actions happen all at once, and he died before Azure could MoveToObject to him. So instead I made Azure ForceSpell him to die. MoveToObject only starts the movement, and doesn't pause the script while the movement is being performed. You need to use Wait(n) after the MoveToObject command, with a proper n value (in seconds). -------------------- Mental harmony dispels the darkness.
|
|
|
![]() ![]() |
![]() |
Lo-Fi Version | Time is now: 11th October 2025 - 02:00 PM |