Skip to content

[Tool] Weidu functions for modding HLAs

[Deleted User][Deleted User] Posts: 0
edited August 2017 in General Modding
The user and all related content has been deleted.
Post edited by [Deleted User] on
IllustairinethelminsterGrammarsaladjackjackmf2112Abel
«1

Comments

  • [Deleted User][Deleted User] Posts: 0
    edited April 2016
    The user and all related content has been deleted.
    Grammarsaladmf2112
  • [Deleted User][Deleted User] Posts: 0
    edited April 2016
    The user and all related content has been deleted.
    Grammarsaladmf2112
  • [Deleted User][Deleted User] Posts: 0
    edited April 2016
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
    Illustairmf2112
  • rapsam2003rapsam2003 Member Posts: 1,636
    Very slick!
  • [Deleted User][Deleted User] Posts: 0
    edited August 2017
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
    rapsam2003mf2112
  • GrammarsaladGrammarsalad Member Posts: 2,582
    Brilliant

    ( bump)
  • GreenerGreener Member Posts: 430
    Is there anyway to allow a particular kit access to HLAs ahead of other kits in the same class?

    For example if I wanted a caviler to gain access to HLAs at level 15 instead of 20, is there a way to isolate that?
  • AquadrizztAquadrizzt Member Posts: 1,065
    @Greener, not to my knowledge. Pretty sure HLA level access is assigned on a class basis unfortunately.
  • The user and all related content has been deleted.
  • rapsam2003rapsam2003 Member Posts: 1,636

    2) lunumab.2da has a "rate" column which I thought could be very useful: maybe it could let a class get a new HLA every 2 levels, instead of every level. But, instead, putting a 2 in that column makes you get 2 HLAs per level. Which is crazy and I don't know how it could ever be useful. But it's what we're stuck with.

    Just musing here...I assume that putting "0.5" as a value isn't valid?

  • kjeronkjeron Member Posts: 2,367
    You can simulate it:
    - Drop the required level for HLA's to 1 for the class.
    - Assign a dummy prerequisite HLA to each HLA that doesn't already have one or use the MIN_LEV column.
    - Apply that dummy prerequisite HLA with Opcode 313 in each of that class's CLAB files one level before the desired level for it to become available (HLA's are done before the CLAB at level-up, so it has to be done on the previous level).

    Note - You cannot choose HLA's at character creation, so SoA and ToB starts will lose any HLA picks they would have gotten at those pre-starting levels. This might be something the new UI could actually be modified to fix.
  • AquadrizztAquadrizzt Member Posts: 1,065
    It might be possible with the new UI modding possibilities to make a better HLA system, but it would probably be a lot of work...
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,367

    - If you try to level up and have no available abilities, the game may not let you progress through the level-up process. I'm not certain if this with all the recent changes, but IIRC this is still a problem if, for instance, you run out if proficiency slots to spend.

    The game handles this just fine for HLA's, surprisingly.

    - if you want to give players a choice of multiple HLAs, you can give them all the same pre-requisite... but then they all become available. And then they are available every level, instead of every other level.

    It was meant as a response to Greener's selectively early access, sorry for confusion.
  • The user and all related content has been deleted.
  • kjeronkjeron Member Posts: 2,367

    Just musing here...I assume that putting "0.5" as a value isn't valid?

    No other .2da file in the game works like that so I strongly suspect it would not work. Take a look at e.g. wspatck.2da.
    Funny thing is, it does accept such values. But, it doesn't keep track of the fractional values between levels, so you have to gain enough levels at one time for the factor to be greater than 1.
    So with a 0.5 you would have to gain 2 levels at a time to get an HLA.
    With a .25 you would have to gain 4 levels at a time to get an HLA.
    With a .2 you would have to gain 5 levels at a time to get an HLA.
    etc...
    Fractional values greater than 1 also work(1.2, 1.5, 2.3, etc...) in the same way - fractional values are dropped after each levelup.

    So yeah, not remotely practical.
  • The user and all related content has been deleted.
  • GreenerGreener Member Posts: 430

    (Anyway, honestly, HLAs were designed very specifically to be used during the TOB portion of the game, IMHO it would be silly and unfunny to be throwing them around at level 15.)

    Thank you for the response, while I agree with you, I was simply exploring options, not attempting to create broken kits ect...

    In addition if the system was in fact more flexible I was envisioning a NWN feats style system with abilities that are more appropriate for the earlier levels.

    Regardless thank you for your hard work to date!
  • rapsam2003rapsam2003 Member Posts: 1,636
    edited July 2016
    Greener said:

    In addition if the system was in fact more flexible I was envisioning a NWN feats style system with abilities that are more appropriate for the earlier levels.

    IF ONLY. That would be SO awesome. But, no, this is why the InfinityEngine isn't fun. It's such a pain changing anything.
  • The user and all related content has been deleted.
  • rapsam2003rapsam2003 Member Posts: 1,636

    Well, to be fair, I have actually implemented a low-level feat system in Might & Guile. Like I said, there are two possible ways to do it. It's just very... complex, either way.

    Whereas the NWN feat system is pretty easy, by comparison.
  • The user and all related content has been deleted.
  • rapsam2003rapsam2003 Member Posts: 1,636

    Well, to be fair, I have actually implemented a low-level feat system in Might & Guile. Like I said, there are two possible ways to do it. It's just very... complex, either way.

    Whereas the NWN feat system is pretty easy, by comparison.
    I meant it was complex to create...
    I understand that. The nature of IE is that changing anything significant requires complex systems on top of what's already there.
  • The user and all related content has been deleted.
  • GreenerGreener Member Posts: 430
    edited August 2016
    @subtledoctor

    Does the action action_add_hla function allow for prerequisites?

    ABILITY ICON STRREF MIN_LEV MAX_LEVEL NUM_ALLOWED PREREQUISITE EXCLUDED_BY ALIGNMENT_RESTRICT 8 GA_SPCL914 * * 1 99 20 GA_SPCL913 * *
  • [Deleted User][Deleted User] Posts: 0
    edited August 2016
    The user and all related content has been deleted.
    Post edited by [Deleted User] on
    Greener
  • GreenerGreener Member Posts: 430
    edited August 2016
    @subtledoctor

    BEGIN ~Kensai High Level Ability revision~ ACTION_IF GAME_IS ~bg2ee~ THEN BEGIN // BG2EE INCLUDE ~Kensai Kit Revision/library/hla_actions.tpa~ // Modify HLA functions (subtledoctor) COPY ~Kensai Kit Revision/Spells/KENSAIH.spl~ ~override~ // Custom HLA Second Wind SAY NAME1 ~Second Wind~ SAY UNIDENTIFIED_DESC ~With extraordinary effort, a high-level kensai can avoid almost certain death. The effect lasts for 2 rounds, and during this time, the kensai cannot be reduced below 1 HP.~ LAF get_hla_table STR_VAR kit_name = ~KENSAI~ RET hla_table END ACTION_IF %hla_table% STRING_EQUAL_CASE ~fi0~ BEGIN COPY_EXISTING ~lufi0.2da~ ~override/lud5bh.2da~ LAF action_add_hla STR_VAR ability = ~GA_KENSAIH~ num_allowed = ~1~ END COPY_EXISTING ~LUABBR.2DA~ ~override~ SET_2DA_ENTRY 31 1 1 ~d5bh~ END ELSE BEGIN COPY_EXISTING ~lu%hla_table%.2da~ ~override~ LAF action_add_hla STR_VAR ability = ~GA_KENSAIH~ num_allowed = ~1~ END END END

    Something seems to be array when I try and add a custom HLA. For some reason I'm not coping the lufi0.2da to the override folder not am I copying or editing the LUABBR.2da.

    Thank you in advance...
  • [Deleted User][Deleted User] Posts: 0
    edited August 2016
    The user and all related content has been deleted.
  • GreenerGreener Member Posts: 430
    edited August 2016
    It works! Thank you.

    In addition to adding a custom HLA, I used your code to rearrange the order in which they appear.BEGIN ~Kensai High Level Ability revision~ ACTION_IF GAME_IS ~bg2ee~ THEN BEGIN INCLUDE ~Kensai Kit Revision/library/hla_actions.tpa~ COPY ~Kensai Kit Revision/Spells/KENSAIH.spl~ ~override~ SAY NAME1 ~Second Wind~ SAY UNIDENTIFIED_DESC ~With extraordinary effort, a high-level kensai can avoid almost certain death. The effect lasts for 2 rounds, and during this time, the kensai cannot be reduced below 1 HP.~ LAF action_remove_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL900~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL901~ ability = ~GA_SPCL901~ num_allowed = ~20~ END LAF action_remove_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL902~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL903~ ability = ~GA_SPCL903~ num_allowed = ~20~ END LAF action_remove_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL908~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL906~ ability = ~GA_SPCL906~ num_allowed = ~20~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL905~ ability = ~GA_SPCL905~ num_allowed = ~20~ prerequisite = ~GA_SPCL906~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL909~ ability = ~GA_SPCL909~ num_allowed = ~20~ prerequisite = ~GA_SPCL905~ END LAF action_add_hla STR_VAR kit_name = ~KENSAI~ ability = ~GA_SPCL913~ num_allowed = ~20~ END LAF action_add_hla STR_VAR kit_name = ~KENSAI~ ability = ~GA_SPCL914~ num_allowed = ~20~ prerequisite = ~GA_SPCL913~ END LAF action_add_hla STR_VAR kit_name = ~KENSAI~ ability = ~GA_KENSAIH~ num_allowed = ~1~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL907~ ability = ~GA_SPCL907~ num_allowed = ~20~ END LAF action_replace_hla STR_VAR kit_name = ~KENSAI~ remove_ability = ~GA_SPCL904~ ability = ~GA_SPCL904~ num_allowed = ~20~ END END
  • The user and all related content has been deleted.
Sign In or Register to comment.