Jump to content

IWD2 Scripting Notes


Gimble

Recommended Posts

  • The FindTraps() action doesn't work for a number of classes- I tested Paladin, Monk, Barbarian, Cleric, Druid, Wizard. Of those six, only the Monk would enable Search via script (the FindTraps() call). It's my strong suspicion that only rogue-like classes ( Rogue, Monk, Bard ) have this functionality enabled.

It also seems to work for all Thief classes but the BG2-style Hide'n'Detect functionality doesn't work. You can script Hide() and you can script Detect() but the moment you put the two together in the same response block, both fail.

 

-Y-

Link to comment

Thanks, Yovaneth. I hadn't gotten around to Hide-n-Search yet, and I'll put it on my really low-priority list of things to look at (I now expect failure).

More notes:

  • 215 FollowObjectFormation(O:Object*,I:Formation*,I:Position*) isn't in ACTION.IDS, but works fine. Useless for PC scripting as best I could tell, though, because there's no good way I could find to 'break' back into script when something valuable happens (e.g. monsters ).
  • MoveToObject works fine for that, though. You can use it with an additional IF check that breaks the movement. However, don't expect fine-grained control here: between AI cycles your guy can move several circle-widths ( 5-10' in game terms? ).
  • MoveToObject is unacceptable without a code check for breaking the move. Otherwise, the followers are constantly 'shoving' the leader forward as they push into them. I imagine this is really, really bad if you're close to traps or enemies, for example.
  • Annoying, and important to remember, is that PC script slots one and two (and presumably zero) are not stored in the save file. If you save your game, with scripts in every slot, and then examine the save game, slots 3-5 will still be populated with the right script names, but slots 1 and 2 will be empty ("None" in Beyond Infinity terms).

Link to comment

I believe it's noted elsewhere, but the AI scripting for PCs does not run constantly. Particularly when you interactively move a character ( click on them, click on destination to walk to ), their script does not run during the move itself, or for a few seconds afterwards.

 

This means that PC-based scripts in IWD2 have a significant disadvantage, as they don't "fire" right at the start of combat -- though the enemy monster AI does. As a result, you can have a swarm in your face before the first PC AI script action occurs.

Link to comment

Slot clarifications to SLOTS.IDS, based on testing. I isolated the main inventory slots by row and column (and verified the quick slots locations), using user script. A note about XEquipItem: if on an equip request the destination is filled, it merely swaps the location of the two items. This can be benign or disasterous, depending on if the swapped source is an invalid location for the item.

15 SLOT_QUICK_1
16 SLOT_QUICK_2
17 SLOT_QUICK_3
18 SLOT_MISC_R1_C1
19 SLOT_MISC_R2_C1
20 SLOT_MISC_R1_C2
21 SLOT_MISC_R2_C2
22 SLOT_MISC_R1_C3
23 SLOT_MISC_R2_C3
24 SLOT_MISC_R1_C4
25 SLOT_MISC_R2_C4
26 SLOT_MISC_R1_C5
27 SLOT_MISC_R2_C5
28 SLOT_MISC_R1_C6
29 SLOT_MISC_R2_C6
30 SLOT_MISC_R1_C7
31 SLOT_MISC_R2_C7
32 SLOT_MISC_R1_C8
33 SLOT_MISC_R2_C8
34 SLOT_MISC_R3_C1
35 SLOT_MISC_R3_C2
36 SLOT_MISC_R3_C3
37 SLOT_MISC_R3_C4
38 SLOT_MISC_R3_C5
39 SLOT_MISC_R3_C6
40 SLOT_MISC_R3_C7
41 SLOT_MISC_R3_C8

Link to comment

Another note about TakePartyItemNum: If done within the party, the following seems to happen (assume 'source' and 'destination' are both in the party, and may or may not be the same person):

 

With TakePartyItemNum("foo",1):

  • Source has a stack of 'N' items replaced by 'N-1' items.
  • Destination is given a stack of 'N-1' items.

Note that this is patently wrong: Taking one goodberry from a stack of 10 results in two stacks of nine, even if the party only has one member. Talk about magical!

Link to comment

Archived

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

×
×
  • Create New...