Jump to content

Luke

Modders
  • Posts

    879
  • Joined

Posts posted by Luke

  1. @CamDawg

    As part of my latest pull request, I coded up a function that automatically rearranges / extracts effects into subspells (if needed).

    I did that to address the "7eyes.2da" mechanics (engine quirk), but it is also relevant for this topic and the one about curing stuff.

    Point is that you can also run it as a sort of "last mod" to ensure that everything (that is, a modded override folder) is compatible with this new EE implementation.

    It currently patches all resources that apply (based on IWD:EE "7eyes.2da"):

    • Op3 (Berserk)
    • Op5 (Charm creature)
    • Op12 (Damage)
      • All types but STUNNING and MAGIC
    • Op24 (Panic)
    • Op25 (Poison)
    • Op45 (Stun)
    • Op74 (Blindness)
    • Op76 (Feeblemind)
    • Op80 (Deafness)
    • Op109 (Paralyzed)
    • Op128 (Confusion)
    • Op134 (Petrification)
    • Op175 (Hold creature)
    • Op210 (Power word, Stun)

    As I said, it can be easily tweaked to take into account other opcodes if needed...

  2. As you (notably @Bubb and @kjeron) probably know, AoE projectiles (f.i. "ARROWEX.PRO" – Arrow Exploding) only check for Weapon Immunity (opcode #120) on the attacked target, and use that result for all caught within their area of effect.

    Is this a code level issue...? If not, is there a workaround...? I tried using op148 (Cast spell at point, target=Self) to deliver the 6d6 Fire damage, but it is not working...

  3. 9 hours ago, jmerry said:

    Good enough?

    What about removing both the "Wait()" and the "PlaySound()" actions from the script and adding a delayed (timing=4, duration=17) op174 effect to the SPL file...?

    However, since the script is supposed to play two different sounds ("EFF_M72C" and "EFF_M72D"), you would need to create a second SPL file...

  4. On 11/5/2022 at 1:26 PM, Trouveur80 said:

    Maybe it would be better to have the claws from the forms considered as a two handed weapon, so off hand item would be completely ignored and two handed weapon proficiency would be used instead ?

    Done.

    On 11/9/2022 at 3:11 PM, subtledoctor said:

    How? Isn't setting shapeshift form claw weapons to be two-handed the only way to deal with this? This would be my suggestion, even if it would be weird to get a benefit from two-handed style. Better than then "dual-wielding" a scimitar with your spider bite or whatever...

    That is not needed.

    As far as single-handed weapons are concerned, it is sufficient to set BIT7 (LEFTHANDED)...

    On 11/9/2022 at 3:11 PM, subtledoctor said:

    Also, note that on the EEs, even though you can't set a proficiency to be lower, you can decrease a proficiency by a set amount. So with judicious use of op318 we can reduce a style proficiency to zero while a shapeshift weapon is equipped... just saying.

    Yeah, I tried that trick...

    However, it apparently causes all sorts of issues when applied to Dual-class characters (because incrementing / decrementing the active amount will also alter the original amount, so in the end everything is messed up...)

    As a result, setting a proficiency to 0 (SWORDANDSHIELD and SINGLEWEAPON in this case) via the repeating EFF+SPL trick is our best bet...

  5. 19 hours ago, kjeron said:

    That doesn't really help, as there are at least three different issues:

    I agree with @subtledoctor : using a guaranteed-unique stat (such as EXTRAPROFICIENCY20) should bypass all those issues. That's because:

    • the player cannot mess with it during chargen / level-up
    • no existing weapon is flagged as EXTRAPROFICIENCY20 @ offset 0x31
      • As a result, even if you level-up or dual-class while it's active and the changes become permanent, it should not matter

    Am I missing something 😕?

  6. On 11/5/2022 at 1:26 PM, Trouveur80 said:

    Maybe it would be better to have the claws from the forms considered as a two handed weapon, so off hand item would be completely ignored and two handed weapon proficiency would be used instead ?

    Yes, you're right: the off-hand item should be completely ignored, including passive bonuses / maluses. Will fix...

  7. On 11/6/2022 at 9:06 PM, CamDawg said:

    BBoD is the only one we need to do this song-and-dance for.

    As @subtledoctorsaid, in this specific case you might opt for

    COPY_EXISTING "blakblad.itm" "override"
    	WRITE_BYTE 0x31 IDS_OF_SYMBOL ("STATS" "EXTRAPROFICIENCY20")
    	LPF ~ALTER_EFFECT~ INT_VAR ~check_headers~ = 0 ~match_opcode~ = 233 ~parameter2~ = IDS_OF_SYMBOL ("STATS" "EXTRAPROFICIENCY20") END
    BUT_ONLY_IF_IT_CHANGES

    As already said, that weapon stat is supposed to be unused...

    In so doing, you do not need to worry about mods that change grand mastery bonuses...

  8. @Magus

    I've got a question about submodules.

    After adding a Submodule to my repo, if I then download the master branch to test changes, the Submodule folder shows as empty (everything seems to be fine on GitHub, since I can see the folder "my_submodule_name" @ <latest_commit>...)

    It's like when you clone a repo with submodules and you forget to run "git submodule update --init --recursive"... However, I'm not cloning a repo with submodules, I'm just downloading it...

    A quick test shows that the issue does not occur if you download a proper release (i.e., the Submodule folder is not empty). Instead, if you download the main/master branch (a.k.a. latest commit), then the Submodule folder shows as empty... Is it intended...?

  9. On 8/13/2022 at 8:06 PM, DavidW said:

    I think 'seems reasonable' is too loose a criterion for a fixpack. I don't think we can go adding active immunity to an item unless there's clear evidence that the developers intended it to work that way; I take Cam's comment as active evidence that they didn't.

    Fair enough.

    I just thought that "billowing mass of nauseous vapors" could be related to Poison... But if @CamDawg meant to say that such spells / abilities were omitted on purpose (again, probably because they do not deal Poison damage explicitly), so be it I guess...?

    Anyway, I think that at this point we should all wait for your revision and comment afterwards...

  10. On 8/11/2022 at 1:11 PM, polytope said:

    I would like a list of planned renaming of SPIN___ .spls relating to the forms and "equipped" attack .itm files that are to be changed for the fixpack related to shapeshifting,

    Spoiler
    • Flind (Polymorph Self)
      • (all games):  ~SPWI493~ (spl file),  ~PLYFLIND~ (itm file)
    • Ogre (Polymorph Self)
      • (all games):  ~SPWI494~ (spl file),  ~PLYMSTAR~ (itm file)
    • Spider (Polymorph Self)
      • (all games):  ~SPWI495~ (spl file),  ~PLYSPID~ (itm file)
    • Jelly (Polymorph Self)
      • (all games):  ~SPWI496~ (spl file),  ~PLYJELLY~ (itm file)
    • Brown Bear (Polymorph Self)
      • (all games):  ~SPWI497~ (spl file),  ~PLYBEAR1~ (itm file)
    • Black Bear (Polymorph Self)
      • (all games):  ~SPWI498~ (spl file),  ~PLYBEAR2~ (itm file)
    • Wolf (Polymorph Self)
      • (all games):  ~SPWI499~ (spl file),  ~PLYWOLF1~ (itm file)
    • Boring Beetle (Polymorph Self)
      • (iwdee only):  ~SPWI480~ (spl file),  ~CDPOLYBB~ (itm file)
    • Polar Bear (Polymorph Self)
      • (iwdee only):  ~SPWI481~ (spl file),  ~CDPOLYPB~ (itm file)
    • Winter Wolf (Polymorph Self)
      • (iwdee only):  ~SPWI482~ (spl file),  ~CDPOLYWW~ (itm file)
    • Mind Flayer (Shapechange)
      • (all games):  ~SPIN152~ (spl file),  ~CDMINDFL~ (itm file)
    • Iron Golem (Shapechange)
      • (all games):  ~SPIN153~ (spl file),  ~CDGOLIRO~ (itm file)
    • Troll (Shapechange)
      • (all games):  ~SPIN154~ (spl file),  ~TROLLALL~ (itm file)
    • Werewolf (Shapechange)
      • (all games):  ~SPIN155~ (spl file),  ~WOLFGR~ (itm file)
    • Fire Elemental (Shapechange)
      • (all games):  ~SPIN156~ (spl file),  ~FIRERN~ (itm file)
    • Earth Elemental (Shapechange)
      • (all games):  ~SPIN157~ (spl file),  ~EARTHRN~ (itm file)
    • Water Elemental (Shapechange)
      • (iwdee only):  ~SPIN198~ (spl file),  ~CDSHWELE~ (itm file)

     

  11. 6 hours ago, cdds said:

    Will there be official (numbered) releases of the fixpack in the future,

    Yes, definitely.

    6 hours ago, cdds said:

    Speaking of the repository, is this already in a usable/playable state for a regular playthrough or is it still too early and/or unstable?

    Too early...

    As a rule of thumb, when downloading from GitHub, always remember to download the latest release if available, as the master branch might contain untested changes.

  12. 14 hours ago, CamDawg said:

    and Stinking Cloud was omitted.

    Probably because such spells do not deal poison damage...

    In any case I too would add the check, seems reasonable...

    Special cases include "ohrgrog.spl" and "ohdmask.spl" (used by the Visage - "ohdmask.itm"): these are described as gas-based / breath attacks but deal acid damage... As a result, the op318/324 check should only block the sleep effect, not also op12...

  13. 6 hours ago, DavidW said:

    This is somewhere where I think the new immunity system comes into its own - we can carry on using opcode 39 but use STUN_IMMUNITY to give protection (after the initial knockback period, probably) and display the Stun icon rather than the Sleep icon. #curestn can remove these effects.

    No, I don't think it would make sense...

    As you said, this is not a real stun effect, but physical knockdown... Nothing should cure physical knockdown, simply because there would be nothing to cure...

    If Earthquake/ Staff of the Ram / Dragon Wing Buffet / etc. knocks you to a prone condition, you should just remain on the ground for the specified duration... You should not be able to "cure" the prone condition...

  14. 11 hours ago, DavidW said:

    I do take the point that you could block the Stinking Cloud projectile; I’ll muse on that. 

    @subtledoctor

    Nope, it would be bad...

    As stated on the IESDP, AoE projectiles only impact through their explosion and/or secondary projectiles.

    So in this case you would need to block the unlisted hardcoded entry Invisible_Travelling (instead of CLOUD - 94)... Blocking CLOUD - 94 is indeed useless. Let us consider "IMMCLOUD.ITM" as an example: this item blocks Stinking Cloud and the like only because it provides immunity to op39. If you remove it and just leave the immunity (op83) to the CLOUD projectile, you'll notice that Stinking Cloud and the like will no longer be blocked...

    But as you surely know, blocking 'Invisible_Travelling' would also block other (totally unrelated) projectiles (since it is widely used as an explosion projectile)...

    TLDR: you can't block the Stinking Cloud projectile...

  15. 13 hours ago, DavidW said:

    @Luke: just briefly to one of your points, I’m very opposed to doing things like making oozes etc immune to knockdown because I don’t see any evidence that this matches developer intent.

    Yeah, it would sound more like a tweak rather than a fix... Guess I'll wait for your proof-of-concept versions and see...

    Having said that, I think it is worth mentioning that certain creatures do not really lie down when asleep... That is to say: they look somewhat silly when put asleep – see f.i. the various Djinni/Efreeti/Air Elemental animations (they are basically "invisible"...)

    Guess you might want to keep that in mind when working on all of this...?

    4 hours ago, DavidW said:

    Abazigal ought to be immune to every 39 effect.

    I don't see why it should be immune to Stinking Cloud and the like... Ideally, only green dragons should be immune to such attacks... Unless you want to consider it as a boss (i.e.: boss creatures should be immune to every 39 effect just because they are boss creatures...)

    4 hours ago, DavidW said:

    But no longer-duration 39, including Earthquake knockdown, can affect Sendai, because it will break her scripts.

    Just to clarify: when you say "will break her scripts", do you mean that such scripts would fire too late...?

    If so, then my suggestion above about using SPL effects instead of scripts should bypass this issue...

  16. 1 minute ago, CamDawg said:

    Absolutely not. The games use separate mechanics, and when we changed op39 to support the oIWD modes, we deliberately kept all op39s in BGEE and BG2EE to keep the same behavior as oBG and oBG2.

    Fair enough.

    You might want to do that in either Tweaks Anthology or IWDification then...

  17. 2 hours ago, DavidW said:

    the Sleep cloud created by the Staff of Air.

    Technically speaking, description speaks of "cloud of gas"... As a result, you may want to remove  (half-)elves immunity and treat it as a Nausea effect... Though I'm not 100% sure... Thoughts...?

    2 hours ago, DavidW said:

    (The point here is that normally these creatures are protected because they have scripted actions to perform when below a certain hit point level, so they need never to have their scripts disabled. A few seconds is tolerable, but not multiple rounds).

    2 hours ago, DavidW said:

    Boss creatures can cope with a couple of seconds' delay in their script firing if they happen to be knocked back at the point at which they get reduced to 0 hp.

    What about attaching an op272 effect (frequency: once per second) on the CRE file itself that casts a SPL file which in turn does what the script is supposed to do...? The SPL file can be prefixed with op318 effects checking for current HP, so as to preserve the "when below a certain hit point level" thing...

    2 hours ago, DavidW said:

    Other creatures with 39 immunity should not be immune to immobilizing effects like Earthquake and Ixil's Spike, but should be immune to both unconsciousness and sleep effects. (There is very little avaiable in-game evidence to separate these for creature immunities and doing so involves a lot more design work than I'm comfortable with in a fixpack.)

    I think we should indeed consider the nature of the creature being hit here... I know that this would involve some judgement calls, but the nature of a creature is a static property after all, right...?

    So again:

    • oozes, incorporeal creatures should be immune to all types of knockdown
    • flying, magically levitating creatures (Demilich, Mordenkainen's Sword, ...), oozes, incorporeal creatures should be immune to ground-based knockdown (basically all attacks that apply the Shake Screen effect, such as Earthquake)
      • that means flying and magically levitating creatures (Demilich, Mordenkainen's Sword, ...) should still be vulnerable to general knockdown (f.i. Ixil's Spike)
    • non-breathing and STAT(RESISTPOISON)>=100 creatures should be immune to Nausea attacks (f.i. Stinking Cloud)

    On top of that, we should also take into account the PERSONALSPACE pseudo stat... For instance, "Solar Stance!" (used by Balthazar, a humanoid-sized creature) should not work on creatures whose personal_space attribute is greater than 3...

    To sum up: if we do not consider all these things, then way too many creatures will be vulnerable to op39...

    2 hours ago, DavidW said:

    5) The immobilizing effects of Earthquake and Ixil's spike should be blocked by Free Action, since the Free Action description pretty clearly seems to apply to them.

    I do not agree on this one... I mean, Earthquake/Ixil's spike do not hinder your movement... Am I missing something...?

    2 hours ago, DavidW said:

    I think we should treat Hopelessness as a Sleep effect.

    Technically speaking, Hopelessness is related to Morale (as kjeron stated elsewhere...) I would probably add an op324 effect checking for MORALEBREAK==0 (i.e., if the targeted creatures cannot suffer from Morale Failure, then they should avoid all effects...)

    Having said that, I agree on the pragmatic part...

    2 hours ago, DavidW said:

    Similarly, I think Stinking Cloud should be an unconsciousness effect... There is a case for putting it in its own category...

    What about adding a fourth spellstate, i.e. NAUSEA_IMMUNITY...?

    2 hours ago, DavidW said:

    Effects for mods

    - mod-added items/spells that give sleep immunity will grant it too broadly - but then, that's true already
    - mod-added items/spells that cause sleep will affect some creatures that shouldn't be affected. That's not ideal but I think is a price worth paying for fixing a lot of bugs.

    Does this mean that you are going to remove immunity (op101) to op39...? Asking because I too started working on all of this and I'm abusing the bugged op182 so as not to mess with mod-added items/spells that give op39 immunity...

    If so, are you going to remove op101 only for this particular case or in general (as I suggested here)?

    1 hour ago, CamDawg said:

    oIWD added another dimension in that op39 could be applied with or without wake-on-damage, and this was carried over to IWDEE. When op39 was used for sleep, the targets woke when damaged

    This should also be ported over in BG games (where true Sleep attacks are incorrectly flagged as "Do not wake on damage"...)

    1 hour ago, CamDawg said:

    We may also want to consider if items/spells which cure sleep should make a similar distinction--something I can handle via the cure stuff, should we decide to proceed.

    As far as this topic is concerned, "#curepsn" should cure Nausea attacks (such as Stinking Cloud), not "#cureslp"...

  18. On 7/29/2022 at 5:55 AM, polytope said:

    I hope that a subspell with a name starting with something other than "SP-" and a different projectile will counteract this bug

    I've just verified that applying op235 via op177 is also a valid workaround... And this is exactly what I proposed to Cam.

    In so doing, you don't need to mess with projectiles, subspells, and the like...

  19. 6 hours ago, Luke said:

    Anyway, since all the other trolls with that animation ("trollboo.itm") use p1=11 and p2=1 (i.e., 'Set' mode), then "trollall.itm" should also use it...

    Now that I think of it, it would be bad because it would overwrite "Entangle", "Grease" and the like...

    I think the best option is to remove it... On top of that, the other Shapechange forms do not grant any bonus to movement speed, so why should this one be different...? Ditto for Cloak of the Sewers...

  20. 9 hours ago, kjeron said:

    I've not been able to reproduce it, but that would have to be a different issue - those trolls already have personal space of 3.

    I think I found the culprit: "trollall.itm" applies op176 with p1=11 and p2=5 (i.e., it's using the 'Multiplicative Stacking Percentage' mode, which apparently makes you move so slow that you are basically stuck in place...?)

    Anyway, since all the other trolls with that animation ("trollboo.itm") use p1=11 and p2=1 (i.e., 'Set' mode), then "trollall.itm" should also use it...

  21. On 4/29/2022 at 9:57 PM, kjeron said:

    I don't know whether the size issue was fixed or not.

    @kjeron You remember this...?

    Apparently, polymorphing into a Giant Troll ("spin154.spl" or Cloak of the Sewers) will get you stuck in place 😕...

    However, setting `personal_space` to 3 (or any other value...?) in "trollall.itm" (via op342) does nothing... Changing animation to "shtroll.cre" does nothing too...

    Do you have any other suggestion...?

  22. 5 hours ago, subtledoctor said:

    Honestly: if the duration of the op39 effect is <13 seconds, call it knockdown; if it’s >12 seconds, call it sleep. 

    Huh, I thought that knockdown was supposed to last much less, something like one round at best... In any case, abusing the bugged op182 is probably the best option as of now...

    7 hours ago, polytope said:

    ...if we decide it's a physical knockdown that works on sleep immune creatures...

    Now that I think of it, also attacks such as "Stinking Cloud" should work on sleep immune creatures (as well as any creature protected by "Chaotic Commands" and friends...)

    In this particular case I would add 324 effects checking for STAT RESISTPOISON >= 100. Description speaks of "nauseous vapors", so I think it's perfectly fine for 100% Poison Resistance creatures to be immune to these attacks (as kjeron pointed out in some other thread...)

×
×
  • Create New...