Jump to content
Sign in to follow this  
CamDawg

IWDification Returns with a Shiny New Beta

Recommended Posts

Okay, I've externalized this for use by anyone. Cheers. As for those particular questions:

1) you may wanna add an opcode 139 to D5EVADE.SPL in order to display "Gained Passive Ability: Evasion" or something like that...
2) TRAP_FIREBALL, TRAP_LIGHTNING_BOLT, MEPHIT_LIGHTNING_BOLT and the like should be evadable.
3) [PATCH_IF (level_1 > 7) OR (level_2 > 7) BEGIN] -> You may wanna replace ">" ("greater") with ">=" ("greater or equal").
4) In IWDEE there is no opcode 72 (Change AI type). What is it for? Moreover, I think it's currently useless since it has a duration of 0.....


1) Haven't bothered to get around to doing that, but sure, it sounds nice. Could add it if I find time, or someone could do a pull request on Github.

 

2) Those (and many other spells) are included in the optional expanded set of spells subject to Evasion.

 

3) Noted.

 

4) This new version avoids any use of opcode 72.

Share this post


Link to post

1) Haven't bothered to get around to doing that, but sure, it sounds nice. Could add it if I find time, or someone could do a pull request on Github.

 

Well, actually this is the only opcode that really matters if you're interested in porting IWD:EE Evasion as it is (since opcode 328 is useless once you patch evadable spells with opcode 324 and parameter2 = 63....)

Share this post


Link to post

Well I actually ended up making a much more interesting and flexible version than simply applying hard-coded stuff.

 

And the 328 effects are actually necessary for Evasion to work properly.

Share this post


Link to post

And the 328 effects are actually necessary for Evasion to work properly.

This may be true for your version, I was talking about the existing IWD:EE feature...

 

Anyway, you may wanna add something else to the list of evadable spells. For example: Arrow of Detonation, The One Gift Lost, Potion of Explosion, Oil of Fiery Burning (only if IR is not installed) and so forth....

Edited by Luke

Share this post


Link to post

 

And the 328 effects are actually necessary for Evasion to work properly.

This may be true for your version, I was talking about the existing IWD:EE feature...

No, I meant that the spellstate is necessary for the vanilla-style Evasion to work. (To work fully, anyway.)

 

Anyway, you may wanna add something else to the list of evadable spells. For example: Arrow of Detonation, The One Gift Lost, Potion of Explosion, Oil of Fiery Burning (only if IR is not installed) and so forth....

I'm not sure whether it works with item effects... but then again I guess it might. Need to investigate...

Share this post


Link to post

No, I meant that the spellstate is necessary for the vanilla-style Evasion to work. (To work fully, anyway.)

I'm sorry, but I think you're wrong.... If I'm not mistaken, it was @kjeron the one who found out that it is sufficient to patch a spell with opcode #324 (param2 = 63) to replicate vanilla-style Evasion ---> Might & Guile thread, May 1st from kjeron: "It seems that IWDEE misleadingly applies the EVASION SPELLSTATE to thieves at level 7 through their CLAB.

It's entirely pointless - any Thief L7+ automatically qualifies for an evasion check."

I'm not sure whether it works with item effects... but then again I guess it might. Need to investigate...

There shouldn't be any problem since the resource of opcode #324 can be either a .SPL or an .ITM.... Edited by Luke

Share this post


Link to post

No, I meant that the spellstate is necessary for the vanilla-style Evasion to work. (To work fully, anyway.)

I'm sorry, but I think you're wrong.... If I'm not mistaken, it was @kjeron the one who found out that it is sufficient to patch a spell with opcode #324 (param2 = 63) to replicate vanilla-style Evasion ---> Might & Guile thread, May 1st from kjeron: "It seems that IWDEE misleadingly applies the EVASION SPELLSTATE to thieves at level 7 through their CLAB. It's entirely pointless - any Thief L7+ automatically qualifies for an evasion check."

 

IIRC, my tests indicated that this is not true. Or maybe it is true in IWDEE, but this is a mod for BG(2)EE so that's the engine I'm discussing. In BG(2)EE at least (maybe in IWDEE too), yes any L7+ thief automatically qualifies for an Evasion check, but without the spellstate the check is not fully functional. So adding the spellstate via 328 is indeed necessary.

 

Again, it's been a while since I tested, my memory is a bit vague. I only definitely remember that is is not as simple as you describe. The easiest way to find out for sure is to test it yourself.

Share this post


Link to post

IIRC, my tests indicated that this is not true. Or maybe it is true in IWDEE, but this is a mod for BG(2)EE so that's the engine I'm discussing. In BG(2)EE at least (maybe in IWDEE too), yes any L7+ thief automatically qualifies for an Evasion check, but without the spellstate the check is not fully functional. So adding the spellstate via 328 is indeed necessary.

 

Again, it's been a while since I tested, my memory is a bit vague. I only definitely remember that is is not as simple as you describe. The easiest way to find out for sure is to test it yourself.

 

My tests indicate that opcode #328 is not necessary (tested on BGEE v2.5 beta)

 

Just to clarify: what do you mean by "without the spellstate the check is not fully functional" ?

Edited by Luke

Share this post


Link to post

I think your testing might not be thorough enough (which is no insult - it took me a while to observe the issue myself). Try adding the Evasion check to Acid Arrow, and start a fight with Phlydia 30 or 40 times. Do you successfully evade the spell? When evading it, do you also evade the 2nd-/3rd-round damage? Does the result always match the Evasion feedback? Overwrite the Acid Arrow .spl file with Magic Missile, then add an Evasion check and try again. Is every missile from every spell evaded properly?

 

My recollection is that there is (sometimes?) a mismatch between the Evasion feedback and the actual result. Whereas, if you apply spellstate 252 to the thief, it works perfectly.

 

But, we've taken this thread way off-topic now...

Share this post


Link to post

I think your testing might not be thorough enough (which is no insult - it took me a while to observe the issue myself). Try adding the Evasion check to Acid Arrow, and start a fight with Phlydia 30 or 40 times. Do you successfully evade the spell? When evading it, do you also evade the 2nd-/3rd-round damage? Does the result always match the Evasion feedback? Overwrite the Acid Arrow .spl file with Magic Missile, then add an Evasion check and try again. Is every missile from every spell evaded properly?

 

My recollection is that there is (sometimes?) a mismatch between the Evasion feedback and the actual result. Whereas, if you apply spellstate 252 to the thief, it works perfectly.

 

But, we've taken this thread way off-topic now...

So, I didn't test this for 30 or 40 times, but it does seem that opcode #328 is not necessary..... In my tests, Coran managed to evade all the effects from Melf's Acid Arrow (I put opcode #324 (param2 = 63) as the first effect in the spell header). When speaking of Magic Missile, things are different: it may happen that you manage to evade all missiles or just some of them.... But this is not an issue, I think it makes sense.....

 

Moreover, the Evasion feedback triggers exactly when the projectile hits the target (no mismatch), so everything is working as intended.....

 

To sum up: simply put opcode #324 (param2 = 63) as the first effect in each spell/item header and you have IWDEE Evasion ----> Very simple, but not flexible as you pointed out..... And, yes, it works with items too......

 

EDIT: nope, you're right, I detected something wrong. It may happen that the very first Melf's Acid Arrow that hits Coran triggers both the Acid damage and the Evasion feedback...

Edited by Luke

Share this post


Link to post

EDIT: nope, you're right, I detected something wrong. It may happen that the very first Melf's Acid Arrow that hits Coran triggers both the Acid damage and the Evasion feedback...

Are you sure you weren't taking the delayed damage from a previous un-evaded arrow?

If I set the characters Breath Save to 0/1, it becomes 100% consistent for both spells.

Share this post


Link to post

 

EDIT: nope, you're right, I detected something wrong. It may happen that the very first Melf's Acid Arrow that hits Coran triggers both the Acid damage and the Evasion feedback...

Are you sure you weren't taking the delayed damage from a previous un-evaded arrow?

If I set the characters Breath Save to 0/1, it becomes 100% consistent for both spells.

 

Let's say it seems to be intermittent..... Sometimes it works as expected, other times I take the damage (I'm talking about the instant damage, not the delayed damage from a previous un-evaded arrow) and the Evasion feedback message is displayed in the combat log.....

Edited by Luke

Share this post


Link to post

It could be something specific to that projectile... it could be something related to direct-target spells (which Evasion wasn't designed for).

 

My thing is, I stopped investigating as soon as I saw anything wrong because it's really, really easy to just apply spellstate 252 when needed...

Edited by subtledoctor

Share this post


Link to post

My thing is, I stopped investigating as soon as I saw anything wrong because it's really, really easy to just apply spellstate 252 when needed...

Yep, you're right......

 

But I don't understand why in your mod (Scales of Balance) you patch both the CLABTHxx tables and the .CRE files with spellstate 252..... Why not just the CLABTHxx tables for example? I mean, if a .CRE is coded as a Thief (or kitted Thief), it should automatically receive the spellstate once it reaches the appropriate level.....

Edited by Luke

Share this post


Link to post

I don't understand why in your mod (Scales of Balance) you patch both the CLABTHxx tables and the .CRE files with spellstate 252..... Why not just the CLABTHxx tables for example? I mean, if a .CRE is coded as a Thief (or kitted Thief), it should automatically receive the spellstate once it reaches the appropriate level.....

Because enemy creatures don't ever "reach" any levels. They have a "level" stat coded in, but they never level up, and they don't have any CLAB effects applied to them. So for the PC & co., they can get Evasion from the CLAB table. But I want enemy thieves to be a good challenge, so I give non-joinable NPCs Evasion manually.

 

SCS AI component, notably, does apply CLAB effects to enemy .CRE files. (Sometimes too much, but that's another discussion.) But i don't want to rely on SCS.

Share this post


Link to post
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.

Sign in to follow this  

×
×
  • Create New...