Jump to content

Things I think should be considered for Fixpack 10


Wisp

Recommended Posts

To avoid making this post completely incomprehensible I'm refraining from posting code. If you decide you want any of this and don't particularly want to write the fixes yourself I have code for most of what I don't provide linkage for. I have purposely left out things on the first and second page of the main Fixpack forum.

 

A. Fixes to things currently included:

 

A1. Faldorn's DV

There are a few dialogues around Trademeet that checks for the "FALDORN" DV. Fixpack changes these to instead check for the "CEFALDOR" DV. However, "CEFALD01" is the correct DV to check for. FALDORN and CEFALOR are equivalent, equally redundant and are both only set by Verthan (cechalle) if you challenge Faldorn (and there are additional conditions which may be non-true for some). CEFALD01 is set by the one you kill in the pit and the one you kill if you poison the grove. Neither FALDORN nor CEFALDOR are set if you poison the grove. This is in compile/soa-dlg.d.

 

 

A2. Teleport Field

The spell description of Teleport Field says the spell should allow for a save, but the spell doesn't. Fixpack aims to change this by changing the description to remove the mention of a save. However, the string Fixpack uses to replace the standard description (@156) is actually identical to the standard description (viz., it still mentions the save).

 

 

A3. Charm effect batch patch

Immunity to string #8364 (Dominated) is missing.

 

 

A4. Azuredge fix

Fixpack fixes the issue of the unreferenced extended effect in Azuredge by overwriting the file with a fixed copy. Two problems, however. First, Fixpack creates the supporting eff ax1h10 but has the (non-existent) eff unddam4 assigned to the item. The fixed copy also comes with completely spurious bonuses to hit and damage (there are none in the description). I posted some code intended for replacing the current Azuredge fix here. Note that this code uses unddam4 and consequently does not fix the eff mismatch.

 

 

A5. Item usability

The current item usability stuff could use an overhaul. Coincidentally, Nythrun posted such an overhaul. Thread.

 

 

A6. Slayer change

Fixpack replaces an entire state in player1.dlg merely to fix a string reference. This can be fixed in a less destructive manner (e.g. REPLACE_TEXTUALLY). Changing this also has the happy effect of not disabling Ascension's Slayer stuff when Ascension is installed before Fixpack. This is in compile/soa-dlg.d.

 

 

A7. Flydian

The fix to make Flydian disappear after Trademeet's done makes SoA-only games crash (on DestroySelf() or EscapeArea()). It's pretty weird and I guess it's some sort of engine bug. He can Deactive() just fine, however, so maybe it'd be nice to change the script, at least if Fixpack is installed on a non-ToB game.

 

 

A8. Beta Core doesn't install on SoA-only

If we're still using ALLOW_MISSING, boot12.itm is missing from that list and some of the fixes need to be wrapped in ACTION_IF GAME_IS tob. I posted a diff on that here.

 

 

A9. Duplicated bags

Fixpack tries to un-duplicate the wrong bag. Thread.

 

 

A10. Saemon@Brynnlaw

A fix to the Brynnlaw vampire attack is bugged if you sided with Bodhi. The fix is only intended for the case where the player sided with Aran, but the fix alters some conditions so they are also true if you got there by Bodhi. Thread.

 

 

A11. Mucking about with the Rift Device

Fixpack changes Gaal to take a part of the Rift Device from the party, hijinks ensue. Thread. This is in compile/soa-dlg.d.

 

 

A12. Reflecting projectiles

The protection provided by the Shield of Reflection or the spell Physical Mirror is spotty. So are the fixes contained within the Fixpack. I posted more comprehensive fixes here but they were apparently overlooked.

 

 

A13. Resisting poison

On the topic of crummier solutions being replaced by better ones, there's also the fix for the issue of disease immunity granting poison immunity, via poison resistance. The current fix works, but it could be cleaner. Currently the disease batch grants poison resistance and the fix filters out two resources which only grant disease immunity. Since poison resistance grants immunity to both disease damage and poison damage, it should be removed from the disease batch and be in a batch of its own. The cleaner fix can be had from the link in A12.

 

 

 

 

B. New fixes:

 

B1. Hendak's up and vanishing (sort of)

Hendak gets around inside the Copper Coronet through a combination of regular MoveToPointNoInterrupt and, if you went ahead and killed Lehtinan without him, JumpToPoint. However, he doesn't properly use SetHomeLocation before his JumpToPoint and JumpToPoint doesn't itself set the home location. Consequently, if he jumps, his home location can end up being pretty much anywhere inside the CC (depending on which point he was moving towards before the jump, which is not necessarily limited to points along his scheduled route). When the engine then does its periodic reset of inactive actors, Hendak is moved to his home location and seemingly "vanishes" (in such cases he is usually found again somewhere in the back of the CC).

 

 

B2. Surfacer elves at the Underdark exit

As you exit the Underdark you encounter packs of surfacer elves fighting drow. They are evidently supposed to stay and fight the drow. Instead they most commonly leave a few seconds after the party comes within sight. The reason for this would appear to be that they use CombatCounter to check if the fight's over, but CombatCounter isn't started until the PC starts fighting. Files concerned are udelf[1-3].bcs.

 

 

B3. Drow guarding the Underdark exit

The drow party guarding the gates leading to the surface has a script intended to make them hostile if you've set off the drow city. However, the particulars of the script messes things up if one of them should get charmed (or if one of the skeletons should be controlled), since the charm effect ends up fighting the script. File concerned is dwgates1.bcs.

 

 

B4. Tabitha versus charm

Tabitha the animal companion has a script seemingly intended to prevent her from being charmed. However, if you charm her, the effect is that Tabitha starts stuttering, for the same reason as in B3. Adding some effects to provide her with immunity to charm fixes the issue.

 

 

B5. Pixie Prick

Pixie Prick has an undocumented +6 save bonus on its on-hit effects.

 

 

B6. Planar Prison guard and shout scripts

One of the guards in the Planar Prison uses the same shout script (shout.bcs) as the imprisoned actors. Consequently, if he should shout in vicinity of the actors, the actors go hostile and, following that, Haer'Dalis goes hostile. He is also the only one to use this shout script. One other (the wyvern, at that) uses gensht01.bcs. File concerned is pcapt03.cre.

 

 

B7. Dreams from Ellesime

The post-Underdark dreams about Ellesime and Suldanessellar can occur after you have entered Suldanessellar, or even in hell.

 

 

B8. ITM vs description

Some items are inconsistent with their descriptions, notably when it comes to minor things like weight or speed factor. Fixpack currently has a few fixes for issues like these, but sometimes it changes the description to match the item and sometimes it changes the item to match the description. As it happens, I'm back to square one on this issue. So between altering the item file and altering the description (e.g. in the GTUL), which is the preferred solution?

 

 

B9. Junk

Following the link in A8 (click here) yields two small fixes. One's a fix for reddeath.bcs (it needs to use ReallyForceSpellDead) and is only relevant for a handful of Grimwarders in BG2. But it's still a bug. The other is a fix for Kruin endlessly appearing, if, say, you trigger him with an invisible thief and, knowing that he's one of them stinkin' giths, you unceremoniously backstab him to death without letting him talk. Rinse and repeat.

 

 

B10. Sound-set corrections (wow, digging through the forums produces all sorts of things I had completely forgotten about)

Lotsa people are males with female sound sets or vice versa. Thread.

 

 

B11. Creeping Doom

Due to the engine bug with repeating effs and similar, Creeping Doom doesn't work as advertised (the repeating damage effect suppresses the repeating fear effect). All the insect spells are easily weaned off repeating effs by having them use effects with delayed timing modes instead. Thread.

 

 

B12. Asp's Nest darts

The Asp's Nest darts do not match their description. The description says 1hp/3sec until 40 damage has been dealt (i.e., for 120 sec), while they do 1hp/sec for 40 seconds. The thread's the same as for B13.

 

 

B13. Magical bows and THAC0

Some longbows don't have the THAC0 bonuses they should have. Nythrun posted a fix to the issue here, but note that this fix conflicts with the GTUL since it changes string references to unpredictable values.

 

 

B14. Roger and the gong quest

You can talk to Roger about gong-related matters even after the quest's been completed. In this case the problem is that Roger only checks for DennisJob=1 but DennisJob is never advanced past 1.

 

 

B15. Jaraxle

Jaraxle doesn't pay the party for the gems, because he is broke. Thread.

 

 

B16. Too many Keldorn variable bugs

Keldorn sets the wrong variable if he gets impatient and leaves at a certain point. Thread.

 

 

B17. Aerie and PartyRested

Aerie has a PartyRested() trigger in one of her banters, which keeps the banter from firing. Thread.

 

 

B18. Globes and Summoning

Globes of Invulnerability make you immune to casting summoning spells. Thread.

 

 

B19. Faraji

You promise Faraji 10 gp in return for some info, but he never collects.

 

 

B20. Looping in the House of Talos

If you go around killing his priestesses Talos punishes you with a looping area script. This one's also from Nythun's big thread.

 

 

B21. Flasher Master Bruiser Mates

They have an undocumented -1 penalty on saves. They are also lacking their advertised +1 to hit.

 

 

 

Disclaimer: Since I can barely keep tabs on my own stuff you'll have to excuse me if I've overlooked something.

Link to comment

Wait, hold on.

 

We have a list of 30+ proposed fixes up for three days and not one person has posted to say they're all bad and that we're awful people for destroying BG2?

 

I'm very confused.

 

 

 

 

 

 

 

 

 

(And on a serious note, a big thanks for this roundup. It beats wading through two years of forum posts to try and put together v10 and these look solid.)

Link to comment

Replace the broken Extra proficiency points in the Weapprof.2da file with zeroes

The fives, and the Barbarians two's in these:

EXTRA2					  116	 4294967296	  4294967296  0	   5	   0	   0	   5	   5	   ...
EXTRA3					  117	 4294967296	  4294967296  0	   5	   0	   0	   5	   5	   ...
...

Why so? Because if you gain more than the total maximum amount of proficiency points a kit is able to assign to the normal lines(the lines above the EXTRA's), the game will not allow the character that has those extra numbers to level up any further cause they cannot assign their prof points anywhere... see what happens with, if you put a mage to have a 5 in one of those lines and then level them up from level 23 to level 24, or with 5 250 000 XP.

Link to comment

Might I suggest these for the Game Text Update?

 

@21003 = ~Coo! There be many places to sell as well as buy. Arledian upstairs is as good as any. He may have a few items you need as well, I think.

Arledrian.

 

@71515 = ~Edwin Odessarian, arcane master of the darkest necromancy... the Thayvian wizard's very name strikes fear into the hearts of most mortals.~

Odesseiron.

 

@70351 = ~Lies and rumors spread by the faithless, my <GIRLBOY>. She is simply missing. Tymora, the goddess of luck and fortune, grants power to myself and my acolytes in Waukeen's stead - but we true believers know our true mistress will return soon.~

That's Lliira, actually.

 

@20363 = ~Only in depression. Yes, I remember those parables in Alaundo's prophesies, as well. Be sorry for your loss, but be grateful for what you have.~
@68479 = ~You've become less blustery, I think. Maybe... maybe you're mad everyone else is finding destinies and prophesies and generally surpassing you in every way?~

prophecies.

Link to comment
We have a list of 30+ proposed fixes up for three days and not one person has posted to say they're all bad and that we're awful people for destroying BG2?
Oh, please. Who exactly is supposed to be commenting, now? ;)

 

I'm not sure about Nythrun's rewrite, just because somebody else is going to have to maintain it (I wouldn't have put it in simply because I don't want to work through the newfangled features she's using in the patch).

 

Wisp didn't link to it (because he knows I'm right), but I argued and still believe that Pixie Prick is fine.

 

I'm also against going to war with repeating effects, again because I wouldn't really want to support it when we ending up breaking all those spells entirely.

 

I also didn't see the druid grove and black dragon clearing night lums in that list. What's up with that? :)

Link to comment
@70351 = ~Lies and rumors spread by the faithless, my <GIRLBOY>. She is simply missing. Tymora, the goddess of luck and fortune, grants power to myself and my acolytes in Waukeen's stead - but we true believers know our true mistress will return soon.~

That's Lliira, actually.

 

I don't think this belongs in GTU Lite. You're not fixing anything in-game, just adjusting the game to be closer to Realms canon. (If there's other in-game text contradicting it, I might think differently.)

Link to comment
@70351 = ~Lies and rumors spread by the faithless, my <GIRLBOY>. She is simply missing. Tymora, the goddess of luck and fortune, grants power to myself and my acolytes in Waukeen's stead - but we true believers know our true mistress will return soon.~

That's Lliira, actually.

 

I don't think this belongs in GTU Lite. You're not fixing anything in-game, just adjusting the game to be closer to Realms canon. (If there's other in-game text contradicting it, I might think differently.)

Counter Carravis (pwauk1), an ex-priest of Waukeen in the Temple district, has the right story:

@27714 = ~Not all of us converted to Lliira, she who brought the prophecy of Waukeen's disappearance. We Waukeenar yet hold her dear in our hearts and pray for her return.~

Overgold Renwellyn (temsup), the good priest in the temple in Trademeet, also states:

@45201 = ~Contrary to the belief of some, my <GIRLBOY>, Waukeen is not dead. She is simply missing. The goddess of joy, Lliira, grants power to her worshippers in her stead, for now.~

As well as the priest in the government district temple (govwau01):

@58437 = ~Dear <GIRLBOY>, Waukeen is not dead. She is... missing. The goddess of joy, Lliira, grants power to her worshippers in her stead, for now.~

 

AFAIK, only the priest in Amkethran I quoted in my previous post mistakenly refers to Tymora as Waukeen's stand-in.

Link to comment
@21003 = ~Coo! There be many places to sell as well as buy. Arledian upstairs is as good as any. He may have a few items you need as well, I think.

Arledrian.

Yeah. There's another instance of Arledian, as well, but maybe that one isn't used?

 

@71515 = ~Edwin Odessarian, arcane master of the darkest necromancy... the Thayvian wizard's very name strikes fear into the hearts of most mortals.~

Odesseiron.

 

@20363 = ~Only in depression. Yes, I remember those parables in Alaundo's prophesies, as well. Be sorry for your loss, but be grateful for what you have.~
@68479 = ~You've become less blustery, I think. Maybe... maybe you're mad everyone else is finding destinies and prophesies and generally surpassing you in every way?~

prophecies.

Should probably be fixed, yes.

 

I'm not sure about Nythrun's rewrite, just because somebody else is going to have to maintain it (I wouldn't have put it in simply because I don't want to work through the newfangled features she's using in the patch).

It looks pretty manageable to me, but nevermind the exact code. The current item-usability stuff could do with at least a minor amount of tweaking (background).

 

Wisp didn't link to it (because he knows I'm right), but I argued and still believe that Pixie Prick is fine.

That wasn't the impression I walked away with, but okay. So would you prefer if the Fixpack amended the description to reflect the save or left the dagger with its current inconsistency?

 

I'm also against going to war with repeating effects, again because I wouldn't really want to support it when we ending up breaking all those spells entirely.

Screwing around with the damage may be going too far, but the broken fear effect should be fixed, at least.

 

I also didn't see the druid grove and black dragon clearing night lums in that list. What's up with that? ???

That'd be covered by my disclaimer. I take it the .wed for the druid grove needs to be processed somehow, but, being wholly ignorant of this business, I have no idea what needs to be done where.

Link to comment

We basically just have to copy and rename it (they didn't finish the day WED, so all the water overlays aren't hooked up and can remain even though the night tileset doesn't have those overlays, and there are no doors, so the geometry is all the same) and replace the tileset reference to the night set. I suggested to Nythrun to zero the overlay tiles for the water (just a loop to zero the alternate tiles) since they don't exist in the night set, but it should work fine either way.

 

At the end of the day, the new grove and vale night WEDs need to be copied over, though, since pulling from compressed BIFs has never worked for us in the past (there are still people out there without full installs, somehow).

 

Pixie Prick simply doesn't bother me. You can update the description (I don't think it was intended to be secret, although I don't believe there's evidence to suggest the change was unintentional) if you must.

Link to comment

I wrote a sunfire fix that will:

- prevent the caster from being hit for 0 damage. Note that this becomes actual damage if cast during a time stop, and the caster stays in the area of effect while TS expires.

- prevent abuse against other fire damage or even multiple casters casting sunfire at once

 

The code removes the effect that uses opcode 30, and adds a new effect at the beginning of the effects list (opcode 206, duration 0, targettype 9).

 

-Galactygon

Link to comment
B8. ITM vs description

Some items are inconsistent with their descriptions, notably when it comes to minor things like weight or speed factor. Fixpack currently has a few fixes for issues like these, but sometimes it changes the description to match the item and sometimes it changes the item to match the description. As it happens, I'm back to square one on this issue. So between altering the item file and altering the description (e.g. in the GTUL), which is the preferred solution?

In theory we favor the item itself in case of conflicts unless a good case can be made that the item itself is wrong (i.e. its way out of line with similar items; an effect has been copied from another item or other leftovers; etc.). In practice it's never quite so clear cut--some are holdovers from Baldurdash; others were simply fixed as they came in prior to us having a best practice guideline; and still others were chosen because I was tired of a 15-page thread over a +1 halberd. ???

 

It's one of those cases where we all know it's a bug; the issue is determining the best way to fix it and we've ended up with some internal inconsistency as a result.It'd be nice for someone to systematically review cases like this already in the Fixpack, mainly 1) to see how consistent we are in these cases and 2) if it is an issue, do something about it.

 

I'm for systematic reviews on everything in the Fixpack, mainly because fresh eyes and ideas are *always* good. However it's generally a huge and thankless job which is why we tend to have slightly-less-systematic reviews along the lines of "hey, why'd you change spell X, you suck". :D

Link to comment

A6. Slayer change

Fixpack replaces an entire state in player1.dlg merely to fix a string reference. This can be fixed in a less destructive manner (e.g. REPLACE_TEXTUALLY). Changing this also has the happy effect of not disabling Ascension's Slayer stuff when Ascension is installed before Fixpack. This is in compile/soa-dlg.d.

 

Using ALTER_TRANS instead of REPLACE should do the trick.

 

--- soa-dlg.d	2008-01-21 10:23:43.125000000 +0100
+++ soa-dlg.v10	2012-01-10 07:05:25.218750000 +0100
@@ -800,15 +800,8 @@
REPLACE_ACTION_TEXT PIRCOR05
~AddXPObject(Player6,2250)~ ~AddXPObject(Player6,2250) EscapeArea()~

-REPLACE PLAYER1
-  IF WEIGHT #8 ~Global("Slayer10","GLOBAL",1)~ THEN BEGIN 27 SAY #55324
-	IF ~~ THEN REPLY #55326 DO ~SetGlobal("Slayer10","GLOBAL",0)~ EXIT
-	IF ~~ THEN REPLY #55325 DO ~SetGlobal("Slayer10","GLOBAL",2)
-								SetGlobalTimer("TheSlayerTimer","GLOBAL",60)
-								ReputationInc(-2)
-								ApplySpell(Player1,SLAYER_CHANGE_TWO)~ EXIT
-  END
-END
+// The Slayer change dialogue should use the proper reply string
+ALTER_TRANS PLAYER1 BEGIN 27 END BEGIN 2 END BEGIN "REPLY" ~#55325~ END

// removes Desharik XP exploit along with cut41f changes
REPLACE_ACTION_TEXT ~ppdesh~ ~AddXPObject(Player[1-6],38500)~ ~~

Link to comment

Once Keldorn tells you that he wants to go see his family, it starts a timer. If you delay for 2 days, he will remind you. If you delay for another 2 days, he will leave to go visit them himself. He is supposed to be recruitable again at the Hall of the Radiant Heart, but due to a variable typo, he will have nothing to say to you. Here's a fix.

 


COPY_EXISTING ~keldorj.dlg~ ~override~
   DECOMPILE_DLG_TO_D
    REPLACE_TEXTUALLY ~SetGlobal("KeldornLeaves","GLOBAL",1)~  ~SetGlobal("KeldornLeave","GLOBAL",1)~
   COMPILE_D_TO_DLG
   BUT_ONLY_IF_IT_CHANGES

Link to comment

Archived

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

×
×
  • Create New...