Jump to content

Weapon proficiency fixes


CamDawg

Recommended Posts

This combines a number of BD fixes to weapprof.2da.

 

File WEAPPROF.2DA; a modified version of weapon proficiency allowance table. It resolves the following errors in the weapon proficiency allowances:

 

Fighter/mage/clerics and ranger/clerics were only being allowed one proficiency point in Two-Handed instead of two, as all other warrior multiclasses are allowed

 

Cleric/thieves were being allowed a proficiency in darts though any multiclass of cleric cannot use darts

 

Fighter/druids, fighter/mage/clerics and ranger/clerics were only being allowed two proficiency points in Two-Weapon (dual-wielding) whereas all other fighter multiclasseses are allowed three (rangers also were specifically stated to be the most Two-Weapon class, getting two free proficiencies on character creation)

 

Once Again Updated Weapon Proficiencies Fix resolves the following errors in the class weapon proficiencies table: Fighter/Druids could only put one proficiency into Two-Handed and Two-Weapon, Fighter/Mage/Clerics and Ranger/Clerics could only put one proficiency into Two-Handed but three into Clubs, Ranger/Clerics could only put two proficiencies into Two-Weapon, Paladins could put three proficiencies into Two-Weapon, Kensai and Cavaliers were not being allowed Darts proficiencies though it was confirmed that they may use all thrown vs. launched ranged weapons, Monks were not being allowed to choose Katana proficiency though they can use Katanas, Swashbucklers were not being allowed Katana specialization though they may specialize in any melee weapon they can use (which are the weapons thieves can use) and Swashbucklers were being allowed specialization in Short Bows, Crossbows and Slings though they may only specialize in melee weapons. (Note: Characters overproficient in any reduced proficiency will not lose the specialization point by installing this fix; it only affects future proficiency point assignment.)

 

COPY_EXISTING ~WEAPPROF.2da~ ~override~
 SET_2DA_ENTRY 13 42 54 ~2~ // 1 > 2 stars for swashbucklers in katanas
 SET_2DA_ENTRY 13 52 54 ~1~ // 0 > 1 star for monk in katanas
 SET_2DA_ENTRY 17 20 54 ~2~ // 3 > 2 stars for f/m/c in clubs
 SET_2DA_ENTRY 17 21 54 ~2~ // 3 > 2 stars for c/r in clubs
 SET_2DA_ENTRY 23 42 54 ~1~ // 2 > 1 star for swashbucklers in xbows
 SET_2DA_ENTRY 25 42 54 ~1~ // 2 > 1 star for swashbucklers in shortbows
 SET_2DA_ENTRY 26 32 54 ~0~ // 5 > 0 stars for kensai in darts
 SET_2DA_ENTRY 26 33 54 ~0~ // 2 > 0 stars for cavalier in darts
 SET_2DA_ENTRY 27 42 54 ~1~ // 2 > 1 star for swashbucklers in slings
 SET_2DA_ENTRY 28 19 54 ~2~ // 1 > 2 stars for f/d in 2 handed
 SET_2DA_ENTRY 28 20 54 ~2~ // 1 > 2 stars for f/m/c in 2 handed
 SET_2DA_ENTRY 28 21 54 ~2~ // 1 > 2 stars for c/r in 2 handed
 SET_2DA_ENTRY 31  9 54 ~2~ // 3 > 2 stars for paladin in 2 wpn style
 SET_2DA_ENTRY 31 19 54 ~3~ // 1 > 3 stars for f/d in 2 wpn style
 SET_2DA_ENTRY 31 20 54 ~3~ // 2 > 3 stars for f/m/c in 2 wpn style
 SET_2DA_ENTRY 31 21 54 ~3~ // 2 > 3 stars for c/r in 2 wpn style

Link to comment

Though it's unlikely for this bug to occur in a regular game, I felt it's better to err on the side of caution. When a character levels up, they may get an opportunity to place additional stars in weapon proficiencies. If the engine determines there are no more places to put stars, then this step is skipped. When determining if there are avialable slots, the engine includes all of the unused proficiency rows (EXTRAx) in weapprof.2da.

 

This leads to a serious bug where a high level character can have all available weapon proficiencies filled, but the engine insists on placing another star. As there is no way to cancel or abort, the game must be closed. To prevent this, I've added the two nested WHILE loops to patch everything in the EXTRAx lines to zero. I had originally considered doing it with R_T, but decided to go with S_2_E as it's a bit more controlled.

 

COPY_EXISTING ~WEAPPROF.2da~ ~override~
 SET_2DA_ENTRY 13 42 54 ~2~ // 1 > 2 stars for swashbucklers in katanas
 SET_2DA_ENTRY 13 52 54 ~1~ // 0 > 1 star for monk in katanas
 SET_2DA_ENTRY 17 20 54 ~2~ // 3 > 2 stars for f/m/c in clubs
 SET_2DA_ENTRY 17 21 54 ~2~ // 3 > 2 stars for c/r in clubs
 SET_2DA_ENTRY 23 42 54 ~1~ // 2 > 1 star for swashbucklers in xbows
 SET_2DA_ENTRY 25 42 54 ~1~ // 2 > 1 star for swashbucklers in shortbows
 SET_2DA_ENTRY 26 32 54 ~0~ // 5 > 0 stars for kensai in darts
 SET_2DA_ENTRY 26 33 54 ~0~ // 2 > 0 stars for cavalier in darts
 SET_2DA_ENTRY 27 42 54 ~1~ // 2 > 1 star for swashbucklers in slings
 SET_2DA_ENTRY 28 19 54 ~2~ // 1 > 2 stars for f/d in 2 handed
 SET_2DA_ENTRY 28 20 54 ~2~ // 1 > 2 stars for f/m/c in 2 handed
 SET_2DA_ENTRY 28 21 54 ~2~ // 1 > 2 stars for c/r in 2 handed
 SET_2DA_ENTRY 31  9 54 ~2~ // 3 > 2 stars for paladin in 2 wpn style
 SET_2DA_ENTRY 31 19 54 ~3~ // 1 > 3 stars for f/d in 2 wpn style
 SET_2DA_ENTRY 31 20 54 ~3~ // 2 > 3 stars for f/m/c in 2 wpn style
 SET_2DA_ENTRY 31 21 54 ~3~ // 2 > 3 stars for c/r in 2 wpn style
 SET "row" = 50 // the nested WHILE loops remove any possible points in the EXTRAx profs
 WHILE ("%row%" > 32) BEGIN
   SET "col" = 53
   WHILE ("%col%" > 4) BEGIN
     SET "col" = ("%col%" - 1)
     SET_2DA_ENTRY "%row%" "%col%" 54 ~0~
   END
   SET "row" = ("%row%" - 1)
 END
 BUT_ONLY_IF_IT_CHANGES

Link to comment

To make it faster, I changed the last chunk to just patch the needed columns. And yes, this should address beastmaster > cleric dualclasses, I believe. I tried a BM dualled to cleric at level 9, and maxed out proficiency slots. Levelling all the way to 8M xp, I was never forced to place another prof point once I hit maximum.

 

Included in alpha 3.

 

COPY_EXISTING ~WEAPPROF.2da~ ~override~
 SET_2DA_ENTRY 13 42 54 ~2~ // 1 > 2 stars for swashbucklers in katanas
 SET_2DA_ENTRY 13 52 54 ~1~ // 0 > 1 star for monk in katanas
 SET_2DA_ENTRY 17 20 54 ~2~ // 3 > 2 stars for f/m/c in clubs
 SET_2DA_ENTRY 17 21 54 ~2~ // 3 > 2 stars for c/r in clubs
 SET_2DA_ENTRY 23 42 54 ~1~ // 2 > 1 star for swashbucklers in xbows
 SET_2DA_ENTRY 25 42 54 ~1~ // 2 > 1 star for swashbucklers in shortbows
 SET_2DA_ENTRY 26 32 54 ~0~ // 5 > 0 stars for kensai in darts
 SET_2DA_ENTRY 26 33 54 ~0~ // 2 > 0 stars for cavalier in darts
 SET_2DA_ENTRY 27 42 54 ~1~ // 2 > 1 star for swashbucklers in slings
 SET_2DA_ENTRY 28 19 54 ~2~ // 1 > 2 stars for f/d in 2 handed
 SET_2DA_ENTRY 28 20 54 ~2~ // 1 > 2 stars for f/m/c in 2 handed
 SET_2DA_ENTRY 28 21 54 ~2~ // 1 > 2 stars for c/r in 2 handed
 SET_2DA_ENTRY 31  9 54 ~2~ // 3 > 2 stars for paladin in 2 wpn style
 SET_2DA_ENTRY 31 19 54 ~3~ // 1 > 3 stars for f/d in 2 wpn style
 SET_2DA_ENTRY 31 20 54 ~3~ // 2 > 3 stars for f/m/c in 2 wpn style
 SET_2DA_ENTRY 31 21 54 ~3~ // 2 > 3 stars for c/r in 2 wpn style
 SET "row" = 50 // the nested WHILE loops remove any possible points in the EXTRAx profs
 WHILE ("%row%" > 31) BEGIN
   SET_2DA_ENTRY "%row%"  5 54 ~0~
   SET_2DA_ENTRY "%row%"  8 54 ~0~
   SET_2DA_ENTRY "%row%"  9 54 ~0~
   SET_2DA_ENTRY "%row%" 11 54 ~0~
   SET_2DA_ENTRY "%row%" 12 54 ~0~
   SET_2DA_ENTRY "%row%" 14 54 ~0~
   SET_2DA_ENTRY "%row%" 15 54 ~0~
   SET_2DA_ENTRY "%row%" 20 54 ~0~
   SET_2DA_ENTRY "%row%" 21 54 ~0~
   SET_2DA_ENTRY "%row%" 30 54 ~0~
   SET_2DA_ENTRY "%row%" 31 54 ~0~
   SET_2DA_ENTRY "%row%" 32 54 ~0~
   SET_2DA_ENTRY "%row%" 33 54 ~0~
   SET_2DA_ENTRY "%row%" 34 54 ~0~
   SET_2DA_ENTRY "%row%" 35 54 ~0~
   SET_2DA_ENTRY "%row%" 36 54 ~0~
   SET_2DA_ENTRY "%row%" 37 54 ~0~
   SET_2DA_ENTRY "%row%" 38 54 ~0~
   SET_2DA_ENTRY "%row%" 42 54 ~0~
   SET_2DA_ENTRY "%row%" 43 54 ~0~
   SET_2DA_ENTRY "%row%" 44 54 ~0~
   SET_2DA_ENTRY "%row%" 52 54 ~0~
   SET "row" = ("%row%" - 1)
 END
 BUT_ONLY_IF_IT_CHANGES

Link to comment
COPY_EXISTING ~WEAPPROF.2da~ ~override~
 DO_STUFF
 SET_2DA_ENTRY 31  9 54 ~2~ // 3 > 2 stars for paladin in 2 wpn style
 DO_STUFF
 SET "row" = 50 // the nested WHILE loops remove any possible points in the EXTRAx profs
 WHILE ("%row%" > 31) BEGIN
   DO_STUFF
   SET "row" = ("%row%" - 1)
 END
 BUT_ONLY_IF_IT_CHANGES

Is there some rule that paladins only get 2 stars for 2wpn? All the kits (cavalier, undead hunter, inquisitor) still get 3 pips...
Link to comment

Archived

This topic is now archived and is closed to further replies.

×
×
  • Create New...