Jump to content

BG1 NPC and Durlag's tower


Wisp

Recommended Posts

Ok, first time I reported this, it was a dud, but this time I can account for the whole process.

 

FW0507, FW0508, FW0509 and FW0510 are the ice, fire, air and slime chambers that you need to clear out in order to be transported onto the chessboard.

Prior to installation of the BG1 NPC mod, all 4 areas have the _AR0507.bcs script assigned to them. This is the script that checks if all 4 chambers have been cleared out and transports the party if it's so.

 

The tutu_area_script_assign macro assigns the scripts _AR0508 to FW0508, _AR0509 to FW0509 and _AR0510 to FW0510. The script _AR0510.bcs is copied over by the BG1 NPC mod, but lacks the block from _AR0507.bcs, so the player is never transported by that script. FW0508 and FW0509 are left with non-existent scripts assigned to them.

 

The net result is that only FW0507 works as "it should" with regards to transporting the party to the next part of Durlag's tower.

Link to comment

Yep - we had better check with macready on that for Easytutu, too -

 

the four areas that should not have the regular script assigned (or rather, should have the first area script assigned to all four areas) are

 

FW0507, FW0508, FW0509 and FW0510

 

and all should keep _AR0507.bcs,

 

so the code block

/* ToSC only: */
ACTION_IF FILE_EXISTS_IN_GAME ~FW1500.are~ THEN BEGIN // if TotSC is installed
 COPY_EXISTING ~FW0500.ARE~ ~override~ // TotSC: Durlag's Tower 
			~FW0501.ARE~ ~override~ // TotSC: Durlag's Tower: Cellar 
			~FW0502.ARE~ ~override~ // TotSC: Durlag's Tower: L1 
			~FW0503.ARE~ ~override~ // TotSC: Durlag's Tower: L2 
			~FW0504.ARE~ ~override~ // TotSC: Durlag's Tower: L3
			~FW0505.ARE~ ~override~ // TotSC: Durlag's Tower: L4
			~FW0506.ARE~ ~override~ // TotSC: Durlag's Tower: Chessboard
			~FW0507.ARE~ ~override~ // TotSC: Durlag's Tower: Ice Chamber
			~FW0508.ARE~ ~override~ // TotSC: Durlag's Tower: Fire Chamber
			~FW0509.ARE~ ~override~ // TotSC: Durlag's Tower: Air Chamber
			~FW0510.ARE~ ~override~ // TotSC: Durlag's Tower: Earth Chamber
			~FW0511.ARE~ ~override~ // TotSC: Durlag's Tower: D1
			~FW0512.ARE~ ~override~ // TotSC: Durlag's Tower: D2
			~FW0513.ARE~ ~override~ // TotSC: Durlag's Tower: D3
			~FW0514.ARE~ ~override~ // TotSC: Durlag's Tower: D4
			~FW0515.ARE~ ~override~ // TotSC: Durlag's Tower: Compass Room
			~FW0516.ARE~ ~override~ // TotSC: Durlag's Tower: Demonknight's Chamber
			~FW1000.ARE~ ~override~ // TotSC: Ulgoth's Beard
			~FW1001.ARE~ ~override~ // TotSC: Ulgoth's Beard: Inn
			~FW1002.ARE~ ~override~ // TotSC: Ulgoth's Beard: Demon's Chamber
			~FW1003.ARE~ ~override~ // TotSC: Ulgoth's Beard: Storehouse
			~FW1004.ARE~ ~override~ // TotSC: Ulgoth's Beard: Mendas' House
			~FW1005.ARE~ ~override~ // TotSC: Ulgoth's Beard: Therella's House
			~FW1006.ARE~ ~override~ // TotSC: Ulgoth's Beard: House2
			~FW1007.ARE~ ~override~ // TotSC: Ulgoth's Beard: House1
			~FW1008.ARE~ ~override~ // TotSC: Ice Island
			~FW1009.ARE~ ~override~ // TotSC: Ice Island: Maze L1
			~FW1500.ARE~ ~override~ // TotSC: Isle of Balduran (North)
			~FW1501.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D1
			~FW1502.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D2
			~FW1503.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D3
			~FW1504.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D4
			~FW1505.ARE~ ~override~ // TotSC: Isle of Balduran (North): Dradeel's House
			~FW2000.ARE~ ~override~ // TotSC: Isle of Balduran (South)
			~FW2001.ARE~ ~override~ // TotSC: Isle of Balduran (South): Great Hut
			~FW2002.ARE~ ~override~ // TotSC: Isle of Balduran (South): Kaishas' Hut
			~FW2003.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 3
			~FW2004.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 2
			~FW2005.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 4
			~FW2006.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 1
			~FW2007.ARE~ ~override~ // TotSC: Isle of Balduran (South): Harbor Hut
			~FW2008.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 2
			~FW2009.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 1
			~FW2010.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 4
			~FW2011.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 3
			~FW2012.ARE~ ~override~ // TotSC: Werewolf Caverns
WRITE_EVALUATED_ASCII 0x95 ~%SOURCE_RES%~ #7 // area script
WRITE_ASCII 0x94 ~_AR~ #3 // area script
 BUT_ONLY_IF_IT_CHANGES
END

 

now reads

 

/* ToSC only: */
ACTION_IF FILE_EXISTS_IN_GAME ~FW1500.are~ THEN BEGIN // if TotSC is installed
 COPY_EXISTING  ~FW0507.ARE~ ~override~ // TotSC: Durlag's Tower: Ice Chamber
			~FW0508.ARE~ ~override~ // TotSC: Durlag's Tower: Fire Chamber
			~FW0509.ARE~ ~override~ // TotSC: Durlag's Tower: Air Chamber
			~FW0510.ARE~ ~override~ // TotSC: Durlag's Tower: Earth Chamber
  WRITE_ASCII 0x94 ~_AR0507~ #8 // area script
 BUT_ONLY_IF_IT_CHANGES

END

ACTION_IF FILE_EXISTS_IN_GAME ~FW1500.are~ THEN BEGIN // if TotSC is installed
 COPY_EXISTING ~FW0500.ARE~ ~override~ // TotSC: Durlag's Tower 
			~FW0501.ARE~ ~override~ // TotSC: Durlag's Tower: Cellar 
			~FW0502.ARE~ ~override~ // TotSC: Durlag's Tower: L1 
			~FW0503.ARE~ ~override~ // TotSC: Durlag's Tower: L2 
			~FW0504.ARE~ ~override~ // TotSC: Durlag's Tower: L3
			~FW0505.ARE~ ~override~ // TotSC: Durlag's Tower: L4
			~FW0506.ARE~ ~override~ // TotSC: Durlag's Tower: Chessboard
			~FW0511.ARE~ ~override~ // TotSC: Durlag's Tower: D1
			~FW0512.ARE~ ~override~ // TotSC: Durlag's Tower: D2
			~FW0513.ARE~ ~override~ // TotSC: Durlag's Tower: D3
			~FW0514.ARE~ ~override~ // TotSC: Durlag's Tower: D4
			~FW0515.ARE~ ~override~ // TotSC: Durlag's Tower: Compass Room
			~FW0516.ARE~ ~override~ // TotSC: Durlag's Tower: Demonknight's Chamber
			~FW1000.ARE~ ~override~ // TotSC: Ulgoth's Beard
			~FW1001.ARE~ ~override~ // TotSC: Ulgoth's Beard: Inn
			~FW1002.ARE~ ~override~ // TotSC: Ulgoth's Beard: Demon's Chamber
			~FW1003.ARE~ ~override~ // TotSC: Ulgoth's Beard: Storehouse
			~FW1004.ARE~ ~override~ // TotSC: Ulgoth's Beard: Mendas' House
			~FW1005.ARE~ ~override~ // TotSC: Ulgoth's Beard: Therella's House
			~FW1006.ARE~ ~override~ // TotSC: Ulgoth's Beard: House2
			~FW1007.ARE~ ~override~ // TotSC: Ulgoth's Beard: House1
			~FW1008.ARE~ ~override~ // TotSC: Ice Island
			~FW1009.ARE~ ~override~ // TotSC: Ice Island: Maze L1
			~FW1500.ARE~ ~override~ // TotSC: Isle of Balduran (North)
			~FW1501.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D1
			~FW1502.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D2
			~FW1503.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D3
			~FW1504.ARE~ ~override~ // TotSC: Isle of Balduran (North): Ship D4
			~FW1505.ARE~ ~override~ // TotSC: Isle of Balduran (North): Dradeel's House
			~FW2000.ARE~ ~override~ // TotSC: Isle of Balduran (South)
			~FW2001.ARE~ ~override~ // TotSC: Isle of Balduran (South): Great Hut
			~FW2002.ARE~ ~override~ // TotSC: Isle of Balduran (South): Kaishas' Hut
			~FW2003.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 3
			~FW2004.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 2
			~FW2005.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 4
			~FW2006.ARE~ ~override~ // TotSC: Isle of Balduran (South): Large Hut 1
			~FW2007.ARE~ ~override~ // TotSC: Isle of Balduran (South): Harbor Hut
			~FW2008.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 2
			~FW2009.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 1
			~FW2010.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 4
			~FW2011.ARE~ ~override~ // TotSC: Isle of Balduran (South): Store Hut 3
			~FW2012.ARE~ ~override~ // TotSC: Werewolf Caverns
WRITE_EVALUATED_ASCII 0x95 ~%SOURCE_RES%~ #7 // area script
WRITE_ASCII 0x94 ~_AR~ #3 // area script
 BUT_ONLY_IF_IT_CHANGES
END

 

This only runs on Tutu/Easytutu installs.

 

Thank you for the detailed report!

Link to comment

cmorgan, I noticed a conflict (call me curious) within the BG1 NPC mod if you fix it like that (assuming you haven't already spotted it as well).

 

(from g3_tutu_cpmvars)
/* AREA_SCRIPTS (BG1 NPC Only) */
OUTER_SPRINT "EarthChamber_BCS" "_AR0510"

 

(from the tp2)
EXTEND_BOTTOM ~%EarthChamber_BCS%.bcs~ ~BG1NPC/Phase2/baf/P#FW0510.BAF~ //yes, it is correct
  EVALUATE_BUFFER

Link to comment

OK, we will have to adjust this to get it more specific, as this would now be appended to all four areas: -

 

contents of that .baf are

 

IF
AreaCheck("%DurlagsTower_EarthChamber%")
Global("X#MinscDTSlimes","GLOBAL",0)
InParty("minsc")
!StateCheck("minsc",CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
THEN
RESPONSE #100
SetGlobal("X#MinscDTSlimes","GLOBAL",1)
END

IF
AreaCheck("%DurlagsTower_EarthChamber%")
Global("X#MinscDTSlimes","GLOBAL",1)
InParty("minsc")
!StateCheck("minsc",CD_STATE_NOTVALID)
!StateCheck(Player1,CD_STATE_NOTVALID)
THEN
RESPONSE #100
ActionOverride("minsc",Dialog(Player1))
END

 

We will need to look for an easy way of making sure the slimetalk happens with the slimes, and not in the other chambers.

Link to comment

Well that's a good question - I was under the impression that AreaCheck() looks at the area script currently running. Which would mean that now 4 areas share the same script, and that dialog would fire in the first area visited.

But I think I have that wrong - an area check looks for FW#### or AR#### and the scripts are not labled the same. So perhaps this is not a conflict at all. Adding a script block to an area with an area check for another area would be fine... checking the IESDP...

Link to comment

Confirmed the repairs to tutu_area_script_assign.tph as per above post, and tested. Reminder: this has NO EFFECT on BGT games, and you can do the rooms in any order on BGT - this change is for Tutu only and will mean that on Tutu games the original scripts will work correctly. After these changes, on both BGT and Tutu, finishing the last room will teleport you to the next stage.

 

For Minsc's comment, the following change (no need to involve an area script at all): removed the script extension from the .tp2 and added it to Minsc's script.

 

CHANGED: in E:\BG1NPC_Workspace\bg1npc-v17\bg1npc\lib\g3_tutu_cpmvars.tpa

OUTER_SPRINT "EarthChamber_BCS" "_AR0507"

 

DELETED: in bg1npc.tp2

  EXTEND_BOTTOM ~%EarthChamber_BCS%.bcs~ ~BG1NPC/Phase2/baf/P#FW0510.BAF~ //yes, it is correct
  EVALUATE_BUFFER

 

and the related file P#FW0510.BAF

 

Added to the bottom of E:\BG1NPC_Workspace\bg1npc-v17\bg1npc\phase2\baf\x#miint2.baf

/* Minsc and the Slimes */
IF %BGT_VAR%
Global("X#MinscDTSlimes","GLOBAL",0)
AreaCheck("%DurlagsTower_EarthChamber%")
InParty(Myself)
!StateCheck(Myself,CD_STATE_NOTVALID)
InMyArea(Player1)
!StateCheck(Player1,CD_STATE_NOTVALID)
THEN
RESPONSE #100
SetGlobal("X#MinscDTSlimes","GLOBAL",1)
END

IF
Global("X#MinscDTSlimes","GLOBAL",1)
AreaCheck("%DurlagsTower_EarthChamber%")
InParty(Myself)
!StateCheck(Myself,CD_STATE_NOTVALID)
InMyArea(Player1)
!StateCheck(Player1,CD_STATE_NOTVALID)
THEN
RESPONSE #100
PlaySong(0)
PlaySound("minsc99")
StartDialogNoSet(Player1)
END

 

repaired 11/23/2008 prerelease v17

Link to comment

Archived

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

×
×
  • Create New...