Howdy, Stranger!

It looks like you're new here. If you want to get involved, click one of these buttons!

Categories

New Premium Module: Tyrants of the Moonsea! Read More
Attention, new and old users! Please read the new rules of conduct for the forums, and we hope you enjoy your stay!

[MOD] Eldritch Magic (BGEE/BG2EE/IWDEE)

1468910

Comments

  • AbsinthfeeAbsinthfee Member Posts: 3
    @Abdel_Adrian You and me both. As I said, it jumps right to the next step (alignment?) with me. I took subtledoctor's advice and installed the mod anew, but no luck this time either. I now reinstalled every multiclass-kit to the pre-2.0 version using tomes, which by the way works like a charm. This also means that I can play just about any multi-class kit from your mod aside from the Bladesinger (unless I'm okay with a Bard, that is) and the priest of Mystra (in which I have no interest). It's not optimal, but I can live with that.

    Sorry for the weirdness, and thank you for your effort. Let me know if there's something I can tell you to pin down the error, although chances are that it is something on my part that causes this.

  • subtledoctorsubtledoctor Member Posts: 11,406
    @Absinthfee if you really can't get it working, and really want to play a Bladesinger, there is a variant in Might & Guile (the last component, "multiclass kits" - you can ignore everything else).

    I don't mean to advertise in @Abdel_Adrian's thread, but if for whatever technical reasons you can't get this to work, it's an option. (In fact it might be a good test - since my version uses the same qdmulti function to put multiclass kits in the menus.)

  • inethineth Member Posts: 565

    Actually, Bladesingers get slightly *slower* casting because they cast with a single hand while using a weapon in the other.
    This is reflective of PnP. Normally you need two hands to cast, so single/dual wielders and sword and shield fighter mages shouldn't be able to cast without putting their weapons down. The bladesinger in PnP has the advantage by casting and attacking simultaneously, but at the cost of slower casting. I kept that for flavor.

    Hm. So in PnP, this is actually a kit advantage (being able to cast spells in a way that other Fighter/Mages can't, offset merely by a casting speed penalty), but in your implementation it ended up being a kit disadvantage because she doesn't get to cast spells in any way that normal Fighter/Mage can't, but nonetheless gets the -2 casting speed?

    Don't take it personally, but this kind of thing is the reason why Infinity Engine kit mods should IMO not try to directly implement PnP kits. Some things simply don't work in this engine, or don't really apply because the rules are different, or are much less useful than they are in PnP (think Infravision) – so kit implementations that try to follow the PnP rulebooks seldom end up balanced and satisfying in the game.

    I think the approach taken by the big kit mods by @Aquadrizzt, @Grammarsalad, @subtledoctor, etc. is the way to go: Take PnP kits as inspiration for the lore and so on, but come up with a hand-crafted list of kit advantages and disadvantages for each kit, designed around the rules that the game actually uses, and the enemies that the game actually throws at players, and the possibilities that the engine actually offers.

  • subtledoctorsubtledoctor Member Posts: 11,406
    Yeah but I have to say, it's such a powerful kit otherwise, that some kind of penalty is actually appropriate. I think @Abdel_Adrian's implementation is not bad: inspired and guided by PnP, without being completely bound by it, and bonuses and penalties that are balanced around their actual effect in this engine.

    I forget exactly how this kit works, but I think it has some kind of bladesinging innate ability (all the bladedinger kits do, right?) I could see doing something like, +1 casting speed penalty most of the time, but a -1 bonus while bladesinging.

  • rapsam2003rapsam2003 Member Posts: 1,632

    I forget exactly how this kit works, but I think it has some kind of bladesinging innate ability (all the bladedinger kits do, right?) I could see doing something like, +1 casting speed penalty most of the time, but a -1 bonus while bladesinging.

    Iirc, it gives an AC bonus while slowing down APR a bit. I could be mixing it up with something else though, or even mixing up editions...

  • subtledoctorsubtledoctor Member Posts: 11,406
    Ha ha, my version gives an AC bonus and increases APR :naughty:

    Abdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    @Absinthfee I wish I could help more at the moment, but it's hard to fix a problem I can't replicate. I'll PM you later with some more ideas, but in the meantime @subtledoctor proposed a good idea (I don't mind the advertisement). And I definitely want to determine if the only kit you're having a problem with is bladesinger or if it's all post-2.0 multiclass kits that use @Aquadrizzt 's qdmulti function.

    @ineth @rapsam2003 Bladesingers in my mod are heavily influenced by PnP, but there are minute differences. However, the end result is much more powerful than a standard F/M. A small decrease in casting speed is hardly noticeable to be honest, but you're right that it "doesn't work in the engine." Ideally, if a bladesinger gets a casting speed reduction for one-hand magic, a standard F/M should get an even greater penalty - but you wouldn't like that either, would you?
    The slightly slower casting is their biggest penalty and it's not that severe, the rest require the user to roleplay (due to engine limitations). "Disadvantages" include having to pick one type of weapon to use exclusively (easy to ignore), always improve that weapon given the chance (easy to ignore), always promote elvendom and help any elf in need, and to always fight with a single-weapon, but again, I could not actually prevent the bladesongs from working just for having something in the off-hand.
    But the advantages are, quite frankly, overpowered. Grandmastery in any single-hand weapon, grandmastery in single-weapon style (no one else gets that!), THAC0/AC/Damage bonuses and the very versatile bladesongs which act as 3 mutually exclusive passive effects that you can switch between at will AND improve as you level up. They also get the spells per day of a specialist mage simply due to how the engine works, although @subtledoctor has a mod that takes this into consideration.
    Honestly, I'm very happy with the bladesinger. They're not meant to cast spells with long durations, they're much more of a weapons master that complements their swordplay with quick spells in the thick of combat.
    If you look at all my kits side by side, you'll see that some are more influenced by PnP than others - the bladesinger is the most so, but balance and engine limitations were still taken into account. You may not like the kit and that's okay, but I'd sympathize more if you said they were *too* powerful rather than focusing on one of their few penalties. Like always, I do appreciate the feedback.

  • subtledoctorsubtledoctor Member Posts: 11,406

    I could not actually prevent the bladesongs from working just for having something in the off-hand.

    This is doable. If you're interested, I could tel you how/give you the code needed.

    Abdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428

    I could not actually prevent the bladesongs from working just for having something in the off-hand.

    This is doable. If you're interested, I could tel you how/give you the code needed.
    I'd be very interested.

  • inethineth Member Posts: 565
    edited December 2016
    @Abdel_Adrian I was mostly looking at that one point (single-handed casting with -2 casting speed) in isolation.

    You're right that overall, the kit is not weak the way it is implemented – grandmastery on a multiclass is a pretty big deal, and the bladesong is a neat bonus.

    I still think it's a bad idea to list PnP features which weren't actually implemented, among the kit advantages/disadvantages lists – especially if it presents something as a net advantage that is actually implemented as a net disadvantage. That'll just end in players making assumptions about what it does, and being disappointed.

    Ha ha, my version gives an AC bonus and increases APR :naughty:

    I think offensive bonuses like APR/THAC0/damage/crit-chance are more valuable to a Fighter/Mage kit, than defensive bonuses like AC.

    The F/M already has plenty of low-level spells that she can spam to protect herself (Mage Armor, Mirror Image, Stoneskin, etc.).
    But offensive self-buffs are less plentiful, and the ones that exist (Haste, Tenser's Transformation, ...) either come with downsides that disincentivize their use, or are higher-level and thus not available as early and as often per day.

    @Abdel_Adrian's bladesong allows choosing between an offensive and defensive bonus, which it nice, though I'd probably end up choosing the offensive version most of the time.

  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    @ineth I understand where you're coming from. I do try to be very clear on what is and is not implemented; I believe the bladesinger is the single exception that even mentions things that aren't implemented - but that's so the player can roleplay properly. If someone wants to play a bladesinger that uses a shield or dual wields while bladesinging, I can't stop them. Although @subtledoctor will make this possible for me. But I absolutely cannot stop people from choosing how much they want to help elves in need, or if they want to switch between axes, maces, and longswords. These things are out of my control, but in my opinion, are not things that should be dropped from the kit's description. The same goes for their casting speed. They need a few penalties and I think this is a pretty fair and mild disadvantage within the limitations of the engine. I don't think I have it framed as an advantage.

  • subtledoctorsubtledoctor Member Posts: 11,406
    edited December 2016
    @Abdel_Adrian I can give you more specific code when I have time, but for now I think the way to restrict dual-wielding is what my revised styles mod does: have every 1-handed weapon increment proficiency 134. Proficiency 134 is unused by the game, unused by detectable spells, and to my knowledge unused by any other mod. But beware, #134 is the only such 'available' proficiency, so if another mod uses it a different way, there will be a conflict.

    But your kid and mind can use it exactly the same way, and maybe we can make it a convention. The effect of this will be that, whenever you are using a single 1-handed weapon, you will have "proficiency" in #134, and whenever you dual-wield you will have "specialization."

    The upshot is, your degree of proficiency can be added to splprot.2da and then taken as a filter for opcode 318, 324, and 326 effects. So adding a 318 effect to all 1-handed weapons, filtered by having "specialization" in #134, can make you immune to the effects of the Bladesong .spl.

    This only begins to plumb the depths of what can be done here... being able to detect and specify effects for when the player has one weapon, two weapons, or sword & shield can allow all sorts of interesting stuff.

    Here's my code, as an example:
    https://github.com/subtledoctor/Scales_of_Balance/blob/master/scales_of_balance/components/124_WPO_styles.tpa

    Scroll down toward the bottom, to the "SWS APR" section. If you are going to do this then we should both probably add a DELETE_EFFECT line for prof. 134 before the ADD_ITEM_EQEFFECT line. That way there won't be doubled effects that give the player "high mastery" instead of "specialization."

    Like I say, when I get a chance, I'll sketch out some more specific code for you.

  • agb1agb1 Member Posts: 249
    edited December 2016
    Bug report: The Remove XP Cap components have trailing periods in the source file paths for the COPY commands used when the game type is BGEE or BG2EE. See lib/XP_Cap.tpa:
    ACTION_IF GAME_IS ~bgee~ BEGIN
    COPY  ~Eldritch_Magic/2DA/STARTARE.2DA.~   ~override~
    COPY  ~Eldritch_Magic/2DA/STARTBP.2DA.~   ~override~
    COPY  ~Eldritch_Magic/2DA/SODSTRTA.2DA~   ~override~
    END
    ACTION_IF GAME_IS ~bg2ee~ BEGIN
    COPY  ~Eldritch_Magic/2DA/BG2EE/STARTARE.2DA.~   ~override~
    COPY  ~Eldritch_Magic/2DA/BG2EE/STARTBP.2DA.~   ~override~
    END
    Also a minor typo in the tp2 for component 1400: BEGIN ~Wildnerness Runner~ DESIGNATED 1400

  • subtledoctorsubtledoctor Member Posts: 11,406
    @Abdel_Adrian I notice that you overwrite a ton of .itm files in your bladesinger kit's .tpa... cloaks, potions, helms, etc. Can I ask what the purpose of that is? It's kind of a compatibility nightmare - especially with Item Revisions.

    Lately I've almost never found a need to overwrite files, rather than patching them (depending on the desired result, of course). If you tell us what changes you make to those files, I'm sure someone can help you code it with patching instead of file replacement.

  • subtledoctorsubtledoctor Member Posts: 11,406
    edited December 2016
    So @Abdel_Adrian here's how you can make the Bladesong ability only work when wielding a single weapon. *Please* let me know if/when you implement this, especially if you change anything... not only is my mod already using ExtraProficiency20 to differentiate between using one weapon vs. dual-wielding (in this exact way), but I am also getting a bit cute with the values used for that proficiency, using the same stat for a completely different purpose in another mod (for a "fighting dirty" feat for thieves). We should just make sure that our respective mods don't get in each other's ways. There are two ways to do that, one of which is included in the instructions below. :)

    First, you need to add a line to SPLPROT.2DA:
    APPEND ~splprot.2da~ ~EM_1_HAND%TAB%134%TAB%-1%TAB%4~
    (You can use some other term than "EM_1_HAND" but I suggest putting your modding prefix there.) This adds a line which checks for whether stat 134 - ExtraProficiency20 - is greater than or equal to some value. The "some value" is set to -1 so it can be specified in a .SPL or .ITM effect.

    Then you need to patch all 1-handed weapons to do three things:
    1) Delete any existing effects that increment ExtraProficiency20 (i.e. mine - this will make sure our mods don't double up the effects incrementing that stat).
    2) A 318 effect, which provides immunity to spells the way 206 does, but only under certain conditions. Here, those conditions will be whether the character equipping the item has 4 pips or more in ExtraProficiency20.
    3) a 233 Effect incrementing ExtraProficiency20 by *TWO* pips, to replace the effect that was deleted in step 1. (This is for the sake of compatibility. I'll explain later.)

    Here is the code:
    COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~ ~override~
    PATCH_IF (~%SOURCE_SIZE%~ > ~0x71~) BEGIN
    READ_BYTE 0x18 handed
    PATCH_IF ((%handed% BOR 0b11111101) = 0b11111101) BEGIN // 1-handed
    READ_BYTE 0x31 prof
    PATCH_IF (%prof% = 92) OR // axe
    (%prof% = 89) OR // bastard sword
    (%prof% = 115) OR // club
    (%prof% = 96) OR // dagger
    (%prof% = 100) OR // flail
    (%prof% = 94) OR // katana
    (%prof% = 90) OR // long sword
    (%prof% = 101) OR // mace
    (%prof% = 95) OR // scimitar
    (%prof% = 91) OR // short sword
    (%prof% = 97) BEGIN // hammer
    LPF DELETE_EFFECT INT_VAR match_opcode = 233 target = 1 match_parameter2 = (134 + (0x10000 * 1)) END
    LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 318 target = 1 parameter1 = 4 parameter2 = %nosws_row% timing = 2 resist_dispel = 0 STR_VAR resource = ~EM_BLDSNG~ END
    LPF ADD_ITEM_EQEFFECT INT_VAR opcode = 233 target = 1 parameter1 = 2 parameter2 = (134 + (0x10000 * 1)) timing = 2 resist_dispel = 0 END
    END
    END
    END
    BUT_ONLY
    (Change "EM_BLDSNG" to the name of your Bladesong ability.)

    So: when you carry a longsword, the sword will have an equipping effect granting you 2 pips in ExtraProficiency20. The sword also has a 318 effect checking how many pips you have... but it only cares whether you have 4 or more, so nothing happens.

    But if you equip TWO longswords (or any two 1-handed weapons) the effects will compound, giving you a total of 4 pips in ExtraProficiency20. The 318 effect notices this and kicks in... making you immune to the effects of the Bladesong ability. (I don't think we can block you casting it, only make you immune to its effects.)

    The reason I'm using 2 and 4, rather than 1 and 2, is that one of my mods sets this stat to 1 pip. If both mods exist together, then the equipping effect of carrying a 1-handed weapon will boost it to 3 pips, and the effect of dual-wielding will boost it to 5 pips. Since the effect here looks for any value of 4 or higher, this will be unaffected and still work just fine. This way the two mods can use the same state for two different purposes, and not step on each others' toes. :smiley:

    You should be able to simply copy everything in those two boxes above directly into your mod, and it will work right out of the box. You only need to change the ability name in the 318 effect. Note, I have not tested this. But I have tested a variant of it, with my enhanced Single-Weapon Style, and it works great there. Cheers.

    GrammarsaladAbdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    edited December 2016
    @agb1 Thanks, both issues will be fixed by the next update. I really appreciate it.

    @subtledoctor I really like your proficiency solution to disabling bladesongs when the off hand is occupied, I'll definitely give it a try.

    As far as the bladesinger overwriting items, I could be wrong but I'm fairly certain that's just with the "outdated" bard version and the changes to the items are just adding the bard flag to typical mage and fighter items. It's probably easy enough to patch a change to the bard flag; definitely more so than my ioun stone changes which are much more complicated.

  • Necromanx2Necromanx2 Member Posts: 1,075
    Hi A_A,

    I just noticed that when my Priestess of Lolth turns into a spider and then back, she loses the ability to speak with people. I understand why it turns off while in spider form, but it should turn back once she turns back to normal, but does not. I need to use shadow keeper to remove the effect that disables the talk button.

    Abdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    Okay I fixed the typo and trailing zeros that @agb1 pointed out, as well as the issue @Necromanx2 found with Priestesses of Lolth not being able to talk after shapeshifting out of spider form. I'll publish these changes asap.

    The issue @Absinthfee was having seems to have been due to an incompatibility with an old GOG version, and I'm also working on some improvements that @subtledoctor proposed. I'm hoping to release a larger update soon, keep letting me know what you think of my mod and I'll keep trying to improve it! Thanks to everyone giving feedback and bug reports.

    Grammarsalad
  • TristeluneTristelune Member Posts: 12
    Hello Abdel_Adrian,
    I noticed a strange behaviour with Bladesinger that, ironically, I also noticed on subtledoctor's version of Bladesinger.
    Past level 9, the kit gains no more additional powers and abilities.
    According to its clab.2da, it should get an improved version of its baldesongs. But it doesn't (at list on my game, which is BG2EE, with latest patch, and only Eldritch Magic installed). Also, whatever special ability or event supposed to come at level 15, 25 and 30 don't come.
    I edited the clab.2da to add an iterative ability that add 1% Magic Resist per level, every level up to 40. In game, the character Magic Resist capped at 9%, which let me think level 9 is somehow the hard limit.
    As I mentionned to subtledoctor, Fighter have hit dice capped at 9. I don't know if it's just a coincidence or not. Maybe you'll have a clue.
    Aside that, good job! I didn't try much the other kit, but I can notice the hard work! :)

  • subtledoctorsubtledoctor Member Posts: 11,406
    It makes no sense for it to be related to hit dice. It makes no sense at all. I'm at a loss.

  • TristeluneTristelune Member Posts: 12
    edited January 2017
    I tested all other kits based on Fighter/Mage. Namely: War Wizard and Eldritch Knight. They too have their abilities capped at level 9.
    So, I think that might mean one of two things:
    1/ all of them have been built from a common, flawed, template
    2/ there is an inherent flaw in the fighter/mage kit feature

  • subtledoctorsubtledoctor Member Posts: 11,406
    edited January 2017
    Or we're being haunted by the ghost of PnP level limits! :tongue:

    I wonder what happens with other multiclass kits. Faiths & Powers has a bunch of cleric/x kits, I'll try to console one up to high levels and see what happens.

    As to templates: it's easy enough to roll a fresh one independent of any template. Just make a kit and give it 'class = 7' and run the QD_multi function afterward.

    Wait - duh, this could simply be a bug with the QD_multi function. Super easy to check: with the MnG Bladesinger installed, open QD_MCF12.SPL in NI and see if there is a 177 effect to grant the 12th-level Bladesong ability. I bet it's not there.

  • TristeluneTristelune Member Posts: 12
    Eldritch Magic's Cleric of Mystra doesn't get abilities past level 9 either.

    Wait - duh, this could simply be a bug with the QD_multi function. Super easy to check: with the MnG Bladesinger installed, open QD_MCF12.SPL in NI and see if there is a 177 effect to grant the 12th-level Bladesong ability. I bet it's not there.

    I'm don't really understand what's the use of these QD_MCFxx.SPL files, but it seems a valid lead!

    Below is the QD_MCF09.SPL. Although I have a very limited understanding of the use of this file at that stage, it seems perfectly fine to me: all the abilities for level 9 appear here (please note that this is the MnG Bladesinger version with which I made my own tests, hence the unusual number of abilities)


    Now this is the QD_MCF10.SPL. We can see there is something odd for this one. Note that by my personal modifications of the kit, we should see ability BHSCI01 here.


    And now the one you suggested to open: we should have 2 abilities: one for bladesong and one for my own BHSCI01.


    It seems the problem could indeed be here!!

    Do you mind explaining me what are the QD_MCFxx.SPL?

    01.jpg 89.8K
    02.jpg 78.5K
    03.jpg 84.1K
  • subtledoctorsubtledoctor Member Posts: 11,406
    edited January 2017
    Ugh, DLTCEP. I can barely understand what I'm looking at there. Why does the Bladesong ability look different in MCF12 vs. MCF09? Can you view those effects? In each case it should be a 177 effect targeting the Bladesinger kit with the Bladesong ability in the 'resource' field. If the 177 effects are different, I think we've found the problem.

    Multiclass kits have clab tables like normal kits, but the game does not do anything with them by default. Instead, if you make a fighter/mage kit, the game will apply any effects or abilities in the trueclass fighter and mage clab tables (clabfi01.2da and clabma01.2da, respectively). Obviously that is a problem if you want to make multiclass kit with its own clab effects and abilities.

    So the QD_MCxy spells are added the the clab table of class x at level y. Initially, they are empty and have no effect on the game. But if you run the function on a multiclass kit, it reads your clab table, converts your clab effects into .eff files, and adds a 177 effect to the appropriate QD_MCxy spell. In-game, it acts as if your kit is just using its own clab table. It's really quite a clever solution by @Aquadrizzt .

    But if the 177 effects are being messed up after 9th level, I suspect the QD_multi function just has a bug related to the level turning over from a 1-digit number to a 2-digit number.

  • AquadrizztAquadrizzt Member Posts: 958
    edited January 2017
    I haven't encountered the issue yet. I'll look into it.

    EDIT 1:
    Found it. There's an eval missing on line 488 of qd_multiclass.tpa.

    Will fix and update the top post of the multiclass library thread.

    EDIT 2:

    Posted a new version of QDMULTI to its thread on these forums. I'd encourage @Abdel_Adrian and any other modder using the library to update to the new version.

    Post edited by Aquadrizzt on
    Abdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    Thank you @Tristelune for pointing this out, @subtledoctor for your insightful comments, and of course, special thanks to @Aquadrizzt for making this possible in the first place and providing a quick fix.
    I uploaded a new version of my mod with these improvements.

  • AquadrizztAquadrizzt Member Posts: 958
    @Abdel_Adrian, it is working properly? I didn't change anything that looked like it would break things but I didn't test it with anything either.

  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    @Aquadrizzt I had so much faith in you that I didn't actually test it first, but I probably should have...
    ERROR: Failure("Unknown function: qd_multiclass_tables")

    Woops.

    Aquadrizzt
  • AquadrizztAquadrizzt Member Posts: 958
    Oh yeah I forgot to mention, you don't need to call the qd_multiclass_tables function anymore. The main function (qd_multiclass) handles all of that the first time it is invoked.

    subtledoctorAbdel_Adrian
  • Abdel_AdrianAbdel_Adrian Member Posts: 428
    Oh okay, makes perfect sense. So after a little testing I can confirm that it installs properly (without the LAF qd_multiclass_tables) and abilities after level 9 work just fine.
    Only issue I'm running into now that I wasn't having before is if I have a multiclass kit with an impossible K_X_X file it triggers an error. Using your Berserker/Priest of Talos example, if I make a human file (K_FC_H.2da) I get

    ERROR locating resource for 'getting 2da lines'
    Resource [K_FC_H.2da] not found in KEY file:
    [./chitin.key]
    ERROR: Failure("resource [K_FC_H.2da] not found for 'getting 2da lines'")

Sign In or Register to comment.