Skip to content

[Tool] QDMULTI: A Library for Multiclass Kits

123468

Comments

  • RaduzielRaduziel Member Posts: 4,714
    @Aquadrizzt @subtledoctor @kjeron @argent77

    Anyone? Any ideas?

    A similar problem happened with FnP last year, apparently it was due to the lack of an EET check. I've run through my code and no lack of check happens.
  • RaduzielRaduziel Member Posts: 4,714
    Ok, news on the front...

    Removing all MC content from the tp2 of DoF made it possible for the player to install the mod on EET.

    @Aquadrizzt are you aware of any strange behavior between this function, v2.5, and EET?

    In not using the latest version (the one on Github) because I was never able to make it work. I think that @subtledoctor had the same problem. I'm using the previous version.
  • RaduzielRaduziel Member Posts: 4,714
    From DoF's thread, a solution proposed by @Radamanth77

    - ERROR: [override/QD_MCP01.spl] -> [override] Patching Failed (COPY) (Not_found)

    Ok, i think i found this issue and wanted to share my infos about.
    First of all thanks to Raduziel for the awesome work on an awesome mod.

    The problem comes out after an installation of EET on a 2.5 patched game. If you check the KITLIST in your override directory, you would notice that the GRIZZLY_BEAR kit got an extra 0x00004027 column.
    Extra becouse the previous one is 0x00004027 aswell.
    Just delete the last "extra" column and restart the installation of the mod. Everything will go fine then.
    I think the problem is in the patch itself BTW.

    Hope to help, I m testing loads of EET installations around this mod and I will share any finding.
  • RaduzielRaduziel Member Posts: 4,714
    @kjeron fixed the problem.

  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    Looks like now we have two solutions :)
  • inethineth Member Posts: 746
    edited November 2018


    - allowing a multiclass character to have one kit for each of their classes (e.g. a Berserker/Priest of Talos).

    Is there any mod which uses QDMULTI in this way?
    (The readme and linked mods seem to be more geared towards adding completely new kits as multiclass kits.)

    For example, I'd like to create a "Barbarian/Wildmage" kit which...
    • Can be chosen by F/M multiclass characters during chargen.
    • Has all the kit abilities and restrictions of the vanilla Barbarian 'kit' (tied to the character's Fighter level.)
    • Has all the kit abilities and restrictions of the vanilla Wild Mage kit (tied to the character's Mage level.)

    How would I go about doing this? in particular:
    1. Do I need to manually create a CLAB file that combines the level-up effects of both, or is there some shortcut?
    2. How would I call LAF qd_multiclass on it (e.g. with what base_class, Fighter or Mage)?
  • kjeronkjeron Member Posts: 2,368
    IIRC you just run the function twice, once for each base class, using a separate CLAB for each.

    However, there is little point in doing so for those kits (at least their vanilla forms), as everything about the Wild Mage is hardcoded, and IIRC linked to it's unusability bit, so you can just tie it all to a fighter base.
    The Barbarian's backstab immunity is also hardcoded but not linked to it's unusability bit. There is an effect that can grant it though.
  • RaduzielRaduziel Member Posts: 4,714
    edited February 2019
    @Aquadrizzt @subtledoctor

    Maybe you guys can clarify one thing to me...

    What exactly is the difference between giving to a NPC a single-class kit or a multi-class kit?

    Let's take Aerie as an example. Deities of Faerûn (DoF) has two versions of Fastpaw of Baervan, a cleric one and a mage-cleric one. Both with exact the same powers at the exact same levels.

    What would change if I apply to her the single-class kit instead of the multiclass one?

    In other words, what this tool does besides allowing a MC kit to be selected at CharGen?

    Thanks.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    The proficiencies are the same, so no harm done here. And she does receive it properly with the single class kit.

    The HLA table would be a problem indeed. DoF don't use custom HLA tables (yet) but probably she would get the Cleric HLA (defined by the kit) instead of the Cleric-Mage HLA.

    Thanks, I'll run some tests and provide feedback here.
  • RaduzielRaduziel Member Posts: 4,714
    Raduziel wrote: »
    The proficiencies are the same, so no harm done here. And she does receive it properly with the single class kit.

    The HLA table would be a problem indeed. DoF don't use custom HLA tables (yet) but probably she would get the Cleric HLA (defined by the kit) instead of the Cleric-Mage HLA.

    Thanks, I'll run some tests and provide feedback here.

    I'll correct myself here:

    The issue is with the proficiencies indeed. Despite having a kit added, the character follows the baseclass' restrictions.

    The HLA is not a problem: as long as the kit don't have an HLA table associated with it the baseclass is used.

    Thanks!
  • The user and all related content has been deleted.
  • The user and all related content has been deleted.
  • cromignecromigne Member Posts: 7
    I have trouble making a fighter/druid kit I guess it comes from the ~0x00004000 17~ in ADD_KIT, but I'm not sure. And how to you find what number to put here? I know it works if I want to make a F/M/C but not a F/D
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    You also don't need 0x00004000. You can perfect fine leave that as 0x00000000 unless you want to emulate a kit's specific restriction.

    To be honest, in my experience leaving that as 0x00000000 is a good practice.
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368
    Have you noticed any actual issues or improvements teksting to this? There is no kit that uses 0x00000000 in the base game (including cleric kits, which do not use any kit flags). I figure, if you want to make a kit that has no particular kit-based restrictions, best to err on the side of using what's already there and has been extensively bug-tested on and off for ~20 years - 0x00004000.
    0x00004000 is the generalist/trueclass exlclusive flag, and is used to exclude Wild-mage spells from generalists/trueclass, and can be used as such for any other spells/items as well.
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor I use that exactly because there's no kit that uses it. Didn't have a single problem so far.
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368
    you cannot tick something in NI to make an item unusable by that value, the way you can with other values."
    But you can. It works like any other unusable kit flag.
    The trueclass/generalist "kit" is hardcoded to use it, but other kits can use it as well.
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368
    What I meant is, even if you set kit kit to 0x00004000, there is no byte in the item file that corresponds to it, that you can set to make the item unusable by kits with that value.
    BIT6 of BYTE 0x2d of the ITM file.
    And even if there were a byte you could set that way, setting it would male the item unusable not just by your kit, but by every truclass "kit" and every kit that uses that same trueclass value... in other words things would be utterly broken.
    Items exclusive for Wild Mages already use it for exactly this purpose, so at least for mage kits, you should still use 0x00004000 as the base if you don't want them to be able to use such items.
  • TheWillowOfDarknessTheWillowOfDarkness Member Posts: 3
    I've been fumbling about with this and I've encountered an issue with the a multiclass kit (Cleric/Mage) not appearing at character creation. Is there something beyond the steps listed in kit tutorial to make them appear? I've gone into NearInfinity and confirmed the kit has installed (apparently) correctly to KIT.IDS, KITLIST and clastext. It's just doesn't appear at character creation.

    Since I thought it might be a lack of menu text, I tried borrowing multiclass_text from misc_functions in Faith and Powers, but it comes back with the same problem. All the different multi class button are created, but my kit doesn't attach to any of them. After selecting class, it skips over kit section as if there were no kits to select from.

    I'm just wondering if I've missed a step to link them. I think I must have because if I install Faith and Powers, the mulitclass kits appear fine.
  • kjeronkjeron Member Posts: 2,368
    @TheWillowOfDarkness possibly racial restrictions - CLSRCREQ.2da or the relevant K_CM_[R].2da.
  • TheWillowOfDarknessTheWillowOfDarkness Member Posts: 3
    Yeah, that'll be it. All the K_CM_[R].2da. files are empty. Thanks.
  • The user and all related content has been deleted.
  • TheWillowOfDarknessTheWillowOfDarkness Member Posts: 3
    Yeah, that'll be it. All the K_CM_[R].2da. files are empty. Thanks.

    If you INCLUDE this .tpa file, it will generate any missing K_[class]_[race].2da files. Then you run your ADD_KIT code and you can treat the multiclasses like any other:
    //RACIAL KIT AVAILABILITY_______
    ~K_CM_H K_CM_E K_CM_HE K_CM_G~
    

    The problem was my own forgetfulness. I had all the files and made them available, I just forgot to change the Add_Kit code after copying across a template.

    The template example was a thief kit, so my code was adding the kit under _T_ rather than _MC_.
  • HenouHenou Member Posts: 3
    Hello everyone, seeking a little bit of your great knowledge :)
    I'm currently working on a Cleric/Mage made out of two custom kits. However, i don't seem to be able to make the function qd_multiclass work properly. I've seen a lot custom kits using it with one kit in their multiclass. However, I didn't find any integrating two custom kits in one multiclass. Hence the fact, I'm here today.


    BEGIN ~Follower~
    INCLUDE ~Elminster/fl#add_kit_ee.tpa~
    INCLUDE ~Elminster/lib/qd_multiclass.tpa~


    ADD_KIT ~FOLLOWER~

    //ajouté à la fin de CLASWEAP.2da

    ~FOLLOWER 0 0 1 1 0 1 0 0~

    //ajouté en tant que colonne à la fin de WEAPPROF.2da

    ~FOLLOWER 0 0 0 0 1 1 0 1 0 0 0 0 0 0 0 0 1 1 0 0 1 1 1 0 0 0 0 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~

    //ajouté à la fin de ABCLASRQ.2da

    ~FOLLOWER 0 0 0 9 9 0~

    //ajouté à la fin de ABCLSMOD.2da

    ~FOLLOWER 0 0 0 0 0 0~

    //ajouté à la fin de ABDCDSRQ.2da

    ~FOLLOWER 0 0 0 0 0 0~

    //ajouté à la fin de ABDCSCRQ.2da

    ~FOLLOWER 0 0 0 0 0 0 ~

    //ajouté à la fin de ALIGNMNT.2da

    ~FOLLOWER 1 1 1 1 1 1 1 1 1~

    //ajouté à la fin de DUALCLASS.2da

    ~FOLLOWER 0 0 0 0 0 0~

    // chemin d'accès vers votre fichier 2da de type CLAB
    // FICHIER TEST-COPIE DE CLABF02 (berserker)
    // FICHIER A CREER
    // REFERENCE A MODIFIER

    ~Elminster/Follower/FOM.2da~

    // races et classes de PJ autorisées à utiliser ce kit, provenant de KITTABLE.2da

    ~K_C_D K_C_E K_C_G K_C_H K_C_HE K_C_HL K_C_HO~

    // indicateurs d'utilisabilité, ajouté à la fin de la nouvelle ligne dans KITLIST.2da
    // 0x00004000 fait correspondre les flags du kit à ceux de sa classe mère, le chiffre suivant indique la classe mère : 1 mage, 2 guerrier, 3 clerc, 4 voleur, 5 barde, 6 paladin, 11 druide, 12 rôdeur

    ~0x00004000 3~

    // Table de CHN à utiliser. Voir LUABBR.2da
    // Pas de CHN pour le Clerc puisque sa progression est arrêtée au niveau 10

    ~Cl0~

    // Liste de l'équipement du PJ créé dans ToB. Ajouté en tant que colonne à 25STWEAP.2da
    // NONE CAUSE NO REASON TO BEGIN DIRECTLY IN TOB
    // 20 * si bug

    ~* * * * * * * * * * * * * * * * * * * *~

    // Nom du kit en lettres minuscules et mixtes, et description du kit, ajoutés à KITLIST.2da
    // DESCRIPTION A REDIGER DANS LA TROISIEME LIGNE

    SAY ~follower~
    SAY ~Follower~
    SAY ~FOLLOWER~

    LAF fl#add_kit_ee
    STR_VAR
    kit_name = ~FOLLOWER~

    END

    COPY ~Elminster/SPFM001.spl~ ~override~

    BEGIN ~Chosen~
    INCLUDE ~Elminster/fl#add_kit_ee.tpa~

    ADD_KIT ~CHOSEN~

    //ajouté à la fin de CLASWEAP.2da

    ~CHOSEN 1 0 1 1 0 0 0 0~

    //ajouté en tant que colonne à la fin de WEAPPROF.2da

    ~CHOSEN 0 1 0 0 1 0 0 1 0 0 0 0 0 0 0 1 0 0 0 0 0 0 1 0 0 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0~

    //ajouté à la fin de ABCLASRQ.2da

    ~CHOSEN 0 0 0 9 9 0~

    //ajouté à la fin de ABCLSMOD.2da

    ~CHOSEN 0 0 0 0 0 0~

    //ajouté à la fin de ABDCDSRQ.2da

    ~CHOSEN 0 0 0 0 0 0~

    //ajouté à la fin de ABDCSCRQ.2da

    ~CHOSEN 0 0 0 0 0 0 ~

    //ajouté à la fin de ALIGNMNT.2da

    ~CHOSEN 1 1 1 1 1 1 1 1 1~

    //ajouté à la fin de DUALCLASS.2da

    ~CHOSEN 0 0 0 0 0 0~

    // chemin d'accès vers votre fichier 2da de type CLAB
    // FICHIER TEST-COPIE DE CLABF02 (berserker)
    // FICHIER A CREER
    // REFERENCE A MODIFIER

    ~Elminster/Chosen/COM.2da~

    // races et classes de PJ autorisées à utiliser ce kit, provenant de KITTABLE.2da

    ~K_M_H K_M_D K_M_G K_M_E K_M_HE K_M_HL K_M_HO~

    // indicateurs d'utilisabilité, ajouté à la fin de la nouvelle ligne dans KITLIST.2da
    // 0x00004000 fait correspondre les flags du kit à ceux de sa classe mère, le chiffre suivant indique la classe mère : 1 mage, 2 guerrier, 3 clerc, 4 voleur, 5 barde, 6 paladin, 11 druide, 12 rôdeur

    ~0x00004000 1~

    // Table de CHN à utiliser. Voir LUABBR.2da
    // FICHIER TEST-COPIE DE LUFi0.2da (Berserker, ici guerrier pur)
    // FICHIER A CREER
    // REFERENCE A MODIFIER

    ~Ma0~

    // Liste de l'équipement du PJ créé dans ToB. Ajouté en tant que colonne à 25STWEAP.2da
    // NONE CAUSE NO REASON TO BEGIN DIRECTLY IN TOB

    ~* * * * * * * * * * * * * * * * * * * *~

    // Nom du kit en lettres minuscules et mixtes, et description du kit, ajoutés à KITLIST.2da
    // DESCRIPTION A REDIGER DANS LA TROISIEME LIGNE

    SAY ~chosen~
    SAY ~Chosen~
    SAY ~CHOSEN~

    LAF fl#add_kit_ee
    STR_VAR
    kit_name = ~CHOSEN~

    END

    LAF qd_multiclass
    STR_VAR
    kit_name = ~FOLLOWER~
    kit_clab = ~FOM~
    base_class = ~P~
    mc_dir = ~Elminster/lib~

    END



    COPY ~Elminster/SPCM001.spl~ ~override~

    I've managed to get the two kits to show up on character creation independently, respectively in the cleric class and in the mage one, but I'm stuck on the way to use qd_multiclass to integrate those two in one and only multiclass.

    So any help or comment is welcome. I already thank in advance anyone who would be kind enough to direct me on the right path with this.

Sign In or Register to comment.