Jump to content


  • Posts

  • Joined

  • Last visited

Everything posted by kjeron

  1. Setting the value to 2 has the same inverted success/failure issue, it just replaces "luck" with (Constitution / 2 - 5).
  2. RET makes no distinction between INT/STRING, whichever that variables was last set to before the function ends is what it will return as. No, you can't set a string in a function and have it persist afterwards without using RET, no different from an integer.
  3. If you want to break only one or the other, you can always add op160 or op136 as a global effect to the spell. It's possibly more reliable than setting BIT9: unlike BIT9, it will still break them when cast through a sequencer/contingency. unlike BIT9, it will still break them when the spell is cast instantly through op146.
  4. Prior to v2.6, item abilities still broke invisibility when targeting others. Correct
  5. BIT10 (Hostile) breaks both sanctuary and invisibility, triggers "AttackedBy()", and allows it to be blocked by spell-level immunity when self-targeted. BIT9 (Break Sanc/Invis) breaks both sanctuary and invisibility. No spell or item breaks sanctuary or invisibility without either flag anymore, which was the whole point, to remove the previously hard-coded restrictions. Damage still triggers "AttackedBy()", but has otherwise never carried the other effects of BIT10 "Hostile" by itself. Magic Missile has never been and is still not considered "Hostile" as far as the game is concerned. You could always cast it without breaking sanc/invis, they were only ever broken when casting it because you happened to targeted someone else - no different that casting Cure Light Wounds on them. Items that cast spells instantly function no differently than spells that cast other spells instantly. Instant casting generally ignores the subspells header flags. Items/spells that cast spells non-instantly will generally respect those two flags in the spell header: scrolls in the vanilla game don't have either set and break depending on the spell they cast.
  6. There are 4 sizes: L: Human (Male), Halforc (Male) N: Human (Female), Halforc (Female) M: Elf/Halfelf (same animation) S: Dwarf, Gnome, Halfling It's not just about height though. Elves have the skinniest body, which the wing animation accounts for, leaving gaps to avoid overlapping it. The other animations also have various subtle differences, for example, the human male "head turn" proceeds in a different manner than elves, resulting in the wings turning to the left while the body turns to the right.
  7. Even filtered through op177, the effect can still easily become permanent as per timing mode 1.
  8. ACTION_PHP_EACH does not evaluate the array name, so the "bar" array is never considered. You would need to use: ACTION_PHP_EACH ~%foo%~ AS k => v BEGIN
  9. Unrecoverable as in there is no record of it's previous value. You can still set it to anything you want afterwards.
  10. Summoning does indeed have some weird internal mechanisms. A summoned creature is also unable to Turn Undead, yet they may still Turn Paladins.
  11. Follow the trail: Spell: Bolt of Glory (SPPR612.SPL) SPPR612.SPL | Projectile: 359 | Bolt_of_Glory (BGLRY.PRO) BGLRY.PRO | Smoke: 0x1010 | BOLT_OF_GLORY 0101.INI | ResRef: BGLRYU
  12. DECOMPILE_AND_PATCH indents the decompiled text, similar to how near infinity displays it, so it won't be the beginning of the line. This is the first block of SHOUT.BCS during a DECOMPILE_AND_PATCH: IF OR(2) StateCheck(Myself,STATE_STONE_DEATH) StateCheck(Myself,STATE_FROZEN_DEATH) THEN RESPONSE #100 SmallWait(5) END
  13. The multikit spell (QD_MCT01.SPL) applies immunity to itself through a separate subspell, preventing it from running a second time (it runs the first time on any trueclass character, since both trueclass and multikits share the default clab). Also, because the multikit spell applies the individual kit abilities through separate subspells, the kit-scrubber can't remove any kit abilities of any previous multikit (I think only important it you try to change out of a multikit). The EFFs use "cast spell", and that resource's effects are not touched by the kit-scrubber. The first-level multikit spell (QD_MCT01.SPL) could probably include preceding op321 for each such subspell it applies and op172 each ability it grants to avoid this, but not tested.
  14. If it's being cast by the disease opcode, then no, the target is not considered the source for "Ignore Center", the original caster is. You would need to save and reload between triggers for it then default to the diseased. For the same reason, Shroud of Flame should use "Ignore Center", since its subspell is cast through op333 and delayed, both so that the initial target is except from the aoe, and to enforce the MR check of the subspells effects. Only the first, instantaneous trigger of op333 will use the original caster for "Ignore Center", all further triggers (or all triggers if it uses a delayed timing mode) will use the target instead. Unrelated: Consider adding MISSILE.IDS entries for all added projectiles.
  15. You need to move the "SmallWait(3)" down a line, after the "DisplayString()", but still before the "Continue()". At it's current location, the "DisplayString()" from the block above, and the SetToken from the block below, occur simultaneously. When this occurs, the new token takes priority, regardless of the order of the actions. The following will set the token to "Bullet" before the string display occurs: IF True() THEN RESPONSE #100 DisplayString(LastSummonerOf,71626) // <ITEM-NAME>.... SetToken("ITEM-NAME",6633) // Bullet DestroySelf() END As will this: IF True() THEN RESPONSE #100 DisplayString(LastSummonerOf,71626) // <ITEM-NAME>... Continue() END IF True() THEN RESPONSE #100 SetToken("ITEM-NAME",6633) // Bullet DestroySelf() END
  16. It's 32767, not (-1|65535), but you are correct that it is actually an autohit, no different than attacking a helpless target. @Guest From the in-game description, "bypass armor" simulates touch attacks - bypassing AC from armor and shields, but not from other sources. IWD2 is the only game coded with such AC bonuses, as it's Armor Class opcode is setup differently.
  17. The default Green Dragon Breath in SoD deals only 6d6 (save/half) at level 1 and 10d6(save/half) starting at level 14, which allows the two dragons to deal different damage amounts. The default GDB in BG2 deals 24d6 (save/half). It's the same resource, so it's possible something is overwriting it incorrectly.
  18. It lasts until otherwise removed, or until you save&reload, as it does everywhere else. Only Timing Mode 2 has special functionality when used as a global effect on items.
  19. Otiluke's exclusions are correct, for IWD, see: https://forums.beamdog.com/discussion/comment/1112924/#Comment_1112924 Though if importing the spells into BG, exclusion flags would have to be updated anyway, as they differ between games.
  20. Concentration related thread: https://forums.beamdog.com/discussion/comment/1048727/#Comment_1048727 and following comment by Bubb.
  21. Abjuration is the PnP-accurate school for Cause Disease, as the reversed form of Cure Disease.
  22. Marked Objects (NearestEnemyOf) and Object Specifiers ([ANYONE]) are limited to the lesser of the creature's current visual range and the default visual range. Static Objects (Player1, "imoen") are only limited to the creature's current visual range. The creature's EA is irrelevant here.
  23. How about SELECT_ACTION4 (and 5-7), same label and slot in all games. In BG2EE their slots represent ordering an action. In BGEE/IWDEE their slots represent selecting a character.
  24. Stealth and Infravision are both affected by the day/night cycle (at least in areas that have such), as they are both affected by the area's lightmap.
  25. Not sure what you mean, only one sound slot is currently (v2.6) omitted from CHARSND.2d - slot #0. Every other slot is listed.
  • Create New...