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?
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.
- 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.
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.
(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.
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.
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.
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.
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.
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
Comments
( bump)
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?
- 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.
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.
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!
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 * *
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...
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