Skip to content

[How to] Making kit mods for the EE!

1679111214

Comments

  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor

    Double-checking:

    @201 = battleguard of tempus
    @202 = Battleguard of Tempus
    @203 = BATTLEGUARD OF TEMPUS: [description]

    [spoiler]

    //A thank you to Subtledoctor for helping me out in the entries and giving me the string-related part of the code.

    ACTION_IF GAME_IS ~iwdee~ BEGIN

    ACTION_IF (FILE_EXISTS_IN_GAME ~clastext.2da~) BEGIN
    COPY_EXISTING ~clastext.2da~ ~override~
    COUNT_2DA_COLS cols
    READ_2DA_ENTRIES_NOW rows cols
    FOR (row = 1; row < rows; ++row) BEGIN
    READ_2DA_ENTRY_FORMER rows row 0 ~text~
    PATCH_IF ~%text%~ STRING_EQUAL_CASE ~OHTEMPUS~ BEGIN
    SET tempus_row = %row%
    END
    END
    SET_2DA_ENTRY %tempus_row% 3 cols RESOLVE_STR_REF (@201)
    SET_2DA_ENTRY %tempus_row% 5 cols RESOLVE_STR_REF (@202)
    SET_2DA_ENTRY %tempus_row% 4 cols RESOLVE_STR_REF (@203)
    BUT_ONLY
    END

    ACTION_IF (FILE_EXISTS_IN_GAME ~kitlist.2da~) BEGIN
    COPY_EXISTING ~kitlist.2da~ ~override~
    COUNT_2DA_COLS cols
    READ_2DA_ENTRIES_NOW rows cols
    FOR (row = 1; row < rows; ++row) BEGIN
    READ_2DA_ENTRY_FORMER rows row 1 ~text~
    PATCH_IF ~%text%~ STRING_EQUAL_CASE ~OHTEMPUS~ BEGIN
    SET tempus_row = %row%
    END
    END
    SET_2DA_ENTRY %tempus_row% 2 cols RESOLVE_STR_REF (@201)
    SET_2DA_ENTRY %tempus_row% 3 cols RESOLVE_STR_REF (@202)
    SET_2DA_ENTRY %tempus_row% 4 cols RESOLVE_STR_REF (@203)
    BUT_ONLY
    END

    COPY "Deities&Pantheons\Tables\OHTEMPUS.2DA" override

    COPY_EXISTING ~WEAPPROF.2DA~ ~override~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 3 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 4 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 5 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 6 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 7 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 8 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 9 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 10 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 11 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 12 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 13 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 14 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 15 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 16 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 17 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 18 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 19 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 20 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 21 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 22 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 23 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 24 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 25 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 26 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 27 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 28 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 29 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 30 62 ~1~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 31 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 32 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 33 62 ~2~
    SET_2DA_ENTRY_LATER ~RAWEAPPROF~ 34 62 ~3~
    SET_2DA_ENTRIES_NOW ~RAWEAPPROF~ 1
    PRETTY_PRINT_2DA
    BUT_ONLY_IF_IT_CHANGES
    END
    [/spoiler]

    Correct?
  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    Another question:

    Let's say that I want that an AP_Spell to have an effect on the kit only under certain circumstance.

    Can I use Op324 on this occasion or it will only make the check at the moment of the character creation?

    To be more specific what I want to do:

    1) Apply a bonus to Hit, Damage, AC and Saving only during the night.

    2) Apply a bonus to Turn Undead only during the day.

    For both, I was thinking of using Opcode 324 (make the character immune to the AP_SPL during the day for #1 and make it immune to the AP_SPL during the night for #2).

    Can I use this way? Is there a better approach?

    Thanks!
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714

    Can 324 be conditioned on time of day?

    If so, you would need to set the effects as repeating effects, renewing themselves every 6 seconds. With a 324 effect as the first effect in each repeated spell, immunizing the caster if the day/night conditions are (not) met.

    I've never thought of doing something like that, it's a bit complicated. But yeah it's theoretically possible.

    Apparently, it can:




    And I think I can make the spells renew themselves every hour, no? IIRC the game starts in a full hour, so the day/night won't happen in a fraction of an hour (like a second).


  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714

    Raduziel said:

    I think I can make the spells renew themselves every hour, no?

    Theoretically, sure. And it might be fine. But the 232 effect in an .EFF is the most reliable way I've found to do this kind of thing (demonstrably better than 272, and self-casting spells, and script checks, in my experience). So I'll stick with that, and I recommend it to you as well.
    I was looking at Opcode 232 and there's an option "Time of the Day Is." What about using it instead of Opcode 324?

    I'm afraid that making a permanent spell that repeats itself every round will affect the game performance somehow.

    An alternative would be turning the spell into an At Will one and use 324 to limit the time it can be used.

    And I must use the Opcode (forgot the number now) that prevents spells from stacking. Usually it goes on top of everything, but as 324/232 also are used on top of any other effect. Who should come first?

    Thanks!
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,368
    The "Time of Day" option in opcode 232 could work in place of "hp < 102%" here to an extent: Both "Day" and "Night" would work well because they are even values, while "Dusk" and "Morning" would not work well because they would trigger the "contingency fired" feedback every time, so there would be 2 hours of the day(Morning/Dusk) with no bonuses.

    Opcode 232 needs to be in an external EFF called through opcode 177, due to its hardcoded aspects when used in spells.
    The spell applied in the CLAB would look like this:
    Opcode=321, target=1, resource=(THIS)
    Opcode=177, target=1, timing=9, resource=(SUBEFF1)
    Opcode=177, target=1, timing=9, resource=(SUBEFF2)
    Then either this:
    SUBEFF1: Opcode=232, parameter1=0(Caster), parameter2=TimeOfDay(13), special=0(Day), resource=(SUBSPL1)
    SUBEFF2: Opcode=232, parameter1=0(Caster), parameter2=TimeOfDay(13), special=2(Night), resource=(SUBSPL2)
    SUBSPL1:
    Opcode=321, target=1, resource=(THIS)
    Bonus to Turn Undead.  Duration = 14
    SUBSPL2:
    Opcode=321, target=1, resource=(THIS)
    Bonus to hit, AC, Saves.  Duration = 14
    or
    SUBEFF1: Opcode=232, parameter1=0(Caster), parameter2=Hp < %(21), special=102, resource=(SUBSPL1)
    SUBEFF2: Opcode=232, parameter1=0(Caster), parameter2=Hp < %(21), special=102, resource=(SUBSPL2)
    SUBSPL1:
    Opcode=321, target=1, resource=(THIS)
    Opcode=318, target=1, parameter2 =90, duration = 1, resource=(THIS)
    Bonus to Turn Undead.  Duration = 14
    SUBSPL2:
    Opcode=321, target=1, resource=(THIS)
    Opcode=318, target=1, parameter2 =89, duration = 1, resource=(THIS)
    Bonus to hit, AC, Saves.  Duration = 14
  • RaduzielRaduziel Member Posts: 4,714
    @kjeron

    Thanks!

    The TU bonus and the other bonuses are from two different spells in two different kits (Lathander and Shar respectively).

    Would the "not indoors" flag work to limit the TU even further (make it work only during the day AND outdoors)? If so, in which spell should I set this flag?

    According to PnP the TU bonus is granted only vs undead under direct sunlight, I gave up on this limitation, but thinking now don't seem too tricky to use.
  • [Deleted User][Deleted User] Posts: 0
    edited February 2018
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
  • RaduzielRaduziel Member Posts: 4,714
    Thank you, guys!

    Stand back, then. Never made this recipe before. Could be messy...
  • kjeronkjeron Member Posts: 2,368
    I don't think the "not indoors" flag works on subspells. It might be possible through opcode 318/splprot, but I don't remember entirely.
  • RaduzielRaduziel Member Posts: 4,714
    One question about CLSWPBON.2da:

    Are you guys sure that changing the first column (GETS_PROF_APR) will give the kit both extra APR at levels 7 and 13 and extra APR from proficiency?

    Because the column name makes me think that it will give APR only due to proficiency.

    Is there a way to make the kit receive extra APR as a Fighter without receiving extra APR due to proficiency? My workaround is an AP_SPELL with Opcode 1 (p1 = 6, p2 = 0, Timing = 9) applied at levels 7 and 13, but maybe there is some better (cleaner or easier) way to do so.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor Because some cleric kits (pretty much every warrior-like deity) gives extra APR at levels 7 and 13.

    I'll keep the spell, then.

    Thanks!! :)
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    @subtledoctor Nope. They only get the extra APR from level 7 and 13, the only thing they get from specialization are the bonuses to hit and damage.

    IDK why TSR decided to build the kit this way TBH. An extra attack with 25 STR delivering full damage makes a big difference IMHO.

    But I'm thinking about changing it for better mod compatibility. For a PnP purist like me it hurts (and that's the reason why I'm not making it a multiclass kit).

    About the multiclass kit: that thread should get some love. I thought about using it but the Readme seems incomplete to me so I got over it.

    Edit: Not all deities that gives extra-APR gives specialization (Helm, for example).
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714

    Raduziel said:

    About the multiclass kit: that thread should get some love. I thought about using it but the Readme seems incomplete to me so I got over it.

    It's really easy. Just drop the qd_mc folder somewhere in your mod, ACTION_INCLUDE the .tpa file it before you install the kit, and then call the function after the kit is installed, specifying the class and the clab table file name. And (IMHO) it's pretty cool to select a multiclass and then see a bunch of kits on the next screen. Admittedly you do need to balance it carefully since multis are already powerful.
    Don't I need to create new things like other HP.2da and things like that?

    Every single mod that I reverse-engineered looking for a way to implement it had several other files related to multiclass kits.

  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    @subtledoctor Decided to go with the clswpbon.2da

    The way I was doing would give an extra APR even for Fighter/Clerics and I didn't consider that until your post about multiclassing kits.

    So, thanks :)

    Edit: I know I could restrict it using Op324 to don't affect FC, RC, FMC, FTC, but it sounds like too much work for a non-optimal result.
  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor

    That, for example, is not adressed anywhere on the Readme.
    mc_dir = ~might_and_guile/lib/qd_mc~
    Are you sure that no other 2da is needed?

    And as I asked on this tool thread, is it possible to make this kit available for several classes and multis at the same time?

    Let's take Baervan, for example. Could I state
    ~K_RC_G K_C_G, K_CT_G, K_CM_G~
    ?

    Thanks.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018

    Probably not. I don't think kits show up in the menus if their class identification number doesn't match the menu. So for instance the Tomb Runner is a fighter/thief kit, #9, and we add it to K_FT_H.2da.

    But it appears on the K_FT_H array because you stated it in the kit's code.

    So... the same way it can alter at the same time, let's say K_FT_H and K_FT_D it would probably also alter K_FT_D and K_T_D.

    I really can't see why not, but there's always a strong possibility (and probability) that I'm derping.

    I think that it won't hurt to make a test when everything is ready. Worse case scenario I alter the code to be only a Cleric kit (as God and TSR stated) and problem "solved".


    Edit: Ok, now I notice that all the K_XY_Z are in the same array (KITTABLE.2da). It throws my theory on the garbage.

  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    Anyone can tell me how to create/edit BAM files?

    I'm having a bad time trying to select icons for all my kits special abilities and decided to create some of my own.

    Thanks!
  • GwendolyneGwendolyne Member Posts: 461
    edited January 2018
    You need 3 BMP images (indexed, ie 8 bits with 256 colors) : B (the one you choose in chargen or with the spell select button), C (spellbook) and A (scroll).

    You must create them (or edit game ones), then use NI BAM editor to create your bam files.

    You will find spell palettes (white, blue, red) in miloch and sam's Bambatcher tool.
    Post edited by Gwendolyne on
  • RaduzielRaduziel Member Posts: 4,714

    You need 3 BMP images (indexed, ie 8 bits with 256 colors) : B (the one you choose in chargen or with the spell select button), C ((spellbook) and A (scroll).

    You must create them (or edit game one), then use NI BAM editor to create your bam files.

    You will find spell palettes (white, blue, red) in miloch and sam's Bambatcher tool.

    My heroine <3

    As it is for special abilities (ie no scroll and no spellbook) can I just use B and leave the other blank?

    Thanks!
Sign In or Register to comment.