Jump to content


Photo

Known Issues for Version 3.0


  • Please log in to reply
32 replies to this topic

#21 scient

scient
  • Modder
  • 1010 posts

Posted 29 December 2008 - 01:18 PM

Ok, I'll have a look. One place that I'm not sure if you get an alignment hit for inaction is in the hive where a lady runs up to you and asks if you'll stop her brother and boyfriend from fighting. You can either try to break it up (STR/CON check I think) or you can watch them kill each other. This is a case I could see taking a hit for inaction where you could have preventing one of them from dying but didn't. Preventing the demons from killing the citizens is a different story where it's impossible to save them all so even if you try you still get a hit.

Edited by scient, 29 December 2008 - 01:19 PM.

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


#22 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 29 December 2008 - 01:44 PM

Well, okay, -deliberate- inaction, yes... I mean, in that case you actually tell the person "I'm not going to help you". You actually confirm that you're not going to help. That's one thing. (I think it's a STR/CHA check, btw)

But in the Curst case, there's no confirmation that you don't have any intent to help, and in fact the alignment hits come fast and furious unless you immediately recognize what's going on and move to stop it. That's pretty different IMO.

Qwinn

Edited by Qwinn, 29 December 2008 - 01:44 PM.


#23 scient

scient
  • Modder
  • 1010 posts

Posted 29 December 2008 - 10:01 PM

The code that is modifying LAW/GOOD globals is one of the generic death functions (NPC/PC). I think this is an issue specifically with citizens dying. I did a test using Howl of Pandemonium to incite Hive citizens to kill each other and Candrain to kill Ebb in Smoking Corpse Bar. The citizens I took a hit to alignment while when Ebb died I didn't. I'll see if it's possible to obtain the struct of who killed NPC being passed to death function and then obtain the PC/NPC flag. Can you think of any other instance where NPC's would be killing citizens or other generic groups that I could use to test my theory?

Edited by scient, 29 December 2008 - 10:02 PM.

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


#24 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 29 December 2008 - 10:23 PM

Hrm. Maybe in the Elyce quest, when her brother and lover kill each other? Then there's the Ruak quest, where the 5 mages are killed.

No other is leaping to mind.

Again, I'm betting it's based on the animation sprite. Lots of things are keyed that way under the hood, like the bestiary. Every sprite has a bestiary entry, and you get the entry when you first see that sprite.

Looking at beast.ini and resdata.ini, though, I'm not seeing a variable setting that sounds like it would be the cause for the alignment hit. Maybe it's based on the killvars that are assigned to sprites in beast.ini? Like, if the killvar is Kill_Curst_Townsperson or Kill_Hive_Townsperson or Kill_Townsperson?

Qwinn

Edited by Qwinn, 29 December 2008 - 10:24 PM.


#25 scient

scient
  • Modder
  • 1010 posts

Posted 29 December 2008 - 11:06 PM

It looks like the killvar/global being used when one of them dies is "NONE_DEAD". I'm not sure if that makes any sense.

Not only is it decrementing LAW/GOOD globals but it's also adding to MURDER count. I take it that's bad right?

It seems the issue is with that killvar global. Say if you tell Elyce to piss off, when Tarin or Maeth kill each other it's MAETH_DEAD or TARIN_DEAD. Maybe it's possible to alter the global value for these NPC's? That way no engine changes are needed. Unless you can find any other instances where NPC's kill each other it may be easier to do this on a case by case basis. If not, then I'll work on it some more.

Edited by scient, 29 December 2008 - 11:17 PM.

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


#26 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 30 December 2008 - 07:44 AM

I'm not sure if I'm understanding ya, scient. Are you saying that whether or not the alignment hit happens -is- dependent on the killvar?

That it would do so when the killvar is "NONE_DEAD" doesn't make sense. I'd assume that to be the default killvar if no other is specified, and for example, Ebb Creakknees doesn't have one specified.

If you can tell me exactly which killvars trigger the alignment hit, I can hopefully do something about it without it requiring an engine fix, but I need to know which killvars precisely trigger it.

Qwinn

#27 scient

scient
  • Modder
  • 1010 posts

Posted 30 December 2008 - 06:24 PM

Let's just skip all the variable stuff, I was getting things mixed up anyway. More importantly, I've located the value inside the CRE that deals with "death" toggles. It's a little endian DWORD bitfield at offset 0x2E0 undocumented in CRE struct here. For example with WEAKCST1.CRE, the value is 0x00002C10. As for what each bit stands for, I'll have to look into it more. I can tell you which bits to set that would disable alignment hits and such but I'd like to know what this value is used for else where. It may be related only to death stuff and if that's the case this would be a fairly easy non-engine fix.

edit:
It looks like all the WEAKCST#.CRE use the same value 0x2C10 for the bitfield which translates into 00000000000000000010110000010000 or 10110000010000. I'll bold each of the bits that toggle what variables are changed when they die.

GOOD:
10110000010000

LAW:
10110000010000

MURDER:
10110000010000

There are also values like LADY (not used with WEAKCST) which I'm guessing happens if you kill Dabus's and such. I'm going to go through and put together notes for that offset. It's a shame that IE site isn't a wiki.

So if you set those bytes to zero, you'll disable hits to each of those values when they die. This would also mean you could join in the fun of killing helpless citizens without consequences. :ph34r:

I could see if it's possible to add code that would check who did the killing and if it's a NPC to negate checking 0x2E0 offset. This may or may not be possible but I'll still look into it. Otherwise, it's just patching that value in CRE file.

Edited by scient, 30 December 2008 - 06:43 PM.

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


#28 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 30 December 2008 - 06:43 PM

This is all pretty surprising to me, as there -are- quite a few scripts that specifically alter variables like Murder, Good, Law, and Lady when a creature dies. In particular, I'm pretty sure all the dabuses already have such scripting.

I'll have to look at those various .CRE's, and see if those bits are set in them to produce the same effect. Maybe they're getting double hits when they shouldn't be...?

I'm very happy to hear that it has to do with .CRE's, actually, rather than animations and killvars. That would very likely have resulted in not being able to fix the issue with the Curst critters without screwing it up for every other critter with the same animation. Phew.

Awesome detective work as usual, scient! I should be able to figure out a fix from here. I'm going to do some checks on all .CRE files and see which ones are set to this and which aren't.

If anyone ever -does- decide to do a Virtue style mod, this knowledge will be invaluable. Great work.

Qwinn

Edited by Qwinn, 30 December 2008 - 06:46 PM.


#29 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 30 December 2008 - 06:54 PM

By the way, this will be pretty damn useful information for the IESDP project. When you put those notes together, you might want to drop them off at the forum there.

Link to the IESDP CRE description for PS:T:

http://iesdp.gibberl...ts/cre_v1.2.htm

Link to the forum:

http://forums.gibber...hp?showforum=54

Qwinn

#30 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 30 December 2008 - 07:04 PM

Found some more info to help you out, scient. Will post in the workroom.

Qwinn

#31 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 30 December 2008 - 09:34 PM

Okay, I'm starting up a Known Issues 3.01 thread, since most of the other issues mentioned in this thread have already been resolved.

Clearing up issues I missed the first time around:

Janjentina posted this on page 1, as a spoiler:

Spoiler


Correct in that it's not a bug, nor is there viable dialogue for restoration. I'm not so sure it -should- affect any dialogue with other zerth, though. I will also note that Dak'kon's opening line when you start dialogue with him -does- (as of version 3.0) change based on morale, and you'll see the change evident there.

InTourette:

Little bug in the Raukquest...
With the tweak stackable rings on TNO only gives him the rings, from which you have only one. So if theyre stacked Rauk wont get any Ring, but the quest is solved anyway..


I thought I actually tested this my first go-round, and didn't notice this problem. I will test again. If I can confirm it, I'll add it to the Known Issues v3.01 thread.

Qwinn

Edited by Qwinn, 30 December 2008 - 09:38 PM.


#32 scient

scient
  • Modder
  • 1010 posts

Posted 30 December 2008 - 09:46 PM

Little bug in the Raukquest...
With the tweak stackable rings on TNO only gives him the rings, from which you have only one. So if theyre stacked Rauk wont get any Ring, but the quest is solved anyway..


I thought I actually tested this my first go-round, and didn't notice this problem. I will test again. If I can confirm it, I'll add it to the Known Issues v3.01 thread.


I can't confirm with 2cd version. I had 5 ring stacks of each and after talking to Rauk one was removed from each of them.

Edited by scient, 30 December 2008 - 09:47 PM.

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


#33 Qwinn

Qwinn
  • Modder
  • 3092 posts

Posted 01 January 2009 - 01:10 AM

I can't confirm the stacking bug either. InTourette, you'll need to get me a save game where that happens before I can dig into it any further.

And heh, in regards to the bug regarding inappropriate alignment hits, I just discovered that if Annah, Grace, Nordom or Ignus die while in your party, you get a chaotic hit, an evil hit, and a murderer hit. Hell, you can even get mazed by the Lady if Annah and Grace die enough while in your party. Dak'kon, Morte and Vhailor dying in your party does -not- affect your alignment or make you a murderer. That to me says that the ones that do are bugged.

The alignment bugs will be fixed in version 4.0, whenever that comes out. I've decided to make a point of not fixing newly discovered bugs in any mini-updates, the mini-updates will just fix any issues with the bugfixes currently in play. Besides, if you'd already entered an area with any of the NPC's that had an alignment fix, the fix wouldn't work. It'll essentially require a game restart to fix the alignment issues, so... yeah, next full version.

Qwinn

Edited by Qwinn, 01 January 2009 - 03:03 AM.