Jump to content


Photo

ACTION.IDS PickPockets


  • Please log in to reply
5 replies to this topic

#1 FredSRichardson

FredSRichardson

    WeiDU Meddler

  • Member
  • 258 posts

Posted 12 September 2003 - 05:51 PM

Is there any way to figure out what the functions do that are listed in ACTION.IDS? I'm trying to figure out what the IWD2 game engine does for this.

Also, is it possible to override any of these functions?

Thanks for any help on this stuff,

-Fred
I gotta get rid of this friggin idiotic signature...

#2 cirerrek

cirerrek
  • Member
  • 193 posts

Posted 12 September 2003 - 07:50 PM

They have action.ids and trigger.ids definitions for all (most of all?) the IE games listed here.

http://dragonlance.t...esdp/index.html

You'll find that for IWD2 they are mostly copied from the BG2 .ids files, so there may be some inconsistencies. For example

BG2:
0x401C See(O:Object*)


IWD2 adds a second parameter:
0x401C See(O:Object*,I:SeeDead*)

-Gimble
Q: What's the second argment ( typically zero ) that is passed to See()?

-Briareus
0 = don't see dead creatures. 1 = see dead creatures. In every previous IE game, See()
would return a match even if the creature was dead. This resulted in having to do a !Dead()
check in almost every IF block. I don't know why you'd want to see dead creatures, but it's
there if you do.


As for overriding them, I am not sure what you mean exactly. Make them do something other than what they are supposed to do?

There is some cross-over between games, meaning, even though some entries aren't in the IWD2 .ids files, the game engine will still recognized some scripting commands from the BG2 .ids files, if you copy those entries into the IWD2 .ids files. For example, Kensai Ryu figured out several commands from BG2 could be added and used to IWD1.

Figuring out which ones will work is mostly a trial and error and making sure that the entries aren't already being used for something else:

Wild Ex. off the top of my head

BG2: 0x401C ClubTheVillan(O:Object*)
IWD2: 0x401C RunScreamingFromTheVillain(O:Object*,I:Constant*soundOff)

So you would know for sure that you couldn't add ClubTheVillan to the IWD2 .ids

In some cases, you can also add new entries

0x4031 HaveSpell(I:Spell*Spell)
New 0x4031 HaveOffensiveSpell(I:Spell*OffensiveSpell)
New 0x4031 HaveDefensiveSpell(I:Spell*DefensiveSpell)

Which just uses the same entry and you tell it to look at a new/different .ids file

Hope that was enough and not too much info.

Thanks,
Cirerrek

#3 FredSRichardson

FredSRichardson

    WeiDU Meddler

  • Member
  • 258 posts

Posted 13 September 2003 - 04:42 PM

cirerrek,

Thanks for the info. I definitely appreciate your time in answering my questions.

What I'm trying to figure out is if there's a way to see the code for the actual action. For example, in IWD2, PickPockets maps to 25. According to the docs, this number is some sort of offset to a chunk of code inside the Infinitey Engine that gets run when you call PickPocket. This makes it sound like the only way to look at the code for the routine would be to figure out what 25 maps to in the code segment of IWD2.exe and disassemble it. This is well beyond what I know how to do!

On the other hand, maybe PickPockets uses some 2DA files for parameters that control the way PickPocketing works. Then I might be able to tool around with it from that angle.

Any more info you have on this would be much appreciated!

Thanks,

-Fred
I gotta get rid of this friggin idiotic signature...

#4 cirerrek

cirerrek
  • Member
  • 193 posts

Posted 18 September 2003 - 09:33 AM

I am not aware of a .2da file that controls pick pocketing, but I don't recall ever looking for one either.

Avenger might be a good source of information because of his modifications to the thief/bard classes/kits.

If it isn't controlled in a .2da then you would probably have to locate and dissassemble the appropriate portion of the .exe

Sorry that I couldn't be of further help.

-cirerrek

#5 FredSRichardson

FredSRichardson

    WeiDU Meddler

  • Member
  • 258 posts

Posted 18 September 2003 - 10:21 AM

Sorry that I couldn't be of further help.

No, you were very helpful, thanks!

I was reading one of Kevin Dormer's posts from May in which he was describing his attempts to disassemble parts of the code. He mentioned PEBrowser which I've tried using (and is actually very good for run-time debugging and disassembling), but I'm too much of a neophyte and I didn't get very far doing this.

Maybe it would be better just to write an open source clone if the IE engine (OK so this could take years). I wonder if Bioware's copyright prohibts other programs from reading and interpreting their game files.
I gotta get rid of this friggin idiotic signature...

#6 Andyr

Andyr

    HERR RASENKOPF

  • Member
  • 2318 posts

Posted 18 September 2003 - 04:19 PM

Maybe it would be better just to write an open source clone if the IE engine (OK so this could take years). I wonder if Bioware's copyright prohibts other programs from reading and interpreting their game files.


I think BruderTod over at TeamBG was doing something similar to this- not 100% sure though.
"We are the Gibberlings Three, as merry a band as you ever did see..." - Home of IE mods

< jcompton > Suggested plugs include "Click here so Compton doesn't ban me. http://www.pocketplane.net/ub"