Jump to content

Some additions - opcodes 74, 271 and 323


Recommended Posts

Posted

I would like to make some changes directly on iespd repo but, eh… some changes are a bit tricky so i prefer to post here and discuss first.


 

Opcode 74 - State: Blindness

 

Parameter #1 and parameter #2 are considered as Irrevelant.

But if you put 1 in parameter #2 field, the duration appears to be permanent.

So what's going on? Feature or bug? I don't find any information about it.

I'd appreciate some help with this… review or more ig test because the effect is a bit unclear for me.

 

What I know :

  1. Parameter 1 : is like a dice, SET the opcode duration
  2. Parameter 2 : if set, activates the P1 dice duration
  3. it seems the value is configured to be used as an absolute duration (in ticks), so it makes no sense to use it except with Timing Mode 3 or 6 (but I need more tests)
  4. the dice value is multiplied by 100 (so the result is calculated in "rounds")
  5. the luck stat has an impact on the dice result

 

Example :

if P1 = 262145, P2 = 1, timing mode = 3, duration = 0

The target is blinded for 1d4 rounds.

The result is similar with timing mode = 6.


 

Opcode 271 - Graphics: Avatar Removal

 

The AI scripts are not disabled since the actions listed in INSTANT.IDS are available

But, Parameter #2 can accepts a value. If it is 1 then the scripts are really disabled.

 

Also, this opcode set CasterHold and SUMMONDISABLE to 1.

If Parameter #2 is set, SUMMON_DISABLE_ACTION is set to 1.


 

Opcode 323 - Stat: Turn Undead Level

 

Only 2 modes are available, mode 2 (Percentage Modifier) does not exist

 

Moreover, there is a "Special mode" :

If the special field is active, #P1 is incremented by the target level

Use carefully against Cleric and Paladin but can be useful for others


 

All of three, have been verified on BGEE versions 2.5 and 2.6.

Posted

Can't add much:

Blindness: the only case using parameters I know is from pst (power word blind), but that might be a gemrb unhardcoded projectile thing.

Avatar Removal: I thought it was the Special field with a bunch of logic, but limited to familiars.

 

Posted

I'm divided on the question of blindness, because it could work, but only in too specific cases. Until we know more, we could use a simpler annotation: Parameter#2 should be 0 (zero) otherwise the effect duration will be buggy? But I'm not sure.

 

Avatar removal: I'm not sure I've got this right, the opcode was probably designed for invocations because it's used in the CreateCreatureDoor action, but it can be applied to anyone.

Posted (edited)

op271 was designed for summoning creatures.  It's hardcoded to be applied whenever you use one of the summoning opcodes, with a duration relative to the summoning animation.  The creature is spawned instantly, and subject to targeting and AoE attacks, but not active or rendered until the summoning animation is ready.

The creature's AI scripts are disabled.  They can take actions in INSTANT.IDS, but only through means other than their own AI scripts - manual input from the player, or ActionOverride() from another creature's/area/game script.

Edited by kjeron
Posted

Thanks for the explanation kjeron, it seems good to me.
What it doesn't say, however, is that summoning opcodes called opcode 271 with #P2 set to 1.
That why AI scripts are disabled.

If we use the opcode 271 directly with #P2 = 0, then, summoning can take actions in INSTANTS.IDS from their own IA scripts.

Posted

opcode 271 does the following:

sets casterhold to 1 (same as the effect in burning hands, opcode 165)

sets summondisable to 1 

And if P2 is 1 then

sets summondisableaction to 1

 

Posted
1 hour ago, Avenger said:

opcode 271 does the following:

sets casterhold to 1 (same as the effect in burning hands, opcode 165)

sets summondisable to 1 

And if P2 is 1 then

sets summondisableaction to 1

1 hour ago, Avenger said:

Opcode 323 indeed has no percentage type modifier.

Thanks Avenger. It's said as if it were obvious. But that wasn't the case a week ago.


Things change quickly : https://github.com/Gibberlings3/iesdp/pull/184.

Join the conversation

You are posting as a guest. If you have an account, sign in now to post with your account.
Note: Your post will require moderator approval before it will be visible.

Guest
Reply to this topic...

×   Pasted as rich text.   Paste as plain text instead

  Only 75 emoji are allowed.

×   Your link has been automatically embedded.   Display as a link instead

×   Your previous content has been restored.   Clear editor

×   You cannot paste images directly. Upload or insert images from URL.

×
×
  • Create New...