Jump to content

jmerry

Modders
  • Posts

    1,358
  • Joined

  • Last visited

Everything posted by jmerry

  1. Are you on a new save, or did you continue an existing run that had already seen that shop? Visited shops get copied into the save, and the version in the save (which mods don't touch) is what's used from then on in that run. For files that exist in both the BIFs and the override, Near Infinity will always display the override version, because that's what the game would use. You can change whether this file is displayed under "Override" or its filetype with the "Show Override Files" options, but you'll always see the version that actually gets used.
  2. CHAIN is its own top-level .D action. It does not go inside an APPEND; that's where the syntax error comes from. APPEND to BELMIN, and the next thing WeiDU sees isn't a state. Also, it's good practice to impose conditions on the starting point of a CHAIN; you don't want Belmin to try to initiate that every time anyone talks to him even if your new elf isn't in the party.
  3. A neat trick: READ_2DA_ENTRIES_NOW directly stores the data as an array, which you can continue to use after leaving the 2DA behind. Here's one of my components that reads data from a table: Hopefully, that helps with your second component. In my example, the table is pre-built; the first column is the resource ID for a given CRE, and the remaining columns are data for that CRE. I also have a header row, which is discarded by the READ_2DA_ENTRIES_NOW because it's shorter.
  4. The duration difference on SPIN117 is intentional but inverted; the damage needs to come before the bonus HP expire. Compare to the berserker's Enrage ability. Opcodes 17 and 18 should be duration 120, opcode 12 should be duration 119.
  5. It's certainly the obvious way to do it - just engage with the system that's already in use.. For reference, in those K_ tables, the number in the second column that identifies the kit is the number in the first column of KITLIST.2DA. Unless it's 0, in which case that's the "trueclass" option. What I'm not sure of here is the first column - do those have to be in sequence, or can those index numbers just be anything as long as they're different? Your current code will leave a gap in the indexing, so that matters...
  6. The thing is, there's not just one cause for bad strings. For example, here's one in my tweak mod (as of now, will be fixed in the next update, which I've been working on): My component that modifies Baeloth's ring, if installed on EET, gives that ring the wrong name and description; some completely irrelevant stuff. What happened? Well, I just made the item in NI, and the component copies it to the override. These are not new strings, but the original item's name and description - so I don't change them. Except that EET changes all the string reference numbers for BG1 strings, so now the wrong strings are being referenced. Your idea of looking for the strings in the tra files wouldn't help. They're not there. And they won't be there after the fix either; I just compensate for the EET reindexing in code with some WRITE_LONG %loc% (THIS+200000) lines.
  7. Yes, that's an obvious improvement.
  8. *looks at my collection of ~50 tweaks, and the update I've been halfheartedly working on* Yeah, this is probably something I should include. Downloaded, and I'll see how it works with my stuff.
  9. The Gloves of Healing (BRAC20) in BGEE and BG2EE are unusable by single-class clerics or single-class mages, but usable by cleric/mages. Reported on the Beamdog forums: https://forums.beamdog.com/discussion/88109/possible-bug-cleric-mages-can-use-gloves-of-healing
  10. The only thing wrong with that script block that I can see, if you have it attached to a creature, is that there's no way to ensure it runs in the right area and spawns the creatures there rather than spawning them in the active area. If you're inside a house, for example, spawning all those creatures somewhere off in the impassible void won't do a bit of good. So, obviously, this script block should either be inserted into the area script or have an area check attached to it. Now, if it's not running in the area you want it to run in, that means something else is wrong with the script you have that block in - most likely, some earlier block is executing repeatedly so the script never gets there. Even if you move this script block, that's something that you need to fix.
  11. Number of uses of the ChangeClass script action in vanilla BGEE and BG2EE: one. Marl becomes an INNOCENT if you talk him down. So, this is not normally a concern; the standard scripting style for creatures that wake up to become a threat is that they already have the appropriate class. Or they use a "replace creature" effect (i.e. doppelgangers) and the new object obviously won't have that issue. Well, there's one trouble spot I can see: the "ChangeAnimation" script action, which keeps some things in place like hit points. And does buggy things with effects on the creature; stuff like mage buffs stay in place and become impossible to remove with the likes of dispel, breach, or spellstrike. (At least, that's how it worked as of 2.5) What uses that action? For one, the doppelgangers that switch between various forms from Durlag's family. One of those forms - Durlag himself - is a high-level fighter. The others are a mage, a bard, a cleric, and the default doppelganger form. Plenty of opportunity for messy lingering effects.
  12. A summary of what the table says, before and after that cdtweaks component: Before (vanilla) Level 1-6 7-12 13+ Prof 0-1 0 -1 (+.5) 1 2-4 -1 (+.5) 1 -2 (+1.5) 5 1 -2 (+1.5) 2 After (cdtweaks APR) Level 1-6 7-12 13+ Prof 0-1 0 0 0 2-4 -1 (+.5) -1 (+.5) -1 (+.5) 5 1 1 1 That component completely wipes out the APR gain for (warrior) levels, leaving only the gain for high proficiency levels. Because otherwise, with the changes to clswpbon.2da, all classes would gain APR as they leveled. Now, looking at the code, that component also creates new spells d5_numat and d5_numa2, which it inserts into all fighter, ranger and paladin CLABs at levels 7 and 13. Which should give warriors that are party members back their APR, but not non-party warriors as those don't apply the kit/class ability tables. So the component is already problematic, reducing APR for all higher-level warriors outside the party and also all higher-level monks that use manufactured weapons. But if it's breaking worse than that ... what does SCS do to the CLABs involved?
  13. Very worrying. After all, restoration is not available from temples or as a scroll in the (unmodded) BG1 campaign. The only way to gain access to restoration as a PC is to get a cleric to a high enough level to cast it. Specifically a cleric, because restoration isn't available to druids. So, if you're running a party that has a druid for the healer role and no cleric (such as the "canon" party), you have no way to cure that level drain ever unless you reform the party. At which point you might as well just dump the drained character forever, and it might as well be a one-hit kill. You cannot reasonably introduce wights to the BG1 campaign without also adding access to restoration, either as a temple service or in scroll form.
  14. All right, exact mechanics here ... The nonlethal kiss uses the damage opcode, type ACID, mode "set to value", value = 1. The lethal kiss uses the damage opcode, type ACID, mode "reduce by percentage", value = 100. And according to this report, that's a percentage of maximum health, which leads to the chunking possibility. I can already see the simplest way to prevent chunking: use a different damage type. These modes ignore resistances, so that's not a problem, and magic, missile, or poison damage won't chunk. I don't know whether "set to 0" or "set to 0%" would work for the lethal kiss, but changing the type of this not-really damage certainly does. As it's not directly a death effect, Death Ward won't work unless it's specifically called out. Though Story Mode should keep the victim alive with its min-HP effect.
  15. Oh, hey, I found another thing about the Aerial Servant that's out of whack - its animation compared to its stats. The Aerial Servant uses the ELEMENTAL_AIR_SMALL animation. There are seven other creatures that use that animation in vanilla BG2EE. Six of those have 8 HD. The seventh has 12 HD; that's the creature you summon if you roll low on the mage Conjure Air Elemental spell. And then the Aerial Servant has 16 HD. I also checked the small fire and earth animations. Lots of 8 HD elementals there, a few 12 HD elementals, and nothing at all bigger. The Aerial Servant is the only creature with more than 12 HD that uses any of the small elemental animations.
  16. From the spell descriptions in BGEE: OK. Sounds like a big chunky summon, and it even tells you how big. Definitely something I'd be willing to spend a sixth-level spell slot on. By contrast, this one doesn't tell you anything. Sure, it'll fight for you, but how big is it and how hard does it hit? Until I looked it up because of this discussion, I didn't know. I knew that it was an air elemental that started invisible from fighting against them, but I wouldn't have guessed it was 16 HD and 23 strength. You could radically change the creature's combat stats without changing the description at all. And then @subtledoctor looked at sources outside these games, and the pen and paper spell isn't a combat summon at all. Sure, that's not something you can really do in the computer game ruleset, but to just flat out turn it into a combat monster with inflated stats? A very weird decision. Thinking about that original version of the spell, here's another direction that could be taken for modifying Aerial Servant: deflate the stats, but give it an opcode 268 "clear fog of war" effect. That way it could scout for you invisibly, and then fight once it's revealed. Just not as well as the dedicated combat summon at the same level; maybe this one is always 12 HD and 14 strength. (There's some AI abuse potential when encountering foes outside the sight range of any actual PC. But familiars are pretty much always better placed to abuse that, since they can do more than just attack)
  17. Hey, mistakes happen to all of us. It's not like my code ever runs the first time when I write something big or make big changes. Now debugging ... that is an art.
  18. Well, let's start with the obvious surface-level problem: your BEGINs and ENDs don't match. You have two ENDs at the end, where you need three; one for the IF block, one for the MATCH block, and one for the function definition. Judging by your indentation, it's the MATCH block that's missing its END. But when WeiDU goes to parse this, it assigns that second END to the MATCH block, leaving the function definition open, and whatever's next in that document becomes part of the function when it isn't supposed to be, at least until the whole thing collapses in syntax errors that appear to point somewhere far from the actual problem. Or, worse, it runs and does things you weren't expecting at all.
  19. Since that isn't the duration number I used, I suspect SCS also includes a tweak for the spell ... here it is. From the "rebalancings of slightly too-powerful spells" component. In addition to what's in the readme, the component also changes the timing of the effect to "not permanent" but sets an absurdly long duration instead.
  20. (Looks it up...) In the case of Bala's Axe, the vanilla abilities are replaced entirely by IR. No on-hit miscast effect, no activated ability, but now there's an on-hit dispel effect. Save to negate, but no level check. Also, it's nonmagical instead of being a +0 magic weapon. Inquisitor dispel not being changed like other dispels to work with the new system ... that's a serious oversight that should be fixed. Also, that is a spell. It's an innate spell rather than an arcane or divine spell, but it's absolutely a spell by any reasonable standard.
  21. Yeslick's Dispel Magic is just like the divine and arcane Dispel Magic spells, except innate. Which means the level check is based on his innate caster level - the average of his cleric and fighter levels. The activated ability of Bala's Axe (not the on-hit ability, which isn't a dispel anyway) casts priest Dispel Magic. Which means it's based on the wielder's divine caster level, and is almost always useless. Unless it's a Shaman, there's no way for an axe-wielder to have a decent divine caster level at anything other than epic levels in the standard rules. All of this is unless a mod changes it specifically, or in the latter case changes priest Dispel Magic. (I have a tweak in my collection which changes the spell Bala's Axe casts to use the wielder's innate caster level.)
  22. Try checking the volume panel in the options? There are different sliders for different types of sound; it could be that you just have the balance set differently between the two games.
  23. On that bit where Bassilus might summon an Aerial Servant ... you know, part of the problem is that the stats are out of whack. Aerial Servants are just plain beefy. Here's a comparison of the three elemental-summoning spells priests get at level 6 and 7 (Aerial Servant, Conjure Fire Elemental, Conjure Earth Elemental). Vanilla game stats. All three spells have a 1 turn per level duration. All of the elementals summoned have one attack per round and deal primarily crushing damage, with a +4 enchantment level. Aerial Servant (cleric only, spell level 6): 16 HD (128 HP), AC 3, requires magic weapons to hit, starts invisible. 23 STR, 4d8+11 damage, final THAC0 0. Conjure Fire Elemental (druid only, spell level 6): 60% chance of 12 HD, 35% chance of 16 HD, 5% chance of 24 HD. Stats below. 12 HD (96 HP), AC 2, requires +2 weapons to hit, immune to fire. 14 STR, 3d8 damage + 1d6 fire, final THAC0 9. 16 HD (128 HP), AC 2, requires +2 weapons to hit, immune to fire. 20 STR, 3d8+8 damage + 1d6 fire, final THAC0 2. 24 HD (192 HP), AC 0, requires +2 weapons to hit, immune to fire. 23 STR, 3d8+11 damage + 1d6 fire, final THAC0 -5. Conjure Earth Elemental (cleric or druid, spell level 7): 60% chance of 12 HD, 35% chance of 16 HD, 5% chance of 24 HD. Stats below. 12 HD (96 HP), AC 2, requires +2 weapons to hit. 19 STR, 4d8+7 damage, final THAC0 6. 16 HD (128 HP), AC 2, requires +2 weapons to hit. 19 STR, 4d8+7 damage, final THAC0 2. 24 HD (192 HP), AC 2, requires +2 weapons to hit. 20 STR, 4d8+8 damage, final THAC0 -3. The Aerial Servant isn't quite as tough as the other elementals in some ways. Slightly worse AC, and you can hit it with +1 weapons. But 60% of the time, you're only getting a 12-HD elemental out of those other two spells, and the Aerial Servant is always 16-HD so it can take more punishment. And then, on offense ... 23 strength. For some inexplicable reason, this particular air elemental is stronger than any of the earth elementals. Or, for that matter, the air elementals that the wizard Conjure Air Elemental spell summons for its much shorter duration (17, 19, or 22 strength, with the same 60/35/5 probability split). And those don't have the invisibility perk. I'm thinking ... if the Aerial Servant was nerfed to have a no-bonus strength stat, the spell would be about on par with Conjure Fire Elemental. Which, as anyone who's played a druid can tell you, is still a fantastic spell.
  24. Simply having NI open shouldn't cause any issues. Might get confusing - I would recommend refreshing once the mod does its thing - but it shouldn't cause issues on its own.
  25. Yes, this one's the fault of SCS. A one-line change in v35 which needs to be reverted, because the new version looks for a file in a place it isn't; this results in a number of characters getting blank scripts when they should initiate conversation as soon as they see a PC. The change is in line 3 of genai/deployment.tph. v34 version: LAF ssl_to_bcs STR_VAR script=dw#shdlg location=~genai/ssl~ END v35 version: LAF ssl_to_bcs STR_VAR script=dw#shdlg location=~ssl~ END This change needs to be reverted. Not the whole file, because there's another change elsewhere in it. For quick-fix convenience, here's a fixed version of the file. Edit: attachment removed, diagnosis incorrect. See @Angel's posts below.
×
×
  • Create New...