CamDawg Posted December 31, 2004 Share Posted December 31, 2004 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
CamDawg Posted January 16, 2005 Author Share Posted January 16, 2005 Coded in alpha 1. Link to comment
CamDawg Posted March 22, 2005 Author Share Posted March 22, 2005 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
CamDawg Posted March 28, 2005 Author Share Posted March 28, 2005 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
devSin Posted January 31, 2008 Share Posted January 31, 2008 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
CamDawg Posted January 31, 2008 Author Share Posted January 31, 2008 Wow, going all the way back to alpha 1. Yes, this is silly. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.