Jump to content


  • Content Count

  • Joined

  • Last visited

About kjeron

Recent Profile Visitors

2,349 profile views
  1. kjeron

    obtaining and using STRREFs

    Weidu has an action for that: GET_STRREF kitname words
  2. kjeron

    v32, innate sequencers and contingencies

    I'm sure you could setup the UI to allow sequencers/contingencies to store any known spell, without affecting memorized spell counts.
  3. kjeron

    Haste opcode clarifications

    Let's go full wall of text (EE's): 0 : Normal Haste - (+1 APR, Rounded Down) - Displays Portrait Icon STATDESC[38|"Haste"] - Maintains STATS[155|IMPROVEDHASTE] to '0'. - Maintains STATS[185|ANIMATION_ONLY_HASTE] to '0'. 1 : Imporved Haste - (Double APR) - Displays Portrait Icon STATDESC[110|"Improved Haste"] - Maintains STATS[155|IMPROVEDHASTE] to '1'. - Maintains STATS[185|ANIMATION_ONLY_HASTE] to '0'. 2 : Weak Haste - (APR Rounded up) - Displays Portrait Icon STATDESC[38|"Haste"] - Maintains STATS[155|IMPROVEDHASTE] to '0'. - Maintains STATS[185|ANIMATION_ONLY_HASTE] to '1'. (All) Maintains [STATE_HASTED] on the target: - Every active source of [STATE_HASTED] is counted against every active source of [STATE_SLOWED], with the higher of the two determining which state is functional, or neither if they are tied. -- Haste Sources: Base State, Opcode:16 (Haste), Opcode:317 (Haste Alternate). -- Slow Sources: Base State, Opcode 40 (Slow), Opcode 78*10 (Disease Slow), Opcode 78*13 (Disease Contagion). - If STATS[155|IMPROVEDHASTE] is non-zero, effective APR is doubled, to a maximum of 10. - Else, if STATS[185|ANIMATION_ONLY_HASTE] is non-zero, effective APR is rounded up, to a maximum of 5. - Else, effective APR is increased by 1, then rounded down, to a maximum of 6. - Doubles the creatures movement rate. - Increases the creatures animation speed and the animation speed of Opcode[#140] effects. - Reduces the creatures Round timer used by Attacks, Modal abilities and "Auto-Pause: End of Round" in half(6s->3s). - Attacks per Round still cycle over a 2-Round period, but the displayed value reflects Attacks Per (6 seconds). - Aura-Cleansing timer remains unchanged(6s). - The frequency timer for the following opcodes is reduced to **%, (if greater than 1s): - Opcode[#25], Poison - Opcode[#78], Disease - Opcode[#98], Regeneration - Opcode[#232], Spell: Cast on Condition - Opcode[#272], Use EFF File (at Frequency) ** : It's not consistent, but mostly around 30%, may be rounding issues with the timer: Disease 1 per 2 seconds for 24 seconds deals 33 damage (36%) Disease 1 per 3 seconds for 24 seconds deals 22 damage (36%) Disease 1 per 4 seconds for 24 seconds deals 20 damage (30%) Disease 1 per 6 seconds for 36 seconds deals 20 damage (30%) Disease 1 per 8 seconds for 24 seconds deals 10 damage (30%) Disease 1 per 8 seconds for 32 seconds deals 15 to 19 damage (26%) to (21%) Disease 1 per 10 seconds for 30 seconds deals 10 damage (30%) Disease 1 per 12 seconds for 24 seconds deals 5 to 8 damage (40%) to (25%)
  4. kjeron

    How to prevent exploding death via spell effect?

    It depends on the death type. Chunked Death and Destruction Death result in animation [0x230][EXPLODING_TORSO], and set all color indexes to 70. The explosion is a mix of all the EXPLODING_PART animations, in relatively bipedal quantities. I don't know exactly what generates the "explosion", but it is similar to that created by projectiles using a "Fragments Aniamtion", like "TRAPSNAR.PRO". Change it to "EXPLODING_TORSO" and you will see a similar explosion (just with more body parts and no variety). [0x200][EXPLODING_ARM], [0x210][EXPLODING_HEAD], [0x220][EXPLODING_FOOT], [0x230][EXPLODING_TORSO], and [0x240][EXPLODING_LEG] all use the various cycles of "SPBLOOD.BAM". Arm is cycle 1, head is cycle 2, leg is cycle 3, torso is cycle 4, leg is cycle 5. The "explosion" is rather unique, as it actually causes the creature to "jump" in place, which can be seen if you reset the animation during the explosion. Exploding Stone and Exploding Frozen Death result in animation [0x100][CHUNKS], and set all color indexes to 72(stone) or 71(ice). It uses "SPCHUNKS.BAM"
  5. Who are you trying to detect as Charmed? Those charmed by you and your allies end up with EA values: 5:[CONTROLLED] (Dire/Domination/Turning) 7:[REALLYCHARMED] (Charm) Those charmed by enemies end up with EA values: 254:[EVILBYCHARM] (Charm) 255:[ENEMY] (Dire/Domination/Turning) Party members charmed by allies do not change EA value, they remain 2:[PC].
  6. kjeron

    splprot.2da "Area Type" + opcode #324/318

    No, you're wrong. It perfectly works on EE v2.5+. Simply add the following row NOTAREA 0x106 -1 9 to SPLPROT.2da and you're done (courtesy of @Argent77) Good to see it's been fixed.
  7. kjeron

    splprot.2da "Area Type" + opcode #324/318

    You would have to add your own entry to SPLPROT.2da, but the AREATYPE check doesn't work. It always returns true.
  8. kjeron

    opcode 333

    This seems to diverge from most instances in the engine, where if you set the "cast at level" field to 0 it uses your caster level. The IESDP seems to suggest that this opcode could not be used with effects that involve caster level. Is that correct? If the subspell is to scale, you have to specify every level: Give the spell with opcode 333 50 ability headers, minlev 1-50, with opcode 333 in every header, casting at minlev. It needs to store the casting level this way because the "Caster" of the subspell can end up being the target of opcode 333, rather than the caster of opcode 333. This mostly occurs if you save/reload while the effect is active.
  9. CHARGEN applies the CLAB after spell selection, level-up applies the CLAB before spell selection. It's the same issue other divine casters face with removing spells at level-up. The CLAB would have to remove them both instantly and on a delay, to remove the spells for both situations. Each kit utilizing it would need a combination of 5 spells per level that they either cannot or must have, so the UI has enough to select at every level. These spells would have to be available for selection to all shamans, but adding dummy spells for this would likely cause conflict with mods that add Priest spells, since there are only 50 slots per level. The mod would now have to worry about compatibility issues with UI mods - would probably be best if a separate mod implements the UI changes, and others just tie-in when it's been installed. This method would otherwise work. The same section of UI.menu is used by Shamans and Sorcerers for spell selection, so Sorcerers could use this as well. Any shaman/sorcerer using it would then provide a way to select spells each level (likely though dialog menus).
  10. kjeron

    help me figure out how to structure this spell

    Which casting mode are each of the opcode 146/148 effects using? Is "Spell1" being cast manually or by another spell/opcode? This should work: Spell1 has: - header target = any location - projectile "None - 1" - effect 1 = opcode 146, cast spell, target = self, param2=1, resource = SubspellA - effect 2 = opcode 318, target = self, condition = not enough hp, resource = Spell1 - effect 3 = opcode 148, cast spell at point, target = self, param2=(0 or 1), resource = SubspellB SubspellA has - projectile "None - 1" - target = self, 6 points damage, reduce max hp by 6 SubspellB has: - header target = irrelevant - projectile = Produce Fire projectile (affects anyone in ~15' diameter) - effect 1 = fire damage, target = preset target
  11. It's worked in the engine ever since (v2.0 for BGEE, v1.3 for BG2EE), the relevant file (splprot.2da) just wasn't included by default (just had to import it from IWDEE). More importantly, the Spellstate assigned to Thieves in IWDEE serves no function (in any game) - the "Evasion check" has hardcoded conditions (Class/Level = Thief/7+, if your "Helpless"). "Launcher" abilities cannot be detected, "Ranged" self-made-ammo abilities (Gesen shortbow/Firetooth xbow) can be detected. This behavior is similar to opcodes 301,341,361,362 - where the "Launcher" ability type (Special=4) doesn't function because they cannot be detected.
  12. kjeron

    Protection Against Dispel Magic

    Power level 0 effects cannot be removed with opcodes 229/230.
  13. As a permanent effect, it's unavoidable. Putting it in the resurrection spell as instant/zero-duration will avoid the icon though.
  14. You also remove any other temporary weapon they may have, since resurrection spells don't have checks against targeting living creatures. (Not that the game doesn't already have such problems - casting Resurrection on a living target will remove most temporary abilities). You can also use Sequencers to force a creature to cast a spell on themselves through another spell: Opcode 177: Target (Preset) Resource (EFF, Opcode 256: Resource (Spell), Parent Resource (ParSpell)) Opcode 258: Target (Preset), Resource (ParSpell) (Spell) should have range of 32767(max). (Spell) will be cast by the target, on themselves, at their caster level. (If the spell forcing the cast is AoE, use Opcode 260 instead of 258, and all effects in (Spell) need to target (Self).) The Opcode 177 effect can be in the Resurrection ability, or just permanently (timing=9) attached to each creature that needs it. The opcode 258/260 effect would go in each Resurrection ability, after the opcode 177 if present.
  15. kjeron

    SR Revised V1.1.0 (2019 February 5th)

    When successful, the saving throw on opcode 333 both blocks the spell it would apply, and removes the opcode 333 effect, preventing further triggers. Beltyn's Burning Blood and Shroud of Flame function this way (both IWDEE).