CamDawg Posted October 16, 2007 Share Posted October 16, 2007 Quoting myself from another thread: Daystar claims this for damage: Damage: 1D8 +2, +4 vs. evil creatures, does double damage against undead Daystar uses four EFF files. The sword, by itself, does 1d8+2. evilhit2, attached globally, adds the +2 to hit against evil creatures. evildam2, attached to the melee ability, which does an extra 2 damage to evil creatures (raising damage to evil creatures to 1d8+4 total). daystar1, on the melee ability, which does an extra 1d8+4 against undead (combined with the base damage and evildam2, this raises total damage to undead to 2d8+8). dbldam, on the melee ability, which does another 1d8+2 to undead, raising the total undead damage to 3d8+10. This actually looks like it needs to be dropped. There are really four scenarios that Daystar has to account for, and it's almost got them covered: Non-evil, non-undead opponents. Should get the base +2 to hit and do 1d8+2 damage. This is correct. Evil, non-undead opponents. Should get +4 to hit and do 1d8+4 damage. This is correct. Non-evil undead. Should get +2 to hit and 2d8+4 damage, but is currently getting 3d8+8 damage and +2 to hit. Evil undead. Should get +4 to-hit and 2d8+8 damage, but is currently getting 3d8+10 damage and +4 to-hit. If we changed daystar1.eff to do +2 damage and only apply to evil, undead creatures, the damages will be correct. Dragonslayer claims this for damage: 1D8 +2, double damage against dragons Dragonslayer does 1d8+2 base, supplemented by two EFFs on the melee abilities:sw1h32a does an extra 1d8+2 to dragons, raising total dragon damage to 2d8+4. (This one is oddly targeted and may not actually be working.) sw1h32c does an extra 1d8+2 to dragons, raising total dragon damage to 3d8+6, assuming if sw1h32a works. If sw1h32a does work, it should be dropped. Link to comment
Demivrgvs Posted December 22, 2007 Share Posted December 22, 2007 As we have unfortunately discovered damage from dice rolls in the EFF files isn't applied. Therefore double damage has to be replaced by fixed damage. Daystar/Dragonslayer: 1D8+2 which means 3-11 should be 7 fixed damage MoD: 1D6+2 is 3-8 with an average of 5.5 so it shoud be 5 or 6 fixed damage Link to comment
Jarno Mikkola Posted December 22, 2007 Share Posted December 22, 2007 As we have unfortunately discovered damage from dice rolls in the EFF files isn't applied.Therefore double damage has to be replaced by fixed damage. Does it? Why couldn't you make it to be use the probability and +1 damage effects.So if the damage would be 1d6+2=3-8, then the double damage would be: 100% +3. 83% +1. 65% +1. 50% +1. 35% +1. 17% +1. Ok, that's a lot of separated effects, but it can be done, right? Link to comment
CamDawg Posted January 10, 2008 Author Share Posted January 10, 2008 Dragonslayer needs to drop sw1h32a. While the 1d8 extra damage is being ignored, the +2 is not--so dragon damage is actually 1d8+2 (base) +2 (sw1h32a) +1d8+2 (sw1h32c) = 2d8+6 instead of 2d8+4. // dragonslayer fix: dragon damage gets an extra +2 COPY_EXISTING ~sw1h32.itm~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT 0x70 "fx_num" SET "fx_delta" = 0 FOR (index = 0; index < fx_num; index = index + 1) BEGIN READ_SHORT ("%fx_off%" + ("%index%" * 0x30)) "type" READ_ASCII ("%fx_off%" + 0x14 + ("%index%" * 0x30)) "eff_file" PATCH_IF (("%type%" = 177) AND ("sw1h32a" STRING_COMPARE_CASE "%eff_file%" = 0)) BEGIN DELETE_BYTES ("%fx_off%" + ("%index%" * 0x30)) 0x30 // delete effect SET "fx_num" = ("%fx_num%" - 1) SET "fx_delta" = ("%fx_delta%" - 1) SET "index" = ("%index%" - 1) END END WRITE_SHORT 0x70 "%fx_num%" FOR (index2 = 0; index2 < abil_num; index2 = index2 + 1) BEGIN READ_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "%abil_fx_idx%" END BUT_ONLY_IF_IT_CHANGES As for Daystar: // daystar fix: does 2d8 + 6 vs. evil undead; should be 2d8 + 8 // harder than usual because of all overlapping effs; see also daystar1.eff, daystar2.eff // move daystar1 to melee header, apply only v undead COPY_EXISTING ~sw1h31.itm~ ~override~ READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" READ_SHORT 0x70 "fx_num" SET "fx_delta" = 0 FOR (index = 0; index < fx_num; index = index + 1) BEGIN READ_SHORT ("%fx_off%" + ("%index%" * 0x30)) "type" READ_ASCII ("%fx_off%" + 0x14 + ("%index%" * 0x30)) "eff_file" PATCH_IF (("%type%" = 177) AND ("daystar1" STRING_COMPARE_CASE "%eff_file%" = 0)) BEGIN DELETE_BYTES ("%fx_off%" + ("%index%" * 0x30)) 0x30 // delete effect SET "fx_num" = ("%fx_num%" - 1) SET "fx_delta" = ("%fx_delta%" - 1) SET "index" = ("%index%" - 1) END END WRITE_SHORT 0x70 "%fx_num%" FOR (index2 = 0; index2 < abil_num; index2 = index2 + 1) BEGIN READ_BYTE ("%abil_off%" + ("%index2%" * 0x38)) "type" READ_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "abil_fx_idx" SET "abil_fx_idx" = ("%abil_fx_idx%" + "%fx_delta%") WRITE_SHORT ("%abil_off%" + 0x20 + ("%index2%" * 0x38)) "%abil_fx_idx%" PATCH_IF ("%type%" = 1) BEGIN // melee ability check READ_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) "abil_fx_num" WRITE_SHORT ("%abil_off%" + 0x1e + ("%index2%" * 0x38)) ("%abil_fx_num%" + 1) INSERT_BYTES ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 0x30 // new effect WRITE_SHORT ("%fx_off%" + ("%abil_fx_idx%" * 0x30)) 177 // use eff WRITE_BYTE ("%fx_off%" + 0x02 + ("%abil_fx_idx%" * 0x30)) 2 // target: preset target WRITE_LONG ("%fx_off%" + 0x04 + ("%abil_fx_idx%" * 0x30)) 4 // UNDEAD from... WRITE_LONG ("%fx_off%" + 0x08 + ("%abil_fx_idx%" * 0x30)) 3 // general.ids WRITE_BYTE ("%fx_off%" + 0x0c + ("%abil_fx_idx%" * 0x30)) 1 // instant/permanent WRITE_BYTE ("%fx_off%" + 0x12 + ("%abil_fx_idx%" * 0x30)) 100 // probability WRITE_ASCII ("%fx_off%" + 0x14 + ("%abil_fx_idx%" * 0x30)) ~daystar1~ // resref SET "fx_delta" = ("%fx_delta%" + 1) END END BUT_ONLY_IF_IT_CHANGES COPY ~bg2fixpack/eff/daystar2.eff~ ~override~ // for daystar fixes (see sw1h31.itm, daystar1.eff~ // daystar damage vs. evil undead fixes, pt. 2 (see sw1h31.itm, daystar2.eff) COPY_EXISTING ~daystar1.eff~ ~override~ WRITE_LONG 0x10 177 // use eff file WRITE_LONG 0x1c 3 // against mask_evil... WRITE_LONG 0x20 8 // ...from align.ids WRITE_ASCII 0x30 ~daystar2~ // then actually go to another +2 damage Link to comment
devSin Posted January 10, 2008 Share Posted January 10, 2008 Dragonslayer needs to drop sw1h32a. While the 1d8 extra damage is being ignored, the +2 is not--so dragon damage is actually 1d8+2 (base) +2 (sw1h32a) +1d8+2 (sw1h32c) = 2d8+6 instead of 2d8+4.You missed the part where dice don't work? So that would be 1d8 + 6, except in the case that damage bonus may not stack, making it 1d8 + 4 (except in the case where none of it works at all, making it 1d8 + 2)? Link to comment
Demivrgvs Posted January 10, 2008 Share Posted January 10, 2008 Damage from dice roll isn't applied; fixed damage bonuses work but they don't stack (e.g Cavalier +3 to hit and damage vs. Dragon don't stack with the Dragonslayer bonuses). Link to comment
CamDawg Posted January 10, 2008 Author Share Posted January 10, 2008 Dragonslayer needs to drop sw1h32a. While the 1d8 extra damage is being ignored, the +2 is not--so dragon damage is actually 1d8+2 (base) +2 (sw1h32a) +1d8+2 (sw1h32c) = 2d8+6 instead of 2d8+4.You missed the part where dice don't work? So that would be 1d8 + 6, except in the case that damage bonus may not stack, making it 1d8 + 4 (except in the case where none of it works at all, making it 1d8 + 2)? sw1h32c is being applied on the melee header as a straight damage (12) effect (via dragon-targeted EFF), not a damage v. type (how sw1h32a is being applied). So yeah, it's actually 2d8+4 against dragons now and 1d8+2 otherwise. Link to comment
devSin Posted January 10, 2008 Share Posted January 10, 2008 Cool. I don't much look at the files anymore. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.