Skip to content

[How to] Making kit mods for the EE!

1568101114

Comments

  • RaduzielRaduziel Member Posts: 4,714
    Thanks, I appreciate it :)
  • GwendolyneGwendolyne Member Posts: 461
    OK; I installed my function, created a Predator and killed two innocents: I was fallen!





    Here are the updated tpa and tra files (English and French).

  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    Now I noticed my mistake... I was using the string to "Undead Predator" instead of creating a new string for "Fallen Undead Predator".

    Thanks, @Gwendolyne

    Edit:

    A question: what's is this string you added at briefdesc (@7700004)? I couldn't find anything related to it.
  • GwendolyneGwendolyne Member Posts: 461
    It is just a remainder of the brief description string I did not use. I should have deleted this line, even if it is commented. Forget it. ;)
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    Questions:

    1) Is it possible to limit the maximum value of an attribute for a kit?

    2) Anyone knows how to remove a non-modded Kit?

    3) Is there a way of making a non-Warrior kit receive the Warrior HP-Bonus?
  • GwendolyneGwendolyne Member Posts: 461
    2) AddKit(TRUECLASS) removes the kit.
  • RaduzielRaduziel Member Posts: 4,714

    2) AddKit(TRUECLASS) removes the kit.

    Sorry, I wasn't clear. I want to remove it from the game, not from a specific character. Like we can make modded kits vanish by uninstalling them.

    Thanks!
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor I'll go with option 1, thanks!

    On top of the previous question (how to limit the maximum value of an attribute) I'll ask two more

    1) How to limit a kit access accordingly to character Genre? (IIRC @Gwendolyne knows this trick)

    2) How do I make a non-Warrior kit receive the Warrior's HP Bonuses for CON values higher than 16?

    Thanks!
  • GwendolyneGwendolyne Member Posts: 461
    edited January 2018
    Raduziel said:

    @subtledoctor I'll go with option 1, thanks!

    1) How to limit a kit access accordingly to character Genre? (IIRC @Gwendolyne knows this trick)

    You can't!
    But as usual, modding becomes very funny when you try to do what the engine can't do.
    As Unicorn Riders can only be female paladins, and knowing that a lot of players would try to create a male rider, the first spell in the LUA file assign a temporary script to the character. In the first area of the game, after a few seconds, it creates an invisible creature who checks the character gender. If he is a male, a very brief dialogue explains that Lurue does not accept males as followers and the player must decide if he wants another paladin kit, or stay a normal paladin.
    I wrote this script before the EE releases. But with the new opcodes parameters (#177), it might be possible to avoid the invisible creature.
    I did not try since my script works fine both with vanilla and EE games. ;)

    If you want it, I can share it.
  • RaduzielRaduziel Member Posts: 4,714
    @Gwendolyne

    I would love to!

    What would be the Resource at the Op177?
  • 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

    You can do a bunch of useful filtering now in the EEs with opcode 177/326, but you still need the invisible creature to do the AddKit action. So as long as you're already using a script+dialogue, you might as well do the filtering in the script.

    I was thinking about let all the kits powers linked to filtering opcodes. This way if one doesn't respect the kit's restriction he/she will not have access to any of its powers.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018

    Raduziel said:

    2) How do I make a non-Warrior kit receive the Warrior's HP Bonuses for CON values higher than 16?

    Not possible.

    The only way to approximate it is to add line(s) to splprot.2da checking your CON stat, and add a bunch of 326 effects (one for each CON score above 16) to a spell which is applied from 1st through 9th level.

    But:
    1) this will interact badly with mods that change hit dice
    2) the non-warrior getting this extra bonus will get an extra HD at 10th level, which warriors are not supposed to get
    Opcode 324/326 can check an attribute that's correct? This way I could give a bonus to HP through a check on CON value, giving the net amount accordingly.
  • [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
    @subtledoctor I'm making the Orc Pantheon.

    One goddess only accepts females as priests.

    Other god limits its priests to have a maximum score of 9 in INT.

    Other god gave its clergy the same HP bonuses for high Constitution that warriors receive.
  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor Nope, this thread only shows minimum values.
  • kjeronkjeron Member Posts: 2,367
    You can impose an ability score penalty at creation, effectively reducing the maximum, through 'ABCLSMOD.2DA', but you must be cautious, because the game will crash if the penalty reduces it below any minimums set by other 2DA files.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    Is it possible to create a "pool of spells" similar to the one Sorcerer and Shaman have?
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    I'll try to clarify:

    Sorcerer/Shaman have a sort of pool of spells. They have a X number of level Y spells that they can chose daily.

    I was thinking, can I make something similar with a warrior kit?

    But this post gave me a solution: use a Sorcerer as a base class and alter its spells to what I want instead of going nuts trying to discover the wheel.
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018

    You can't (and shouldn't) remove a vanilla kit. Your options are:

    1) Instead of adding a new kit as a replacement (I presume this is what you are trying to do), simply alter the vanilla kit to have the characteristics of your new kit.

    How can I do it? Should I create the kit normally but use the same internal name of the vanilla kit?

    Right now I'm working on a Battlepriest of Tempus kit. For BG(2)EE it is a piece of cake, but when it comes to IWD I need to overwrite the vanilla kit. What I'm doing so far is:



    ACTION_IF GAME_IS ~iwdee~ BEGIN

    //Alters the kit description

    STRING_SET ~40776~ @203

    //New CLA table, easier to do this way, I think.

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

    //Alters for the kits new restriction: can be specialist in everything but missile weapons.
    IDK if the values for columns and rows are corrected. I counted the columns and OHTEMPUS was the 63º class to appear, but the row counter is a lucky guess based on the code used on Wizard Slayer Rebalancing Mod.

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

  • [Deleted User][Deleted User] Posts: 0
    edited January 2018
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
  • RaduzielRaduziel Member Posts: 4,714
    @subtledoctor Thanks, I appreciate it :)
  • The user and all related content has been deleted.
  • RaduzielRaduziel Member Posts: 4,714
    edited January 2018
    @subtledoctor Thanks! Will use your code (option 1).

    Another thing: how are the proficiency rows counted?

    My accounting in WEAPPROF.2da goes from 0 (LARGE_SWORD) to 31 (2WEAPON) - my previous 32 was counting LARGE_SWORD as 1 instead of 0.

    Ok, 0 is exactly the first line of the .2da not the array.

    Again: thank you :)
Sign In or Register to comment.