Jump to content

jmerry

Modders
  • Posts

    1,296
  • Joined

  • Last visited

Everything posted by jmerry

  1. Honestly, I'm fine with the mechanics of Goodberry - creating berries and consuming them is fine. The problem is that the spell is hilariously undertuned - half the healing of a Cure Light Wounds, but at a higher spell level. Just tweak what the berries do - say, a non-stacking slow regeneration that's good for about five HP per berry if you let it run its course. That would give the spell a niche, with a high total healing amount but only if you have the time. There is a "food" category of items in the game; it's used for things like those healing Tree of Life nuts. And the silver apples in Dorn's ToB quest. And ... I don't think there are any others, at least in the BG series. Maybe something in SoD which I don't have. They're not really mechanically different from potions, anyway. Bottles of wine exist, but you can't drink them; they're just miscellaneous items that sit in your inventory and can be used as quest tokens or sold.
  2. Should be fine. It's coded to the usual tweak mod standard, altering existing items. In those cases I actually checked, it works with SCS in either order.
  3. BGEE already uses the comma for Emotion; it's only BG2EE that has the colon. Even more reason to change it.
  4. Well, how about an actual bug: how to get Mulahey stuttering. The way to trigger it is very simple: deal more than half his health (24-45) in damage before he gets a chance to speak to you. A sufficiently strong backstab can do this pretty reliably. Then bluff him with the "Tazok is ... is most displeased with you" line. He will then talk to you repeatedly without going hostile. Attacking him won't interrupt this; only opening the chest or killing him ends it. The logic involved is mostly in MULAHEY.BCS and MULAHE.DLG. Mulahey speaks to you under four conditions, in order of priority: "CDMulahey" (local to the area) is 0. His HP are under half and "TalkedToMulahey" (global) is 0. He's attacked while neutral and "CDMulahey" is 1 or 4. This one also increments "CDMulahey" by 1. He's neutral, and either he's attacked or "CDMulahey" is 2 or 5. Then there's his dialogue. He has seven starting points, in order of priority: Charmed: "I am your humble servant..." No variables changed. "CDMulahey" is 0: "Tazok must have dispatched you...". You can respond by bluffing him, or by starting a fight. The former sets "CDMulahey" to 1 and turns him neutral, while the latter sets it to 3, turns him hostile, and summons minions. "CDMulahey" is 2: "Fools, you'll never have the chance to take anything! ..." Sets "CDMulahey" to 3, turns him hostile, and summons minions. "CDMulahey" is 5: "I'll have your skulls for coming here! ..." Sets "CDMulahey" to 6, turns him hostile, and summons minions. "CDMulahey" is 1: "Tazok is unfair. ..." Sets "CDMulahey" to 1 and turns him neutral. "CDMulahey" is 4: "I thank thee for thy mercy! ..." Sets "CDMulahey" to 4 and turns him neutral. His HP are under half: "I yield, I yield to thee! ..." You can respond by accepting or refusing his surrender. The former sets "CDMulahey" to 4 and turns him neutral, the latter sets "CDMulahey" to 6 and turns him hostile. Either way, it sets "TalkedToMulahey" to 1. The last bit of the logic is in the chest script. If anyone opens it and "CDMulahey" is 1 or 4, the variable increments by 1. So, what's going on with this stutter? If you knock him down under half health immediately, he follows up with his starting lines. Then after that, if you bluff him, CDMulahey is 1 and he's under half HP - which is a state the script never planned for. The latter condition forces him to talk to you, but the former means that he gives his "Tazok is unfair" line instead of "I yield". So he talks, no variables update, and he talks again repeatedly. Attacking him further at this point won't change that the half-health dialogue condition is the highest priority. Actually, now that I look at it again, you should be able to bring him down to below half health with a second hit after the initial bluff. I think the cleanest fix is to add a condition to the half-health dialogue so he only forces it if "CDMulahey" is 3. It's still a little weird; if you drop him to half-health before the first phase of the fight properly begins, he'll start that fight and then immediately surrender. But you don't get the stutter or the completely free win.
  5. If it is indeed looping, then it's a bug. Clearly, the script was written with the belief that the actions would cause the NPCs to not exist anymore, and thus not trigger again. And then that didn't quite work, so they added "Continue" to the first two blocks as a patch... Yeah, changing that to an InMyArea() check so that these blocks only remove their NPCs once looks best.
  6. Imoen actually still uses her level 2 creature file as well; you already get the short sword if you delay the initial meeting. Another weird bit with her equipment - her wand of Magic Missiles is WAND12 rather than the standard WAND03. Same with Mordaine from the combat testing party in Candlekeep. There is a mechanical difference; WAND12 lacks the effect that allows Shield to block it.
  7. More from BG2EE: - Detect Invisibility via Peridan should target self, not a point. - Detect Invisibility via Jan's goggles should target self, not a point. (Albruin does DI correctly)
  8. A small error, notable for it not being obvious (at least to me) what the correct version is. From the sahuagin city in BG2: #4413 (English): Call forth the Alguiliians! We are overrun! (text displayed by a creature's action) #4408 (English): Anguiliian (the name of the monster actually summoned). #4412: Anguiliian (a duplicate of the name). There's one other reference to the creature, in #46299: Your kind has many names for us, I believe. We are called the sea devils and our eel-kin the anguiliians, although I believe the merman word is most prevalent: sahuagin... OK, based on that, I think "Anguiliian" is the correct spelling, and #4413 is the text that needs to be corrected. But someone with a relevant sourcebook should ckeck.
  9. Temple spells use the recipient's caster level, because of an engine quirk . Which means that they usually dispel at level 1 and have very little chance. Only targeting an actual priest is likely to dispel anything. Dispel Magic from another character can work, subject to the caster level check - but those mages have pretty high levels (9 and 11 with SCS). Don't expect a good chance. If you want a guaranteed dispel with no level check, there are two options: a potion of magic blocking or an arrow of dispelling. The latter is a bit risky, of course. My tweak mod includes a component that makes temple dispels into a single-target guaranteed dispel, which would help with this.
  10. The creature's "Animation" field is an integer referencing ANIMATE_IDS. Just change the number there to the number of the animation you want. Using a tool such as Near Infinity here is strongly recommended, of course. And NI, when you edit that field, does the lookup for you.
  11. You can do this directly in the item. Look up the Cloak of the Stars for how it works. It does have some issues if you put the item in a container once you've created it; the condition for getting rid of it isn't tested until you pull it out.
  12. If the shared natural form ability removes the Slayer Form damage, then it also removes the ability that restores SPIN822 SLAYER_START - they're both delayed effects from SPIN823 SLAYER_CHANGE_TWO. And that really breaks things. Unless you offload some things to a new subspell, adding a new layer of complication. Honestly, it sounds like you have a good idea and you're trying to push it a lot farther than it needs to go. Despite the proliferation of Natural Form abilities, that part of the system mostly works already; there are just a few abilities that don't currently get the standard 172 package that need it. The opcode 335 idea is a neat one, though. I definitely wouldn't have thought of that.
  13. Copying one over from another thread: demon/devil recognition and Dorn's Abyssal Blade. The blade uses two layers of opcode 177 effects to detect what a "demon" or "devil" is. The first layer checks for race DEMONIC, the second checks for class TANARI (demons) or IMP (devils). The problem with this is that the classes are not applied consistently; only ToB devils use the IMP class. A standard summoned pit fiend is lawful evil but has class TANARI, for example. I propose switching to alignment detection (chaotic evil or lawful evil) for that second layer (ohdsw2hc.EFF and ohdsw2hb.EFF). Then there's Azothet and Ur-Gothoz. They're pretty clearly supposed to be one from each side of the Blood War. But you look at their stats - both Lawful Evil, both class TANARI. Based on appearances, I'll say Azothet is supposed to be the demon here.
  14. Yes and no. Some of them can be condensed, some of them shouldn't. In particular, Polymorph Self and Shapechange come with forced transformations back (SPWI489, SPIN150) when the duration expires. Those should be their own spells, with a spellstate block so they only apply if you're in a Polymorph Self/Shapechange form and don't accidentally override a magic weapon spell or a different transformation. Also, in the current model, the voluntary Natural Form abilities for Polymorph Self and Shapechange renew themselves when you use them; I don't see the need for that, but if we keep it then those abilities (SPWI490, SPIN151) need to be separate as well. On the other hand, we don't really need to be using all of SPIN122, SPIN123, SPIN124, and SPINHUM (druid natural form abilities). The voluntary Slayer Change already blocks other polymorph/shapechanges (most of them, anyway), and there is a good mechanical reason. In particular, transforming out of that form - whether voluntarily or involuntarily - doesn't clear the delayed magic damage effects unless done explicitly. Without that immunity, a Polymorph Other could take you from slayer form to squirrel form, take away "End Slayer Change", and then you die a few rounds later to the delayed damage effects. Just adding a 321 effect for SPIN823 to other shapeshifts ... now you've permanently removed the ability to turn into the Slayer at all, since restoring that was also one of the delayed effects. Much simpler to just keep the current model in which other effects that would take you out of the form don't work. In flavor terms, the Slayer form channels divine essence, and that's strong enough to override mortal shapeshifting magic. And since the polymorphs we'd like to block include the likes of WAND09 and one tenth of WIZARD_SPHERE_OF_CHAOS, that needs to switch to a spellstate/324 model instead of a 206 model. And we keep "End Slayer Change" separate from "Shapeshift: Natural Form" even if most of what it does is the same. ... The current model for shapeshift abilities has both voluntary and forced abilities applying a standard list of 172 abilities. Which includes an unnecessary three copies of SPIN160 as well as all the "Natural Form" abilities, and clearly has its origins in the BG2 fixpack. Then there's a 171 ability for the appropriate version of Natural Form, and for the unlimited shifts a 172/171 pair of the current shift. How would the "natural form, then create weapon with delay zero" model for polymorphs work with effects that get a save? Never mind, I ran a quick test - looks like they get the same save as the spell's instant effects. At least, as long as pause shenanigans don't get involved. So that's not going to break on the hostile polymorphs.
  15. The IWD spell component changes the elemental summoning spells, to remove that "battle for control" from the vanilla BG series. So, of course, it has to update those descriptions. Sounds like that went wrong, and it grabbed a different description added by the same component. It certainly looks like the IWD spell component needs substantial fixing for the next version.
  16. Revising that last post: actually, I'm fine with being able to polymorph out of squirrel form. Oh, you turned me into a squirrel? I'll turn into a bear, then. Nullifying it, or a voluntary form, with a spell like Phantom Blade is definitely not OK, though. So: POLYMORPHED is now a spellstate, and it blocks all magic weapon creation spells that aren't polymorphs. HOSTILE_POLYMORPH is not a thing. Slayer form should block all voluntary polymorphs except "End Slayer Change". Since some of these are item abilities rather than actual spells, we probably do need a SLAYER_FORM state to 324-block them.
  17. Protection from Evil is actually two separate effects; the attack roll penalty for evil attackers, and protection from summoned demons (that's a gender, technically). Summoned demons can't attack you even if they're "good", because that part works like a Protection from Undead scroll. The fiend alignments only come into play if you're trying to use something like Holy Smite or Carsomyr or Dorn's Abyssal Blade against them. On that note ... both potential patrons Azothet and Ur-Gothoz are lawful evil. Ur-Gothoz uses a cornugon animation, and Azothet a marilith animation. Kill Ur-Gothoz, and you empower the blade against (lawful) devils. Kill Azothet, and you empower the blade against (chaotic) demons. Shouldn't one of them be on the chaotic side of the Blood War? Probably Azothet, given the animation. Though now that I look closer ... the blade effects are actually based on a class check, not an alignment check. Class "Imp" for the lawful side, class "Tanari" for the chaotic side. And those aren't applied consistently. Generic pit fiends, despite their lawful alignment, get the "Tanari" class. I think only the Watcher's Keep content really bothers to try to make that distinction, and it includes plenty of creatures with the "demonic" race but neither class. Better to just change OHDSW2B.EFF and OHDSW2C.EFF to target alignment (Lawful Evil/Chaotic Evil) instead of class (Imp/Tanari). (It's a multi-stage effect; opcode 177 on the weapon, targeting race DEMONIC only, calling those EFFs which decide which kind of fiend to target, and call another EFF that actually does the damage boost.)
  18. Considering you're looking for the second entry (the song's name) in the row after the last one, no wonder it can't be converted to an integer. All of the indexing for 2da stuff starts at zero.
  19. Yes. For one thing, the 100-song limit is definitely not in effect; there are either 106 or 107 entries in BG2EE's songlist, depending on whether you look at the 2DA or the IDS. I don't know what the actual limit is now, but you can assume it's plenty.
  20. My current thoughts on the structure here ... We'll need at least four spell states for this in BG2EE. HOSTILE_POLYMORPH: Granted by shapeshift weapons for the Slayer form and all involuntary transfomations - mostly squirrels, though there's one rabbit transformation and one wolf transformation. Blocks (via 324) all abilities that polymorph you or create a magic weapon, except for "End Slayer Change". And maybe the voluntary slayer change too; it seems that should be powerful enough magic to override a conventional transformation. SHAPECHANGE: Granted by the weapons for the Polymorph Self forms. The involuntary reversion when Shapechange expires (SPIN150.SPL) only applies if you have this state. POLYMORPH_SELF: Granted by the weapons for the Polymorph Self forms. Split off the weapons for druid bear forms and cloak jelly form, so they don't give false positives. The involuntary reversion when Polymorph Self expires (SPWI489.SPL) only applies if you have this state. POLYMORPH_IMMUNITY: Blocks (via 324) hostile polymorph abilities, replacing the current incomplete list of 206 abilities. It's either that or externalizing things to new subspells and adding those to the 206 list. The drow change issues are trickier. Removing the existing transformation so polymorphs look right during that sequence? Sure; we don't even need a spell state for that. Reapplying it when the transformation ends? That's harder. Transformations can end with an explicit natural form ability, death and resurrection, being dispelled, or simply timing out depending on the variety of transformation. We can't just attach a re-transform to a few spells and make it work. So, my revised thoughts on this one: SPIN825 DROW_CHANGE sets a local variable - let's call it "ActuallyLooksLikeDrow", though that name will have to be shorter to fit properly. All polymorph effects remove the effects of SPIN825 and zero out "ActuallyLooksLikeDrow". Then we put a scripting state on all polymorph weapons - call it POLYMORPHED or something. The scripts (either the underdark area scripts, or the global baldur.bcs) detect the combination - global PlayerLooksLikeDrow = 1, local ActuallyLooksLikeDrow 0, stat POLYMORPHED zero - and reapply SPIN825 to that player. Or actually, a clone of SPIN825 without the visual effects. There might be a slight delay, but your drow looks will come back. When the sequence ends, SPIN830 UNDER_NORM removes all effects from both SPIN825 and the clone. Thoughts, before I start coding this stuff? So far, I have my BG2EE pre-processing fixing a bunch of individual issues (for one not mentioned yet: DECK_MAGICIAN tries to turn you into a rabbit and a squirrel at the same time) and a not-yet-tested version of a function to turn creature stats into item equip effects for polymorph purposes.
  21. And remember, ninja-tos didn't exist in BG1. In BG2, they're lumped in with scimitars as a player-usable proficiency, and scimitars have always been large swords. The developers paid more attention to mechanics than flavor when setting things up, but we definitely shouldn't change things and have a BG2 proficiency that splits between two BG1 proficiencies.
  22. I have absolutely no familiarity with MOF. Searching ... checking readme ... "Monastic Orders is also written with an eye for inter-mod compatibility, but, by design, it is incompatible with any other mod that introduces Monk kits or modifies the Monk class. ... Monks are now considered Thief kits by the engine and make use of a new Fighting and Defensive Style system that allows Monks to switch between various sets of combat bonuses." No. You won't get that compatibility. This is a Monk kit. I would have to fundamentally redesign it in order to fit in with that completely different system. And remember, this kit is a joke. I was willing to put in a few days of work and learn things along the way to get it out, but I'm not going there unless I decide to play with MOF myself. Which I almost certainly won't.
  23. 0xFFFFFFFF. When in doubt, just go with hex code. My answer to battle music was to randomize it; I kind of like the music, but I like it better with more variety.
  24. I know SCS v32/33 had issues with the "Wider selection of random scrolls" component generating invalid items. There were two varieties I observed (English language) in my games: - "Invalid: 9999". Item has this description, and is non-removable if picked up. These items were correctly turned into random scroll token items at mod installation, but failed to resolve properly during gameplay. Leaving the area, or dropping something into the container/ground pile, "rerolls" them into the intended random item. - No description at all. The item simply doesn't exist. If you try to pick it up, it won't be there at all. If you drop something into the container/ground pile, it'll fill the slot that the missing item held. In the area/creature files, these items were NONE; the component failed to turn them into random scroll tokens at install time. I never saw anything like that store issue. Looking at the placement ... the vanilla version of Jayes' store has items SCRL7X (Conjure Fire Elemental), SCRL7Y (Conjure Earth Elemental), SCRL7Z (Conjure Air Elemental), and SCRL8A (Carrion Summons) in order. Clearly, the invalid item you're seeing is inserted by a mod rather than an existing item being transformed. The random scrolls component does not alter stores at all. The dispelling arrows component does not alter Jayes' store, because Perter (elsewhere in Waukeen's Promenade) and the Weapon Merchant in Neera's ToB quest are the only merchants in the BG2EE campaign that sell dispelling arrows in the first place. It must be something else. Also, random scroll invalid items were specifically called out as fixed in SCS v34. I suspect that the bad item in your picture is actually coming from the Icewind Dale spell component; there's an arcane spell that the component tries to insert into the store, but something broke. I tried to look closer in the copy of SCS v33 I have lying around ... if I'm reading the component right, that should insert a spell (Monster Summoning 4, visible in your shot) after Wyvern Call and another (Summon Shadow) after Carrion Summons, but nothing between those two. Maybe the v34 update added "Conjure Water Elemental", and that's what broke?
  25. Don't forget all the other ways to turn people into squirrels (bolts, wands, wild surges, etc), not all of which are treated the same. They all do the same 3 strength thing, but the bolt polymorph forgets to take away all those Natural Form abilities and uses a different weapon... Actually, I'm pretty sure the solution here is to add a HOSTILE_POLYMORPH splstate. That state should block all voluntary shapeshifting spells/abilities, plus the various magic weapon creation spells. In its current state, you can transform out of the squirrel form, but you still need a dispel to get your strength, dexterity, and hit points back. Here, have this cool phantom sword. And by the way, you're not a squirrel anymore. Another loophole ... if you are transformed out of the Slayer form by a means other than "End Slayer Change" - a voluntary shapeshift, a hostile polymorph, magic weapon creation - the delayed damage effects are still there. Since we're already throwing spell states around, how about gating those damage effects by a SLAYER_FORM state? We might even be able to get rid of the temporary magic damage immunity after transforming back.
×
×
  • Create New...