@Raduziel, what version do you have listed in your setup? I am quite positive that the version I uploaded works, and I see no references to "mc_dir' in my live code, which was the variable I used to refer to the file directory in the last version.
The currently updated version is 0.3, and should not require any other files. However, if it seems to be missing the required spells, then consider deleting qd_multi_spls and letting it reinstall. Note that this will reset any multiclass kits currently implemented, but given that it seems to be broken for you, I doubt that's important.
1) On character creation, the kit is considered a Cleric/Abjurer what means that no Alteration spells are available at character creation.
1.1) The character is receiving the extra spell slot from specialists (I know this is a known issue with IE and I know how to fix it).
1.2) During the game I can use and copy Alteration scrolls to the spellbook without problems, but the "Abjurer" still appearing on the Character Sheet.
2) A permanent effect that should be applied on Lv 1 is not being applied.
2.2) Despite that, all the other spells are being given normally and works perfectly.
3) [ToB] on level 25, the kit is receiving the Holy Symbol of Talos instead of the one the mod provides. The single-class kit receives the proper HS correctly.
Putting 2 and 3 together I imagine that it is a problem with the AP_ kind of spells (as both the lv 1 effects and the spell that gives the HS are AP_ and all the others that are working properly are GA_).
Hello @Aquadrizzt I had an issue installing a multiclass kit using your library, quite similar to that of @Raduziel (if by any chance you solved your problem) . Here's the debug part that concerns it.
Copying 1 file ... Creating file QD_MC_AP.eff; 272 bytes Copying and patching 1 file ... Copied [.../fl-inlined/tmp] to [override/QD_MC_AP.eff]
Creating file QD_MC_GA.eff; 272 bytes Copying and patching 1 file ... Copied [.../fl-inlined/tmp] to [override/QD_MC_GA.eff] DELETE_BYTES out of bounds - file is long 114, point given is 114, bytes were 200
LAF qd_multiclass STR_VAR kit_name = ~zkwwn~ //the internal name for your kit (e.g. QDMAGUS) kit_clab = ~zkwwn~ //the internal name of your kit's clab file, without the .2da extension base_class = ~M~ // this can take 6 values: [F]ighter, [P]riest, [D]ruid, [R]anger, [M]age, [T]hief END
EDIT: I ended up using an older version of your library (the one used by @subtledoctor in MnG) and it works fine)
Still have one issue: on my multiclass kit I apparently can't use a custom HLA table. It uses the standard one instead. But I guess that's beyond what modding can easily do so I'm gonna tweak the class instead ...
Concerning that last issue by the way, I could make a module for your library to override the multiclass HLA table make them void, and use a dialog to provide the HLAs, with options appearing based on kit. This could allow using custom HLAs.
As someone who's mucked around with trying to add kits, but never quite succeeded, how is this actually used? If, say, all I wanted was a multi-class using existing kits that has it's own title on the character sheet, how would that be accomplished?
I've recently been working on multiclass kits for joinable NPCs and there is an bug where kit abilities duplicate each time a party member is kicked out and recruited again due to the way the QD_MCx##.spl files add abilities. In case anyone else runs into this problem, I made a very small modification to qd_multiclass.tpa which appears to resolve it without any issues that I've seen so far.
Never mind, not quite. There is actually an issue I need to sort out. This fixes the duplication but it only reapplies one of each individual ability when a party member is recruited. Any ideas?
EDIT: Thinking of applying a Protection from Spell [206] opcode to the very end of the QD_MCx##.spl files to fix this. However, I need a way to make sure the effect is always applied last.
Original change: Apply opcodes 321 and 172 at the start of each spell file to remove the pre-existing spells before adding new ones. My brain must have died because I didn't immediately realize the obvious 'only one of each' effect this would cause.
This was the part which got changed:
PATCH_IF (~%string_length%~ <= 7) BEGIN
//passive bonuses
PATCH_IF (~%abil_type%~ STRING_EQUAL ~AP_~) BEGIN
//PATCH_PRINT ~%ability% > %abil_new% , LVL %col%~
INNER_ACTION BEGIN
COPY ~%mc_dir%/QD_MC_AP.eff~ ~override/%abil_new%#.eff~
WRITE_EVALUATED_ASCII 0x30 ~%abil_new%~
SET col_length = STRING_LENGTH ~%col%~
ACTION_IF (%col_length% = 1) BEGIN
COPY_EXISTING ~override/QD_MC%base_class%0%col%.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 resist_dispel = 0 power = 0 STR_VAR resource = EVAL ~%abil_new%~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 9 resist_dispel = 0 power = 0 parameter1 = %kit_code% parameter2 = 9 STR_VAR resource = EVAL ~%abil_new%#~ END
END
ACTION_IF (%col_length% = 2) BEGIN
COPY_EXISTING ~override/QD_MC%base_class%%col%.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR opcode = 321 target = 1 timing = 9 resist_dispel = 0 power = 0 STR_VAR resource = EVAL ~%abil_new%~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 9 resist_dispel = 0 power = 0 parameter1 = %kit_code% parameter2 = 9 STR_VAR resource = EVAL ~%abil_new%#~ END
END
END
END
//granted abilities
PATCH_IF (~%abil_type%~ STRING_EQUAL ~GA_~) BEGIN
//PATCH_PRINT ~%ability% > %abil_new% , LVL %col%~
INNER_ACTION BEGIN
COPY ~%mc_dir%/QD_MC_GA.eff~ ~override/%abil_new%#.eff~
WRITE_EVALUATED_ASCII 0x30 ~%abil_new%~
SET col_length = STRING_LENGTH ~%col%~
ACTION_IF (%col_length% = 1) BEGIN
COPY_EXISTING ~override/QD_MC%base_class%0%col%.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 resist_dispel = 0 power = 0 STR_VAR resource = EVAL ~%abil_new%~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 9 resist_dispel = 0 power = 0 parameter1 = %kit_code% parameter2 = 9 STR_VAR resource = EVAL ~%abil_new%#~ END
END
ACTION_IF (%col_length% = 2) BEGIN
COPY_EXISTING ~override/QD_MC%base_class%%col%.spl~ ~override~
LPF ADD_SPELL_EFFECT INT_VAR opcode = 172 target = 1 timing = 9 resist_dispel = 0 power = 0 STR_VAR resource = EVAL ~%abil_new%~ END
LPF ADD_SPELL_EFFECT INT_VAR opcode = 177 target = 1 timing = 9 resist_dispel = 0 power = 0 parameter1 = %kit_code% parameter2 = 9 STR_VAR resource = EVAL ~%abil_new%#~ END
END
END
END
That will work, I think... there's another problem though. Opcode 206 being added directly to the QD_MC spell files won't really solve the issue since the protection gets removed as a kit ability during the kicking/recruiting process. It'll have to use opcode 146 to cast another spell which then applies the protection via 206, which won't be removed. I'm going to see how that turns out.
Timing mode 9 has never worked like that for me. It keeps effects from being removed via death and even CTRL-R, but it still gets affected by things like opcode 321 and when NPCs get kicked out. I think I've gotten it to work now though via the method above, using opcode 146 to cast a separate spell that isn't removed.
A player is getting a problem that I can't reproduce when installing DoF. I was able to pinpoint it to the multiclass component:
[DeitiesOfFaerun\Lib\Multiclass/QD_MC_AP.eff] loaded, 272 bytes Copied [DeitiesOfFaerun\Lib\Multiclass/QD_MC_AP.eff] to [override/RASHARF#.eff] Copying and patching 1 file ... [override/QD_MCP01.spl] loaded, 154 bytes ERROR: cannot convert kit_code or %kit_code% to an integer ERROR: [override/QD_MCP01.spl] -> [override] Patching Failed (COPY) (Not_found) Stopping installation because of error. Stopping installation because of error. ERROR: [RASharCM.2da] -> [override] Patching Failed (COPY) (Not_found) Stopping installation because of error. Stopping installation because of error. Stopping installation because of error.
ERROR Installing [Install kit: Nightcloak of Shar], rolling back to previous state Unable to Unlink [DeitiesOfFaerun/Backup/5/OTHER.5]: Unix.Unix_error(1, "unlink", "DeitiesOfFaerun/Backup/5/OTHER.5") [DeitiesOfFaerun/Backup/5/UNSETSTR.5] SET_STRING uninstall info not found
Similar errors are happening in every MC component.
Do you guys have any insight? Never had this problem with DoF and it started happening with 2.5 for the player. But I have 2.5 and, as I said, never had this problem and no other player reported a similar issue.
The player's SETUP.DEBUG and Weidu.log are attached.
Comments
The currently updated version is 0.3, and should not require any other files. However, if it seems to be missing the required spells, then consider deleting qd_multi_spls and letting it reinstall. Note that this will reset any multiclass kits currently implemented, but given that it seems to be broken for you, I doubt that's important.
I can test the file you uploaded if you want to, but only by Monday - I'm on the road at the moment.
Thanks for caring
I was trying to update this tool for Deities of Faerûn.
This is what happens when I try to install:
The related .tpa and the version of this tool that I'm using (downloaded today from Github) are in the zip file attached.
The .tpa file related to this tool was located in DeitiesofFaerun\Lib.
Version 0.2 with the subfolder works fine, I'm rolling back to it for now.
Thanks!
Thank you for bringing this to my attention, not entirely sure why its happening at all though... it worked fine on my local installs...
EDIT: It might be some kind of interference between different versions... idk.
Maybe one of you guys can help me...
I'm making some multiclass kits ATM and I'm using one randomly chosen to serve as a control group.
This is the single-class kit that is installed together with the multi-class kit:
https://github.com/Raduziel/Deities-Of-Faerun/blob/master/DeitiesOfFaerun/Components/Auril-Kit.tpa
As you can see here (lines 240 to 243):
https://github.com/Raduziel/Deities-Of-Faerun/blob/master/DeitiesOfFaerun/DeitiesOfFaerun.tp2
This is the Cleric-Mage multiclass kit:
https://github.com/Raduziel/Deities-Of-Faerun/blob/master/DeitiesOfFaerun/Components/Auril-KitCM.tpa
This is the kit's CLAB:
https://github.com/Raduziel/Deities-Of-Faerun/blob/master/DeitiesOfFaerun/Tables/RAAuriCM.2da
Ok, what are the problems:
1) On character creation, the kit is considered a Cleric/Abjurer what means that no Alteration spells are available at character creation.
1.1) The character is receiving the extra spell slot from specialists (I know this is a known issue with IE and I know how to fix it).
1.2) During the game I can use and copy Alteration scrolls to the spellbook without problems, but the "Abjurer" still appearing on the Character Sheet.
2) A permanent effect that should be applied on Lv 1 is not being applied.
2.2) Despite that, all the other spells are being given normally and works perfectly.
3) [ToB] on level 25, the kit is receiving the Holy Symbol of Talos instead of the one the mod provides. The single-class kit receives the proper HS correctly.
Putting 2 and 3 together I imagine that it is a problem with the AP_ kind of spells (as both the lv 1 effects and the spell that gives the HS are AP_ and all the others that are working properly are GA_).
Any ideas?
Thanks!
Any ideas about issues number #2 and #3?
Thanks, @subtledoctor
I have a Cleric kit that gains d10 as HD.
The problem is: the F/C version of this kit is gaining d9 (as any common F/C receive).
Is there any way to make this F/C Kit in particular receive d10?
Thanks.
Any ideas?
I'm pretty sure they won't utilize the right HP tables.
So at level 7 those F/C have 69 HP instead of 70.
I had an issue installing a multiclass kit using your library, quite similar to that of @Raduziel (if by any chance you solved your problem) . Here's the debug part that concerns it.
Creating file QD_MC_AP.eff; 272 bytes
Copying and patching 1 file ...
Copied [.../fl-inlined/tmp] to [override/QD_MC_AP.eff]
Creating file QD_MC_GA.eff; 272 bytes
Copying and patching 1 file ...
Copied [.../fl-inlined/tmp] to [override/QD_MC_GA.eff]
DELETE_BYTES out of bounds - file is long 114, point given is 114, bytes were 200
And the Weidu bit I used:
~zkwwn 1 1 1 1 1 1 1 1~
~zkwwn 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 2 3 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~
~zkwwn 9 0 9 0 0 0~
~zkwwn 0 0 0 0 0 0~
~zkwwn 0 0 15 15 0 15~
~zkwwn 0 0 0 0 0 0~
~zkwwn 1 1 1 1 1 1 1 1 1~
~zkwwn 0 0 0 0 0 0~
~WitcherKits/2da/zkwwn.2da~
~K_F_H~
~0x00004000 2~
~ZKwwn~
~* * * BAG29 RING06 RING40 * BOOT01 AMUL21 BRAC15 BELT10 AROW11,40 BULL03,40 BOLT06,40 POTN52,5 POTN04,2 POTN14,5 SLNG05 DAGG05,20 STAF20~
SAY ~Dearg Ruadhri~
SAY ~Dearg Ruadhri~
SAY ~Filler Description~
LAF fl#add_kit_ee
INT_VAR
biography = 29492
briefdesc = RESOLVE_STR_REF (~Filler Description~)
fallen = 0
fallen_notice = RESOLVE_STR_REF (~Caranthir's path: from golden child to common criminal~)
STR_VAR
kit_name = ~zkwwn~
clswpbon = ~1 0 2~
numwslot = ~4~
clascolr = ~35 67 67 25 80~
hpclass = ~HPFM~
clsrcreq = ~1 0 0 0 0 0 0~
clasthac = ~0~
END
LAF qd_multiclass
STR_VAR
kit_name = ~zkwwn~ //the internal name for your kit (e.g. QDMAGUS)
kit_clab = ~zkwwn~ //the internal name of your kit's clab file, without the .2da extension
base_class = ~M~ // this can take 6 values: [F]ighter, [P]riest, [D]ruid, [R]anger, [M]age, [T]hief
END
EDIT: I ended up using an older version of your library (the one used by @subtledoctor in MnG) and it works fine)
Still have one issue: on my multiclass kit I apparently can't use a custom HLA table. It uses the standard one instead. But I guess that's beyond what modding can easily do so I'm gonna tweak the class instead ...
Concerning that last issue by the way, I could make a module for your library to override the multiclass HLA table make them void, and use a dialog to provide the HLAs, with options appearing based on kit. This could allow using custom HLAs.
I've recently been working on multiclass kits for joinable NPCs and there is an bug where kit abilities duplicate each time a party member is kicked out and recruited again due to the way the QD_MCx##.spl files add abilities. In case anyone else runs into this problem, I made a very small modification to qd_multiclass.tpa which appears to resolve it without any issues that I've seen so far.Never mind, not quite. There is actually an issue I need to sort out. This fixes the duplication but it only reapplies one of each individual ability when a party member is recruited. Any ideas?
EDIT: Thinking of applying a Protection from Spell [206] opcode to the very end of the QD_MCx##.spl files to fix this. However, I need a way to make sure the effect is always applied last.
Original change: Apply opcodes 321 and 172 at the start of each spell file to remove the pre-existing spells before adding new ones. My brain must have died because I didn't immediately realize the obvious 'only one of each' effect this would cause.
This was the part which got changed:
That will work, I think... there's another problem though. Opcode 206 being added directly to the QD_MC spell files won't really solve the issue since the protection gets removed as a kit ability during the kicking/recruiting process. It'll have to use opcode 146 to cast another spell which then applies the protection via 206, which won't be removed. I'm going to see how that turns out.
Timing mode 9 has never worked like that for me. It keeps effects from being removed via death and even CTRL-R, but it still gets affected by things like opcode 321 and when NPCs get kicked out. I think I've gotten it to work now though via the method above, using opcode 146 to cast a separate spell that isn't removed.
A player is getting a problem that I can't reproduce when installing DoF. I was able to pinpoint it to the multiclass component: Similar errors are happening in every MC component.
Do you guys have any insight? Never had this problem with DoF and it started happening with 2.5 for the player. But I have 2.5 and, as I said, never had this problem and no other player reported a similar issue.
The player's SETUP.DEBUG and Weidu.log are attached.
Thanks!