Jump to content

Luke

Modders
  • Posts

    879
  • Joined

Everything posted by Luke

  1. Yes, this does sound like a bug IMHO (in particular, a consistency issue). I think that op174 effect should not be dispellable and bypass magic resistance, just like the main payload (precisely because it's a psionic rather than a magical power). Indeed.
  2. Did you perhaps mean call lightning's secondary strikes (i.e., hardcoded projectiles "Call_Lightning_Chain_1", "Call_Lightning_Chain_2", ... , "Call_Lightning_Chain_11")? Could you please clarify this point...? I mean: Candlekeep Watchers ("seeenemy.bcs", "AttackReevaluate([ENEMY],30)") ignore "sleeping" creatures (due to op12, p2=STUNNING) "bddefai.bcs" ("AttackOneRound(NearestEnemyOf(Myself))") does not ignore "sleeping" creatures (due to op12, p2=STUNNING) That is to say: what do you mean by "any sort of Nearest object"...? Also, what if op39 is applied with `Special == 0`...? In such a case, everything functions as expected...? Separately, do you perhaps know if there's a secret hidden mode that can bypass / ignore op101 (see `parameter2` of op24)...? If not, we still can't properly distinguish Earthquake from Sleep/Unconsciousness without introducing new splstates...
  3. @kjeron Done. I also renamed 118 as "ALIGNMENTBITS!=n", which is more accurate.
  4. I see, good to know. Will fix and rename those entries as you suggested (f.i. "34_ALIGNMENTBITS!=GOOD" instead of "34_ALIGNMENTBITS!=MASK_GENEUTRAL")
  5. Yes, some rows related to alignment check are indeed bugged (108 is fine though...)
  6. Yeah, you're right. Having extra temporary HP while polymorphed would be cool IMHO, but that's not developer intent...
  7. I see, good to know. Yes, it can be exploited to heal yourself. Better to put an op17 effect in the SPL and an op18 (p2=3|Increment, don't update current HP) effect in the ITM. Here is the magic part. I thought it would not work as intended because that op318 has a duration of 0, and the EFF it is meant to block is not in the current effect stack (since it is applied by the SPL file cast by op326). I mean, it reminds me of the current implementation of "Vitriolic Sphere", where the main SPL file ("spwi432") is supposed to block the splash damage ("spwi432y", cast by op326) for the initial target. In this case the op318 effect targeting "spwi432y" has a very short duration (timing=10, duration=2)... I'm not sure if `duration=0` would work the same or not... Just wanted to know whether the two scenarios are comparable or not...
  8. Fair enough. I'm defaulting to one of the two values that actually works, i.e. 0xF00080 (Unaffected by effects from <RESOURCE>). Having said that, I'm not sure why the `duration` field is set to 180... Is this correct...? @kjeron OK, some final comments / questions (before committing): [bg2ee] Cloak of the Sewers, Mustard Jelly form: should not share the same ITM resref as WIZARD_POLYMORPH_MUSTARD_JELLY. I made a clone of "plyjelly.itm" [sod] SHAPECHANGE_MIND_FLAYER: should not use "mindflay.itm" (since that is used by enemy/NPC Mind Flayers) I made a clone of "mindflay.itm" ("cdmindfl.itm") [bgee] WILD_SURGE_POLYMORPH_SPIRIT_WOLF: should not share the same ITM resref as WIZARD_POLYMORPH_WOLF. I made a clone of "cdwolfm.itm" ("wswolf.itm") Slayer Change / IWDEE Druid Shapeshift Heal: shouldn't this healing be applied by opcode #18 (p2=0 | update both current and max HP) in the ITM file (as equipped effect)...? In so doing, it can act as temporary bonus hit points if the caster is already at full health... I must admit it is still not clear to me the following block Assuming it's only relevant when a contingency (since op135 automatically disables arcane / divine spell casting) with, say, Phantom Blade triggers while you're polymorphed (under the effects of op135, p2=0): SPINHUMW.SPL op318 => this is supposed to block EFF file "*PINHUMW.EFF". However, it will never be able to block it since the following op326 effect (which applies a SPL file that in turn applies the EFF file "*PINHUMW.EFF") is not delayed (timing=4, duration=0). op326 (no filter) => applies SPL file "SPINHUMR". SPINHUMR.SPL op177 => "SPINHUMW.EFF" (revert to natural form and remove magically created weapon – you should be immune to it but that's not actually the case...) op177 => "SPINHUMS.EFF" (remove Slayer Change delayed damage) op215 => visual effects To sum up: is it supposed to block the Slayer Change delayed damage and cancel the current polymorph ability (including the Slayer)...? But then why is it supposed to block "SPINHUMW.EFF"...? I fear I'm missing something here...
  9. True (I recalled wrong, sorry...) I see. So are you saying that the vanilla approach (i.e., applying a 0-second "Set to 0" op31 effect before dealing Magic damage via op12) is not really safe...? OK, I see. However, it can be problem when using "MODDER fun_args fail"... Some other things: PATCH_IF $x(4) = 3 BEGIN (when iterating over array "slayer") I mean, that's certainly true since it is preceded by "PATCH_IF $x(4) != 3 BEGIN", so I'm not sure about the intent here... LPF "ADD_SPELL_EFFECT" INT_VAR "opcode" = 206 "target" = 2 "parameter1" = 26011 "duration" = 180 STR_VAR "resource" = ~%SLAYER_START%~ END // Protection from spell (when iterating over array "slayer") Excluding the fact that op206's feedback string is bugged as of now, String #26011 is "There was leather hide found, and tannin was smelled on the killer!". Guess you meant some other strref...? LAF alter_poly_item INT_VAR hostile = $x(5) STR_VAR item_ cre_ RET_ARRAY POLYITEM END (when iterating over array "slayer") guess that this one does not need to return array "POLYITEM" since it's the last call... PATCH_IF !IS_AN_INT $x(2) BEGIN (~alter_poly_item~) This should probably be skipped when you're iterating over array ~slayer~, shouldn't it? Otherwise you'll grant protection against non-existing resources...
  10. Good to know. Anyway, the fixpack uses AUTO_EVAL_STRINGS, so EVAL is not needed in any case... Will test... OK, so that line is supposed to be deleted entirely...? Follow-up questions: Regarding "IWDEE Druid Shapeshift Heal (heal 40% of lost HP)" I know it's supposed to be a flat +12 HP, but I'm not sure what you wanted to do here... I mean, you first set HP (both current and max to 250%) and then set current HP to 40%...? Also Damage Type 65535 is unknown... Regarding "Slayer damage scaling": Damage type 4096 is unknown. Guess you meant parameter2 = IDS_OF_SYMBOL ("DMGTYPE" "MAGIC") // Normal mode arrays ~SPWI416~ and ~SPWI916~ appear to be empty/uninitialized (when launching function ~alter_poly_spell~) First of all, ~array~ is not part of function definition Second, guess you meant something like OUTER_SET squirrel = 1 This variable appears to be unused...? Any particular reason for using op326 with no filter instead of a simple op146,p2=1 (see f.i. when patching ~SPINHUM~, ~SPINHUMS~, ~SPINHUMW~)...? ACTION_MATCH $x(12) WITH (when iterating over array ~list~) Should be $x(11) // count start from 0, not 1 ACTION_MATCH $x(15) WITH (when iterating over array ~other~) Should be $x(14) // count start from 0, not 1 ACTION_MATCH $x(7) WITH (when iterating over array ~slayer~) Not sure what you wanted to do here, seems to be a copy/paste error...? I mean, it should only apply to bgee, bg2ee, eet, and since the resrefs appear to be the same in both games, there should be no need for the "game" variable... CREATE SPL ~SPINHUM~ This SPL file already exists as a game resource. Guess you meant COPY_EXISTING ~spinhum.spl~ ~override~
  11. So basically effect order is irrelevant...? OK, I see it now (hopefully): it's like IWDEE Chill Touch, where the subspell (op326) applying op24 is delayed (1 sec, but guess that 0 secs is also fine) so that the first subspell (op326) can remove immunity to op24... Got it, will report... Interesting. But does your overhauled system interfere with such spells...? I mean, op135 (p2=0) automatically disables Arcane/Divine spell casting, so you are not be able to cast those spells while polymorphed... Unless a contingency triggers maybe...? Regarding your code: things like $res(~~) and $SOURCE(RES) are those hidden array constructs, right? Override Creature Size: "3" // Otherwise transforming into a larger creature can result in being immediately stuck, even in wide open areas. If I recall correctly, this used to be an op135 bug during v2.6 beta (where it used to create impassable tiles). Is it still the case in the stable version...? Asking because that will certainly interfere with op318/324/326 checking for Circle Size... SPRINT $ $x(2)(~%resource%~ ~%idx%~) $item(~~) Unless I'm missing something, ~idx~ appears to be uninitialized...? I'm not sure what you're trying to do / overwrite here...
  12. @kjeron So, I started working on this (wanted to give it a try) and got a first draft Got some questions: Did you mean timing=4...? Also, generally speaking: "timing=4, duration=0" is basically the same as "timing=1, duration=0", right? It's just this specific case (op135 bug) that requires "timing=4, duration=0"...? Or is it related to op335...? What should I put here exactly...? Guess that the Clock of the Sewers should receive a similar treatment, right...? What should I put in "7eyes.2da"...? What about `parameter2` of op335...? What is exactly this issue => "The 0-second delay I referenced prior will also get around the issues op335 has regarding using the same spellstate.". Better to put it on the IESDP me thinks... So how these op326 / op101 integrate with the rest...? Basically, they should go right before ...?
  13. Guess that the goal is to have the same human-friendly identifiers across all games, right...? I'm not sure though... I mean, on BG:EE I'd delete WIZARD_SUMMON_PLANATAR_EVIL and keep BERESH_CHANGE, whereas on BG2:EE I'd do the opposite (since the HLA is actually available there...)
  14. Yeah, you're right... I also found this block in "demsuc.bcs", which is equally weird... Guess I'll leave things as they are... Anyway, since I've already written the code, I just commented it out in case you want to include it into the "Optional, but we think it's cool" mod component...
  15. Yes, you can heal her... That's bad IMHO... It appears as if the original devs wrote that clause but never actually implemented it because they did not think about potential unnatural joinable NPCs... and at the same time they thought the player would never waste his healing spells to heal his allied (summoned) skeleton warriors (though this may be relevant / noticeable when casting the 5th-level spell "Mass Cure"...) On top of that, everything that applies op224 (Restoration) and op216 (Level Drain) should receive the same treatment (for consistency reasons – the fact that Haer'Dalis is vulnerable to Level Drain is kinda weird / bad), so in the end this would be a nerf and a buff at the same time...
  16. What about resist_dispel...? Currently, op45/142 are Dispellable and Bypass MR, whereas op139 does not bypass MR (dispellability is irrelevant here since it's an instantaneous effect). Guess that they should all be coded as `resist_dispel=0` (Natural/Nonmagical, i.e., Not dispel/Bypass MR) so as to match other ITM on-hit effects...?
  17. Does this mean that BG cure / cause wounds spells / abilities should match their IWD counterparts (i.e., they should not affect unnatural creatures)...? Spell description specifically states that "This healing cannot affect creatures without corporeal bodies, nor can it cure wounds of creatures not living or of extraplanar origin." The most noticeable in-game effect would be that the player will no longer be able to heal NPCs such as Haer'Dalis or Caelar... Not much of an issue, right...?
  18. @kjeron What about coding all of that and see how it plays out...? It definitely sounds good to me...
  19. Pretty much what DavidW said... I mean, op55 (Slay) targets HUMANOID and there are a lot of unnatural (non-HUMANOID) creatures that are immune it (see for instance the following creature skins: "ring95.itm", "vamp.itm", "wight.itm", "wraith1.itm", "bdplant.itm", "bdspirit.itm", ...)
  20. Good to know. Feel free to change it to 0-4, 5-9 if that's indeed more appropriate... Let us wait for additional feedback from other people for the time being... In any case, we shouldn't probably fix the probability range (the 1% off) here, that should be done in "6037_probabilities.tph" (so that we do not lose track of this item...)
  21. True, but you can only set it via op135, p2=0 (Change into)... But that is bugged when you shapechange between two different non-natural forms... Moreover, you cannot set it via op233 (it's not a weapon proficiency), nor via op282... So basically either we add a new splstate or we need to avoid shapechanging between two different non-natural forms... True. As you suggested, it should be attached to SLOT_FIST, so it's always available...
×
×
  • Create New...