//precrated chars fix COPY ~characters~ ~characters~ PATCH_IF (("%SOURCE_FILE%" STRING_COMPARE_CASE "*.cre") = 0) BEGIN READ_BYTE 0x33 "fx_type" READ_LONG 0x2c4 "fx_off" READ_LONG 0x2c8 "fx_num" WRITE_LONG 0x2c8 ("%fx_num%" + 1) INSERT_BYTES ("%fx_off%") (0x30 + (0xd8 * "%fx_type%")) WRITE_SHORT ("%fx_off%" + (0x08 * "%fx_type%")) 176 // movement rate bonus WRITE_BYTE ("%fx_off%" + 0x02 + (0x0a * "%fx_type%")) 1 // target: self WRITE_LONG ("%fx_off%" + 0x04 + (0x10 * "%fx_type%")) 0xfffffffe // -5 walking speed WRITE_LONG ("%fx_off%" + 0x0c + (0x10 * "%fx_type%")) 9 // instant/permanent WRITE_LONG ("%fx_off%" + 0x12 + (0x18 * "%fx_type%")) 100 // probability END BUT_ONLY_IF_IT_CHANGES
additionally, i've updated the code for IA compatibility
// this file does nothing, it just allows other mods to detect this component COPY_EXISTING ~sw1h01.itm~ ~override/cdt01210.g3~ COPY_EXISTING_REGEXP GLOB ~^.+\.cre$~ ~override~ READ_SHORT 0x28 "anim" ELSE 0 PATCH_IF ((("%SOURCE_FILE%" STRING_COMPARE_CASE "charbase.cre") = 0) OR ("%anim%" = 0x5000) OR ("%anim%" = 0x5001) OR ("%anim%" = 0x5002) OR ("%anim%" = 0x5003) OR ("%anim%" = 0x5010) OR ("%anim%" = 0x5011) OR ("%anim%" = 0x5012) OR ("%anim%" = 0x5013) OR ("%anim%" = 0x5100) OR ("%anim%" = 0x5101) OR ("%anim%" = 0x5102) OR ("%anim%" = 0x5103) OR ("%anim%" = 0x5110) OR ("%anim%" = 0x5111) OR ("%anim%" = 0x5112) OR ("%anim%" = 0x5113) OR ("%anim%" = 0x5200) OR ("%anim%" = 0x5201) OR ("%anim%" = 0x5202) OR ("%anim%" = 0x5210) OR ("%anim%" = 0x5211) OR ("%anim%" = 0x5212) OR ("%anim%" = 0x5300) OR ("%anim%" = 0x5301) OR ("%anim%" = 0x5302) OR ("%anim%" = 0x5303) OR ("%anim%" = 0x5310) OR ("%anim%" = 0x5311) OR ("%anim%" = 0x5312) OR ("%anim%" = 0x5313) OR ("%anim%" = 0x6000) OR ("%anim%" = 0x6001) OR ("%anim%" = 0x6002) OR ("%anim%" = 0x6003) OR ("%anim%" = 0x6004) OR ("%anim%" = 0x6005) OR ("%anim%" = 0x6010) OR ("%anim%" = 0x6011) OR ("%anim%" = 0x6012) OR ("%anim%" = 0x6013) OR ("%anim%" = 0x6014) OR ("%anim%" = 0x6015) OR ("%anim%" = 0x6100) OR ("%anim%" = 0x6101) OR ("%anim%" = 0x6102) OR ("%anim%" = 0x6103) OR ("%anim%" = 0x6104) OR ("%anim%" = 0x6105) OR ("%anim%" = 0x6110) OR ("%anim%" = 0x6111) OR ("%anim%" = 0x6112) OR ("%anim%" = 0x6113) OR ("%anim%" = 0x6114) OR ("%anim%" = 0x6115) OR ("%anim%" = 0x6200) OR ("%anim%" = 0x6201) OR ("%anim%" = 0x6202) OR ("%anim%" = 0x6204) OR ("%anim%" = 0x6205) OR ("%anim%" = 0x6210) OR ("%anim%" = 0x6211) OR ("%anim%" = 0x6212) OR ("%anim%" = 0x6214) OR ("%anim%" = 0x6215) OR ("%anim%" = 0x6300) OR ("%anim%" = 0x6301) OR ("%anim%" = 0x6302) OR ("%anim%" = 0x6303) OR ("%anim%" = 0x6304) OR ("%anim%" = 0x6305) OR ("%anim%" = 0x6310) OR ("%anim%" = 0x6311) OR ("%anim%" = 0x6312) OR ("%anim%" = 0x6313) OR ("%anim%" = 0x6314) OR ("%anim%" = 0x6315) OR ("%anim%" = 0x6500) OR ("%anim%" = 0x6510) OR ("%anim%" = 0x683d) //moinesse OR ("%anim%" = 0x683e) //moinesse OR ("%anim%" = 0x683f) //moinesse OR ("%anim%" = 0x6841) //moinesse OR ("%anim%" = 0x6845) //moinesse OR ("%anim%" = 0x6846) //moinesse OR ("%anim%" = 0x6847) //moinesse OR ("%anim%" = 0x6848) //moinesse OR ("%anim%" = 0x5d4a) //AASIMAR FEMALE, PST OR ("%anim%" = 0x5d4c) //CURST TOWNIE FEMALE, PST OR ("%anim%" = 0x5d4d) //CURST TOWNIE MALE, PST OR ("%anim%" = 0x5d4e) //DUSTMAN FEMALE, PST OR ("%anim%" = 0x5d4f) //DUSTMAN MALE, PST OR ("%anim%" = 0x5d52) //GITHZERAI, PST OR ("%anim%" = 0x5d53) //GODSMAN, PST OR ("%anim%" = 0x5d54) //LARGE THUG, PST OR ("%anim%" = 0x5d55) //LOWER CLASS TOWNIE, FEMALE, PST OR ("%anim%" = 0x5d56) //LOWER CLASS TOWNIE, MALE, PST OR ("%anim%" = 0x5d57) //MERCHANT, PST OR ("%anim%" = 0x5d58) //MIDWIFE, PST OR ("%anim%" = 0x5d59) //PROSTITUTE, PST OR ("%anim%" = 0x5d5d) //THUG, PST OR ("%anim%" = 0x5d5e) //TIEFLING FEMALE, PST OR ("%anim%" = 0x5d5f) //TIEFLING MALE, PST OR ("%anim%" = 0x5d60) //TOWNIE WIZARD, PST OR ("%anim%" = 0x5d61) //UPPER CLASS TOWNIE, FEMALE, PST OR ("%anim%" = 0x5d62) //UPPER CLASS TOWNIE, MALE, PST OR ("%anim%" = 0x6410) //CLERIC_MALE_HUMAN, BG1 OR ("%anim%" = 0x6412) //CLERIC_MALE_ELF, BG1 OR ("%anim%" = 0x6414) //CLERIC_MALE_DWARF, BG1 OR ("%anim%" = 0x6416) //CLERIC_MALE_HALFLING, BG1 OR ("%anim%" = 0x6411) //CLERIC_FEMALE_HUMAN, BG1 OR ("%anim%" = 0x6413) //CLERIC_FEMALE_ELF, BG1 OR ("%anim%" = 0x6417) //CLERIC_FEMALE_HALFLING, BG1 OR ("%anim%" = 0x6420) //FIGHTER_MALE_HUMAN, BG1 OR ("%anim%" = 0x6422) //FIGHTER_MALE_ELF, BG1 OR ("%anim%" = 0x6424) //FIGHTER_MALE_DWARF, BG1 OR ("%anim%" = 0x6426) //FIGHTER_MALE_HALFLING, BG1 OR ("%anim%" = 0x6421) //FIGHTER_FEMALE_HUMAN, BG1 OR ("%anim%" = 0x6423) //FIGHTER_FEMALE_ELF, BG1 OR ("%anim%" = 0x6427) //FIGHTER_FEMALE_HALFLING, BG1 OR ("%anim%" = 0x6430) //MAGE_MALE_HUMAN, BG1 OR ("%anim%" = 0x6432) //MAGE_MALE_ELF, BG1 OR ("%anim%" = 0x6434) //MAGE_MALE_DWARF, BG1 OR ("%anim%" = 0x6431) //MAGE_FEMALE_HUMAN, BG1 OR ("%anim%" = 0x6433) //MAGE_FEMALE_ELF, BG1 OR ("%anim%" = 0x6440) //THIEF_MALE_HUMAN, BG1 OR ("%anim%" = 0x6442) //THIEF_MALE_ELF, BG1 OR ("%anim%" = 0x6444) //THIEF_MALE_DWARF, BG1 OR ("%anim%" = 0x6446) //THIEF_MALE_HALFLING, BG1 OR ("%anim%" = 0x6441) //THIEF_FEMALE_HUMAN, BG1 OR ("%anim%" = 0x6443) //THIEF_FEMALE_ELF, BG1 OR ("%anim%" = 0x6447) //THIEF_FEMALE_HALFLING, BG1 ) BEGIN READ_BYTE 0x33 "fx_type" READ_LONG 0x2b0 "known_off" READ_LONG 0x2b8 "slot_off" READ_LONG 0x2bc "itm_off" READ_LONG 0x2c4 "fx_off" READ_LONG 0x2c8 "fx_num" WRITE_LONG 0x2c8 ("%fx_num%" + 1) PATCH_IF ("%known_off%" >= "%fx_off%") BEGIN WRITE_LONG 0x2b0 ("%known_off%" + (0x30 + (0xd8 * "%fx_type%"))) END PATCH_IF ("%slot_off%" >= "%fx_off%") BEGIN WRITE_LONG 0x2b8 ("%slot_off%" + (0x30 + (0xd8 * "%fx_type %"))) END PATCH_IF ("%itm_off%" >= "%fx_off%") BEGIN WRITE_LONG 0x2bc ("%itm_off%" + (0x30 + (0xd8 * "%fx_type %"))) END INSERT_BYTES ("%fx_off%" ) (0x30 + (0xd8 * "%fx_type%")) WRITE_SHORT ("%fx_off%" + (0x08 * "%fx_type%")) 176 // movement rate bonus WRITE_BYTE ("%fx_off%" + 0x02 + (0x0a * "%fx_type%")) 1 // target: self WRITE_LONG ("%fx_off%" + 0x04 + (0x10 * "%fx_type%")) 0xfffffffd // -4 walking speed WRITE_LONG ("%fx_off%" + 0x0c + (0x10 * "%fx_type%")) 9 // instant/permanent WRITE_LONG ("%fx_off%" + 0x12 + (0x18 * "%fx_type%")) 100 // probability END BUT_ONLY_IF_IT_CHANGES
There is additional code for EVERY bg1 anims to be fully compatible with scimitars, katanas and any attack type that weapon uses, BUT I'VE UPLOADED IT MANY TIMES IN LAST FEW YEARS AND NO ONE STILL USE IT, F*CK, THIS FORUM NEEDS A NEW BREATH
IF SOMEONE STILL WHANT TO USE IT, TELL ME (AND MAEBY WE WILL SEE THE BG1 ANIMATION FOR ALL