Jump to content

Question to execution of Class script (party member: Alora)


jastey

Recommended Posts

Is there any IE-engine mystery that prevents the class script to be executed while the NPC is in the party? At least that is what I noticed when playtesting a mod.

 

I added a script bloc to Alora's script alora.bcs (for BG:EE).

The conditions were met, but the script block was not executed - nothing happened, not after waiting a longer time.

 

I patched alorax.cre so that alora.bcs now is the override script.

When the conditions are met now, the script block is executed and all happens as expected.

 

Before I go and post a feture request into the BG:EE bug tracking system, does anyone know how the scripts are handled?

Link to comment
Afaik, the class script is used for the custom scripts you can assign to each party member. As a result, this script will only be executed when you have activated party AI.
Erhm I think jastey ask about the .cre's class script, not about say Thief Ranged -called "class script" for a party member, as that's the custom assign-able script.

 

And the scripts have a handling order, which is why the lower ordit script won't do anything until the higher ones are all resolved. It's likelly that you were just blocked by a tricker higher up in the script order... say someone put no Continue() to action line in the same script that was always firing. Or if your script in the lower order with one script always firing, you are doomed.

The order is the same as the byte order, so first 0x0248 (override)... and last 0x0268 (default) when it comes to the particular creature.

Link to comment

Jarno: Thank you for the info.

In this case, however, there was no higher script (Alorax.cre have no override script assigned) and the script block in question was the first on top in the class script. From all I know, it cannot be blocked by another script block then. Also, I waited quite a while without giving her any commands, and it was inside an area where she doesn't have any script blocks assigned.

Link to comment
...
Had the creature already joined the group ? Cause that clears all the scripts except the override if I remember it correctly. I read this from the theAcefer's NPC guide ages ago... so I don't know why, but it's likely to be the case.

 

Da-da-daa.

Link to comment
Hm, but the script assigned to Alora at the slot "Class" wasn't executed for party AI on, either.
Did you read my last post... the script in that slot gets removed in the party joining action. So the action will never be done... unless you reassign the script to it after the joining... and in that case, one of the party scripts might not work, like player2.bcs or player3.bcs .
Link to comment
Jarno: Can you provide a link to where you have this knowledge from?
Yes, and no(as in there's no working download link). I'll see if I have a .pdf file of I had for a while... Edit: I don't have the .pdf anywhere. Darn !
Link to comment

If you are in doubt if a script was assigned or not, why don't you use ctrl-m ?

 

I'm pretty sure you can figure out which scripts are replaced by JoinParty.

Or if the script you tried to assign is still there.

Link to comment

If I select the NPC and press ctrl+m the only thing that happens is that the cheat console opens. I tried searching the Baldur's Gate Forums, but I am not capable to narrow the search down to the post where the testing cheats were explained. What is supposed to happen when I press ctrl+m?

Link to comment

Perhaps he meant gemrb, where we do a detailed debug dump when you do that. Eg.

[Actor/DEBUG]: Debugdump of Actor Karrl (Karrl, Karrl):

Scripts: <none> <none> <none> <none> efpikwrn eftwnchk efatkmel lwhand1

Area: ar9100 Dialog: dkarrl1d

Global ID: 10028 PartySlot: 0

Script name:karrl Current action: -1 Total: 0

Int. Flags: 0x50a00 MC Flags: 0x0 TalkCount: 0

Allegiance: 128 current allegiance:128

Class: 2 current class:2

Race: 1 current race:1

Gender: 1 current gender:1

Specifics: 0 current specifics:0

Alignment: 0 current alignment:0

Morale: 10 current morale:10

Moralebreak:5 Morale recovery:60

Visualrange:30 (Explorer: 0)

Levels (average: 3):

FIGHTER: 3

current HP:17

Mod[iE_ANIMATION_ID]: 0x6101 ResRef:cemb2 Stance: 1

TURNUNDEADLEVEL: 0 current: 0

Colors: 505290270 623191333 1044266558 202116108 387389207 471604246 50529027

WaitCounter: 0

LastTarget: 0 <NULL>

LastTalked: 0 <NULL>

INVENTORY:

1: leat01 - (0 0 0) Fl:0x2c21 Wt: 0 x 15Lb

10: FIST - (1 0 0) Fl:0x2029 Wt: 0 x 0Lb

35: sw1h07 - (1 0 0) Fl:0x2c21 Wt: 0 x 3Lb

Equipped: 1000

Total weight: 18

SPELLBOOK:

EFFECT QUEUE:

0: 0x00: ACVsDamageTypeModifier (8, 16) S:

1: 0x07: Color:SetPalette (22, 5) S:

2: 0x00: ACVsDamageTypeModifier (-2, 4) S:

3: 0x00: ACVsDamageTypeModifier (-2, 2) S:

4: 0x07: Color:SetPalette (23, 4) S:

5: 0x07: Color:SetPalette (30, 0) S:

6: 0x91: DisableCasting (0, 0) S:

Link to comment
Ctrl + m then enter should work in any engine!
Yeah, but you need to enable the cheat keys, just like every other one of those key combinations, except the single X, as it's gives the local cordinates on it's own, but the Ctrl + X gives more info... at least in BG2. And yeah, it does what lynx said, also in the PC version.
Link to comment

Archived

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

×
×
  • Create New...