Jump to content

Rakshasas


SimDing0

Recommended Posts

TRRAKxx.cre all have dialogue for when they turn hostile, triggering on "attacked","LOCALS" (or "GLOBAL" in one case, which is another error). However, this never gets set, so most of them don't say it. I'm unsure of the most effective way to fix this so that only one says it.

Link to comment

IF
GlobalTimerExpired("udPhaTimer","GLOBAL")
Global("udPhaTimerOn","GLOBAL",1)
Global("DrowCityHostile","GLOBAL",0)
!Dead("Phaere")
THEN
RESPONSE #100
 SetInterrupt(FALSE)
 DisplayStringHead(Player1,43962) // A loud gong sounds and you fear you may have failed in the task that the drow have given you.
 SetGlobal("udPhaTimerOn","GLOBAL",0)
 SetGlobal("udSolTimerOn","GLOBAL",0)
 SetGlobal("DrowTimePhaere","GLOBAL",1)
 SetGlobal("ADrowTimerHasExpired","GLOBAL",1)
 CreateCreatureObjectDoor("udphae02",Player1,0,0,0) // Phaere
 ActionOverride(Player1,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player2,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player3,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player4,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player5,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player6,ApplySpell(Myself,UNDER_NORM))
 SetInterrupt(TRUE)
END

IF
GlobalTimerExpired("udSolTimer","GLOBAL")
GlobalLT("PhaereJob","GLOBAL",6)
Global("udSolTimerOn","GLOBAL",1)
Global("DrowCityHostile","GLOBAL",0)
!Dead("Solaufein")
THEN
RESPONSE #100
 SetInterrupt(FALSE)
 DisplayStringHead(Player1,43962) // A loud gong sounds and you fear you may have failed in the task that the drow have given you.
 SetGlobal("udSolTimerOn","GLOBAL",0)
 SetGlobal("udPhaTimerOn","GLOBAL",0)
 SetGlobal("DrowTimeSol","GLOBAL",1)
 SetGlobal("ADrowTimerHasExpired","GLOBAL",1)
 CreateCreatureObjectDoor("udsola02",Player1,0,0,0) // Solaufein
 ActionOverride(Player1,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player2,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player3,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player4,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player5,ApplySpell(Myself,UNDER_NORM))
 ActionOverride(Player6,ApplySpell(Myself,UNDER_NORM))
 SetInterrupt(TRUE)
END

 

These blocks can loop, I suspect. Suggest both check "DrowTimePhaere" and "DrowTimeSol" respectively.

Link to comment
These blocks can loop, I suspect. Suggest both check "DrowTimePhaere" and "DrowTimeSol" respectively.

This may not work, as the timers are all on/off at different times. Ideally, this wouldn't be an issue (as soon as Phaere/Sola spawn in, they dialogue and set "DrowCityHostile" to 1). An ActionOverride("blah",StartDialogueNoSet(Player1)) would work if this is found to be a problem.

 

Also, I think the timers are supposed to be cleared when Ardulace gives the component fetch quest (this was annoying to fix, as I had to check all three major dialogues).

 

EDIT: I'm pretty sure that it was: Phaere's timer to go to the temple and meet mommy gets set (something like three days), but then it never gets cleared ("udPhaeTimerOn," or something similar, never gets set back to 0). This is why some people have trouble with "you have failed" when they're doing the illithid/beholder areas. I don't think that BioWare intended to have the "get to the temple, quick" timer on for these quests, but I can't say for sure.

Link to comment
TRRAKxx.cre all have dialogue for when they turn hostile, triggering on "attacked","LOCALS" (or "GLOBAL" in one case, which is another error). However, this never gets set, so most of them don't say it. I'm unsure of the most effective way to fix this so that only one says it.

This won't work without some changes (even if you attack her, the other two triggers will still be true). So you'd have to edit TRRAK01.BCS, and TRRAK01.DLG.

 

EDIT: WEIGHTs are your friend!

 

EXTEND_TOP ~TrRak01.bcs~ ~path/to/baf~ where baf =

IF
 AttackedBy([GOODCUTOFF],DEFAULT)
 Global("attacked","LOCALS",0)
THEN
 RESPONSE #100
   SetGlobal("attacked","LOCALS",1)
   StartDialogueNoSet([PC])
END

 

Then, replace

COPY_EXISTING ~TrRak01.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
 REPLACE_TEXTUALLY ~AttackedBy([ANYONE],DEFAULT)~ ~Global("attacked","LOCALS",1)~
 COMPILE_BAF_TO_BCS

Or something like that. The state is weighted number 0, so the dialogue won't even have to be changed.

 

EDIT: Grr... I'd rather just cut that part out, but I don't know if there's a patchy way to do that. Basically, it would turn

IF
 OR(2)
   AttackedBy([0],0)
   Allegiance(Myself,255)
 Global("Change","LOCALS",0)

into

IF
 Allegiance(Myself,255)
 Global("Change","LOCALS",0)

since all roads eventually lead to Enemy(). Oh, well.

 

That said, her "boys" aren't even there until she's hostile (and they spawn in hostile), so figuring out who says what wouldn't be a problem.

 

Something for UB?

Link to comment

Finally delved in here. devSin is correct, as usual: Phaere sets a timer to go and meet with the Matron Mother, but the variable that indicates the timer is active is never set back to zero. Whether you speak to the Matron Mother or Phaere first both route through Phaere 115; fixed in .d:

 

ADD_TRANS_ACTION UDPHAE01
BEGIN 115 END
BEGIN 0 END
~SetGlobal("udPhaTimerOn","GLOBAL",1)~

 

For the two baldur.bcs blocks, both udphae02.cre and udsola02.cre have initrg10.bcs scripts which will prompt them to immediately talk to the PC and set DrowCityHostile to 1.

 

As for BKORGAN 6, the SetGlobal("BKorgan5","LOCALS",1) action implies it was probably intended as the beginning of a banter. However, there's nothing in BKORGAN or BYOSHIM that appears to be related. Korgan and Yoshimo do have a banter that is an exchange of insults (starting at BYOSHIM 56) but there's nothing in there that really ties into this. I suppose UB could add BKORGAN to this to give him one more line but I don't see any fixing to do.

Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...