argent77 Posted December 21, 2017 Share Posted December 21, 2017 I've noticed several differences between the EFF V2.0 structures as defined in IESDP and by Near Infinity: Offset Size IESDP structure Size Near Infinity structure 0x00 4 Signature 4 Signature 0x04 4 Version 4 Version 0x08 4 Opcode 4 Type 0x0c 4 Target type 4 Target 0x10 4 Power 4 Power 0x14 4 Parameter 1 4 Parameter 1 0x18 4 Parameter 2 4 Parameter 2 0x1c 2 Timing mode 4 Timing mode 0x1e 2 Timing? - - 0x20 4 Duration 4 Duration 0x24 2 Probability 1 2 Probability 1 0x26 2 Probability 2 2 Probability 2 0x28 8 Resource 8 Resource 0x30 4 Dice thrown 4 # dice thrown 0x34 4 Dice sides 4 Dice size 0x38 4 Saving throw type 4 Save type 0x3c 4 Save bonus 4 Save bonus 0x40 4 Set local variable 4 Special (Parameter 2.5) <-- Same meaning? 0x44 4 Primary type 4 Primary type 0x48 4 Unknown 4 Unknown 0x4c 4 Minimum level 4 Minimum level 0x50 4 Maximum level 4 Maximum level 0x54 4 Resistance 4 Dispel/Resistance 0x58 4 Parameter 3 4 Parameter 3 0x5c 4 Parameter 4 4 Parameter 4 0x60 8 Resource 2 4 Unknown <-- Discrepancy 0x64 - - 4 Time applied (ticks) <-- Discrepancy 0x68 8 Resource 3 8 Resource 2 <-- Discrepancy 0x70 4 Unknown 8 Resource 3 <-- Discrepancy 0x74 4 Unknown - - <-- Discrepancy 0x78 4 Caster X coordinate 4 Caster location X 0x7c 4 Caster Y coordinate 4 Caster location Y 0x80 4 Target X coordinate 4 Target location X 0x84 4 Target Y coordinate 4 Target location Y 0x88 4 Parent resource type 4 Resource type 0x8c 8 Parent resource 8 Parent resource 0x94 4 Parent resource flags 4 Resource flags 0x98 4 Projectile 4 Impact projectile 0x9c 4 Parent resource slot 4 Source item slot 0xa0 32 Variable 32 Variable name 0xc0 4 Caster level 4 Caster level 0xc4 4 Internal flags 4 Internal flags 0xc8 4 Secondary type 4 Secondary type 0xcc 60 Unknown 4 Unknown 0xd0 - - 56 Unknown Which structure definition is the correct one? Quote Link to comment
Avenger Posted December 21, 2017 Share Posted December 21, 2017 Set local variable is the 'old name' for 'special' field. Its old name is valid only in the store local variable opcode where it was first discovered. Since then, EE uses the special field in other opcodes extensively, mostly because this field is present in EFF V1.0 too, so it can be used without external eff (EFF V2.0) School is stored on a DWORD, so technically the WORD after the primary type is not 'unknown'. 0x48 - is a previously unused field. EE uses it to discern primary and secondary targets in the scorcher (used only internally). After the resistance flags, there are 4 dwords. The last of them used to store the time it was first applied. After those there are 2 resrefs for the second and third resources. So, NI is structurally correct, IESDP is not. LONG Parameter3 LONG Parameter4 - also used for slow poison LONG Parameter5 - currently not used by ANYTHING LONG Parameter6 - repurposed for first casting time in EE RESREF Resource2 RESREF Resource3 Quote Link to comment
kjeron Posted December 22, 2017 Share Posted December 22, 2017 LONG Parameter3 LONG Parameter4 - also used for slow poison LONG Parameter5 - currently not used by ANYTHING LONG Parameter6 - repurposed for first casting time in EE RESREF Resource2 RESREF Resource3 Parameter5 is at least set (to 1) when using opcode 177.I don't know if it's actually used, as changing it zero and two had no noticeable effect. But, the game did always reset it back to 1 after loading and saving the game. Quote Link to comment
Avenger Posted December 22, 2017 Share Posted December 22, 2017 (edited) Hey, you are right. It is a kind of a 'first apply' flag for effects chained by 177. Do current chained effects get a secondary saving throw? If this is set to 1, they are guaranteed, they won't. Edited December 22, 2017 by Avenger Quote Link to comment
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.