Jump to content

erebusant's - Shar-Teel Romance Misfire thread


erebusant

Recommended Posts

As per Kulyok's direction I'm posting this on the G3 forum.

 

QUOTE(Kulyok @ Dec 5 2007, 11:29 PM) 
Rest in the forest(area where you took Shar-Teel into party). See if any rest banter triggers. If not, wait for five minutes. Then rest again.

CODE/* Interest Talk */
IF %BGT_VAR%
ReputationLT(Player1,13)
Gender(Player1,MALE)
Global("X#ShMale","GLOBAL",0)
RealGlobalTimerExpired("X#DreamTalk","GLOBAL")
InParty(Myself)
!StateCheck(Myself,CD_STATE_NOTVALID)
InMyArea(Player1)
!StateCheck(Player1,CD_STATE_NOTVALID)
CombatCounter(0)
!See([ENEMY])
AreaType(FOREST)
THEN
RESPONSE #100
SetGlobal("X#ShMale","GLOBAL",1)
RealSetGlobalTimer("X#DreamTalk","GLOBAL",180)
StartDialogueNoSet(Player1)
END

This code should be working. Dream timer starts in her regular script, everything else - same story. 

If, after following my advice, you're still running into trouble, I'd check if your dream scripts are working at all - have you had _any_ talks at rest? Try taking Montaron(or Imoen+Kivan) into the party and resting.

That said, if your dream scripts are working but _this talk_ isn't triggering, please, report at our forums at G3.

Started a new game, and joined Xzar & Montaron. When we rested the 1st time I got the Dreamtalk with Montaron about the "Art of Poisoning". Continued on, Got Sharteel to join with same issues as before. Rep=6, CHR=17, STR=18/36. Tried resting in the area we found her, then waiting 5 minutes and resting again, and still no Dreamtalk. During the two times I waited and rested, I got dialogs with Montaron once about "bleeding the squirrels" and between Xzar and Shar-Teel during the next 5 minute wait about how he could help her. Attached are my saved game files and weidu.log and current decompiled Sharteel.baf at this link: http://www.shsforums.net/index.php?act=att...ost&id=9495

Link to comment

I have been watching this (but unable to contribute - scarce on time right now) - but I will review all of it and see what I can mess with. Everything looks correct - but I will go back thorough it and respond in this thread.

 

(Big question - is the BGT area that Shar-Teel meets and joins up in flagged FOREST, or is it flagged something else? It should be flagged FOREST and OUTDOORS, according to our code in the tp2/tph, where we set those flags...)

Link to comment
I have been watching this (but unable to contribute - scarce on time right now) - but I will review all of it and see what I can mess with. Everything looks correct - but I will go back thorough it and respond in this thread.

 

(Big question - is the BGT area that Shar-Teel meets and joins up in flagged FOREST, or is it flagged something else? It should be flagged FOREST and OUTDOORS, according to our code in the tp2/tph, where we set those flags...)

In both AR3200.ARE where the party meets Shar-Teel with SCS installed, and AR9400.ARE where Shar-Teel is in the current saves, the Areas are flagged Outdoors, Day/Night, Weather, and Forest.

Link to comment

I'd suggest sending your save game to cmorgan, too - just to check Shar-Teel's scripts got assigned, and so on. After you do that, if you'd like to continue the romance:

 

CLUAConsole:SetGlobal("X#ShMale","GLOBAL",1)

and keep force-talking her until you got the talk. Then continue as usual, and romance talks should be popping up, as long as X#SharInterest is 1(later 2).

 

(Also, you're sure he's male, right? No girdle of Gender Bender and stuff like that?)

Link to comment

Okay. I did the usual "check it works in my EasyTutu game setup" thingy(which it did), so let's now check what's wrong in your game.

 

Since you're such an accomplished user, please, do this thing for us: attach Pdialog.2da from your override and shartd.baf(command "weidu shartd.bcs" should do it). With your help, maybe we can solve it, after all.

Link to comment
Okay. I did the usual "check it works in my EasyTutu game setup" thingy(which it did), so let's now check what's wrong in your game.

 

Since you're such an accomplished user, please, do this thing for us: attach Pdialog.2da from your override and shartd.baf(command "weidu shartd.bcs" should do it). With your help, maybe we can solve it, after all.

Here are the pdialog.2da and shartd.baf files. I notice in the pdialog.2da that Sharteel has no Dream Script assigned for SoA or ToB. Should the *** be changed to ShartD?

 

http://www.shsforums.net/index.php?act=att...ost&id=9534

Link to comment

Thanks!

 

Yep, as I thought: Shar-Teel's dream script isn't present in your pdialog.2da.

 

If you want a solution: replace

 

SHARTJ *** SHARTP

 

with

 

SHARTJ SHARTD SHARTP

 

 

and continue playing.

 

 

Ultimately, I guess, it's for cmorgan to have a look - I'm no good with BGT side of things.

Link to comment
Thanks!

 

Yep, as I thought: Shar-Teel's dream script isn't present in your pdialog.2da.

 

If you want a solution: replace

 

SHARTJ *** SHARTP

 

with

 

SHARTJ SHARTD SHARTP

 

 

and continue playing.

 

 

Ultimately, I guess, it's for cmorgan to have a look - I'm no good with BGT side of things.

That indeed took care of the problem. I replaced the *** in the Dream Script column with SHARTD and tested it again after battling Shar-Teel to have her join. This time the dreamtalk started just as it should and since I didn't happen to have a healer in this test party 4 Days and 16 Hours later :) my X#SharInterest Global is 1 and X#ShMale Global is now 2 after the "Fair Enough" response. It looks like the pdialog.2da will need to be appended in the BGT install in order for this romance to work. Are there any other Dreamtalk scripts that should be checked?

Link to comment

Er... all of them?

 

There are a bunch of banters that run on dream scripts, and if Shar-Teel's was messed up, I'd be surprised if other BG1 only NPCs weren't as well. Makes sense, really, since BGT is built from BG1, and there aren't any dream scripts in BG1.

 

I thought we checked for that in the BG1 NPC tp2, though?

Link to comment

Thank you, Kulyok, for tracking this down... I am way, way behind an pledge to spend what time I can catching up (except Sunday).

 

erebusant - I will have to check all of them :)

 

This is SBB's code, from the old days. My bet is that something in the BGT mega install has changed the column settings, but we are going to have to get Ascension64's help on this, as it works perfectly on my vanilla BGT install:

 

in bg1npc.tp2, lines

 

  /* pdialog.2da preparation */
 ACTION_IF FILE_EXISTS_IN_GAME ~FW0100.are~ THEN BEGIN
COPY_EXISTING ~pdialog.2da~ ~override/pdialog.2da~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^JOIN_DIALOG_FILE\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~JOIN_DIALOG_FILE\1DREAM_SCRIPT_FILE~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_MINSCJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_MINSCJ\1_MINSCD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_FALDOJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_FALDOJ\1_FALDOD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_JAHEIJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_JAHEIJ\1_JAHEID~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_CORANJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_CORANJ\1_CORAND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_DYNAHJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_DYNAHJ\1_DYNAHD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_XANJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_XANJ\1_XAND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_YESLIJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_YESLIJ\1_YESLID~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_ELDOTJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_ELDOTJ\1_ELDOTD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_VICONJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_VICONJ\1_VICOND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_SHARTJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_SHARTJ\1_SHARTD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_SKIEJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_SKIEJ\1_SKIED~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_KIVANJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_KIVANJ\1_KIVAND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_XZARJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_XZARJ\1_XZARD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_SAFANJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_SAFANJ\1_SAFAND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_QUAYLJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_QUAYLJ\1_QUAYLD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_KHALIJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_KHALIJ\1_KHALID~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_TIAXJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_TIAXJ\1_TIAXD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_EDWINJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_EDWINJ\1_EDWIND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_AJANTJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_AJANTJ\1_AJANTD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_KAGAIJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_KAGAIJ\1_KAGAID~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_MONTAJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_MONTAJ\1_MONTAD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_IMOEN2\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_IMOEN2\1_IMOEND~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_GARRIJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_GARRIJ\1_GARRID~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_BRANWJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_BRANWJ\1_BRANWD~
  REPLACE_TEXTUALLY CASE_INSENSITIVE ~^_ALORAJ\( +[^ ]+ +[^ ]+ +\)[^ ]+~ ~_ALORAJ\1_ALORAD~
BUT_ONLY_IF_IT_CHANGES
 END ELSE BEGIN /* BGT Versions */
 COPY_EXISTING ~pdialog.2da~ ~override~
COUNT_2DA_ROWS 8 "cnt_row"
FOR ( cnt=0; cnt<"%cnt_row%"; cnt=cnt+1 ) BEGIN
  READ_2DA_ENTRY "%cnt%" 0 8 "pd_name"
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "MONTARON")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "MONTAD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "KAGAIN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "KAGAID"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "KIVAN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "KIVAND"
  END
  PATCH_IF (("%name%" STRING_COMPARE_CASE "SHARTEEL")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "SHARTD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "YESLICK")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "YESLID"
  END
  PATCH_IF (("%name%" STRING_COMPARE_CASE "XZAR")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "XZARD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "ALORA")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "ALORAD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "AJANTIS")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "AJANTD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "KHALID")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "KHALID"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "GARRICK")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "GARRID"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "SAFANA")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "SAFAND"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "FALDORN")=0) BEGIN
  SET_2DA_ENTRY "%cnt%" 3 8 "FALDOD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "BRANWEN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "BRANWD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "QUAYLE")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "QUAYLD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "XAN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "XAND"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "SKIE")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "SKIED"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "ELDOTH")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "ELDOTD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "TIAX")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "TIAXD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "DYNAHEIR")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "DYNAHD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "CORAN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "CORAND"
  END
END
 BUT_ONLY_IF_IT_CHANGES
 END

 

Thsi *should* (and does on my BGT install) result in

 

FOR each row, read in the first column, and match it against the string. If you match one of the strings, patch column 3 of the range 0 to 8 inclusive with the matching value. Then keep looking for more matches until you have checked all of the rows.

 

Blah.... we can't use regexp like we do on Tutu, as there are all sorts of things to worry about on Mega-installs where other folks patch in stuff...

 

ideas, anyone, as to what could go wrong? (And erebusant, if you don't mind the ping-pong across two forums, feel free to repost anything I say anywhere - I will ask for a helping hand over at SHS, but may not be able to do so before Monday - i am trying to set up the next version development right now).

Link to comment
You should be all right now - enjoy. :)

It seems that resolving this issue somehow resolved the "Unkillable" issue with Shar-Teel as well. I re-installed Make Shar-Teel unkillable component again after fixing the romance issue and now she dies just like any other character. On the same note, I'm not certain that the "Unkillable" component is even neccesary in BGT due to the following Action 2 script block in the sharte.dlg:

 

ChangeAIScript("SHARTEL2",OVERRIDE)
CreateItem("SHARTHP1",0,0,0)
ActionOverride(StrongestOfMale,Attack("Sharteel"))
FillSlot(SLOT_AMULET)

 

I think Ascension64 already took care of this with the BGT install and it shouldn't be required by BG1 NPC 4BGT.

Link to comment

I found the following error in the pdialog.2da patching for the BGT portion of the BG1NPC.tp2 file. As Follows:

 

	   PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "KIVAN")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "KIVAND"
  END
  PATCH_IF (("%name%" STRING_COMPARE_CASE "SHARTEEL")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "SHARTD"
  END
  PATCH_IF (("%pd_name%" STRING_COMPARE_CASE "YESLICK")=0) BEGIN
   SET_2DA_ENTRY "%cnt%" 3 8 "YESLID"
  END

 

Sharteel code should read %pd_name%

Xzar patching has the same error.

Link to comment

Archived

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

×
×
  • Create New...