Jump to content

Icewind Dale Tweak Pack v8 Released


CamDawg

Recommended Posts

Notes for v9: Mytos' dialogue can be exploited for infinite XP.

 

// close mytos infinite xp loophole; add variable and dupe xp-granting replies
ADD_TRANS_TRIGGER DMYTOS 7 ~Global("CDMytosDiplomacy","MYAREA",0)~ DO 1 2 3 4
ADD_TRANS_ACTION DMYTOS BEGIN 7 END BEGIN 1 2 3 4 END ~SetGlobal("CDMytosDiplomacy","MYAREA",1)~
EXTEND_BOTTOM DMYTOS 7
 IF ~!Global("CDMytosDiplomacy","MYAREA",0)~ THEN REPLY #2586 GOTO 9
 IF ~ClassEx(Protagonist,Cleric)
  !Global("CDMytosDiplomacy","MYAREA",0)~ THEN REPLY #2587 GOTO 10
 IF ~ClassEx(Protagonist,Druid)
  !Global("CDMytosDiplomacy","MYAREA",0)~ THEN REPLY #2588 GOTO 10
 IF ~ClassEx(Protagonist,Paladin)
  !Global("CDMytosDiplomacy","MYAREA",0)~ THEN REPLY #2589 GOTO 10
END

 

Yxunomei has this gem in her combat script, hurting herself (if her MR fails) and her allies:

 

// yxonemei casting cloudkill on herself
COPY_EXISTING ~d5yxun.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~Spell(Myself,WIZARD_CLOUDKILL)~ ~Spell(NearestEnemyOf(Myself),WIZARD_CLOUDKILL)~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

 

Villagers in the first level of Dragon's Eye still aren't fleeing after the Lizard King is dead and quest XP is rewarded. Curse that OnCreation() trigger (4001vil.bcs).

 

// villagers not leaving after liz king dead
EXTEND_TOP ~4001vil.bcs~ ~G3DaleTweaks/baf/4001vil.baf~

 

IF
 !See([PC]) // avoids stampede onscreen
 Global("Liz_King_Quest","GLOBAL",1)
THEN
 RESPONSE #100
EscapeArea()
END

 

Something in the script for the shadowed orc shaman (shamen? shamans? shapeople?) (shorcsh1) in the Severed Hand is wrong, as one of them was kind enough to cast Heal Moderate Wounds on me in the midst of battle. The script is full of blocks like this:

 

// hostile orc shaman shouldn't heal party
COPY_EXISTING ~shorcsh1.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~\(See([A-Za-z]*NearestEnemyOf(NearestEnemyOf(Myself)))\)~ ~\1 Allegiance(LastSeenBy(Myself),ENEMY)~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

 

Neo Orog 8 and Orc Elite 8 spawn on the same point [2136.1300] in ar6002, preventing them from moving.

 

// two creatures at same coordinates
COPY_EXISTING ~ar6002.are~ ~override~
 READ_LONG  0x54 "actor_off"
 READ_SHORT 0x58 "actor_num"
 FOR (index = 0; index < actor_num; index = index + 1) BEGIN
READ_SHORT ("%actor_off%" + 0x20 + ("%index%" * 0x110)) "x_coord"
READ_SHORT ("%actor_off%" + 0x22 + ("%index%" * 0x110)) "y_coord"
READ_ASCII ("%actor_off%" + 0x80 + ("%index%" * 0x110)) "cre_file"
PATCH_IF (("%cre_file%" STRING_COMPARE_CASE "neoorog" = 0) AND
		   ("%x_coord%" = 2136) AND
		   ("%y_coord%" = 1300)) BEGIN
  WRITE_SHORT ("%actor_off%" + 0x20 + ("%index%" * 0x110)) 2194
  WRITE_SHORT ("%actor_off%" + 0x22 + ("%index%" * 0x110)) 1264
  WRITE_SHORT ("%actor_off%" + 0x24 + ("%index%" * 0x110)) 2194
  WRITE_SHORT ("%actor_off%" + 0x26 + ("%index%" * 0x110)) 1264
  SET "index" = "%actor_num%" // kill loop
END
 END
 BUT_ONLY_IF_IT_CHANGES

 

The Neo Orog General (neoorogg.cre) has a secondary script name of chief_dead. This causes Saablic Tan to think you've killed Krilag (neoorogc.cre).

 

// neo orog generals shouldn't set chief_dead var; interferes with saablic tan
COPY_EXISTING ~neoorogg.cre~ ~override~
 WRITE_ASCII 0x27e ~~ #32
 BUT_ONLY_IF_IT_CHANGES

 

The frost and fire salamanders use rings to provide their frost/fire graphical effects; their timing modes mean these persist on their dead bodies. Change to instant/while equipped so they'll go away once dead.

 

// global effects not being applied due to bad timing or can be dispelled
COPY_EXISTING ~csalring.itm~ ~override~ // effect overlay
		  ~fsalring.itm~ ~override~ // effect overlay
 PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN // protects against invalid files
READ_LONG  0x6a "fx_off"
READ_SHORT 0x70 "fx_num"
FOR (index = 0; index < "%fx_num%"; index = index + 1) BEGIN // searches through global effects
  WRITE_BYTE ("%fx_off%" + 0x0c + ("%index%" * 0x30)) 2 // instant/while equipped
  WRITE_LONG ("%fx_off%" + 0x0e + ("%index%" * 0x30)) 0 // duration
END
 END
 BUT_ONLY_IF_IT_CHANGES

 

In Lower Dorn's Deep (ar8001), the group of gnomes near the watchtower go hostile because they're grouped with some random salamanders in the area; move em to map group 2. Salamander 105 has no group.

 

// bad teams in ldd
COPY_EXISTING ~ar8001.are~ ~override~
 READ_LONG  0x54 "actor_off"
 READ_SHORT 0x58 "actor_num"
 FOR (index = 0; index < actor_num; index = index + 1) BEGIN
READ_ASCII ("%actor_off%" + 0x80 + ("%index%" * 0x110)) "cre_file"
READ_ASCII ("%actor_off%" + 0x78 + ("%index%" * 0x110)) "specifics"
// one salamander has no group
PATCH_IF (("%cre_file%" STRING_COMPARE_CASE "sal8001" = 0) AND
		  ("%specifics%" STRING_COMPARE_CASE "" = 0)) BEGIN
  WRITE_ASCII ("%actor_off%" + 0x78 + ("%index%" * 0x110)) ~gnteam9m~ // specifics
END ELSE
// gnomes near tower are already group 1; move these enemies to group 2
PATCH_IF ("%specifics%" STRING_COMPARE_CASE "gnteam1m" = 0) BEGIN
  WRITE_ASCII ("%actor_off%" + 0x78 + ("%index%" * 0x110)) ~gnteam2m~
END
 END
 BUT_ONLY_IF_IT_CHANGES

 

Brother Perdiem's dialogue is mis-weighted; state 16 should be ahead of state 15.

 

// perdiem should only go through his post-rescue spiel once
ADD_STATE_TRIGGER DPERDIEM 15 ~Global("Crazy_Speech","GLOBAL",0)~

 

The party should face east when entering Custanthos' library (ar5102) from the lower level (ar5104).

 

// incorrect orientation when entering areas
COPY_EXISTING ~ar5102.are~ ~override~ // custhantos' library
 READ_LONG 0x68 "enter_off"
 READ_LONG 0x6c "enter_num"
 FOR (index = 0; index < enter_num; index = index + 1) BEGIN
READ_ASCII ("%enter_off%" +		("%index%" * 0x68)) "name"
PATCH_IF ("%name%" STRING_COMPARE_CASE "fr5104" = 0) BEGIN
  WRITE_SHORT ("%enter_off%" + 0x24 + ("%index%" * 0x68)) 12 // east
END
 END
 BUT_ONLY_IF_IT_CHANGES

 

Links to Wyrm's Tooth (ar7000) from the worldmap should put the party at the FRWMap entrance point.

 

// entrance point for wyrm's tooth from wmp
COPY_EXISTING ~worldmap.wmp~ ~override~
 READ_LONG 0x0c "mos_off"
 READ_LONG ("%mos_off%" + 0x20) "area_num"
 READ_LONG ("%mos_off%" + 0x24) "area_off"
 READ_LONG ("%mos_off%" + 0x28) "link_off"
 FOR (index = 0; index < area_num; index = index + 1) BEGIN
READ_ASCII ("%area_off%" + 0x08 + ("%index%" * 0xf0)) "area"
PATCH_IF ("%area%" STRING_COMPARE_CASE "ar7000" = 0) BEGIN // wyrm's tooth
  SET "wt" = "%index%"
  SET "index" = "%area_num%" // kills loop
END
 END
 // read links
 FOR (index = 0; index < area_num; index = index + 1) BEGIN
FOR (index2 = 0; index2 < 4; index2 = index2 + 1) BEGIN
  READ_LONG ("%area_off%" + 0x50 + ("%index2%" * 0x08) + ("%index%" * 0xf0)) "link_idx"
  READ_LONG ("%area_off%" + 0x54 + ("%index2%" * 0x08) + ("%index%" * 0xf0)) "link_num"
  FOR (index3 = 0; index3 < link_num; index3 = index3 + 1) BEGIN
	READ_LONG ("%link_off%" +		(("%link_idx%" + "%index3%") * 0xd8)) "target"
	PATCH_IF ("%target%" = "%wt%") BEGIN
	  WRITE_ASCII ("%link_off%" + 0x04 + (("%link_idx%" + "%index3%") * 0xd8)) ~FRWMap~ #32
	END
  END
END
 END
 BUT_ONLY_IF_IT_CHANGES

 

TotL perseverance challenge is BROEK.

 

// perseverance test; monsters don't spawn fast enough so lm goes directly into 'way to go' dialogue
COPY_EXISTING ~selurmst.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~\(CreatureHidden(Myself)\)~ ~\1 !Global("CYSHAMB_DEAD","GLOBAL",0)~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

 

Opening the portal in the TotL jackal caverns is flaky as hell and I got trapped in the cutscene several times. The sequence works much better if the variable sets are moved from cahided.bcs to the end of cahideo.bcs (and moving the CSID to Player1). Basically, cahided would keep trying to interrupt the cutscene.

 

// totl portal in jackal cavern is flaky; see also cahideo.bcs
COPY_EXISTING ~cahided.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~SetGlobal("OPENED_HIDE","MYAREA",1)[%tab% %lnl%%mnl%%wnl%]+OpenDoor(Myself)~ ~~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

// totl portal in jackal cavern is flaky; see also cahided.bcs
COPY_EXISTING ~cahideo.bcs~ ~override~
 DECOMPILE_BCS_TO_BAF
REPLACE_TEXTUALLY ~CutSceneId(Myself)~ ~CutSceneId(Player1)~
REPLACE_TEXTUALLY ~EndCutSceneMode()~ ~SetGlobal("OPENED_HIDE","MYAREA",1) OpenDoor("AR9800_Hide1") EndCutSceneMode()~
 COMPILE_BAF_TO_BCS
 BUT_ONLY_IF_IT_CHANGES

Link to comment

Yeow! And you call this "playing" the game? I'd hate to see what happens when you get serious... ;)

 

Oh, wait a minute. I did. When you reworked it a year ago... :)

 

You make me want to go back to it. It may be low on role play, but it still tells a great story - the key to any good game.

Link to comment
No. Redrake over at CoM launched an IWD Fixpack and I've already offered everything in the component for his use. This component will be deprecated as soon as that project gets up to speed as a viable alternative.

 

Hmm, I'm not too keen on using that one, at least not at the moment. Apparently, it overwrites dialog.tlk and dumps a bunch of files into the override folder in the good old Baldurdash manner. That may have worked in the pre-WeiDU days, but now, it's just bad practice IMO.

 

Also, it seems to contain many dubious "fixes" such as:

 

Pale Justice. Now this is the most important fix. In the original non-HoW game, Pale justice made the paladins immune to fear, Dire Charm and Symbol of Hopelessness. With HoW, the weapon also protected them against Wail of the virgins. But with HoW, the paladins are immune to fear starting from level 2, therefore the immunities granted by the weapon are obsolete. So I've replaced the 2 entries for the immune to fear effects with immunity to curse and Disintegration. This should make it useful in Trials of the Luremaster where so far there's no defense against disintegration spells cast by beholders.
Link to comment
Hmm, I'm not too keen on using that one, at least not at the moment. Apparently, it overwrites dialog.tlk and dumps a bunch of files into the override folder in the good old Baldurdash manner. That may have worked in the pre-WeiDU days, but now, it's just bad practice IMO.
Suggesting that Cam start and maintain another fixpack is like suggesting that he have teeth pulled.

 

My post was the tease because I already know his response. ;)

Link to comment

Dropped the squirrel script fix, as it's a cutscene-only creature. Dropped the Arundor/staff fix, as it's unnecessary (it's the dying Aundor). Altered one of the random treasure table drops for IWD/TotL; we were replacing a non-existent entry with a generic two-handed sword, which meant that all sorts of silly creatures were dropping them. The non-existent entry is now simply removed.

 

The group issues for LDD noted above apply only to HoW/TotL games.

 

ar4001.bcs no longer sets EGANIA_MOVE to 1 to keep Egenia from charging into trolls. Note this is the behavior in IWD games, so this is a HoW/TotL-only change.

 

Also thought that since we've already found a lot of stuff fixed in IWD by HoW or TotL, it might be worth it to read through the patch changes and see if these fixes could be rolled down to previous versions. Sure enough:

  • TotL fixes a bug where the shield Bitch Queen's Envoy was erroneously penalizing missile AC by 3; this is now fixed for HoW and IWD games as well.
  • HoW fixes Girdle of Beatification to actually supply Bless while equipped; this is now fixed for IWD games
  • HoW requires the Blur Deck to be ID'd to use; this is now the case for IWD as well
  • HoW shuffles effects in the Robe of the Watcher as it was blocking its own MR bonus; this is now fixed for IWD too
  • HoW changes PW: Silence to be a conjuration/summoning spell; this is changed for IWD
  • TotL fixes the Wailing of Virgins cloak to protect against Symbol: Hopelessness instead of Fire Storm; this is fixed for HoW as well

Link to comment

No. Redrake over at CoM launched an IWD Fixpack and I've already offered everything in the component for his use. This component will be deprecated as soon as that project gets up to speed as a viable alternative.

 

Hmm, I'm not too keen on using that one, at least not at the moment. Apparently, it overwrites dialog.tlk and dumps a bunch of files into the override folder in the good old Baldurdash manner. That may have worked in the pre-WeiDU days, but now, it's just bad practice IMO.

 

Also, it seems to contain many dubious "fixes" such as:

 

Pale Justice. Now this is the most important fix. In the original non-HoW game, Pale justice made the paladins immune to fear, Dire Charm and Symbol of Hopelessness. With HoW, the weapon also protected them against Wail of the virgins. But with HoW, the paladins are immune to fear starting from level 2, therefore the immunities granted by the weapon are obsolete. So I've replaced the 2 entries for the immune to fear effects with immunity to curse and Disintegration. This should make it useful in Trials of the Luremaster where so far there's no defense against disintegration spells cast by beholders.

I can appreciate constructive criticism, but say it in my face, don't call me dubious here. :)

I don't have much time on my hands. A Weidu version of my mod is going to be released in the future. I stopped working for now, because real life takes too much of my time. My mod might not be compatible with Tweak Pack right now, but is going to be.

If you have suggestions then don't be afraid to speak. Personally, I don't see what is dubious about making Pale Justice work better with HoW installed.

Link to comment

I'd have to agree with aVENGER on this one. Those kinds of changes aren't bugfixes, but rather subjective upgrades. I'd much rather see an "enhanced" Pale Justice in a Tweak Pack than in a Fixpack. Fixing an item to make sure it does what it says it should is one thing, but changing the abilities of an item just 'cause it sounds good is something altogether different.

Link to comment

Did I said that they are bug fixes? I don't think so. I called it Fixpack because initially I've made it only for fixes, later on I've added improvements and descriptions to several items. When I'm going to make a Weidu version, these will be split, I've already mentioned this at CoM. But since for now this is not a Weidu mod, splitting isn't possible.

Link to comment

When my mod was released Tweak Pack was at version 4 or 5 if I'm not mistaking. At that time, there weren't many fixes in included in it. In mine there were, but since I haven't updated it, at this point Tweak Pack has more fixes than mine.

Link to comment
I can appreciate constructive criticism, but say it in my face, don't call me dubious here. :)

I don't have much time on my hands. A Weidu version of my mod is going to be released in the future. I stopped working for now, because real life takes too much of my time. My mod might not be compatible with Tweak Pack right now, but is going to be.

If you have suggestions then don't be afraid to speak. Personally, I don't see what is dubious about making Pale Justice work better with HoW installed.

 

Hey mate, I do appreciate the work you've done and I'm sorry if my comment came over as overly offensive.

 

However, I stand by my point that several of the changes in the current version of your mod fall into the tweak category rather than being actual bugfixes. IMO, a fixpack should do just that - fix things which are obviously bugs. While several of your tweaks do seem interesting, they are certainly not bugfixes but rather arbitrary changes without any hint of developer intent and some people simply wouldn't appreciate having them thrown into the fixpack.

Link to comment

Many of those changes were made after consulting myself with several other people on other boards. I had no intention of going and improve the items to make them overpowering, like Grog did in his AB mod (he made plate armor which makes the user immune to normal weapons or a hammer with 30% chance of freezing). Last summer I began working on the Weidu version of my mod, parts of it are ready, but unfortunately I didn't had time to finish it.

I didn't include in the readme all the fixes I've made. I fixed a lot of the CRE and SPL files and several ARE files. Those were too small though, so I didn't mentioned them. Most of them are right now included in the Tweak pack; different mods the same idea.

Other however aren't AFAIK.

Oh and btw, the complete name of my mod is IWD Fixes and tweaks.

Link to comment
Many of those changes were made after consulting myself with several other people on other boards. I had no intention of going and improve the items to make them overpowering, like Grog did in his AB mod (he made plate armor which makes the user immune to normal weapons or a hammer with 30% chance of freezing).

 

That is certainly commendable, but with "developer intent" I meant something that the original game developers wanted to accomplish but failed for some reason. For example: scripts misfiring due to typos, item effects failing due to incorrect targeting, creatures appearing in walls due to incorrect coordinates... etc. all indicate developers intent and they don't work due to trivial errors. OTOH, making Pale Justice grant immunity to Disintegrate is an arbitrary change (i.e. a tweak) because it can't be supported by developer intent.

 

Oh and btw, the complete name of my mod is IWD Fixes and tweaks.

 

Ahh, than this is simply a misunderstanding. I assumed that you were working on something akin to the G3 BG2 Fixpack (i.e. 100% pure bugfixes) but for IWD1. In any case, it might be best to either split the tweaks from the fixes in the future versions of your mod or make it clearer that the mod is not simply a bugfix but also contains tweak material.

Link to comment

@redrake: To settle some of the disputes about tweaks and fixes, I have a simple suggestion. Move items like the Pale Justice "fix" into a catagory of OBC as BG2 Fixpack does. (As an IWD player who always includes a paladin, I like the idea of your Pale Justice adjustment). This also ensures those who want only the unquestioned fixes (as Cam is making) can install them independently of personal/questionable adjustments.

 

I also agree with aVENGER_(RR) that your CoM site should be updated to reflect that fixes and tweaks are in the package, simply to help diffuse some of the heat currently being reflected here.

Link to comment

Archived

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

×
×
  • Create New...