Jump to content

Open Development Log: BG1 NPC v15


cmorgan

Recommended Posts

Development Version: BG1NPCv15-120707

  • All RealSetGlobalTimer() moved to the end of dialogue action calls unless Rest() or RestParty()
    Confirmation in search of code: 3:59 PM 12/7/2007
    Searching for: RealSetGlobalTimer
    Found 1314 occurrence(s) in 96 file(s)
    Logged here: RSGT-15-120707.txt
  • Dream assignments for BGT installs repaired [shar-Teel/Montaron]

    line 105 <OLD compared to line 105 NEW>
    < PATCH_IF (("%name%" STRING_COMPARE_CASE "SHARTEEL")=0) BEGIN
    ---
    > PATCH_IF (("%pd_%name%" STRING_COMPARE_CASE "SHARTEEL")=0) BEGIN
     
    line 111 compared to line 111 NEW>
    < PATCH_IF (("%name%" STRING_COMPARE_CASE "XZAR")=0) BEGIN
    ---
    > PATCH_IF (("%pd_%name%" STRING_COMPARE_CASE "XZAR")=0) BEGIN

  • Shar-Teel's Unkillable component made Tutu-only, skipping on BGT installs:
    BEGIN @1092 /* The BG1 NPC Project: Make Shar-Teel Unkillable until In Party */
     GROUP @1065 /* The BG1 NPC Project: Tweaks */
     REQUIRE_PREDICATE (FILE_EXISTS_IN_GAME ~FW0100.are~) @1093 /* This component is only useful for Tutu installs. */
    REQUIRE_FILE ~override/X#BG1NPCCore.G3~ @1004 /* BG1 NPC Required Changes component is not installed. */
     /* Stop Shar-Teel's Premature Death */
    COPY_EXISTING  ~%tutu_var%sharte.cre~ ~override~
    			  ~%tutu_var%sharte4.cre~ ~override~
    			  ~%tutu_var%sharte6.cre~ ~override~
    	ADD_CRE_ITEM ~monhp1~ #0 #0 #0 ~NONE~ ~AMULET~ // either adds it new, or forces into inventory (and unequipped)
      BUT_ONLY_IF_IT_CHANGES
    EXTEND_TOP ~%SHARTEEL_BCS%.bcs~ ~BG1NPC/Core/BAF/X#SHARFIX.BAF~
      EVALUATE_BUFFER


  • repair ReadMe lines 153 to 156 to reflect new Tiax starting location
    <p><strong>The <acronym title="Baldur's Gate">BG1</acronym> <acronym title="Non-Player Character">NPC</acronym> Project: Tiax's Starting Location<br /> 
    </strong><em>Tutu Only</em><br /> 
    <strong>Tiax </strong>will start in his regular location or <a href="http://www.dudleyville.com/bg1/ar3300b.htm">Beregost</a>,
    in Feldpost Inn. No change to the join-in dialogue.</p>


  • Updated ReadMe with information on UB Minor Dialogues conflict, in "Known Issues section:
      <p><em>"Each time I try to talk to Jaheira, before I can get to click on any topic, she makes her "leaving speech" as if I had just told her that I wanted her to leave the party!" </em></p> 
     <p><strong>KNOWN MOD CONFLICT:</strong> If you have installed the "Minor Dialogue Restorations" component of Unfinished Business (either BGT or Tutu version) then please uninstall this component. You can try installing the Unfinished Business component before The <acronym title="Baldur's Gate">BG1</acronym> <acronym title="Non-Player Character">NPC</acronym> Project, but if you do, please carefully check which components can be safely used together by checking <a href{SPAMBLOCKER}="http://forums.gibberlings3.net/index.php?showtopic=8122&hl=">The Tutu State of the Modding Union</a> at the Gibberlings Three.</p>


  • Repaired BG1NPC\lib\tutu_area_script_assign.tph by removing extra END, line 442, as per this post.
  • Repaired BG1NPC\phase2\dlg\x#xqxan.d line 435 to close global as per this post.:
    CHAIN IF WEIGHT #-1 ~%BGT_VAR% Global("X#XQFriendlyArmsAlone","GLOBAL",1)~ THEN ~%XAN_POST%~ X#XQXanFinally
    @162
    = @163 
    = @164
    DO ~SetGlobal("X#XQFriendlyArmsAlone","GLOBAL",2) SetGlobal("X#XQXanMissionAccomplished","GLOBAL",2) ActionOverride("xan",JoinParty()) ReputationInc(1) RealSetGlobalTimer("X#XanGoodOutcomeTimer","GLOBAL",90)~
    EXIT


  • Repaired typos

    Searching for: adventureres|Found 3 occurrence(s) in 3 file(s) in .tra|Repaired
    H:\BaldursGateModding\BG1NPCv15-120707\BG1NPC\tra\english\x#ajint.tra @96 = ~By Helm, <CHARNAME>, if this Chelak is really the inexperienced young man I imagine him to be, I don't think he had a chance. Yet I hope my words will be proven wrong, so let us go quickly!~
     
    === BEGIN REPLACE COMMAND ===
    {
    Time: 2007-Dec-07 18:38:32
    Search Pattern: Cloackwood
    Replacement Format: Cloakwood
    Character Encoding: windows-1252
    Root folder: H:\BaldursGateModding\BG1NPCv15-120707
    File Filter: *
    Regular Expression: false
    Replacement Format: false
    Match Case: true
    Match Words: false
    Search Subfolders: true
    }
    H:/BaldursGateModding/BG1NPCv15-120707/BG1NPC/documents/BG1NPCVarIndex.htm: 1 replacements made
    H:/BaldursGateModding/BG1NPCv15-120707/BG1NPC/phase1/baf/x#jaheira1.baf: 3 replacements made
    H:/BaldursGateModding/BG1NPCv15-120707/BG1NPC/phase2/baf/x#miint2.baf: 1 replacements made
    H:/BaldursGateModding/BG1NPCv15-120707/BG1NPC/phase2/dlg/x#miint.d: 1 replacements made
    H:/BaldursGateModding/BG1NPCv15-120707/BG1NPC/tra/english/x#pcinit_tmp.tra: 3 replacements made
    Number of files searched: 839
    Number of files modified: 5
    Total changes made: 9
    === END REPLACE COMMAND ===
     
    BG1NPC\tra\english\x#xan.tra(250): @249 = ~I have drunk wine at funerals of many people strong of spirit, who thought themselves able to alter the fate of others, of the whole nations even. Alas, I have a foreboding that you will be one of them.~
     
    BG1NPC\tra\english\x#xan.tra(385): @384 = ~Seldarine, there is a destiny worse than death... keep me from losing my mind, please keep me from losing my mind...~
     
    BG1NPC\tra\english\x#pcinit_tmp.tra(2746): @2737 = ~*His long, brown hair slides along your fingers with ease, so light that they seem weightless. It is hard to turn into a complete mess, but eventually, you leave no trace of the quaint, luxuriant strands. Instead, what piles on the top of Xan's head closely resembles a raven's nest.*~

  • BGT Chapter reference typo fixed
    H:\BaldursGateModding\BG1NPCv15-120707\BG1NPC\phase3\pid\x#pcinit.d line 4991, %tutu_chapter_4% changed to %tutu_chapter_3%
  • Repaired Minsc interjecting after rescuing Dynaheir, if it hasn't fired yet by adding GlobalLT("X#DYQJournalTalk","GLOBAL",2) to initiation block (repairs this from firing in other conditions after finding Dynaheir) :
    H:\BaldursGateModding\BG1NPCv15-120707\BG1NPC\phase2\baf\x#miint2.baf
    IF %BGT_VAR%
    AreaCheck("%GnollStronghold%")
    Global("X#MinscStronghold","GLOBAL",0)
    GlobalLT("X#DYQJournalTalk","GLOBAL",2)
    InParty(Myself)
    !StateCheck(Myself,CD_STATE_NOTVALID)
    InMyArea(Player1)
    !StateCheck(Player1,CD_STATE_NOTVALID)
    CombatCounter(0)
    !See([ENEMY])
    !InParty("khalid")
    THEN
    RESPONSE #100
    SetGlobal("X#MinscStronghold","GLOBAL",1)
    END


  • BG1NPC\tra\english\x#imint.tra(51): @50 = ~*smiles from behind his moustache* Thou art a spirited girl, Imoen. Now what of thy companion?~
    repaired mostaches to singular.
  • Variable Naming Repairs:
    X#AldethMove to AldethMove, x#jaqu.d, phase 2;
    X#BrFriendTalk to P#BrFriendTalk, p#brrom.baf, phase 3
    All of BG1NPCv15-121407\BG1NPC\phase2\dlg\x#moint.d and related .baf moved to X# cp and rechecked. (Moved two old INTERJECT to I_C_T)
    All of BG1NPCv15-120707\BG1NPC\phase2\dlg\x#miint.d moved to X# cp and rechecked.
    All of BG1NPCv15-120707\BG1NPC\phase2\dlg\x#kiint.d moved to X# cp and rechecked.
    All of BG1NPCv15-120707\BG1NPC\phase2\dlg\x#jaint.d moved to X# cp and rechecked.
    Also recheck of all I_C_T

Link to comment

CamDawg's Full Temple Cures Fix placed in core install component to open BG temples for restoration if Rashel (or Durlag's Tower, or another mod-added succubus) level drains the party before they make it to Amn.

 

regexp catch of all .sto files constrained to those ones flagged as cure-giving via

COPY_EXISTING_REGEXP GLOB ~^.+\.sto$~ ~override~
 READ_BYTE 0x10 "flags" ELSE 0
 PATCH_IF (("%flags%" BAND 0b00010000) = 0b00010000) BEGIN // if sures available; also filters out invalid files

 

On vanilla installs, patches the following .sto >>

Tutu:

_TEM0002.STO

_TEM0131.STO

_TEM0132.STO

_TEM2304.STO

_TEM2601.STO

_TEM3402.STO

_TEM4003.sto

_TEM4802.STO

 

BGT:

E:\BGT\override\GOVWAU01.STO

E:\BGT\override\HELMPR.STO

E:\BGT\override\PPUMB01.STO

E:\BGT\override\TEM0002.STO

E:\BGT\override\TEM0131.STO

E:\BGT\override\TEM0132.STO

E:\BGT\override\TEM2304.STO

E:\BGT\override\TEM2601.STO

E:\BGT\override\TEM3402.STO

E:\BGT\override\TEM4003.STO

E:\BGT\override\TEM4802.STO

E:\BGT\override\TEMPLE.STO

Link to comment

repaired uncalled LOCALS values (not found in BAF of D after recode) for

 

H:\BG1NPCv15-120707\BG1NPC\phase1\dlg\x#yeslick.d

IF ~~ THEN BEGIN YEKA4PC
SAY @373
IF ~~ THEN REPLY @374 DO ~SetGlobal("X#YeKaFight","GLOBAL",1)~ EXIT
IF ~~ THEN REPLY @375 DO ~SetGlobal("X#YeKaFight","GLOBAL",1)~ GOTO YEKA4.1
IF ~~ THEN REPLY @376 DO ~SetGlobal("X#YeKaFight","GLOBAL",1) SetGlobal("X#YeslickLeave","GLOBAL",1)~ GOTO YEKA4.2
END
END

 

BG1NPC\core\baf\x#corwyv.baf

Repaired unclosed CoranWyvern sequence, adding P#CoranWyvern>>1:

 

IF %BGT_VAR%
OR(2)
!Global("P#CoranMatch","GLOBAL",1)
Global("P#CoranRomanceInactive","GLOBAL",1)
GlobalTimerExpired("coran","GLOBAL")
InParty(Myself)
!Dead("wyvern")
Global("X#CoranWyvernWarning1","GLOBAL",0)
Global("P#CoranWyvern","GLOBAL",0)
THEN
RESPONSE #100
SetGlobal("X#CoranWyvernWarning1","GLOBAL",1)
SetGlobal("P#CoranWyvern","GLOBAL",1)
StartDialogueNoSet(Player1)
END

IF %BGT_VAR%
OR(2)
!Global("P#CoranMatch","GLOBAL",1)
Global("P#CoranRomanceInactive","GLOBAL",1)
GlobalTimerExpired("coran","GLOBAL")
InParty(Myself)
!Dead("wyvern")
Global("X#CoranWyvernWarning2","GLOBAL",0)
Global("P#CoranWyvern","GLOBAL",1)
THEN
RESPONSE #100
SetGlobal("X#CoranWyvernWarning2","GLOBAL",1)
StartDialogueNoSet(Player1)
END
Link to comment

Internal v15-121707

 

Incorporated Miloch's Imoen/Safana spell fix, from install thread at SHS:

 

SPWI250.spl should definitely *not* be coded as a standard wizard spell.

 

A fix would involve 3 files. In BG1NPC\phase1\itm\ folder, rename spwi250.spl to something unique of 7 characters, like x#imsaf.spl. Since you've already installed BG1NPC, you can change this in your override folder too.

 

Around line 1008 in bg1npc.tp2, change the spell reference so it looks like this:

/* Imoen - Lockpick */
COPY ~BG1NPC/phase1/itm/x#imsaf.spl~ ~override~
 SAY 8 @15

 

In x#safana.d around line 308, change this:

DO ~ActionOverride("%IMOEN_DV%",ReallyForceSpellRES("SPWI250",Myself))~

To this:

DO ~ActionOverride("%IMOEN_DV%",ReallyForceSpellRES("X#IMSAF",Myself))~
Link to comment

Added to tp2 Nythrun's .cre ordering and forced effv2 fixes, but currently commented out of code for further testing:

 

  /* holding off for testing */
//  /* Nythrun's Broken Cre Order and Effects Fix */
//  DEFINE_PATCH_MACRO ~enforce_cre_order~ BEGIN
//	PATCH_IF ((SOURCE_SIZE > 0x02d3) AND !(~%SOURCE_RES%~ STRING_EQUAL_CASE ~charbase~)) THEN BEGIN
//	  READ_BYTE	0x0033 "eff"
//	  READ_LONG	0x02a0 "kso"
//	  READ_LONG	0x02a4 "ksc"
//	  READ_LONG	0x02a8 "smo"
//	  READ_LONG	0x02ac "smc"
//	  READ_LONG	0x02b0 "mso"
//	  READ_LONG	0x02b4 "msc"
//	  READ_LONG	0x02b8 "iso"
//	  READ_LONG	0x02bc "ilo"
//	  READ_LONG	0x02c0 "ilc"
//	  READ_LONG	0x02c4 "elo"
//	  READ_LONG	0x02c8 "elc"
//	  READ_ASCII   "kso" ~ks~ ELSE ~fail~ (0x0c * "ksc")
//	  READ_ASCII   "smo" ~sm~ ELSE ~fail~ (0x10 * "smc")
//	  READ_ASCII   "mso" ~ms~ ELSE ~fail~ (0x0c * "msc")
//	  READ_ASCII   "iso" ~is~ ELSE ~fail~ (0x50)
//	  READ_ASCII   "ilo" ~il~ ELSE ~fail~ (0x14 * "ilc")
//	  READ_ASCII   "elo" ~el~ ELSE ~fail~ ("elc" * (0x30 + ((("eff" & 0x01) = 0x01) ? 0xd8 : 0x00)))
//	  DELETE_BYTES	  0x02d4 (SOURCE_SIZE - 0x02d4)
//	  SET			   "off" = 0x02d4
//	  WRITE_LONG		0x02a0 "off"
//	  PATCH_IF !(~%ks%~ STRING_EQUAL ~fail~) THEN BEGIN
//		INSERT_BYTES	"off" (0x0c * "ksc")
//		WRITE_ASCIIE	"off" ~%ks%~
//	  END ELSE BEGIN
//		SET			 "ksc" = 0x00
//		WRITE_LONG	  0x02a4 "ksc"
//	  END
//	  SET			   "off" += (0x0c * "ksc")
//	  WRITE_LONG		0x02a8 "off"
//	  INSERT_BYTES	  "off" (0x10 * 0x11)
//	  PATCH_IF ((~%sm%~ STR_CMP ~fail~) AND (smc = 0x11)) THEN BEGIN
//		WRITE_ASCIIE	"off" ~%sm%~
//	  END ELSE BEGIN
//		SET			 "smc" = 0x11
//		WRITE_LONG	  0x2ac "smc"
//		FOR ("i1" = 0x00; "i1" < 0x07; "i1" += 0x01) BEGIN
//		  WRITE_SHORT   ("off" + (i1 * 0x10)) "i1"
//		END
//		FOR ("i1" = 0x00; "i1" < 0x09; "i1" += 0x01) BEGIN
//		  WRITE_SHORT   ("off" + ("i1" * 0x10) + 0x070) "i1"
//		  WRITE_SHORT   ("off" + ("i1" * 0x10) + 0x076) 0x01
//		END
//		WRITE_SHORT	 ("off" + 0x106) 0x02
//	  END
//	  SET			   "off" += (0x10 * "smc")
//	  WRITE_LONG		0x02b0 "off"
//	  PATCH_IF !(~%ms%~ STRING_EQUAL ~fail~) THEN BEGIN
//		INSERT_BYTES	"off" (0x0c * "msc")
//		WRITE_ASCIIE	"off" ~%ms%~
//	  END ELSE BEGIN
//		SET			 "msc" = 0x00
//		WRITE_LONG	  0x02b4 "msc"
//	  END
//	  SET			   "off" += (0x0c * "msc")
//	  WRITE_LONG		0x02c4 "off"
//	  PATCH_IF !(~%el%~ STRING_EQUAL ~fail~) THEN BEGIN
//		INSERT_BYTES	"off" ("elc" * (0x30 + ((("eff" & 0x01) = 0x01) ? 0xd8 : 0x00)))
//		WRITE_ASCIIE	"off" ~%el%~
//	  END ELSE BEGIN
//		SET			 "elc" = 0x00
//		WRITE_LONG	  0x02c8 "elc"
//	  END
//	  SET			   "off" += ("elc" * (0x30 + ((("eff" & 0x01) = 0x01) ? 0xd8 : 0x00)))
//	  WRITE_LONG		0x02bc "off"
//	  PATCH_IF !(~%il%~ STRING_EQUAL ~fail~) THEN BEGIN
//		INSERT_BYTES	"off" (0x14 * "ilc")
//		WRITE_ASCIIE	"off" ~%il%~
//	  END ELSE BEGIN
//		 SET			"ilc" = 0x00
//		 WRITE_LONG	 0x02c0 "ilc"
//	  END
//	  SET			   "off" += (0x14 * "ilc")
//	  WRITE_LONG		0x02b8 "off"
//	  INSERT_BYTES	  "off" 0x50
//	  PATCH_IF !(~%is%~ STRING_EQUAL ~fail~) THEN BEGIN
//		WRITE_ASCIIE	"off" ~%is%~
//	  END ELSE BEGIN
//		FOR ("i1" = 0x00; "i1" < 0x4c; "i1" += 0x02) BEGIN
//		  WRITE_SHORT   ("off" + "i1") 0xffff
//		END
//	  END
//	  SET SOURCE_SIZE = ("off" + 0x50)
//	END
//  END
//  DEFINE_PATCH_MACRO ~use_v2_eff~ BEGIN
//	PATCH_IF ((SOURCE_SIZE > 0x02d3) AND !(~%SOURCE_RES%~ STRING_EQUAL_CASE ~charbase~)) THEN BEGIN
//	  READ_BYTE	0x0033 "eff_type"
//	  WRITE_BYTE 0x0033 0x1
//	  PATCH_IF (("eff_type" & 0x1) = 0x0) THEN BEGIN
//		READ_LONG  0x02c8 "elc"
//		PATCH_IF ("elc" > 0x0) THEN BEGIN
//		  READ_LONG  0x02c4 "elo"
//		  READ_ASCII   "elo" ~efx~ (0x30 * "elc")
//		  PATCH_FOR_EACH "off1" IN 0x02a0 0x02a8 0x02b0 0x02b8 0x02bc BEGIN
//			READ_LONG  "off1" "off2"
//			WRITE_LONG "off1" (("off2" > "elo") ? ("off2" + ("elc" * (0x108 - 0x30))) : ("off2" < 0x2d4 ? 0x2d4 : "off2"))
//		  END
//		  DELETE_BYTES "elo" (0x030 * "elc")
//		  INSERT_BYTES "elo" (0x108 * "elc")
//		  SPRINT ~rfx~ ~~
//		  INNER_PATCH ~%efx%~ BEGIN
//			FOR ("i1" = 0x0; "i1" < "elc"; "i1" += 0x1) BEGIN
//			  SET SOURCE_SIZE += 0xd8
//			  READ_SHORT   (("i1" * 0x30) + 0x00) "opcode"
//			  READ_BYTE	(("i1" * 0x30) + 0x02) "target"
//			  READ_BYTE	(("i1" * 0x30) + 0x03) "power"
//			  READ_LONG	(("i1" * 0x30) + 0x04) "parameter1"
//			  READ_LONG	(("i1" * 0x30) + 0x08) "parameter2"
//			  READ_BYTE	(("i1" * 0x30) + 0x0c) "timing_mode"
//			  READ_BYTE	(("i1" * 0x30) + 0x0d) "dispellability"
//			  READ_LONG	(("i1" * 0x30) + 0x0e) "duration"
//			  READ_BYTE	(("i1" * 0x30) + 0x12) "probability1"
//			  READ_BYTE	(("i1" * 0x30) + 0x13) "probability2"
//			  READ_ASCII   (("i1" * 0x30) + 0x14) ~resref~
//			  INNER_PATCH_SAVE ~rfx~ ~%rfx%~ BEGIN
//				INSERT_BYTES  (("i1" * 0x108) + 0x00) 0x110
//				WRITE_LONG	(("i1" * 0x108) + 0x10) "opcode"
//				WRITE_LONG	(("i1" * 0x108) + 0x14) "target"
//				WRITE_LONG	(("i1" * 0x108) + 0x18) "power"
//				WRITE_LONG	(("i1" * 0x108) + 0x1c) "parameter1"
//				WRITE_LONG	(("i1" * 0x108) + 0x20) "parameter2"
//				WRITE_BYTE	(("i1" * 0x108) + 0x24) "timing_mode"
//				WRITE_LONG	(("i1" * 0x108) + 0x28) "duration"
//				WRITE_SHORT   (("i1" * 0x108) + 0x2c) "probability1"
//				WRITE_SHORT   (("i1" * 0x108) + 0x2e) "probability2"
//				WRITE_ASCIIE  (("i1" * 0x108) + 0x30) ~%resref%~
//				WRITE_BYTE	(("i1" * 0x108) + 0x5c) "dispellability"
//				WRITE_LONG	(("i1" * 0x108) + 0x80) (` 0x0)
//				WRITE_LONG	(("i1" * 0x108) + 0x84) (` 0x0)
//				WRITE_LONG	(("i1" * 0x108) + 0x88) (` 0x0)
//				WRITE_LONG	(("i1" * 0x108) + 0x8c) (` 0x0)
//				WRITE_LONG	(("i1" * 0x108) + 0xa4) (` 0x0)
//				DELETE_BYTES  (("i1" * 0x108) + 0x08) 0x8
//			  END
//			END
//		  END
//		  WRITE_ASCIIE "elo" ~%rfx%~
//		END
//	  END
//	END
//  END
//
//  /* Apply Nythrun's Fixes to creatures we use */
//   ACTION_FOR_EACH ~crefile~ IN  ~%tutu_var%volo.cre~
//								 ~%tutu_scriptbg%xan.cre~
//								 ~%tutu_var%xan4.cre~
//								 ~%tutu_var%xan6.cre~
//								 ~%tutu_var%skie.cre~
//								 ~%tutu_var%skie6.cre~
//								 ~%tutu_var%sharte.cre~
//								 ~%tutu_var%sharte4.cre~
//								 ~%tutu_var%sharte6.cre~
//								 ~%tutu_var%girba2.cre~
//								 ~%tutu_scripti%ronelit.cre~
//								 ~%tutu_var%serva2.cre~
//								 ~%tutu_var%zombie.cre~
//								 ~%tutu_var%drizzt.cre~
//								 ~%tutu_var%nobw2.cre~
//								 ~%tutu_var%gnoll.cre~
//								 ~%tutu_var%bandit.cre~
//								 ~%tutu_var%flame.cre~
//								~%tutu_scriptf%TWBAX_A.cre~
//								~%tutu_scriptf%TWBAX_B.cre~
//								~%tutu_scriptf%TWBAX_C.cre~
//								~%tutu_scriptf%TWBAX_D.cre~
//								~%tutu_scriptf%TWBAX_E.cre~
//								~%tutu_var%DELSVIR.cre~
//								~%tutu_var%DUSHAI.cre~
//								~%tutu_var%BENTLY.cre~
//								~%tutu_var%GALTOK.cre~
//								~%tutu_var%GELLAN.cre~
//								~%tutu_var%HAFIZ.cre~
//								~%tutu_var%HALACA.cre~
//								~%tutu_var%LANDRI.cre~
//								~%tutu_var%MADARC.cre~
//								~%tutu_var%NEB.cre~ BEGIN
//	ACTION_IF (FILE_EXISTS_IN_GAME ~%crefile%~) THEN BEGIN
//	  COPY_EXISTING ~%crefile%~ ~override~
//		LAUNCH_PATCH_MACRO ~enforce_cre_order~
//		LAUNCH_PATCH_MACRO ~use_v2_eff~
//	  BUT_ONLY_IF_IT_CHANGES
//	END
//  END
Link to comment

Miloch's hard work: note to self - add to ReadMe version history log.

 

All changes analyzed and incorporated into dev version via winmerge, then rechecked against his version, installed on EasyTutu_ToB, and inspected in DLTCEP and NI.

 

BG1 NPC change log (v15 - Miloch's testing 24-Dec-2007)

 

=BG1NPC.tp2=

1. Line 60: Commented out and tested "Nythrun's Broken CRE Order and Effects Fix"

2. Line 250: Added buggered Tutu soundslot fix for existing NPCs (6 lines of code)

3. Line 576: Expanded Quayle fix (default Quayle in Tutu/BGT has buggered saves, spells, etc.)

4. Line 631: Expanded Tiax fix (default Tiax has buggered saves, thief skills, etc.)

5. Line 976: A few surgical spell/script fixes (required for Gnomes)

6. Line 1050-1563: Miloch's NPC gnome fixes (revised) - takes into account new WeiDU spell memorization etc., also the fact gnome saving throw bonuses got overlooked in BG1 even though they're correct in BG2.

7. Line 2039: Corrected copied _zombiew.cre's race to zombie

8. Line 3086: Changed copied zombies' reaction from Enemy to Neutral (critical fix for Garrick's quest)

9. Lines 3976: Removed redundant druid references assigned on CREs

10. Line 4367: New gnome portraits (non-TotSC)

11. Line 4486: Assigned unique portraits to Garrick's zombies

12. Line 4545: New TotSC portraits

 

=macro_tutu_items_to_bgt.tph=

Added a ton of items that weren't getting converted to BGT

 

=garricksquest.html=

Somehow my original write-up (March 2007) here got completely butchered, or even overlooked entirely, but that's alright I guess. Or is it? Maybe mine was a bit too verbose (though the spoilers were clearly indicated and masked as such)

Typos corrected: Improper capital use (Quest, Carnival, Bard, Librarian, all lowercased), above > north of, Naskell > Nashkel, stuck > has stuck, Ulcastle > Ulcaster, and so on. Added two (masked) spoilers from my original in case the party runs into problems.

 

=jaheirasquest.html=

Now this is weird - the only things I really corrected in this file 03-2007 were typos and incorrect capitalization, but those things were still there, so I re-overwrote the existing file with my old version. There didn't seem to be any other changes. What's weirder is that this file gives a hell of a lot more spoilers than the bawlderized garricksquest.html (in other words, my original version of that is much tamer and less-spoiling than any of the existing ---quest.html files).

 

=CREs: x#andart, x#beado1, x#beador, x#mareth, x#shdr6, x#shdr8a, x#shdr8b=

Removed small portrait reference (added via mod component)

Gave undroppable free action effect (_mage05) to do away with the RunAwayFrom weirdness when casting Entangle, Web

 

=mercuts.bmp=

Small tweak - removed bowstring (doesn't have a bow)

 

=durlags.bmp=

More appropriate portrait (is a ghost, not a lich)

 

=bentlys.bmp=

=gellans.bmp=

=neb.bmp=

New portraits (more gnomish)

 

=tamokos.bmp=

New portrait (more Kozakuran)

 

=phase2/portrait/*.bmp=

Reduced existing to 256 colors where necessary and touched up several blurry portraits

Added new (not previously referenced) portraits for TotSC NPCs, more gnomes, etc.

 

=Misc.=

3 thumbs.db files deleted (useless Windows cruft)

 

Miloch, quest files probably oversights on my part ( I know documentation is important but it is my least favorite thing to do ). Please resend on stuff, and let's go with more verbose rather than less.

 

TO DO LIST:

  • no portraits for
    x#belgin
    x#diala
    x#dora
    x#dyqimp
    x#elhan
    x#gael
    x#jessup
    x#karris
    x#mazuri
    x#minuw
    x#namara
    x#seasn
    x#siene
    x#skodd
    x#tanari
    x#xqmer1 through 6 only if they say something
  • problem with ASSI02 - 10. need to remove "export allowed' flags and blank .cres of cruft - each one is a different color, so they are best created as standalones, unless someone wants to do a C_E with patching color change (hey - that could be a good way out)

as per SHS posts on Mega installs, Viconia bug with Ardrouine responses. red herring - NO PROBLEM.

Link to comment

"Fluid" states in BGT (and Tutu v4, but primarily on BGT with Fixpack or Mega Installs)

 

Please note: I firmly support the BG2 Fixpack as fixes, and play with it installed on my installs (just not on test installs up until now). This report only applies to fixpacked BGT, and is a failure on my part to identify what I personally consider needed fixes, and add support for both unfixed and fixed installs.

 

Note from BGT player with BG2 Fixpack installed - We try to clear BioWare NPC "always true" conditions that might interfere with PIDs. We adjust the Tutu state number to baseline BGT stae numbers. However, on a BG2 Fixpacked install, those state numbers change in Viconia's case due to the Watcher's Keep fix. As a result, we cut off the fix, and may offset any direct I_C_Ts and COPY_TRANS by 8 states.

 

For research, we need to compare vanilla and fixpacked BGT dialogue files and detect the fixpack, setting the OUTER_SPRINT values to the correct states.

 

Potential files for investigation:

 

NPCs Do Not Comment on Watcher's Keep Events in the Shadows of Amn Portion of the Game

Files altered: edwinj.dlg, imoen2j.dlg, jaheiraj.dlg, minscj.dlg, viconij.dlg

Files altered: bjaheir.dlg, jagalvar.dlg , jaheirap.dlg

Viconia Love Talk Could Result in 'No Valid Links or Replies'

Files altered: bviconi.dlg

 

our potential overlaps:

 

D:\WorkingBaldursGateTutu\BG1NPC\core\dlg\x#bgreplace_bgt.d

/* VICONIA */
REPLACE_STATE_TRIGGER BVICONI 575 ~InteractingWith("kivan") GlobalLT("endofbg1","GLOBAL",2) RandomNum(4,1) Global("X#BIOVI1","LOCALS",0)~
REPLACE_STATE_TRIGGER BVICONI 583 ~InteractingWith("kivan") GlobalLT("endofbg1","GLOBAL",2) RandomNum(4,2) Global("X#BIOVI2","LOCALS",0)~
REPLACE_STATE_TRIGGER BVICONI 584 ~InteractingWith("kivan") GlobalLT("endofbg1","GLOBAL",2) RandomNum(4,3) Global("X#BIOVI3","LOCALS",0)~
REPLACE_STATE_TRIGGER BVICONI 585 ~InteractingWith("kivan") GlobalLT("endofbg1","GLOBAL",2) RandomNum(4,4) Global("X#BIOVI4","LOCALS",0)~
ADD_TRANS_ACTION BVICONI BEGIN 575 END BEGIN END ~SetGlobal("X#BIOVI1","LOCALS",1)~
ADD_TRANS_ACTION BVICONI BEGIN 583 END BEGIN END ~SetGlobal("X#BIOVI2","LOCALS",1)~
ADD_TRANS_ACTION BVICONI BEGIN 584 END BEGIN END ~SetGlobal("X#BIOVI3","LOCALS",1)~
ADD_TRANS_ACTION BVICONI BEGIN 585 END BEGIN END ~SetGlobal("X#BIOVI4","LOCALS",1)~
/* MINSC */
REPLACE_STATE_TRIGGER BMINSC 106 ~InteractingWith("dynaheir") GlobalLT("endofbg1","GLOBAL",2) RandomNum(2,1) Global("X#BIOMI1","LOCALS",0)~
REPLACE_STATE_TRIGGER BMINSC 107 ~InteractingWith("dynaheir") GlobalLT("endofbg1","GLOBAL",2) RandomNum(2,2) Global("X#BIOMI2","LOCALS",0)~
ADD_TRANS_ACTION BMINSC BEGIN 106 END BEGIN END ~SetGlobal("X#BIOMI1","LOCALS",1)~
ADD_TRANS_ACTION BMINSC BEGIN 107 END BEGIN END ~SetGlobal("X#BIOMI2","LOCALS",1)~
/* JAHEIRA */
ADD_TRANS_TRIGGER BJAHEIR 461 ~Global("X#BIOJA1","LOCALS",0)~
ADD_TRANS_TRIGGER BJAHEIR 464 ~Global("X#BIOJA2","LOCALS",0)~
ADD_TRANS_TRIGGER BJAHEIR 467 ~Global("X#BIOJA4","LOCALS",0)~
ADD_TRANS_TRIGGER BJAHEIR 468 ~Global("X#BIOJA5","LOCALS",0)~
REPLACE_STATE_TRIGGER BJAHEIR 466 ~InteractingWith("khalid") GlobalLT("endofbg1","GLOBAL",2) RandomNum(3,2) Global("X#BIOJA3","LOCALS",0)~
REPLACE_STATE_TRIGGER BJAHEIR 469 ~InteractingWith("khalid") GlobalLT("endofbg1","GLOBAL",2) Global("X#BIOJA6","LOCALS",0)~
ADD_TRANS_ACTION BJAHEIR BEGIN 461 END BEGIN END ~SetGlobal("X#BIOJA1","LOCALS",1)~
ADD_TRANS_ACTION BJAHEIR BEGIN 464 END BEGIN END ~SetGlobal("X#BIOJA2","LOCALS",1)~
ADD_TRANS_ACTION BJAHEIR BEGIN 466 END BEGIN END ~SetGlobal("X#BIOJA3","LOCALS",1)~
ADD_TRANS_ACTION BJAHEIR BEGIN 467 END BEGIN END ~SetGlobal("X#BIOJA4","LOCALS",1)~
ADD_TRANS_ACTION BJAHEIR BEGIN 468 END BEGIN END ~SetGlobal("X#BIOJA5","LOCALS",1)~
ADD_TRANS_ACTION BJAHEIR BEGIN 469 END BEGIN END ~SetGlobal("X#BIOJA6","LOCALS",1)~
/* EDWIN */
ADD_TRANS_TRIGGER BEDWIN 109 ~Global("X#BIOED1","LOCALS",0)~
ADD_TRANS_TRIGGER BEDWIN 120 ~Global("X#BIOED2","LOCALS",0)~
ADD_TRANS_ACTION BEDWIN BEGIN 109 END BEGIN END ~SetGlobal("X#BIOED1","LOCALS",1)~
ADD_TRANS_ACTION BEDWIN BEGIN 120 END BEGIN END ~SetGlobal("X#BIOED2","LOCALS",1)~

 

D:\WorkingBaldursGateTutu\BG1NPC\core\dlg\x#jfix_bgt.d

/* Cleaning J's of not conditionals */
REPLACE_STATE_TRIGGER EDWINJ 190 ~Global("X#JCleanEdwin","GLOBAL",1)~
REPLACE_STATE_TRIGGER JAHEIRAJ 533 ~Global("X#JCleanJaheira","GLOBAL",1)~ 534
REPLACE_STATE_TRIGGER MINSCJ 243 ~Global("X#JCleanMinsc","GLOBAL",1)~ 244
REPLACE_STATE_TRIGGER VICONIJ 183 ~Global("X#JCleanViconia","GLOBAL",1)~
REPLACE_STATE_TRIGGER IMOEN2J 111 ~Global("X#JCleanImoen","GLOBAL",1)~

 

D:\WorkingBaldursGateTutu\BG1NPC\lib\g3_bgt_cpmvars.tpa

	/* Items and Variables that need special handling */
OUTER_SPRINT "KICKED_OUT" "IWasKickedOut"
OUTER_SPRINT "BGTEdwinState74" "74"
OUTER_SPRINT "BGTEdwinState75" "75"
OUTER_SPRINT "BGTEdwinState76" "76"
OUTER_SPRINT "BGTEdwinState79" "79"
OUTER_SPRINT "BGTEdwinState80" "80"
OUTER_SPRINT "BGTEdwinState81" "81"
OUTER_SPRINT "BGTEdwinJState193" "193"
OUTER_SPRINT "BGTEdwinState82" "82"
OUTER_SPRINT "BGTEdwinUnjoined77" "77"
OUTER_SPRINT "BGTEdwinUnjoined78" "78"
OUTER_SPRINT "BGTEdwinJState199" "199"
OUTER_SPRINT "BGTViconiaState575" "575"
OUTER_SPRINT "BGTViconiaState583" "583"
OUTER_SPRINT "BGTViconiaState584" "584"
OUTER_SPRINT "BGTViconiaState585" "585"

 

and a manual recheck of the overlapping NPC files on a BGT fixpacked install.

 

phase2\dlg\x#ajint.d(132): I_C_T2 ~%tutu_var%MINSC~ 5 X#AjantisMinsc
phase2\dlg\x#imint.d(446): I_C_T ~%tutu_var%MINSC~ 5 X#MinscImoenJoin1
phase2\dlg\x#imint.d(452): I_C_T ~%tutu_var%MINSC~ 5 X#MinscImoenJoin2
phase2\dlg\x#imint.d(458): INTERJECT ~%tutu_var%MINSC~ 5 X#MinscImoenJoin3
phase2\dlg\x#imint.d(468): COPY_TRANS ~%tutu_var%MINSC~ 5
phase2\dlg\x#imint.d(473): COPY_TRANS ~%tutu_var%MINSC~ 5
phase2\dlg\x#kiint.d(332): I_C_T2 ~%tutu_var%MINSC~ 0 X#KivanMinsc1
phase2\dlg\x#kiint.d(336): I_C_T2 ~%tutu_var%MINSC~ 1 X#KivanMinsc2
phase2\dlg\x#shint.d(86): I_C_T2 ~%tutu_var%MINSC~ 5 X#SharMinscJoin
phase2\dlg\x#xaint.d(130): I_C_T2 ~%tutu_var%MINSC~ 0 X#XanMinsc
phase2\dlg\x#imint.d(93): I_C_T ~%tutu_var%JAHEIR~ 5 X#JaheiraImoenJoin
phase2\dlg\x#imint.d(321): I_C_T ~%tutu_var%JAHEIR~ 6 X#JaheiraImoenJoin1
phase2\dlg\x#imint.d(326): I_C_T ~%tutu_var%JAHEIR~ 8 X#JaheiraImoenJoin1
phase2\dlg\x#imint.d(331): I_C_T ~%tutu_var%JAHEIR~ 14 X#JaheiraImoenJoin1
phase2\dlg\x#imint.d(336): INTERJECT ~%tutu_var%JAHEIR~ 7 X#JaheiraImoenJoin2
phase2\dlg\x#imint.d(608): COPY_TRANS ~%tutu_var%JAHEIR~ 7
phase2\dlg\x#imint.d(619): COPY_TRANS ~%tutu_var%JAHEIR~ 7
phase2\dlg\x#imint.d(624): COPY_TRANS ~%tutu_var%JAHEIR~ 7
phase2\dlg\x#shint.d(135): I_C_T2 ~%tutu_var%JAHEIR~ 6 X#SharJaheirJoin1
phase2\dlg\x#shint.d(141): I_C_T2 ~%tutu_var%JAHEIR~ 8 X#SharJaheirJoin1
phase2\dlg\x#shint.d(147): I_C_T2 ~%tutu_var%JAHEIR~ 14 X#SharJaheirJoin1
phase2\dlg\x#ajint.d(297): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#AjantisEdwin
phase2\dlg\x#edint.d(1): EXTEND_BOTTOM ~%tutu_var%EDWIN~ %BGTEdwinUnjoined77%
phase2\dlg\x#edint.d(5): EXTEND_BOTTOM ~%tutu_var%EDWIN~ %BGTEdwinUnjoined78%
phase2\dlg\x#gaint.d(191): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#GarEdJ1
phase2\dlg\x#gaint.d(194): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#GarEdJ2
phase2\dlg\x#gaint.d(197): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState76% X#GarEdJ3
phase2\dlg\x#imint.d(292): I_C_T ~%tutu_var%EDWIN~ %BGTEdwinState82% X#EdwinImoenJoin
phase2\dlg\x#kiint.d(345): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#KivanEdwin1
phase2\dlg\x#kiint.d(349): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#KivanEdwin2
phase2\dlg\x#miint.d(196): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#MinscEdwinDyna2
phase2\dlg\x#miint.d(205): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#MinscEdwinDyna2a
phase2\dlg\x#miint.d(214): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState76% X#MinscEdwinDyna2b
phase2\dlg\x#miint.d(223): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState81% X#MinscEdwinDyna3
phase2\dlg\x#miint.d(228): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState80% X#MinscEdwinDyna4
phase2\dlg\x#miint.d(233): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState79% X#MinscEdwinDyna5
phase2\dlg\x#miint.d(238): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#MinscEdwinDyna6
phase2\dlg\x#shint.d(63): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#SharEdwinJoin
phase2\dlg\x#ajint.d(297): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#AjantisEdwin
phase2\dlg\x#edint.d(1): EXTEND_BOTTOM ~%tutu_var%EDWIN~ %BGTEdwinUnjoined77%
phase2\dlg\x#edint.d(5): EXTEND_BOTTOM ~%tutu_var%EDWIN~ %BGTEdwinUnjoined78%
phase2\dlg\x#gaint.d(191): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#GarEdJ1
phase2\dlg\x#gaint.d(194): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#GarEdJ2
phase2\dlg\x#gaint.d(197): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState76% X#GarEdJ3
phase2\dlg\x#imint.d(292): I_C_T ~%tutu_var%EDWIN~ %BGTEdwinState82% X#EdwinImoenJoin
phase2\dlg\x#kiint.d(345): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#KivanEdwin1
phase2\dlg\x#kiint.d(349): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#KivanEdwin2
phase2\dlg\x#miint.d(196): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState74% X#MinscEdwinDyna2
phase2\dlg\x#miint.d(205): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState75% X#MinscEdwinDyna2a
phase2\dlg\x#miint.d(214): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState76% X#MinscEdwinDyna2b
phase2\dlg\x#miint.d(223): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState81% X#MinscEdwinDyna3
phase2\dlg\x#miint.d(228): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState80% X#MinscEdwinDyna4
phase2\dlg\x#miint.d(233): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState79% X#MinscEdwinDyna5
phase2\dlg\x#miint.d(238): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#MinscEdwinDyna6
phase2\dlg\x#shint.d(63): I_C_T2 ~%tutu_var%EDWIN~ %BGTEdwinState82% X#SharEdwinJoin
phase2\dlg\x#edint.d(13): EXTEND_BOTTOM ~%EDWIN_JOINED%~ %BGTEdwinJState199%
phase2\dlg\x#miint.d(260): I_C_T2 ~%EDWIN_JOINED%~ %BGTEdwinJState193% X#MinscEdwinDyna1


No problem occurrences of Viconia on P or J or Banter file beyond those listed above.
Link to comment

as per SHS posts on Mega installs, Viconia bug with Ardrouine responses is a red herring - the "floating dialogues" challenge is not.

  • Miloch's [_ or BG]neb.cre fixes to set gnome corrections integrated.
  • Miloch's Jaheira Quest journal entry and .d/.tra edits integrated.
  • Tutu-only Dynaheir Romance Cutscene rebuilt and retested.

Added fix Jan 21, from Amgot's testing:

explicit referencte to Iron Throne before player knows about it if you get Tiax early.

/* Friend talks */
///* Friend talk */
IF WEIGHT #-2 ~%BGT_VAR% Global("X#TiLeader","GLOBAL",1)~ THEN BEGIN TIPC1
SAY @0
IF ~~ THEN REPLY @1 DO ~SetGlobal("X#TiLeader","GLOBAL",2) RealSetGlobalTimer("X#TiFriendTalkTime","GLOBAL",1800)~ GOTO TIPC1.1
IF ~~ THEN REPLY @2 DO ~SetGlobal("X#TiLeader","GLOBAL",2) RealSetGlobalTimer("X#TiFriendTalkTime","GLOBAL",1800)~ GOTO TIPC1.2
IF ~GlobalGT("Chapter","GLOBAL",%tutu_chapter_2%~ THEN REPLY @3 DO ~SetGlobal("X#TiLeader","GLOBAL",2) RealSetGlobalTimer("X#TiFriendTalkTime","GLOBAL",1800)~ GOTO TIPC1.3
IF ~~ THEN REPLY @4 DO ~SetGlobal("X#TiLeader","GLOBAL",2) RealSetGlobalTimer("X#TiFriendTalkTime","GLOBAL",1800)~ GOTO TIPC1.4
END

[

Link to comment
as per SHS posts on Mega installs, Viconia bug with Ardrouine responses is a red herring - the "floating dialogues" challenge is not.

 

Ascension64, Nythrun, the bigg, and to a much lesser extent I have come up with several solutions to the Fluid States on BGT.

 

For simplicity, the recap: BGT v1.06 and higher will incorporate a .tpa that it creates on install dynamically, establishing the base State0 numbers.

 

To use these values, we just need to INCLUDE and run an OUTER_SET iteration to create all the crossmod variables. I will return later with code, but the upshot is that I need to update a number of states to use variables across the project, and then create a simple INCLUDE .tpa for Tutyu which sets the base State0 to "0".

 

As a side note, looking at Miloch's and Ascension64's code and the new UB, I need to update our code to use

 

 

COPY_EXISTING ~%tutu_var%halaca.cre~ ~override~ //Halacan (in Gullykin)

PATCH_IF (SOURCE_SIZE > 0x2d3) BEGIN

WRITE_LONG 0x14 176 //XP Value (was 651)

WRITE_SHORT 0x28 0x6104 //Animation (fighter_male_gnome, was 0x5102 dwarf_low)

WRITE_BYTE 0x55 5 //Save vs. wands (was 13)

END

 

because a number of mods set up 0 byte files.

Link to comment

Jan 22, 2008 (ok, and early morning Jan 23 )

  • Updated and extended area script variable usage to tighten .tp2
  • WizWom's Alora Crash fix integrated.
  • Repaired Branwen/Dynaheir conflict code to account for romance variables
  • Moved X#AJRCUT.BAF to line 4902, at the very top of Ajantis's Romance component so it is available for Romance even if the Challenges component is not installed.

still a few hours to go on the variables for fluid states. Continuing after dinner.

 

still a good deal to do on fluid states and rechecking variables, plus some cleanup to do before testing. Will resume tomorrow afternoon. May be able to get another 9 hour session in. Sleep now.

Link to comment

  • First pass through crosscheck of all varibles against v14
  • Fluid States materials (except Imoen) integrated
  • Rechecked SHS, PPG, and G3 for unaddressed bug reports
  • Recode of 4 Viconia and one Kivan banter REPLACE to use REPLACE_SAY, pending testing of banter chain.
     
    phase1\dlg\x#kivan.d
    REPLACE_SAY ~%VICONIA_BANTER%~ %BGTBVICONIState0% @0
    
    REPLACE_SAY ~%VICONIA_BANTER%~ %BGTBVICONIState8% @1
    
    REPLACE_SAY ~%VICONIA_BANTER%~ %BGTBVICONIState9% @2
    
    REPLACE_SAY ~%VICONIA_BANTER%~ %BGTBVICONIState10% @3
    
    REPLACE_SAY ~%KIVAN_BANTER%~ 4 @4
    REPLACE_TRANS_ACTION %KIVAN_BANTER% BEGIN 4 END BEGIN END ~SetGlobal("Kivanfight","GLOBAL",1)~ ~SetGlobal("X#KivanfightBanterBlocked","GLOBAL",1)~


     
    phase2\dlg\x#bri.d

    REPLACE_SAY ~%CORAN_JOINED%~ %BGTCORANJState4% @0
    
    REPLACE_SAY ~%tutu_var%BRIELB~ 14 @1
    ALTER_TRANS ~%tutu_var%BRIELB~ BEGIN 14 END BEGIN 0 END BEGIN ACTION ~SetGlobal("P#Briel_Stay","GLOBAL",1) RealSetGlobalTimer("X#BriLostPatience","GLOBAL",1800)~ END
    
    /* RETAINED - can't see another way to code it without a messy E_B-fest*/
    REPLACE ~%tutu_var%BRIELB~
    IF ~Global("HelpBrielbara","GLOBAL",1)~ THEN BEGIN 16 // from:
    SAY @2
    IF ~Global("P#CoranBaby","GLOBAL",2) Global("P#Briel_Stay","GLOBAL",1) InParty("coran")~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ GOTO returnBriel
    IF ~GlobalLT("P#CoranBaby","GLOBAL",2) Global("P#Briel_Stay","GLOBAL",1) InParty("coran")~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ GOTO NamaraCor
    IF ~Global("P#Briel_Stay","GLOBAL",2) InParty("coran")~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ GOTO BrielCurse
    IF ~Global("P#Briel_Stay","GLOBAL",3)~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ GOTO CoranStay
    IF ~Global("P#Briel_Stay","GLOBAL",1) !InParty("coran")~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ EXIT
    IF ~!Global("P#Briel_Stay","GLOBAL",1) !InParty("coran")~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ EXIT
    IF ~GlobalGT("P#Briel_Stay","GLOBAL",1)~ THEN DO ~SetGlobal("X#BriFinale","GLOBAL",1)~ EXIT
    END
    END


Link to comment

  • Repairs to Ajantis' Romance timers and scripts.
  • Tested and rechecked Viconia/Kivan banter recode.
  • Moved to VERSION ~version #~ and WeiDU v20400
  • Crosscheck of changes versus v14 patched.
  • test install on EasyTutu_ToB, EasyTutu_ToB_Beta, and BGT v1.05b
  • Reorder of code to remove WeiDU warnings for resources called. If you uncomment the MODDER flag, do not be alarmed - hundreds of warnings about "ajant99" and such missing are links to The BG1 NPC Music package. If you don't install it first, WeiDU will warrn you that those resources do not exist.

Link to comment

Archived

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

×
×
  • Create New...