Jump to content

kjeron

Members
  • Posts

    485
  • Joined

  • Last visited

Everything posted by kjeron

  1. 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.
  2. A creature naturally loses 2 morale whenever: its health drops below 50% its health drops below 25% an ally dies (pc's likely detect only party members, while everyone else likely uses SPECIFICS group) ? ? ? But only if it is not currently suffering from morale failure. A poison/regen combo properly staggered (not hitting at the same time) can cause continuous morale loss: With 40 MaxHP: 20HP -> 19HP (-2 morale) -> 20HP -> 19HP (-2 morale) -> 20HP -> 19HP (-2 morale) -> 20HP -> 19HP (-2 morale) etc... Morale loss doesn't have lower bounds checking (or likely upper bounds checking). 1 - 2 = 25 (like the old rod of terror), but normally only creature's with a morale break of 0 (immune) would notice it, since anything else would already have morale failure. However, manual changes to morale (with op23) can cause the same issue to any creature since it still applies during morale failure. Morale Recovery is in seconds. There is no way to direct way to detect morale failure, nor any way to detect the type of morale failure (panic, berserk, run away), nor do they have any direct relation to the similar opcodes (3, 4, 24, 245, 246, 247) or STATEs. Morale Failure disables a creature's scripts, which is why it could not detect it's morale, or anything for that matter. Applying op23 (BG1 mode) with timing mode 1 (and possibly others) applies the amount for each instance already on the creature, including itself. Your first applies 2x (itself and itself). (-6) Your second applies 3x (itself, itself, and the first one). (-9, total of -15) Your fourth applies 4x (itself, itself, the second one, and the first one). (-12, total of -27) Always use timing mode 0 (no duration) to avoid this (with BG1 mode).
  3. Haste/Slow do not impose a direct 2x / 0.5x on frequency effects (25/78/98/272). The last two posts in this thread explain it nicely for haste. x/2-3 seconds triggers 3x times x/4-7 seconds triggers 4x times x/8-15 seconds triggers 5x times etc... Final multiplier for Haste = 2+RoundDown(Log2 (Original Frequency)) And each trigger happens at half the frequency from the previous, then repeats from the original frequency: So an 8 second frequency would trigger at: 4, 6, 7, 7.5, 8, 12, 14, 15, 15.5, 16, 20, 22, 21, 21.5, 22, (+4, +2, +1, +0.5, +0.5) Slow likely has a similar mechanic, to the point that sometimes it makes no difference.
  4. I do think that's intended...from their PnP entry:
  5. Like many hardcoded entries, it is omitted from the label file, but it does exist. You cannot use value "0" for custom EA/GENERAL/CLASS/RACE/ALIGNMENT/GENDER values. "0" is hardcoded as "Any", as in: See([0.0.0.0.0.0]) Will return true for any visible creature. Now if there is a reason to specifically target creatures with "NO_CLASS" or "NO_RACE", then assigning 255 makes sense, otherwise it doesn't matter whether they have 0 or 255. AFAIK they are not referenced in any scripts/dialogues, so if anything the "NO_CLASS" and "NO_RACE" entries should be removed to free up space, and their creatures remapped to "0".
  6. Whirlwind won't function correctly regardless of what's done to it right now. #cofear, spin132, spin139, and spin161 have nothing that stacks, which leads me to believe op206 is there to prevent a creature from being affected too often (for balance reasons). Writhing Fog is the same issue in BG1/2, no clue why Beamdog implemented it that way, as it came with the Shaman class, not the original game. Produce Fire is setup that way so that any creature entering the area over the next round takes the damage. Changing it to a single repetition may as well remove the frequency entirely. Walls (rectangular AoEs) automatically trigger every tick, their frequency only determines the overall duration. While you can make them respect their frequency, it would make far too easy for creatures to safely run through them between triggers.
  7. That doesn't sound like a paralysis effect at all though. Should probably be treated same as the Bigby's spells.
  8. It's a relatively common, unused spell setup. Djinni/Genie have it as well, and most of them are not scripted to cast any.
  9. It's because those two opcodes only remove a single spell resource per use, and the main/sub spells will inevitably have different filenames. AFAIK not a base game issue.
  10. Power on the mainspell for reflection. Power on the subspell for opcodes 220/221. I would also include opcodes 229/230, except using separate subspells already breaks them.
  11. Sword of Balduran however does have such an inconsistency. It has a base +1 Enchantment, it should be 0. The only enchantment should be vs. Lycanthropes. If it were possible, it's [Magical, Silver, Cold-Iron] attributes should also ONLY apply vs. Lycanthropes. It's not magical, just gold. The description ( "This ornate but poorly balanced weapon was found within the wreck of Balduran's ship. Gold weapons are not known to be useful in combat..." ) implies it to be some manner of ceremonial weapon, only useful because it's made of gold ( "legends say that only weapons forged of gold can harm such dread creatures as the loup garou." ).
  12. System-pausing is broken in multiplayer (such as when creating a Sequencer/Contingency), even when pausing is allowed in MP rules. I don't really know why. The simplest way to solve this, is to copy one of the normal sequencer activation subspells (such as SPWI420D.SPL) that would accompany a sequencer, that are automatically granted when you create the sequencer. Rename it (keep the "D" suffix) and the activation resource for your sequencer, and switch the ability target type to "7", so it cannot be interrupted or target others. In multiplayer, you would have to manually activate the sequencer afterwards, as with normal sequencers. Then add an effect to remove that spell to each of the spells that could be stored in that sequencer (this is to automatically remove that spell in Single-player, where it would just clutter up the interface).
  13. Appears to be something with the Ambient sound overriding footstep sounds.
  14. The issue isn't about when you are immune, but when the original caster should be immune. If those effects don't get reflected, then they will not protect the original caster when they should.
  15. Increment values don't update until after the effect stack has cleared, likely until the following tick. Set Value/% update immediately, but ignore any pre-existing increment bonuses until the following tick. The 6 Saving Throw modifier opcodes have an additional mode, "Increment Instantly", which do just that, but it's a semi-recent addition and AFAIK no other opcode has such. For damage resistance, you are better off setting the value to 0, as any negative increment could result in negative resistance.
  16. Lore-wise, a Green Slime's attack should be considered a Disease, removed with Cure Disease, not Cure Poison. I know there's a lot off overlap in-game between the two for immunity, but curing/removal has a sufficient distinction to use the correct one.
  17. I posted a cleaner solution (to a similar problem) here for Mislead. No spellstate needed.
  18. But then it later lists "THAC0 limits" for each class group, with those limits being the same as their level 20 values (Wa:1, P:8, R:11, Wi:14). And later still outright states, at least for Warriors: "Although their THAC0 ceases to improve once they reach level 20, ... (hits points and proficiencies) ... There is no rounding. Priests do not get [1 -> 0 -> 1], [1 -> 1 -> 0], or [0 -> 1 -> 1]. They get [2 -> 0 -> 0]. Warriors progress every level. Rogues progress every other/odd level. Priests progress every 3rd level (by 2). Wizards progress every 3rd level (by 1). The Bioware devs gave every class their next would-be point of progression after level 20. For Warriors and Rogues that is level 21, for Priests and Wizards it is level 22.
  19. No, it's the newly added (arbitrary) header descriptions that are incorrect for the alignment rows, not the checks. Row 33 = (NOT BIT1 = Not NEUTRAL or EVIL) = Alignment=GOOD Row 34 = (HAS BIT1 = Is NEUTRAL or EVIL) = Alignment=NOTGOOD Row 35 = (NOT BIT0 = Not GOOD or EVIL) = Alignment=...NEUTRAL Row 36 = (HAS BIT0 = Is GOOD or EVIL) = Alignment=...NOTNEUTRAL Row 37 = EVIL Row 38 = NOTEVIL Row 59 = (NOT BIT5 = Not CHAOTIC or NEUTRAL) = Alignment=LAWFUL Row 60 = (HAS BIT5 = Is CHAOTIC or NEUTRAL) = Alignment=NOTLAWFUL Row 61 = CHAOTIC Row 62 = NOTCHAOTIC These are how they are used, how they were listed before those descriptions were added, and their listing from IWD1/IWD2. i.e Unholy Blight doesn't affect (324) row 34 (NOTGOOD). (only affects GOOD creatures)
  20. SPIN823 normally gives SPIN822 back after a 180s delay. This way SPIN822 is blocked for 180s rather than removed and given back later, as it seems like that process got interrupted on occasion (people complaining about permanently losing the ability). No arguments. As an equipped effect that would heal them every time you load the game with it active. It patches all non-polymorph spells/items (Flame Blade, MMM, Shillelagh, etc...) that use opcode 111, to ensure things like Slayer damage get removed. Contingency, Sequencer, or Item activation, yes. Non-polymorph Weapon-Creation spells cast SPINHUMW, which casts SPINHUMR while blocking it's first EFF (op135), but not the rest. It has to block the op135 EFF, because otherwise op135 would remove the Magical Weapon that is being created by the spell. If this wasn't working, your new Magical Weapon would disappear immediately. The new magical weapon will terminate the polymorph on it's own, as it replaces the polymorph weapon. Slayer Change (SPIN823) casts SPINHUMS, which casts SPINHUMR while blocking it's second EFF (op312->SPIN823), as again it would remove all the effects of SPIN823 that are about to be applied. SPIN823 has it's own leading op321 to prevent stacking itself.
  21. It was code I already had, I've been ripping unrelated bits of code out (while trying not to break it). I don't use AUTO_EVAL_STRINGS, it's poorly documented, not universal, and doesn't eliminate EVAL entirely. Only some variables are affected by it, and only for a single level of EVAL. I never got around to looking up/making the correct string since it wasn't working. Just more sloppy code removal. The first became redundant, the second should skip.
  22. SPINHUM doesn't exist in every game. squirrel=1, $x(15), $X(12), $x(7) -> those are old values didn't get updated when I removed unrelated code, your corrections are accurate. The untyped/unknown damage type is to avoid screwing around with the player's damage resistance, using something they cannot prevent. IWDEE heal: Only reason for a variable to be in the function definition is if you need it to have a default value. Those arrays are set by this line: SPRINT $ $x(2)(~%resource%~ ~%idx%~) $item(~~) Only the %idx% part of it is unused.
  23. Partially. Applying the removal and then new effect at the same time (timing) is not sufficient, some delay is necessary. $res(~~) and $SOURCE(RES) are just shortcuts to avoid requiring an EVAL. Functions will automatically evaluate an array construct for a string variable. under a functions STR_VAR: $res(~~) == EVAL ~%res_%~, $SOURCE(RES) == EVAL ~%SOURCE_RES%~ I don't know whether the size issue was fixed or not. The references to %idx% are for unrelated code, just forgot to prune all of them.
  24. @Luke Timing=4,Duration=0 is not the same as Timing=0/1,Duration=0. The latter is instant, the former is not. The first op146 needs to be instant (not timing=4) - it removes any old polymorph. resource = SPIN823 (or whatever spell will contain the slayers delayed damage and save disable effects.) Cloak of the sewers has no overall expiration, so no. Making it impossible to remove the cloak while using one of it's polymorphs isn't practical, nor would making it's polymorphs revert when you unequipped it. Like all activated magical items, once it's activated you are free to discard the item. Nothing goes in 7eyes.2da. parameter2 would be "-1". Op335 has a similar issue as op135 with regards to applying the effect while another is already active: If you apply op335 while the specified spellstate is already set (either by op328 or another op335), then the new op335 will NOT be applied. A timing=4,Duration=0 delay between removing the old (polymorph/spellstate) and applying the new will bypass the issue for both opcodes. The op326/101 pair would go on spells like Flame Blade: op101(135) -> op326(SPINHUM) -> op111(FBLADE) However I've done it slightly differently now:
  25. The opcodes involved that grant the "vs. Creature Type" bonuses do not stack numerically (be it AC/Saves(219), THAC0(178), or damage(179)).
×
×
  • Create New...