Jump to content


Photo

Refinements HLAs, modularized and on BG2EE


  • Please log in to reply
78 replies to this topic

#21 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 02 August 2016 - 11:06 PM

I know that your idea currently is not to be bothered making HLA available to bg1 players with the level cap remover, but I would like to ask you to re-consider that.
Why ?

I ask cause it would be insane to go to those levels AT BG1.
Now you can make the abilities you get from a HLAs in the BG1 too if you install a custom kitted char, I don't see any reason to have them available at BG1 otherwise, and even then it's for user comfort. Aka you want to cheese the whole lot out of the system.

Edited by The Imp, 03 August 2016 - 03:48 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#22 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 03 August 2016 - 03:43 AM

Sorry, I just don't have the time to look into doing that. RL and all.

#23 Sergio

Sergio
  • Member
  • 954 posts

Posted 03 August 2016 - 12:57 PM

it's not about cheese the imp. IF you solo the game and you reach higher levels, it would be helpful to have these HLA especially against the Siege of dragonspear boss.


Low hung brow, dazed look on your face..... It appears that you are correct, my friend. You are indeed a complete imbecile.


#24 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 03 August 2016 - 02:06 PM

Solo... yeah, but the thing is, not even the 6x 250 000xp is 3 000 000... the difference is an twice the amount. And that's calculating that you get a x6 from the quest completion amount, ouh, and that you have the party members to get the quests.. see now ?
You probably will never get that amount of XP even if you use an xp multiplier, and nest with the basilisks.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#25 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 03 August 2016 - 05:28 PM

No, it's not a bad idea. I'm just not the person to do it.

Anyway EET is being released as we speak, and EET gives you a BG1 game in the BG2EE engine with all HLAs (including Refinements HLAs if you install it) so there is no need for a new mod - just play EET.

#26 Sergio

Sergio
  • Member
  • 954 posts

Posted 04 August 2016 - 10:20 PM

@ Jarno.

got 1506992 xp before meeting sarevok with no xp changing mods.

And that was with no mod, me playing solo, and with thieves\mage being worthless if you don't add the mod to have bg2 xp for lockpicking (got a maximum of 90 xp for lock) and bg2 xp for mage scrolls. And I didn't even do stuff for the sake of experience:

> like killing Shandalar
> or killing the girl inside Balduran's isle that is between you and the ship to go back home (thanks to SCS that makes you able to spare her if you are good and have enough reputation + you helped the population in the isle)
> nor I always took the best xp path (for example, killing the sirine inside the balduran's isle instead of just getting the body like I did)

Do you think that 300 k is irrealistic? Even without mods, I doubt you cannot get it. Add a few 'fair' mods, especially for solo, and I think you could reach HLA with almost no difficulty.


@Subtledoctor. Thank you. I had to try. The only shame is that EET is still a RC and I doubt it was tested enough with other mods. I would be a tester, more than a player


Edited by Sergio, 04 August 2016 - 10:25 PM.

Low hung brow, dazed look on your face..... It appears that you are correct, my friend. You are indeed a complete imbecile.


#27 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 05 August 2016 - 01:09 AM

Do you think that 300 k is irrealistic? Even without mods, I doubt you cannot get it. Add a few 'fair' mods, especially for solo, and I think you could reach HLA with almost no difficulty.

Well, if we talk about fair mods ... remember the original games, where there was this nice thing called XP cap, that each time you loaded the game, you got sent back to 151 000xp(?the amount?), if you had more. The 3M is quite much out of that range. And you got to build your solo character for that respect... it doesn't need to be able to kill everything, just the ones you need to kill.

 

Ouh, and by the way, if you play as a mage or a thief, you should put your XPbonus.2da full of zeroes. Just so it's "fair".


Edited by The Imp, 10 August 2016 - 08:32 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#28 Sergio

Sergio
  • Member
  • 954 posts

Posted 05 August 2016 - 08:05 AM

Fair is a subjective thing. If I add SCS, and I play solo, It is more than reasonable that I play with no xp cap. Beside we are going into subjective stuff, and it is not that that I want to discuss


Low hung brow, dazed look on your face..... It appears that you are correct, my friend. You are indeed a complete imbecile.


#29 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 05 August 2016 - 09:40 AM

Well and you can install EET and everything would be OK-ish. ... :P


Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#30 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 14 August 2016 - 08:10 PM

Okay, another release, this one with just some minor bug-fixes:
- Thieves were not losing UAI as they should. Now they do.
- F/C and C/R were not getting Combat Prayers due to a typo. Fixed.
- A number of multiclass tables were not matching the readme due to carelessness and impatience on my part. It was a long slog to perfect them, but they are fixed now.

The first post in the thread is updated with the new link, but here it is too: "New Refinements beta 0.7" or "Refinements v4 rc7" or whatever you want to call it.

https://github.com/s...eleases/tag/0.7

#31 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 15 August 2016 - 02:17 AM

Why does your "release" contains the .gitattribute file ?

Also in the folder called refinements-0.7.zip\refinements-0.7\refinements\lib\ there's a file called "hlab.tpa.rej" .. Why ?

 

The real reason why I was looking for this was to see if there was an easy way to disable the removal of the UAI in the .tp* -files and there's doesn't seem to be.. could you construct one ?


Edited by The Imp, 15 August 2016 - 02:31 AM.

Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#32 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 06:03 AM

You can do that pretty easily with my HLA-table-editing functions:

https://forums.beamd...ing-hlas#latest

Basically, run through kitlist.2da, filter for thief kits, extract the IDS name of each one, and then
LPF patch_remove_hla STR_VAR remove_ability = ~AP_SPCL915~ END


#33 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 06:14 AM

Sorry, I misunderstood. That is how you would make a mod that removes UAI from every thief kit.

You want a version of Refinements that leaves UAI in? Easy.

1) Open Refinements/lib/hla_thief.tpa and comment out every line that looks like this:
LAF action_remove_hla STR_VAR kit_name = ~THIEF~ remove_ability = ~AP_SPCL915~ END

2) A better method: leaves those removal lines, and re-add the ability with Use Scrolls as a pre-requisite:
ACTION_IF ENGINE_IS ~soa tob bgt~ BEGIN
  LAF action_add_hla STR_VAR kit_name = ~THIEF~ ability = ~AP_SPCL915~ num_allowed = ~1~ prerequisite = ~AP_TG#USSC~ END
 END
 ACTION_IF GAME_IS ~bgee bg2ee eet iwdee~ BEGIN
  LAF action_add_hla STR_VAR kit_name = ~THIEF~ ability = ~AP_SPCL915~ num_allowed = ~1~ prerequisite = ~AP_D5_SCRL~ END

(Of course that would mean only kits that get Use Scrolls would get UAI - so not the Assassin or Bounty Hunter. But you could give them Use Scrolls as well - just copy the code from the Swashbuckler.)

#34 The Imp

The Imp

    Not good, see EVIL is better. You'll LIVE.

  • Member
  • 5150 posts

Posted 15 August 2016 - 07:58 AM

oL6DoAe.gif


Yep, Jarno Mikkola. my Mega Mod FAQ. Use of the BWS, and how to use it(scroll down that post a bit). 
OK, desert dweller, welcome to the sanity, you are free to search for the limit, it's out there, we drew it in the sand. Ouh, actually it was still snow then.. but anyways.


#35 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 10:00 AM

Oh yeah - as to the "hlab.tpa.rej" file: I have no idea what that is or what it does. It is in the base Refinements 3.31 folders, so I didn't touch it.

(I assume it's just a working file left by the original authors, and can safely be removed. But I am trying to touch as little as possible here. If something isn't specifically related to one of the changes I am making, then I leave it alone. The goal here is to match v3.31 perfectly, with only a few specific improvements that I outlined in the first post (fl#add_kit_ee function for Sword Angel, HLAs installable by class, new Use Scrolls technique, new HLA table patching method, and improved RR compatibility).

#36 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 10:20 AM

Incidentally, this discussion has also made me concerned about something else: mod kits.

Refinements 3.31 just overwrites (for thieves, say) LUTH0.2da, and creates or overwrites LUTH2.2da, LUTH3.2da, and LUTH4.2da. It is installed late in the order, so I believe mod kits are excluded except to the extent they are coded to use one of those files, piggybacking on a vanilla kit's table. Generally there's only one vanilla HLA table per class. So AFAIK most mod kits *do* just piggyback on LUTH0.2da.

The problem now is, this new version of Refinenents moves the various HLA tables for each kit out to brand new .2da files before modifying them. So the vanilla kits will get awesome Refinements HLAs, and any mod kits installed will still use the stupid vanilla table. In other words, mod kits can no longer piggyback their way into getting Refinements HLAs.

I think the solution to this is to have a 'default' treatment for HLA tables (probably mimicking the trueclass changes) and apply it to every mod kit. Basically, like I suggested to Jarno above, run through kitlist (or luabbr) starting with the first row after the vanilla entries and applying edits like the ones already here. Probably have to use the action functions in an INNER_ACTION, in case two mod kits use the same table.

A nice by-product of this is that, if a mod kit does *not* use a vanilla table but instead takes the effort to specify a custom HLA table, then that custom table will be 'Refinement-ized' in a way that does not undo any of that mod author's work. Basically you'll get the best of both worlds.

It will take a bit of fiddling to make that work, but I don't see any technical hurdle that can't be overcome. I'll add the default treatment soon for v0.8.


Edited by subtledoctor, 15 August 2016 - 10:35 AM.


#37 khelban12

khelban12
  • Member
  • 33 posts

Posted 15 August 2016 - 10:40 AM

Oh yeah - as to the "hlab.tpa.rej" file: I have no idea what that is or what it does. It is in the base Refinements 3.31 folders, so I didn't touch it.

(I assume it's just a working file left by the original authors, and can safely be removed. But I am trying to touch as little as possible here.

It is a left-over reject file.
% patch -p0 -i /tmp/big\ world\ fixpack/refinements/setup-refinements.tp2.patch --binary
patching file setup-refinements.tp2
Hunk #1 FAILED at 16.
Hunk #2 FAILED at 32.
2 out of 2 hunks FAILED -- saving rejects to file setup-refinements.tp2.rej

When you apply a patch and for some reason it can't be applied (in this case i try to apply a BWF patch made for the old refinements code so it obviously can't be applied to your version), then a .rej file is created that contains the hunks that could not be applied.

#38 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 01:34 PM

The only fix I see there is the broken kit.ids patch. I apply the fix to kit.ids, but I'm using the most recent version suggested by Wisp and Camdawg in March/April of this year. So if that's it, my version should not need anything from the BWFixPack.

#39 subtledoctor

subtledoctor
  • Modder
  • 656 posts

Posted 15 August 2016 - 05:57 PM

Okay!  I did that pretty quickly.  Here is rc8:

https://github.com/s...eleases/tag/0.8

 

This adds support for mod kits, as I described above.  After patching the base HLA tables for each vanilla kit and multiclass combo it runs a routine that looks for any kits added later, patching their HLA tables with the same changes applied to the trueclass kits.  The code looks like this:

 

ACTION_IF ENGINE_IS ~soa tob bgt~ BEGIN
  OUTER_SET kitlist_row = 31
END
ACTION_IF GAME_IS ~bgee bg2ee eet iwdee~ BEGIN
  OUTER_SET kitlist_row = 40
END
COPY_EXISTING ~kitlist.2da~ ~override~
//  COUNT_2DA_ROWS num_rows
  COUNT_2DA_COLS num_cols
  READ_2DA_ENTRIES_NOW ~r2en_kitlist~ num_cols
  PATCH_IF (%r2en_kitlist% >= %kitlist_row%) BEGIN
    FOR (row = %kitlist_row%; row < r2en_kitlist; row += 1) BEGIN
      READ_2DA_ENTRY_FORMER ~r2en_kitlist~ row 1 kitlist_name
      READ_2DA_ENTRY_FORMER ~r2en_kitlist~ row 8 class_num
      PATCH_IF (class_num == 12) BEGIN // ranger
        INNER_ACTION BEGIN
            LAF action_remove_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ remove_ability = ~GA_SPCL901~ END
            LAF action_remove_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ remove_ability = ~GA_SPCL902~ END
            LAF action_remove_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ remove_ability = ~GA_SPCL903~ END
            LAF action_add_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ ability = ~AP_TG#TOUG~ num_allowed = ~5~ END
            LAF action_add_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ ability = ~GA_TG#ENDU~ num_allowed = ~1~ END
            LAF action_add_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ ability = ~AP_TG#AMBI~ num_allowed = ~1~ END
            LAF action_add_hla STR_VAR kit_name = EVAL ~%kitlist_name%~ ability = ~AP_TB#HATE~ num_allowed = ~1~ END
        END
      END
    END
  END
BUT_ONLY

 

 

So, this should definitively be installed *after* any kit mods.  Note, this uses my table-patching functions, so if there is a mod kit like a Revised Archer or something, with crazy HLA Called Shots and other stuff relating to ranged combat, all that that will still be there.  That Revised Archer kit will have its own custom HLAs but will also get access to Toughness, Endurance, Ambidexterity, and Racial Nemesis.

 

A note about Rogue Rebalancing: I have suggested that RR adopt these HLA functions in order to be compatible with other HLA-changing mods that use them, but it seems that such a major change in the code is not in the cards for RR.  The thing is, no matter what kind of table-changing code it uses, the RR thief and bard HLAs currently do NOT apply to mod kits.  I cannot fix that from here, in the Refinements code.  What I can do is, in the case of mod kits, where Refinements would ordinarily defer to RR HLAs if they are detected?  In those cases Refinements will *not* defer to RR (which isn't in those tables anyway).  So for mod kits, all Refinements HLAs will be installed regardless of whether RR is present.  It's not perfect (perfect would be RR applying something like the code I posted above), but the important thing is that, if you install Refinements, no kit will be stuck with the stupid vanilla HLA selection.

 

Any feedback is welcome on this point!


Edited by subtledoctor, 15 August 2016 - 06:00 PM.


#40 the bigg

the bigg

    2083 is a prime number.

  • Modder
  • 3331 posts

Posted 16 August 2016 - 01:34 PM

(Of course that would mean only kits that get Use Scrolls would get UAI - so not the Assassin or Bounty Hunter. But you could give them Use Scrolls as well - just copy the code from the Swashbuckler.)


That was a technical limitation that was solved with ToBex, related to how unusabilities match with those kit's thieving skill points. It should already been removed, and can surely be removed from the EE implementation (which doesn't use unusabilities anyway).

Italian users: help test the Stivan NPC!

Author or Co-Author: WeiDU - Widescreen - Generalized Biffing - Refinements - TB#Tweaks - IWD2Tweaks - TB#Characters - Traify Tool - Some mods that I won't mention in public
Maintainer: Semi-Multi Clerics - Nalia Mod - Nvidia Fix
Code dumps: Detect custom secondary types - Stutter Investigator

If possible, send diffs, translations and other contributions using Git.