Jump to content

BG1 Tweak Pack


Guest grogerson

Recommended Posts

No, I have a TotSC BG install, so I can't playtest without my TotSC disc.

 

Anyways, that code didn't work for some reason, and for quite a few I know why happened (See, I get better at this, I can actually fix my own code! :)).

 

It didn't like B_O_I_T_C or my COMPILE, and it had parsing errors because I think it was trying to parse the .D syntax as .TP2 syntax >_<.

 

Oh, and I shortened it, and then looked at the dialogue file, so it SHOULD work properly.

 

Here it is;

BEGIN ~Duke Eltan won't teleport you to CandleKeep~

COPY_EXISTING ~Deltan.dlg~ ~override~
DECOMPILE_DLG_TO_D
REPLACE_TEXTUALLY ~ActionOverride(Player[1-6],.*~ ~~
COMPILE_D_TO_DLG

 

Icen

Link to comment
No, I have a TotSC BG install, so I can't playtest without my TotSC disc.
You own the disc right? They've got no-cd patches out there so you don't have to keep putting your disc(s) in the cd drive. But, hey, that's up to you and what you feel is right.

Getting back to the discussion at hand...

Oh, and I shortened it, and then looked at the dialogue file, so it SHOULD work properly.

 

Here it is;

BEGIN ~Duke Eltan won't teleport you to CandleKeep~

COPY_EXISTING ~Deltan.dlg~ ~override~
DECOMPILE_DLG_TO_D
REPLACE_TEXTUALLY ~ActionOverride(Player[1-6],.*~ ~~
COMPILE_D_TO_DLG

 

Icen

I just did a quick look at the original file. It can't be done with just that. If you drop the teleport actions, the player will never get to finish the game. The teleport takes the player to a candlekeep copy area AR2626 rather than the worldmap accessible AR2600.

 

The only thing that could be done is to tell players that they must go to AR2700 and walk over to the southwest corner where AR2600 would link up. When they do that they will walk over a trigger trap that we add. The trigger trap would do all the teleport and chapter increase actions. The trap would look for the presence of the book in the party's inventory and the current chapter level which should be 5.

 

I've got one component for the fixpack that adds floor triggers, so there is already code that could be modified to do this. Getting the coordinates would be the big thing.

 

I have no clue if any other mods do anything with Eltan and his dialog, if so this could screw them up big time.

Link to comment
No, I have a TotSC BG install, so I can't playtest without my TotSC disc.
You own the disc right? They've got no-cd patches out there so you don't have to keep putting your disc(s) in the cd drive. But, hey, that's up to you and what you feel is right.

Getting back to the discussion at hand...

Oh, and I shortened it, and then looked at the dialogue file, so it SHOULD work properly.

 

Here it is;

BEGIN ~Duke Eltan won't teleport you to CandleKeep~

COPY_EXISTING ~Deltan.dlg~ ~override~
DECOMPILE_DLG_TO_D
REPLACE_TEXTUALLY ~ActionOverride(Player[1-6],.*~ ~~
COMPILE_D_TO_DLG

 

Icen

I just did a quick look at the original file. It can't be done with just that. If you drop the teleport actions, the player will never get to finish the game. The teleport takes the player to a candlekeep copy area AR2626 rather than the worldmap accessible AR2600.

 

The only thing that could be done is to tell players that they must go to AR2700 and walk over to the southwest corner where AR2600 would link up. When they do that they will walk over a trigger trap that we add. The trigger trap would do all the teleport and chapter increase actions. The trap would look for the presence of the book in the party's inventory and the current chapter level which should be 5.

 

I've got one component for the fixpack that adds floor triggers, so there is already code that could be modified to do this. Getting the coordinates would be the big thing.

 

I have no clue if any other mods do anything with Eltan and his dialog, if so this could screw them up big time.

 

 

Hmm...I just deleted the following lines from _AR0608.BCS:

 

ActionOverride(Player1,LeaveAreaLUA("FW2626","",[4714.2930],12))

ActionOverride(Player2,LeaveAreaLUA("FW2626","",[4714.2930],12))

ActionOverride(Player3,LeaveAreaLUA("FW2626","",[4714.2930],12))

ActionOverride(Player4,LeaveAreaLUA("FW2626","",[4714.2930],12))

ActionOverride(Player5,LeaveAreaLUA("FW2626","",[4714.2930],12))

ActionOverride(Player6,LeaveAreaLUA("FW2626","",[4714.2930],12))

 

I've had no problems ending up in the *correct* Candlekeep area or in completing any quests.

I'm using EasyTutu and ScS. ScS is supposed to prevent the teleporting, but that didn't work.

 

EDIT: some clarification.

Link to comment

Sorry. I guess it was some confusion on my part. AR2700 has links to AR2600 in its area links section. I did further investigating, and AR2626 is on the worldmap and AR2600 is not. That would explain why you can't get back into Candlekeep, its not the same area. So, then you can just drop the teleport and it be okay. However, what about the chapter change. Won't that cause a problem with some quests that weren't finished or started?

Link to comment
Patch for the revised version is simple.

Add to both gems and potions require lore and identify all items components:

SUBCOMPONENT @XX // ~Lore Modifications~

Where XX is the tra entry.

 

Also move them both together at a point prior to the shopkeepers ability to identify component and make an adjustment to the Shopkeepers ability to identify component. It makes no sense to adjust the ability to identify IF all items have been identified. So I recommend having the shopkeepers component do a check for the identify all items component.

That means add to each of the shopkeeper subcomponents:

FORBID_COMPONENT setup-bg1tweaks 3020 ~Identify All Items component has been installed. That component makes this one useless.~

or whatever you want it to say. It should also work with a tra reference as well, but you'll have to test that.

I'm back on the project again. I finally finished ToB, but I'll probably go through it again. The Viconia Romance and Sarevok Change components did not seem to work for me for some reason...

 

I think it best not to change the locations of Gems and Potions Require Identification and Identify All Items. The first makes things harder, the second is clearly a cheat.

 

Identify All Items makes no sense for either Gems and Potions Require Identification or Shopkeepers Have Limited Identification Ability. I was looking at adding REQUIRE_PREDICATE NOT FILE_EXISTS_IN_GAME to Identify All Items for both (if it will work). Otherwise I'll add FORBID_COMPONENT to the Gems and Shopkeeper components, but where would it be placed? Before or after the COPY_EXISTING ~sw1h01.itm~ line? Which command is better to use? A little clarity here would be appreciated.

Link to comment
The chapter change is still in the dialogue, I haven't changed that.

 

Icen

I understand that, what I meant was that you are in chapter 5 and when you get teleported you start chapter 6. If you remain in the city rather than being teleported there are many quests that if you had not finished or started you could not complete as the scripts and dialogs tend to look for GlobalLT("chapter","GLOBAL",6). So if your intent in making this change is to say, I'm not done with all these quests I want to stay here and do that stuff and then trudge on down to Candlekeep, this isn't going to work for you. Besides there is a dialog option that allows you to stay in Baldur's Gate to get the chapter 5 stuff done and then go back and tell him you're ready to go on to Candlekeep. I know from a RP standpoint that if you've got the stuff you'll say "I'm ready! Let's do this!", but you may have other things you could do.

So to boil it down, if we do drop the teleport to Candlekeep, perhaps we should move the chapter increase to a ground trigger in AR2700 just before entering the Candlekeep area.

I have code in the fix pack that could be modified to add just such a trigger, if you're interested....

Link to comment

Current Order:

Gems & Potions (under content change)

Shopkeepers (under rule change)

Identify All (under cheats change)

 

Since you don't want to move locations, it will be possible for players to install from one group and not the other and then go back and install from a different group. Not everybody installs straight through. That said we have two options:

1) create a dummy file for each component. one that will be checked for in the others.

2) use the FORBID_COMPONENT command, but since we may add/subtract components the component number might change and if that happens then we would have to update these sections again. So #1 might be easiest.

 

To do #1

Not exact code but enough that you'll get the picture

BEGIN ~Gems~
REQUIRE_PREDICATE NOT(FILE_EXISTS ~nolore.b1t~) ~Identify All component has been installed. Skipping...~
//some people rename an in game file I prefer to use and inlined empty file.
<<<<<<<< blank.file
>>>>>>>>
COPY blank.file override/gprqlore.b1t /*use whatever naming convention you want so long as you are consistent */
rest of patch

BEGIN ~lorebased~
SUBCOMPONENT ~Shopkeeper~
REQUIRE_PREDICATE NOT(FILE_EXISTS ~nolore.b1t~) ~Identify All component has been installed. This is useless. Skipping...~
<<<<<<<< blank.file
>>>>>>>>
COPY blank.file override/shoplor1.b1t 
rest of patch

BEGIN ~Mage/bard Shopkeepers only~
SUBCOMPONENT ~Shopkeeper~
REQUIRE_PREDICATE NOT(FILE_EXISTS ~nolore.b1t~) ~Identify All component has been installed. This is useless. Skipping...~
<<<<<<<< blank.file
>>>>>>>>
COPY blank.file override/shoplor2.b1t 
rest of patch

BEGIN ~Hybrid~
SUBCOMPONENT ~Shopkeeper~
REQUIRE_PREDICATE NOT(FILE_EXISTS ~nolore.b1t~) ~Identify All component has been installed. This is useless. Skipping...~
<<<<<<<< blank.file
>>>>>>>>
COPY blank.file override/shoplor3.b1t 
rest of patch

BEGIN ~Identify All~
REQUIRE_PREDICATE ( NOT(FILE_EXISTS ~gprqlore.b1t~) 
			 OR NOT(FILE_EXISTS ~shoplor1.b1t~)
			 OR NOT(FILE_EXISTS ~shoplor2.b1t~)
			 OR NOT(FILE_EXISTS ~shoplor3.b1t~) )  ~Gems and Potions Require Lore OR one of the Shopkeeper Lore modification components has been installed. Skipping...~
<<<<<<<< blank.file
>>>>>>>>
COPY blank.file override/nolore.b1t 
rest of patch

This should cover the bases. If gems and potions gets installed first, Identify all will be skipped. If Identify all gets installed first (somehow) then gems and potions as well as shopkeepers will be skipped.

 

We could drop the checks for the shopkeeper inside the Identify all predicate, since it could be possible that someone installed one and later decides they just want to add the identify all without uninstalling the other stuff. That was probably the original intent of BG2.

 

So our options are

1) do this and limit the players options if they choose to add components without uninstalling other components or mods

2) leave it alone but stress in the readme that you shouldn't install identify all if you are going to install other lore modifying components.

3) Add a readln text message explaining to the installer about the possible conflict with another component. The component they are in when they get that message would be installed anyway. You can only warn after starting component installation not before.

Link to comment
The chapter change is still in the dialogue, I haven't changed that.

 

Icen

I understand that, what I meant was that you are in chapter 5 and when you get teleported you start chapter 6. If you remain in the city rather than being teleported there are many quests that if you had not finished or started you could not complete as the scripts and dialogs tend to look for GlobalLT("chapter","GLOBAL",6). So if your intent in making this change is to say, I'm not done with all these quests I want to stay here and do that stuff and then trudge on down to Candlekeep, this isn't going to work for you. Besides there is a dialog option that allows you to stay in Baldur's Gate to get the chapter 5 stuff done and then go back and tell him you're ready to go on to Candlekeep. I know from a RP standpoint that if you've got the stuff you'll say "I'm ready! Let's do this!", but you may have other things you could do.

So to boil it down, if we do drop the teleport to Candlekeep, perhaps we should move the chapter increase to a ground trigger in AR2700 just before entering the Candlekeep area.

I have code in the fix pack that could be modified to add just such a trigger, if you're interested....

 

Sure, fine by me.

 

Honestly, I don't really mind what heppens with what I did. Change it to what you will.

 

Though your idea is probably best, but you could always subcomponent it.

 

Icen

Link to comment

@ Icendoan: I was looking at the BG2 Tweak Pack and noticed REQUIRE_PREDICATE NOT FILE_EXISTS_IN_GAME used to limit installation of components on TUTU and BGT installs. I was hoping to only tag Identify All Items to skip if either Gems or Shopkeepers components are detected. Tagging one component is easier than tagging four. If you don't know if this will work, I can always experiment and see if it can be done.

 

I've already noted the conflict in the readme. Adding a comment to appear during installation of the Identify All component should be no problem, a final warning to the installer.

 

Whichever way works, both the IWD and BG2 tweak packs should likewise be updated to eliminate this problem.

 

Edit: I added the following line to Identify All Items and it appears to be working (skipped installing with Gems and Potions Have Lore):

REQUIRE_PREDICATE NOT ((FILE_EXISTS_IN_GAME ~cdb01060.g3~) OR (FILE_EXISTS_IN_GAME ~cdb02070.g3~) OR (FILE_EXISTS_IN_GAME ~cdb02071.g3~) OR (FILE_EXISTS_IN_GAME ~cdb02072.g3~)) @9

 

Looks like that's taken care of. Now if I can just find what is causing the CTD in the FAI with the Khalid tweak...

Link to comment

Check out the gems and potions have lore component.

 

Specifically see if the unidentified potions can be equipped in the quick slot and then used. That was an issue I found with the BG2 version. I made a fix for that, but now that I look at things, I'm not too sure about it. It will have to be revisited anyway to make sure it's accurate for the BG1 engine. Anywho, unidentified items (including potions) aren't supposed to be equipped or used is my understanding.

 

Poor Khalid.... Guess he's not smart enough to be a mage after all.... :)

Link to comment
REQUIRE_PREDICATE NOT(FILE_EXISTS ~nolore.b1t~) ~Identify All component has been installed. Skipping...~

//some people rename an in game file I prefer to use and inlined empty file.

<<<<<<<< blank.file

>>>>>>>>

COPY blank.file override/gprqlore.b1t /*use whatever naming convention you want so long as you are consistent */

Ugh. Please use REQUIRE_PREDICATE NOT MOD_IS_INSTALLED ~mymod.tp2~ 123 when dealing with your own mod rather than loading unnecessary junk into the override.
Link to comment

Archived

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

×
×
  • Create New...