rivvers Posted December 30, 2024 Posted December 30, 2024 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 : Parameter 1 : is like a dice, SET the opcode duration Parameter 2 : if set, activates the P1 dice duration 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) the dice value is multiplied by 100 (so the result is calculated in "rounds") 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. Quote
lynx Posted December 30, 2024 Posted December 30, 2024 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. Quote
rivvers Posted December 31, 2024 Author Posted December 31, 2024 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. Quote
kjeron Posted December 31, 2024 Posted December 31, 2024 (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 December 31, 2024 by kjeron Quote
rivvers Posted January 1 Author Posted January 1 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. Quote
Avenger Posted January 7 Posted January 7 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 Quote
rivvers Posted January 7 Author Posted January 7 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. Quote
Recommended Posts
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.