Jump to content

A few corrections to Actions sections


Qwinn

Recommended Posts

The following regards all the action lists. They all have this entry:

 

11 EquipItem(S:Object*)

This action instructs the active creature to equip the specified item. The item needs to be in one of the creatures quickslots.

 

IF

HasItem("Sw1h01",Myself)

!HasItemEquipedReal("Sw1h01",Myself)

THEN

RESPONSE #100

Equip("Sw1h01",Myself)

END

 

The entry - EquipItem(S:Object*) - is inconsistent with what's used in the example - Equip("Sw1h01",Myself). The EquipItem(S:Object*) version is what is actually listed in the ACTION.IDS file of BG2 and PS:T at least.

 

Side Query: There's no way to tell a creature to equip an item from his regular inventory slots to any other equipment slot with any IE engine game, is there? *mutters*

 

 

The following regards just the PS:T list (I didn't check the others for similar errors)

 

1. Actions 115 and 116 are repeated.

 

2. Actions 117 (GivePartyGold), 118 (TakePartyGold), and 171 (CreatePartyGold) are missing from the list.

 

3. However, it should be noted that 117 (GivePartyGold) does not work. Every mod attempting to fix bugs in PS:T (except Restoration Pack) corrects a few instances of GivePartyGold() being used to the actually functional 171 CreatePartyGold(). 118 TakePartyGold() does work and is used often.

 

Qwinn

Link to comment
Side Query: There's no way to tell a creature to equip an item from his regular inventory slots to any other equipment slot with any IE engine game, is there? *mutters*
FillSlot(I:Slot)

 

3. However, it should be noted that 117 (GivePartyGold) does not work. Every mod attempting to fix bugs in PS:T (except Restoration Pack) corrects a few instances of GivePartyGold() being used to the actually functional 171 CreatePartyGold(). 118 TakePartyGold() does work and is used often.
Even if they have gold in their gold stat (assuming P:T CREs even have a gold stat)?
Link to comment

"FillSlot(I:Slot)"

 

Aaah, interesting, okay. PS:T doesn't have that one. Not that I'd ever use it for a party member any time after the creature I was equipping joined the party, since it has the potential to destroy an existing item.

 

"Even if they have gold in their gold stat (assuming P:T CREs even have a gold stat)?"

 

GivePartyGold seems to do nothing. CreatePartyGold adds coppers to the communal party copper bank. TakePartyGold removes it from the communal party copper bank (as does DestroyPartyGold, which is also sometimes used)... are you asking if it does actually give the copper to the creature whose dialog issues the TakePartyGold command, and will it drop that copper on death? Interesting question, I'll try it during my testing.

 

If it does, I suspect it will add it to the creatures inventory as a stack of COPPER.ITM. Hmmm, perhaps the reason GivePartyGold wasn't working is because the creature didn't have sufficient copper in their inventory. I'll look into it.

 

Qwinn

Link to comment

In normal engines, creatures have a gold stat (fairly early; up near XP and stuff) that defines how much gold they have onhand. GivePartyGold() transfers gold from this stat to the party gold (and cannot give more gold than the creature currently has). They drop this gold when they die (stored as MISC07 -- gold pieces in BG and BG2 -- when in containers/inventory) and add to this gold when executing TakePartyGold() (unless DestroyGold() is also called). IIRC, this doesn't create pickpocketable gold (you can't steal any of this gold through thieving).

 

But it may not work that way at all in Planescape (never seen it and know nothing about it).

Link to comment

Yup, PS:T .CRE's do in fact have a similar gold entry. I'm looking through them now... if it all works correctly, and the only reason a critter using the GivePartyGold command wasn't working was because it didn't have enough starting copper, it would probably be a better fix to give creatures the starting copper they were supposed to have than to change the action from GivePartyGold to CreatePartyGold. Good info, thanks.

 

EDIT: Just tested, and yup, it does indeed work that way... which means the other mods that "fixed" mobs that did TakePartyGold and then later gave it back by changing it from GivePartyGold to CreatePartyGold were actually duplicating the money (because you could get your money back vs. dialogue, then kill them to get it again). Will have to do a pass over those instances to fix them. If they just changed a quest coin reward from Give to Create, though, I think I'll leave it that way.

 

That was very helpful info, thanks.

 

Qwinn

Link to comment

If a creature has 82 gold, and you issue GivePartyGold(85), will you get the 82 gold or will you get nothing?

 

EDIT: Put my dumb question back, since it got answered before I could delete it, heh. Thanks! And yes, it wouldn't make sense or be usable otherwise.

 

Qwinn

Link to comment

Actually, I changed my mind... I've always been a little bothered by the notion that creatures can make money magically appear to give to you when they give you quest rewards, but don't have it on them when you kill them. I'm therefore going to get rid of most instances of CreatePartyGold, and instead I'm going to do a sweep of the creature files and, if they give you money in a quest, actually put that money on them that they can give to you. That way you can kill them for it too. Should only add a day or two to the project.

 

If someone can come up with a reason I -shouldn't- do this, or that it would not properly be considered a fix, please argue against it... I'm totally open to being talked out of this, but as it stands it seems a good fix to do. It's mainly evil players that will see the most benefit from it (can make money killing now), but hey, it's more realistic, no?

 

Qwinn

Link to comment
If someone can come up with a reason I -shouldn't- do this, or that it would not properly be considered a fix, please argue against it... I'm totally open to being talked out of this, but as it stands it seems a good fix to do. It's mainly evil players that will see the most benefit from it (can make money killing now), but hey, it's more realistic, no?
It's more realistic, yes. The only arguments I can come up with against it are a) Some extraplanar creatures could conceivably have some means to summon up gold they don't have on hand, and b) the Fixpack (at least the BG1 Fixpack) and maybe the games themselves use GivePartyGold() for quest rewards where the awarders don't necessarily have that much gold. But neither of those arguments are that convincing.
Link to comment

This is actually going pretty easy, it's not hard to distinguish when it -should- be CreatePartyGold... DDEVORE.DLG is a good example when it should. And DHARLOTD is a good example of how all the pickpockets should've been handled (at least when it's not EXTERNing), will code the others the same way.

 

There is a pretty important question I'm curious about, though... if a conversation EXTERNs to a party member, do the actions stay as actions of the person you began dialog with, or do they become that of your party member?

 

Here's the example: The Drunk Harlot has 0 gold in her .CRE. When she pickpockets you, she does TakePartyGold. When you catch her in the act, you can insist she gives you all your money back, and she will give you her entire purse containing her pickpocketing money on top of it... it does this with GivePartyGold(100) (which should be anything she took from you) -and- CreatePartyGold(38). I would put that 38 copper in her .CRE, but you can afterwards insist she give you EVERYTHING, and she reveals another hidden purse with 20 more, so I'm okay with those remaining Creates. That part's all fine.

 

But here's where it gets tricky. Annah can help you catch her in the act, and if she does, the GivePartyGold(100) and CreatePartyGold(38) actions are in -Annah's- dialog file. Does it still consider the Harlot to be the actor at this point, and take the money from her? Or is this a bug, and the GivePartyGold works off of Annah's gold variable instead of the harlot's?

 

If EXTERNing -doesn't- switch the actor of any actions to the character EXTERNed to, I'd be pretty surprised, the various things I've done till now would've led me to believe it did.

 

Qwinn

Link to comment

"The only arguments I can come up with against it are a) Some extraplanar creatures could conceivably have some means to summon up gold they don't have on hand..."

 

Oh, indeed. These will be accounted for... I'm very much doing it on a case by case basis, checking the dialog to see -how- the money gets transferred. For example, that Devore I mentioned up there actually says "Let me go get you your money, I'll be right back" and actually fades out and back in... I think that's clearly a good case for Create. I'm actually checking all the dialogs to see where the money comes from, if it's a bag or a purse that gets given to you, I give that creature the gold unless they were "hidden", as is the Drunk Harlot's case.

 

I'm presuming merchants have decent security measures (hence I'd have to put all their stock on their corpse too, and that's not gonna happen), but if they give a quest with a gold reward, I am putting that much gold on the merchant, consider it "cash register money" as opposed to the rest in the "lockbox". It's pretty silly to kill a merchant and only find 5 copper or a bronze ring anyway (though that's what will happen if you get their quest reward and -then- kill them, but that's more reasonable).

 

b) the Fixpack (at least the BG1 Fixpack) and maybe the games themselves use GivePartyGold() for quest rewards where the awarders don't necessarily have that much gold.

 

But if they don't, then the reward's not actually given... huh? :crazyeyes:

 

Qwinn

Link to comment
i think it's beyond fixpack's scope and better fit as tweak. After all, fixpack isn't about "reality", or "consistency", it's about how the game should have been.

 

Fair point. But here's the thing... the game as it is isn't -just- inconsistent, it's actually bugged in many many places. The questgivers are supposed to give you gold, but they don't, because they used GivePartyGold and don't actually have any. Something -has- to be done about that in a Fixpack. There's two ways to handle it... either make it CreatePartyGold, or give them money so the GivePartyGold works. There isn't really a way to determine programmer intent there, did they mean to use Create, or did they just forget to give the .CRE any copper?

 

That in itself is a judgment call that as the creator of the Fixpack I -have- to make... which I have made based on what is more realistic... and once I make it for those cases (I've done 9 so far), shouldn't it be applied consistently? Or do we say that, in general, the only cases where the game should do something in a consistently realistic manner is the cases where it just happened to be bugged? That latter option seems... unsatisfying, and doesn't leave me with the feeling that what I'm playing is really -fixed-, you know?

 

Qwinn

Link to comment
After all, fixpack isn't about "reality", or "consistency", it's about how the game should have been.
Yes... it should've been realistic and consistent :groucho:.

 

Seriously though, Qwinn makes some pretty good reasoning for cases where changing things would be fixes and cases where it would be tweakish to do so. I know some folks are diehard "fix only if absolutely necessary," and there's merit to that viewpoint, but sometimes logic prevails over mere merit. And, well, this is PS:T (which perhaps is an argument against logic, but, yeah, whatever... :crazyeyes:).

 

As for the EXTERN, you'll need someone who knows about dialogue for that (or actually *gulp* test it *shudder*).

Link to comment

Archived

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

×
×
  • Create New...