Jump to content

Cleric's weapon proficiency


Guest Demivrgvs

Recommended Posts

You'll need a NOT with the first PATCH_IF, also - should have mentioned that, yes?

 

Probably good to remove kit restrictions while you're there. I'd do it thusly if it were me

COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~  ~override~
 PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
READ_BYTE  0x1f "u2"
READ_BYTE  0x20 "u3"
PATCH_IF ((("u2" & 0x08) != 0x08) OR (("u3" & 0x40) != 0x40) OR (("u3" & 0x20) != 0x20)) THEN BEGIN
  READ_BYTE   0x29 "k1"
  WRITE_BYTE  0x29 ("k1" & 0xf8)
  PATCH_IF (("u2" & 0x08) != 0x08) THEN BEGIN
	SET "u2" &= (` 0xc0)
  END
  PATCH_IF (("u3" & 0x40) != 0x40) THEN BEGIN
	SET "u2" &= (` 0x02)
  END
  PATCH_IF (("u3" & 0x20) != 0x20) THEN BEGIN
	SET "u2" &= (` 0x04)
  END
END
WRITE_BYTE  0x1f "u2"
 END
BUT_ONLY

Link to comment

It's great the codes indeed works...now if it's not too much to ask for i really wish to do the same thing for cleric-rangers and cleric-fighter-mage...than i'll have to manage with the weapprof.2da too and i don't know how.

 

Anyway thanx! Now Anomen's finally able to wield bastard swords...Helm will approve this! :rant:

Link to comment
That block of crud I posted five posts up takes care of cleric_ranger, cleric_thief, fighter_cleric, and fighter_mage_cleric in one swell foop, if you want it.
Which is which? I'm wondering if you could have an optional subcomponent for each. Due to popular request, this should really be added to the Tweak Pack.
Link to comment

Give this a shot - I haven't tested it yet, so it may need some debugging :rant:

OUTER_PATCH ~asdf~ BEGIN
 WRITE_BYTE   0x0 0xa
 READ_ASCII   0x0 "nl" (1)
END

DEFINE_ACTION_MACRO ~swpl~ BEGIN

PRINT ~Allow single-class clerics one star in any weapon a fighter can use.~
PRINT ~This is required for classes who dual to cleric to retain all old proficiencies.~
PRINT ~Hit 0 and enter for no, 1 and enter for yes.~
ACTION_READLN "scc"
ACTION_IF NOT (IS_AN_INT "scc") THEN BEGIN
 PRINT ~Try that again.~
 LAUNCH_ACTION_MACRO ~swpl~
END ELSE BEGIN
 ACTION_IF ("scc" > 0x1) THEN BEGIN
PRINT ~Try that again.~
LAUNCH_ACTION_MACRO ~swpl~
 END
END
PRINT ~Allow cleric/thieves one star in any weapon.~
PRINT ~Hit 0 and enter for no, 1 and enter for yes.~
ACTION_READLN "ctc"
ACTION_IF NOT (IS_AN_INT "ctc") THEN BEGIN
 PRINT ~Try that again.~
 LAUNCH_ACTION_MACRO ~swpl~
END ELSE BEGIN
 ACTION_IF ("ctc" > 0x1) THEN BEGIN
PRINT ~Try that again.~
LAUNCH_ACTION_MACRO ~swpl~
 END
END
PRINT ~Allow cleric/rangers two stars in any weapon.~
PRINT ~Hit 0 and enter for no, 1 and enter for yes.~
ACTION_READLN "crc"
ACTION_IF NOT (IS_AN_INT "crc") THEN BEGIN
 PRINT ~Try that again.~
 LAUNCH_ACTION_MACRO ~swpl~
END ELSE BEGIN
 ACTION_IF ("crc" > 0x1) THEN BEGIN
PRINT ~Try that again.~
LAUNCH_ACTION_MACRO ~swpl~
 END
END
PRINT ~Allow fighter/clerics and fighter/mage/clerics two stars in any weapon.~
PRINT ~Hit 0 and enter for no, 1 and enter for yes.~
ACTION_READLN "fcc"
ACTION_IF NOT (IS_AN_INT "fcc") THEN BEGIN
 PRINT ~Try that again.~
 LAUNCH_ACTION_MACRO ~swpl~
END ELSE BEGIN
 ACTION_IF ("fcc" > 0x1) THEN BEGIN
PRINT ~Try that again.~
LAUNCH_ACTION_MACRO ~swpl~
 END
END
PRINT ~Allow backstab with any weapon a mage/thief, fighter/thief, or cleric/thief can use.~
PRINT ~Hit 0 and enter for no, 1 and enter for yes.~
ACTION_READLN "wpc"
ACTION_IF NOT (IS_AN_INT "wpc") THEN BEGIN
 PRINT ~Try that again.~
 LAUNCH_ACTION_MACRO ~swpl~
END ELSE BEGIN
 ACTION_IF ("wpc" > 0x1) THEN BEGIN
PRINT ~Try that again.~
LAUNCH_ACTION_MACRO ~swpl~
 END
END

END

LAUNCH_ACTION_MACRO ~swpl~

COPY_EXISTING ~weapprof.2da~ ~override~
 PATCH_IF (SOURCE_SIZE > 0x0) THEN BEGIN
READ_2DA_ENTRY 0x0 0x0 0x3 ~array_test~
PATCH_IF NOT (~array_test~ STRING_CONTAINS_REGEXP ~ID~) THEN BEGIN
  SET "ai" = 0x1
END ELSE BEGIN
  SET "ai" = 0x0
END
FOR ("i1" = 0x32; "i1" < 0xff; "i1" += 0x01) BEGIN
  COUNT_2DA_ROWS "i1" "i2"
  PATCH_IF ("i2" > 0x0) THEN BEGIN
	SET "cols" = "i1"
  END ELSE BEGIN
	SET "i1" = 0xff
  END
END
FOR ("i1" = 0x2; "i1" < ("cols" - "ai"); "i1" += 0x1) BEGIN
  SET   "ps" = 0x0
  READ_2DA_ENTRY 0x0 "i1" ("cols" - "ai") ~cl~
  PATCH_IF		  ((~%cl%~ STRING_EQUAL_CASE ~CLERIC~			 ) AND ("scc" = 0x1)) THEN BEGIN
	SET "ps" = 0x1
  END ELSE PATCH_IF ((~%cl%~ STRING_EQUAL_CASE ~FIGHTER_CLERIC~	 ) AND ("fcc" = 0x1)) THEN BEGIN
	SET "ps" = 0x2
  END ELSE PATCH_IF ((~%cl%~ STRING_EQUAL_CASE ~FIGHTER_MAGE_CLERIC~) AND ("fcc" = 0x1)) THEN BEGIN
	SET "ps" = 0x2
  END ELSE PATCH_IF ((~%cl%~ STRING_EQUAL_CASE ~CLERIC_THIEF~	   ) AND ("ctc" = 0x1)) THEN BEGIN
	SET "ps" = 0x1
  END ELSE PATCH_IF ((~%cl%~ STRING_EQUAL_CASE ~CLERIC_RANGER~	  ) AND ("crc" = 0x1)) THEN BEGIN
	SET "ps" = 0x2
  END
  PATCH_IF ("ps" > 0x0) THEN BEGIN
	SET_2DA_ENTRY_LATER ~weapprof~ 0x09 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0a ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0b ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0c ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0d ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0e ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x0f ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x10 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x11 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x12 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x13 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x14 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x15 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x16 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x17 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x18 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x19 ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1a ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1b ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1c ("i1" + "ai") "ps"
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1d ("i1" + "ai") (("ps" > 0x1) ? 0x2 : 0x1)
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1e ("i1" + "ai") (("ps" > 0x1) ? 0x2 : 0x1)
	SET_2DA_ENTRY_LATER ~weapprof~ 0x1f ("i1" + "ai") (("ps" > 0x1) ? 0x2 : 0x1)
	SET_2DA_ENTRY_LATER ~weapprof~ 0x20 ("i1" + "ai") (("ps" > 0x1) ? 0x3 : 0x1)
	SET_2DA_ENTRIES_NOW ~weapprof~ 0x1
  END
END
 END
BUT_ONLY

COPY_EXISTING_REGEXP GLOB ~^.+\.itm$~  ~override~
 PATCH_IF (SOURCE_SIZE > 0x71) THEN BEGIN
READ_SHORT 0x1c "ct"
READ_BYTE  0x31 "wp"
PATCH_IF (("wp" > 0x0) OR (("wp" = 0x0) AND ("ct" = 0x5)) OR (("wp" = 0x0) AND ("ct" = 0x1f))) THEN BEGIN
  READ_LONG   0x1e "uf"
  READ_LONG   0x50 "us"
  READ_STRREF 0x50 ~ud~
  READ_LONG   0x54 "is"
  READ_STRREF 0x54 ~id~
  PATCH_IF ("scc" = 0x1) THEN BEGIN
	SET "uf" &= (` 0xc780)
  END
  PATCH_IF ("ctc" = 0x1) THEN BEGIN
	SET "uf" &= (` 0x200)
  END
  PATCH_IF ("crc" = 0x1) THEN BEGIN
	SET "uf" &= (` 0x480)
  END
  PATCH_IF ("fcc" = 0x1) THEN BEGIN
	SET "uf" &= (` 0xc000)
  END
  PATCH_IF ("wpc" = 0x1) THEN BEGIN
	SET "uf" &= (` 0x4b0200)
  END
  PATCH_IF ("us" > 0x0) THEN BEGIN
	PATCH_IF (("wpc" = 0x1) AND ("scc" = 0x0)) THEN BEGIN
	  INNER_PATCH_SAVE ~ud~ ~%ud%~ BEGIN
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~ ~Not usable by:%nl% Druid%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*~	 ~Not usable by:%nl% Druid%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief[ ]*%nl%~													~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief~															~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief[ ]*%nl%~								 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief~										 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~		   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				   ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief%~						  ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				  ~Not usable by:%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~						  ~Not usable by:%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~									~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~											~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief[ ]*%nl%~					~Not usable by:%nl% Mage %nl% Bard%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief~							~Not usable by:%nl% Mage %nl% Bard%nl%~
	  END
	END ELSE PATCH_IF (("wpc" = 0x0) AND ("scc" = 0x1)) THEN BEGIN
	  INNER_PATCH_SAVE ~ud~ ~%ud%~ BEGIN
		REPLACE_TEXTUALLY ~ (any combination of cleric or druid cannot use this item)~										~~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%~								  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric~										  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%~												   ~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric~														   ~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric[ ]*%nl%~								~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric~										~Not usable by:%nl% Fighter%nl%~
	  END
	END ELSE PATCH_IF (("wpc" = 0x1) AND ("scc" = 0x1)) THEN BEGIN
	  INNER_PATCH_SAVE ~ud~ ~%ud%~ BEGIN
		REPLACE_TEXTUALLY ~ (any combination of cleric or druid cannot use this item)~	~~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~ ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*~	 ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%~								  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric~										  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief[ ]*%nl%~													~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief~															~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief[ ]*%nl%~								 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief~										 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric[ ]*%nl%~								~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric~										~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~		   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				   ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief%~						  ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				  ~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~						  ~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~									~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~											~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief[ ]*%nl%~					~Not usable by:%nl% Mage %nl% Bard%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief~							~Not usable by:%nl% Mage %nl% Bard%nl%~
	  END
	END
  END
  PATCH_IF ("is" > 0x0) THEN BEGIN
	PATCH_IF (("wpc" = 0x1) AND ("scc" = 0x0)) THEN BEGIN
	  INNER_PATCH_SAVE ~id~ ~%id%~ BEGIN
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~ ~Not usable by:%nl% Druid%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*~	 ~Not usable by:%nl% Druid%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief[ ]*%nl%~													~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief~															~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief[ ]*%nl%~								 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief~										 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~		   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				   ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief%~						  ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				  ~Not usable by:%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~						  ~Not usable by:%nl% Cleric%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~									~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~											~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief[ ]*%nl%~					~Not usable by:%nl% Mage %nl% Bard%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief~							~Not usable by:%nl% Mage %nl% Bard%nl%~
	  END
	END ELSE PATCH_IF (("wpc" = 0x0) AND ("scc" = 0x1)) THEN BEGIN
	  INNER_PATCH_SAVE ~id~ ~%id%~ BEGIN
		REPLACE_TEXTUALLY ~ (any combination of cleric or druid cannot use this item)~										~~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%~								  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric~										  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%~												   ~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric~														   ~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric[ ]*%nl%~								~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric~										~Not usable by:%nl% Fighter%nl%~
	  END
	END ELSE PATCH_IF (("wpc" = 0x1) AND ("scc" = 0x1)) THEN BEGIN
	  INNER_PATCH_SAVE ~id~ ~%id%~ BEGIN
		REPLACE_TEXTUALLY ~ (any combination of cleric or druid cannot use this item)~	~~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~ ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*~	 ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric[ ]*%nl%~								  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Cleric~										  ~Not usable by:%nl% Druid%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief[ ]*%nl%~													~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Thief~															~Not usable by:%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief[ ]*%nl%~								 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Thief~										 ~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric[ ]*%nl%~								~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Fighter[ ]*%nl%[ ]*Cleric~										~Not usable by:%nl% Fighter%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~		   ~Not usable by:%nl% Bard%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				   ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Druid[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief%~						  ~Not usable by:%nl% Druid%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~				  ~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Cleric[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~						  ~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief[ ]*%nl%~									~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Thief~											~Not usable by:%nl% Mage%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief[ ]*%nl%~					~Not usable by:%nl% Mage %nl% Bard%nl%~
		REPLACE_TEXTUALLY ~Not [uU]sable [bB]y:[ ]*%nl%[ ]*Mage[ ]*%nl%[ ]*Bard[ ]*%nl%[ ]*Thief~							~Not usable by:%nl% Mage %nl% Bard%nl%~
	  END
	END
  END
  WRITE_LONG	0x1e "uf"
  PATCH_IF ("us" > 0x0) THEN BEGIN
	SAY_EVALUATED 0x50  ~%ud%~
  END
  PATCH_IF ("is" > 0x0) THEN BEGIN
	SAY_EVALUATED 0x54  ~%id%~
  END
END
 END
BUT_ONLY

Link to comment

Haven't tried last code but the one before was perfect...i'm going to try this one too. Problem is if you take this step further of modified weapprof.2da you'll need to modify all weapon's descriptions too while before that it still made sense a weapon decription saying a cleric can't use the sword while a fighter-cleric is using it.

 

Anyway i really think it would be a really cool componets of G3 tweaks pack....

Link to comment
Haven't tried last code but the one before was perfect...i'm going to try this one too. Problem is if you take this step further of modified weapprof.2da you'll need to modify all weapon's descriptions too while before that it still made sense a weapon decription saying a cleric can't use the sword while a fighter-cleric is using it.
There is existing code within the Tweak Pack (weapons proficiency altering) that can probably be leveraged to do this (from an SHS post):
the bigg actually coded the BG variants of the modified weapon profs, but I can give a fairly accurate account of its highlights:

 

weapprof.2da is altered so that its only entries are the old BG weapons, i.e. Large Swords, Small Swords, etc. (Weapon styles are optional, as they can be viewed as either an improvement of the BG2 engine or BG2 profs that don't belong to BG.) The strings to describe each category are altered as well. Since there are far more BG2 profs than BG, this means that many entries become 'unused' and the possible stars for them are zeroed. Weapons' item files are altered to point to the new profs and have their descripts updated. Creatures are adjusted (crudely) to use the new prof system.

Link to comment

Tough crowd here :)

 

Okay, item descriptions get rewritten now to reflect new usabilities.

 

I'm not going to change the class descriptions on a casual forum post, though, I'm too chicken to be STRING_SETting with virtual .tra files if I can't guarantee certain uninstall behavior, especially when it'll only work in English because I don't know what language you're using :rant:

 

Anyone want something to drink while I'm up :D

Link to comment

I've answered myself...seems to be ok...multiclasses fighter are still retaining the ability to put five star in weapons.

 

Some minor error is that druid can now use dagger and darts.

 

P.s Why should i allow backstab with any weapon? Is it required for something else? Cause backstabbing with an halaberd seems pretty strange to me...

Link to comment

Archived

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

×
×
  • Create New...