CamDawg Posted May 7, 2005 Share Posted May 7, 2005 The three separate Detect Evil topics have been merged, so the thread may seem a bit disjointed. For the record, Baldurdash changes the 'Detect Evil' effect to mode 3, dispel/bypass MR. devSin changes this to 0, no dispel/bypass MR. There are going to be a few problems regardless. The statues and other creatures which are immune to low-level spells are always going to return the Spell Ineffective message short of not being targeted. I was considering ways around the MR message at least--perhaps we could try the LMD/Vampiric Touch trick where we use a spell to cast a spell, with the former bypassing MR and the latter checking it. The problem is that we're still going to get an MR check notice in the window at some point, but it would at least be for a blank spell name. Link to comment
devSin Posted May 7, 2005 Share Posted May 7, 2005 Isn't the string applied to the object instead of the spell? It would still say EvilCreName - Magic Resistance, even if you used some nameless spell. So all the resistance is really doing is pointing out that a creature is evil *and* has some amount of magic resistance, whereas the change to bypassing resistance simply changes the string and adds the stupid glow. Link to comment
SimDing0 Posted May 7, 2005 Share Posted May 7, 2005 Yeh, if the MR message only shows up on evil creatures, then that's a problem and the check may as well be removed completely for the sake of clarity. If it shows up on all creatures then that still sucks because it shouldn't be able to scout the area for magic-resistant creatures (same with True Sight), but there's probably not really anything we can do. I forget which is the case now. Link to comment
CamDawg Posted November 14, 2005 Share Posted November 14, 2005 OK, I've finally got a working solution to this. I've created a new projectile so that Detect Evil now only works in visual range, per the description. We need to decide if the MR check stays or goes: Leave MR check All creaures (good and evil) with MR can potentially return 'Magic Resistance'. This is, IMO, not a big issue as the spell no longer works over the entire area. An evil magic resistant creature only returns evil if the MR check fails. Remove MR check All evil creatures in visual range return 'Evil' strings. The bonus here is that no Magic Resistance information is learned. Of the two, I much favor leaving in the MR check. Thoughts? edit: added code. ADD_PROJECTILE ~bg2fixpack/pro/CDDETEVL.pro~ // this spell only needed if we're checking MR COPY ~bg2fixpack/spl/CDDETEVL.spl~ ~override~ SAY NAME1 #-1 SAY NAME2 #-1 COPY_EXISTING ~spcl212.spl~ ~override~ // detect evil (paladin innate) ~spin120.spl~ ~override~ // detect evil (bhaalspawn innate) ~spin696.spl~ ~override~ // moon dog sight ~sppr104.spl~ ~override~ // detect evil (cleric spell) ~spwi202.spl~ ~override~ // detect evil (mage spell) READ_LONG 0x64 "abil_off" READ_SHORT 0x68 "abil_num" READ_LONG 0x6a "fx_off" FOR (index = 0; index < abil_num; index = index + 1) BEGIN // loop through abilities WRITE_BYTE ("%abil_off%" + 0x0e + ("%index%" * 0x28)) 5 // target: caster WRITE_SHORT ("%abil_off%" + 0x26 + ("%index%" * 0x28)) "%CDDETEVL%" // custom projectile READ_SHORT ("%abil_off%" + 0x1e + ("%index%" * 0x28)) "abil_fx_num" READ_SHORT ("%abil_off%" + 0x20 + ("%index%" * 0x28)) "abil_fx_idx" FOR (index2 = 0; index2 < abil_fx_num; index2 = index2 + 1) BEGIN // looks for effects for abilities READ_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) "opcode" PATCH_IF ("%opcode%" = 115) BEGIN // detect alignment; only target change is needed if we drop the MR check WRITE_SHORT ("%fx_off%" + (("%abil_fx_idx%" + "%index2%") * 0x30)) 146 // opcode: cast spell WRITE_BYTE ("%fx_off%" + 0x02 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 2 // target: preset target WRITE_BYTE ("%fx_off%" + 0x03 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 1 // power WRITE_LONG ("%fx_off%" + 0x04 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 1 // cast at level WRITE_LONG ("%fx_off%" + 0x08 + (("%abil_fx_idx%" + "%index2%") * 0x30)) 1 // cast instantly: yes WRITE_ASCII ("%fx_off%" + 0x14 + (("%abil_fx_idx%" + "%index2%") * 0x30)) ~cddetevl~ // spell to cast END END END BUT_ONLY_IF_IT_CHANGES cddetevl.spl is a spell that just has the Detect Alignment opcode. Projectiles naturally bypas MR, so using a spell to a spell is the only way we can use a projectile and check MR. Anyone know the proper radius value for a 60' circle in a .pro file? 256 is a 30' radius, but I can't determine if it scales linearly or not--512 seems to yield a slightly larger radius than visual (60'). Link to comment
BigRob Posted November 15, 2005 Share Posted November 15, 2005 I guess wether or not the MR check should stay depends on how the spell works. If it's "smelling" the evil that wafts off someone, then it should go, but if it's looking into a person, I'd say leave it. But unless the spell description has anything to say on that, I'd say take it out. Some stuff in 3rd Edition indicates that evil/good can be considrered as an aura, rather than as something completely internal and that's the view I've always taken for these things. Link to comment
Recommended Posts
Archived
This topic is now archived and is closed to further replies.