Jump to content


Photo

Please report crashes here


  • Please log in to reply
257 replies to this topic

#101 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 12:54 PM

"That's because this is the same code they use in AR0500 to keep him from reappearing. :-)"

You're right, the Lower Ward area script has a block that effectively says "If Morte is kidnapped, deactivate him". So yeah, I can see what you're saying, and that's a nasty bug. I should probably put in similar blocks in Vrischika's shop script to deactivate any PC's that can be sold (Dak'kon, Morte and Nordom, I think are the only ones that can get deactivated that way).

Why don't they just destroy themselves? Mmm, not sure. Maybe it's trying to avoid setting their death variables for some reason? None I can think of, but that'd be my first instinct. Anyway, having the script deactivate them the same way Morte gets deactivated in the Lower Ward should solve the problem in the least-risky way.

Qwinn

#102 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 01:00 PM

Confirmed - Dak'kon reappears upon reload in Vrischika's shop after you sell him. Nasty bug, thanks for reporting it, glad that fix'll be in v4.0!

Qwinn

#103 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 01:53 PM

Back to the Morte rejoining thing... this is kinda weird. From what we discovered, I expected that if I went straight from the tomb to the Brothel, or to the Smoldering Corpse, Grace or Ignus would autojoin. But testing, they don't. Hmmm.

Maybe the memory is getting cleared when you take the worldmap? That's the only difference I can see. (I removed all the AR0500 scripting in the Lower Ward for being mazed, and it made no difference, Morte still autojoins).

I'm gonna try getting mazed in the Clerk's Ward and see if I can get it to autojoin Grace that way.

Qwinn

Edited by Qwinn, 09 January 2010 - 01:54 PM.


#104 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 02:15 PM

Weird, no, I can't make it happen for Grace at all (at least not before completing her quest). Seems to happen for Morte only. Wonder why.

At any rate, the party separation fix will no longer interfere with the Morte kidnapping quest in v4.0. Tested the hell out of that and my fix works.

Qwinn

#105 -Guest-

-Guest-
  • Guest

Posted 09 January 2010 - 02:58 PM

Cool. I wonder what they're doing with Morte in hardcode that he's catching these events...

Make sure they've been in the party at least once before and kicked out manually (IIRC, PST doesn't make the party members global until they actually join the party, whereas they're global from the start in the BGs, but they may not keep stale ones around even if Morte is a special case).

Hopefully they'll still fail to automatically rejoin...

#106 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 03:05 PM

Make sure they've been in the party at least once before and kicked out manually (IIRC, PST doesn't make the party members global until they actually join the party, whereas they're global from the start in the BGs, but they may not keep stale ones around even if Morte is a special case).


If that's the case, then that explains why the bug isn't occurring for Grace/Ignus, since in my game I hadn't had either join the party yet. I bet if I -had-, and I'd parked them somewhere, then I left the tomb and went to the area where I'd parked 'em, they would automatically rejoin. That, unfortunately, I can't do anything about, but I don't see how that could result in anything but an annoyance.

Unfortunately, I can't tell if they've been booted because that's all done with the "Reform Party" button on the character sheet - i.e., it's all in the engine. I asked scient if he could set variables for me when party members are -forcibly- separated, and if I had that I could make the whole idea pretty much foolproof, but scient said there isn't really any room in that part of the code to inject something like that, so, oh well.

Qwinn

#107 -Guest-

-Guest-
  • Guest

Posted 09 January 2010 - 03:22 PM

If the behavior doesn't bother you, sure (although the benefits of continuing with it start to seem a little dubious).

Make sure they don't rejoin when they get sold or if they turn hostile and you just run away from them... I kind of wish you only partially fix it, just so somebody will come along who's found a way to exploit this to automatically get Morte back from the Pillar of Skulls. :-)

#108 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 03:34 PM

I put in the fix in Vrischika's shop to deactivate them once they are sold.

And weren't you saying that you can -already- exploit to get Morte back, by reloading after you give him to the pillar? Looking at the code, yeah, that should work :/

Qwinn

#109 -Guest-

-Guest-
  • Guest

Posted 09 January 2010 - 03:55 PM

You can get Morte back currently by talking to him after he reappears, sure. (They have him jump so that he's obscured by the Pillar's animation, so you have to know about the bug or find him by accident when you reload.)

But even after having them constantly Deactivate(), which is what already happens with Morte in AR0500, it's possible you'll get invisi-Dak'kon or Nordom or whoever by visiting the Shoppe (which is more than just annoyance). But this is all academic if Morte really is handled specially (in which case, something to make sure he's not sitting in the Pillar before being told to rejoin wouldn't be uncalled for, and should have everything working right).

#110 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 04:00 PM

But even after having them constantly Deactivate(), which is what already happens with Morte in AR0500, it's possible you'll get invisi-Dak'kon or Nordom or whoever by visiting the Shoppe (which is more than just annoyance).


If you mean via the party separation issue we've been discussing, yeah, I understood what you meant. I added a check against that condition when running the auto-rejoin logic just to be sure.

But this is all academic if Morte really is handled specially


I don't think he is. I think the reason I was getting him to auto-rejoin and not the others is only because, as you said, the other PC's don't become global until you've actually had them join. I know that in a previous game of testing I was getting Vhailor rejoining automatically under similar circumstances after I'd dumped him in the Clerk's Ward.

(in which case, something to make sure he's not sitting in the Pillar before being told to rejoin wouldn't be uncalled for, and should have everything working right).


I'll be adding a variable to track whether he really should be in the pillar, and a "Deactivate again" block in the pillar area's script. The main reason is to just remove the reload exploit, though... the odds that someone would get from the maze/dreambuilder/tomb all the way to the pillar of skulls without once reloading is pretty miniscule, I'd think. Specially now that you can't casually saunter through Baator anymore :D

Qwinn

Edited by Qwinn, 09 January 2010 - 04:04 PM.


#111 -Guest-

-Guest-
  • Guest

Posted 09 January 2010 - 04:11 PM

Sounds good!

My only remaining concern is if a party member has aggro'd on the party (or you kicked them out and attacked them) but are still alive (like if Vhailor starts with you, and instead of fighting, you just run away and only later come back); I don't know if you already have !Allegiance() checks in the re-join code, but I don't know if those will work without the character being in the same area (or if they're even necessary; I'm still not certain how PST handles the party members). (Like you said, the case of just kicking them out and leaving them can't easily be blocked; not enough to be worth it, at least.)

Yeah, Morte is completely unrealistic. That's why I said it would be great to get somebody who found a way to exploit this to get him back "for free" now that he appropriately deactivates. :)

#112 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 04:15 PM

I'll see if I can't come up with some sort of block based on Allegiance... it's a valid concern. Having a hostile party member is not a good thing. It's actually possible to make that happen a couple of ways in the vanilla game (such as telling Nordom to go hostile), but that's something I already fixed a ways back.

I already put in !Dead checks, btw. That could cause issues too.

Qwinn

Edited by Qwinn, 09 January 2010 - 04:16 PM.


#113 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 04:47 PM

So, good news. I set up a test where I made Annah hostile by trying to sell her to Vrischika, and left her in there. Then I went and got myself mazed. Without a !Allegiance check, when I returned to the shop, she did in fact rejoin the party (and went non-hostile as well, she was a normal party member again, oddly enough).

With the !Allegiance check, she did -not- rejoin the party and she remained hostile. So, yay, Allegiance checks on party members do work even when they're not in the same area. So other than the annoying stuff with purposefully dumped party members rejoining, I think we've covered pretty much all the bases. Thanks for the help, worked out great.

Qwinn

Edited by Qwinn, 09 January 2010 - 04:48 PM.


#114 -Guest-

-Guest-
  • Guest

Posted 09 January 2010 - 05:15 PM

Yeah, the JoinParty() will switch the EA to PC, so she wouldn't even know she was an enemy anymore.

Good to hear that it works; looking forward to v4 soon. :-)

You might want to steal (and modify since there are fewer columns) the SkillDex.2da patch from BG2fixpack. If Dexterity drops below 9 (really only would happen wielding Jester in PST, but the low-level Chromatic Orb can also drain Dex), all the thieving penalties disappear.

From our work with BG/TotSC: the Lore bonus (LoreBon.2da) for Int/Wis 15 is wrong (should be 3, as per the manual). Marginal effect.
The damage bonus for 4 pips (WSpecial) really was supposed to be 4, although I don't think it's in the PST manual (but they still inherited the broken 2da from BG, which has the correct table in its manual). Not much effect (but the game still does take its specialization bonuses from here).

#115 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 09 January 2010 - 06:00 PM

You might want to steal (and modify since there are fewer columns) the SkillDex.2da patch from BG2fixpack. If Dexterity drops below 9 (really only would happen wielding Jester in PST, but the low-level Chromatic Orb can also drain Dex), all the thieving penalties disappear.


Oooh... in the Fixpack, Sarossa's curses can subtract DEX as well. Fixed.

From our work with BG/TotSC: the Lore bonus (LoreBon.2da) for Int/Wis 15 is wrong (should be 3, as per the manual). Marginal effect.


Fixed.

The damage bonus for 4 pips (WSpecial) really was supposed to be 4, although I don't think it's in the PST manual (but they still inherited the broken 2da from BG, which has the correct table in its manual). Not much effect (but the game still does take its specialization bonuses from here).


Fixed.

Thanks for the heads up on these!

Qwinn

#116 hayohayo

hayohayo
  • Member
  • 3 posts

Posted 10 May 2010 - 03:17 AM

On another note, if someone has saved game or steps to cause Mortuary crash I'd be interested to look at seeing if I can solve it. Debugging and locating cause of crash is very simple (fixing the code on the other hand...).


I have 2 CD version with only PS:T Fixpack 4.1 installed. Steps to reproduce:
- Clear cache
- Ask Dustman Gate Guard to enter
- You'll get a crash

As I understand, AR0202.bif (I guess it's a map for the second floor) is not unpacked, but used by some code.

Edited by hayohayo, 10 May 2010 - 03:39 AM.


#117 scient

scient
  • Modder
  • 1010 posts

Posted 10 May 2010 - 04:10 AM


On another note, if someone has saved game or steps to cause Mortuary crash I'd be interested to look at seeing if I can solve it. Debugging and locating cause of crash is very simple (fixing the code on the other hand...).


I have 2 CD version with only PS:T Fixpack 4.1 installed. Steps to reproduce:
- Clear cache
- Ask Dustman Gate Guard to enter
- You'll get a crash

As I understand, AR0202.bif (I guess it's a map for the second floor) is not unpacked, but used by some code.


Could you post a saved game? This is crash I've been wanting to sort for awhile.

Those interested in the classic TBS game Sid Meier's Alpha Centauri / Alien Crossover should check out the unofficial patch I work on here.


#118 hayohayo

hayohayo
  • Member
  • 3 posts

Posted 10 May 2010 - 04:53 AM



On another note, if someone has saved game or steps to cause Mortuary crash I'd be interested to look at seeing if I can solve it. Debugging and locating cause of crash is very simple (fixing the code on the other hand...).


I have 2 CD version with only PS:T Fixpack 4.1 installed. Steps to reproduce:
- Clear cache
- Ask Dustman Gate Guard to enter
- You'll get a crash

As I understand, AR0202.bif (I guess it's a map for the second floor) is not unpacked, but used by some code.


Could you post a saved game? This is crash I've been wanting to sort for awhile.


Here I've just taken a key and left the Mortuary. The save stops crashing after the Pox workaround or starting a new game

Attached Files


Edited by hayohayo, 12 May 2010 - 11:49 AM.


#119 hayohayo

hayohayo
  • Member
  • 3 posts

Posted 10 May 2010 - 06:10 AM

In fact, it has nothing to do with the pack. After uninstalling it the game still crashes.

#120 scient

scient
  • Modder
  • 1010 posts

Posted 10 May 2010 - 11:03 AM

When I try to load that quick save it crashes almost immediately. Debugging it to point of crash looks like a problem loading / parsing variable "THUG_ESCAPE". Qwinn, any thoughts? I couldn't find any references to this when I searched with NI.

Those interested in the classic TBS game Sid Meier's Alpha Centauri / Alien Crossover should check out the unofficial patch I work on here.