by Rainman; Edited by Xena Dragon
Many people wonder exactly how to deal with resisting the powers of magery in UO. Many are confused as to exactly how things work, and what combination of skills they may or may not need to effectively combat the more powerful casting creatures, or mage player-characters. The intent with this document is to give the average player a firm grasp on exactly how resistance is calculated. The further you read along this document, the more the inner-workings of the game are "spoiled" for you.
- Question - Does Evaluate Intelligence help me resist spells?
- Answer - No, Eval Int help mages only by rewarding them with extra damage (or penalizing them with less damage) depending on how their Evaluate Intelligence matches up with their opponent's Resistance skill. Eval Int is like Tactics for a Mage.
- Question - Help, my character is a combination of a Mage and another profession, do I need Evaluate Intelligence?
- Answer - That's a difficult decision. You need to consider your playstyle, as well as you character. If you rely on your magery to do a large portion of your combat damage for you, then chances are you should attempt to advance your E.I. skill. However, if you primarily use Magery to paralyze targets, poison them, curse them, recall away, or cast any other non-attack spell; then chances are you won't benefit from high evaluate intelligence.
- Question - I've heard that Evaluate Intelligence can tell me how much mana a target has left, is this true?
- Answer - That works if you have 76 or higher Evaluate Intelligence skill.
- Question - Does resisting a spell compare my resistance to my attackers magery and evaluate intelligence skill?
- Answer - No, it does not. Resisting a spell only compares your resistance with your attackers magery, and the circle of the spell being cast. (a full explanation is illustrated below)
- Question - Why can't I ever resist anything that's cast at me, even magic arrow?
- Answer - Remember that your resistance is figured in with the magery of the person casting at you. If your resistance is very low (below 40) then it becomes extremely difficult to resist almost anything cast by a master or grandmaster mage.
Direct Damage Spells
(Including: magic arrow, harm, fireball, lightning, energy bolt, explosion, chain lightning, meteor swarm, flamestrike, and Earthquake) Here is an outline of how spell damage is calculated:
Actual_Damage_done = (Base_Spell_Damage - 50% [if Resisted]) + Eval_Intelligence_Damage_Modifier
Your chance to resist is calculated by comparing your resistance skill to the magery of your attacker, as well as the level of difficulty of the spell he/she is casting. This assures that it is always more difficult to resist a flamestrike than it is to resist a magic arrow, as the circle of the spell is included in the chance-to-resist calculation. It also gives clear advantages towards having higher levels of magery, as even fireball can become extremely deadly when it's being thrown from multiple master or grandmaster mages.
Figuring your chance to resist a spell is done as follows: Your chance to resist a spell is the greater of either:
- Your resistance skill divided by 5
Your_Chance_to_Resist = Your_Resistance / 5
- Your resistance skill minus the sum of (your attackers magery skill (less 20 points) divided by five) and (the circle of the spell multiplied by 5)
Your_Chance_to_Resist = Your_Resistance - (( Attackers_Magery - 20 )/5 + Spell_Circle*5))
This ensures that you always have a minimum chance to resist a spell. That minimum chance is your resistance skill divided by five. So a character with 30 resistance skill, always has at least a 6% chance to resist ANY spell thrown by ANYONE. This is necessary to ensure that its still possible to advance the skill, even at low levels. Admittedly at zero skill, your chance to resist would be zero. However, you can easily train up to 20-30 points of the skill from mage NPC's (this is highly recommended to anyone who has a character with zero resistance).
Conversely, This tells mages that they don't always have to use the highest possible spell in their arsenal. If they know their opponent well enough to have a grasp of his/her resistance skill, lower spells can be used with nearly equal effectiveness. (though admittedly, at a higher cost in reagents). Your evaluate intelligence skill, as an attacker, does not enter in to this part of the equation. Quite simply, Evaluate Intelligence has no affect on your opponents chance to resist a spell.
Resisted spell = Half damage
ALL remaning damage (resisted or otherwise) is affected by the relative amounts of your resistance skill versus the evaluate intelligence skill of your attacker. This is a passive check of the skill, the player does not need to use evaluate inteligence on anything during or before combat to gain the benefits of having high evaluate intelligence (EI).
The remaining damage is multiplied against a small equation:
If your resistance is higher than your opponents evaluate intelligence, then the equation is:
- (1 + (Attackers_EI - Your_resistance) / 200 )
If your resistance is lower than your opponents evaluate intelligence, then the equation is:
- (1 + (Attackers_EI - Your_resistance) / 500 )
From this modifier, further damage is either taken away or added to the Base_Damage after resistance was figured in. If the spell was resisted, then Base_Damage is already at 50% of what it would be, otherwise it's still at 100%. Here's a small table Illustrating the effects of this modifier:
Extrapolated Damage Modification
These percentages are what happens to the damage after the spell is/is-not resisted.
Eval Int = Resist 100EI vs 50MR 100EI vs 0MR 50EI vs 0MR 0EI vs 50MR 0EI vs 100MR 50EI vs 100MR Damage Change No Change +10% +20% +10% -25% -50% -25%
Bear In Mind that these percentages are added or taken-away from the base_damage AFTER the spell is or is not resisted. Meaning that if your base damage has already been reduced by half(by resisting it), it can be reduced yet another 50% (if you have zero evaluate intelligence). This means that spell damage can be reduced by 50% twice, making the range for damage start from 25%, and spread all the way up to 120%.
Example One: Attacker has 80 Magery and Evaluate Intelligence. He shoots an E-bolt at a defender with GM(100) Resistance.
Chance to resist = 100 - ( ( 80 - 20 ) / 5 + 6*5) = 58% chance to resist the spell Damage modifier = 1 + (80 - 100)/200 = .9 = 90% of base damage (after resist calculation) The result here is a 58% chance to resist the spell, doing 45% damage if resisted, and 90% damage if not resisted.
Example Two: Attacker has 90 Magery and 70 Evaluate Intelligence. He shoots a flamestrike at a defender with GM(100) Resistance.
Chance to resist = 100 - ( ( 90 - 20 ) / 5 + 7*5) = 51% chance to resist the spell Damage modifier = 1 + (70 - 100)/200 = .85 = 85% of base damage (after resist calculation) The result here is a 51% chance to resist the spell, doing 35% damage if resisted, and 85% damage if not resisted.
Example Three: Attacker has 95 Magery and 75 Evaluate Intelligence. He shoots an explosion at a defender with 70 Resistance.
Chance to resist = 70 - ( ( 95 - 20 ) / 5 + 6*5) = 25% chance to resist the spell Damage modifier = 1 + (75 - 70)/500 = 1.01 = 101% of base damage (after resist calculation) The result here is a 25% chance to resist the explosion spell, doing about 50.5% damage if resisted, and around 101% damage if not resisted.
Example Four: Attacker has 100 Magery and 100 Evaluate Intelligence. He shoots a chain lightning at a defender with 30 Resistance.
Chance to resist = resist / 5 = 6% chance to resist the spell (resist/5 is used because his chance to resist with the other equation is lower than his resistance skill divided by 5) Damage modifier = 1 + (100 - 30)/500 = 1.14 = 114% of base damage (after resist calculation) The result here is a 6% chance to resist the chain lightning, doing about 57% damage if resisted, and around 114% damage if not resisted.
Actual table of Raw Data collected from playing on Test Center Left number is Evaluate Intelligence, (vs) the right number is Magic Resistance
Average Spell Damages 0vs0 0vs50 0vs100 50vs0 50vs50 50vs100 100vs0 100vs50 100vs100 Fireball 9.8 7.2 4.7 9.3 10.1 4.6 12.9 11.6 9.1 Lightning 12.7 11.5 4.8 16.4 12.9 6.6 14.1 12.9 10.4 Explosion 21.9 17.1 8.8 23.6 25.3 13.1 24.9 36.6 25.5 Ebolt 25.7 20.5 13 24.4 20.3 18.1 35.3 35.3 21.2 Flamestrike 26.6 22.1 13.6 29.5 28.3 21.5 37.5 30.3 29.2
Minimum Spell Damages 0vs0 0vs50 0vs100 50vs0 50vs50 50vs100 100vs0 100vs50 100vs100 Fireball 5 4 3 1 6 2 7 6 6 Lightning 5 4 3 6 6 2 7 6 1 Explosion 14 7 2 11 10 6 11 16 7 Ebolt 9 6 5 10 10 7 12 12 10 Flamestrike 11 13 4 13 12 12 21 13 12
Maximum Spell Damages 0vs0 0vs50 0vs100 50vs0 50vs50 50vs100 100vs0 100vs50 100vs100 Fireball 14 11 7 16 15 11 17 16 17 Lightning 20 16 10 23 21 12 25 26 21 Explosion 39 31 18 40 42 28 40 47 42 Ebolt 40 31 21 40 37 28 49 49 42 Flamestrike 37 33 24 47 49 37 59 54 49
Number of Resisted Spells 0vs0 0vs50 0vs100 50vs0 50vs50 50vs100 100vs0 100vs50 100vs100 Fireball 0 0 5 0 0 8 0 0 5 Lightning 0 0 8 0 0 8 0 0 4 Explosion 0 0 7 0 0 6 0 0 5 Ebolt 0 0 2 0 0 6 0 0 4 Flamestrike 0 0 3 0 0 1 0 0 2
Credits: This raw data table was created in a labor of love by: Sir Adrick, Ledskof, Elowyn, Carisse, Abbi, and Faceless. It was generously donated to UO Stratics by Marduk of RPG Bug Base
- All mages had 100 magery, 100 meditation, and 100 int.
- All victims had 100 str.
- Each sample was of 15 spells, the victim's resist was reset to the testing level every 5 spells, so the testing procedure looked like this:
- Set to testing parameters (e.g. 100 eval int, 50 resist)
- Cast spell 5 times
- Reset to testing parameters (e.g. reset to 50 resist, in case skill was gained)
- Cast spell 5 times
- Reset to testing parameters
- Cast spell 5 times
- Set to new testing parameters
- Note: This data comes from Test Center, before the last changes to resistance became finalized.
As such, it's highly likely that small discrepancies exist between the equations and the data illustrated in this document.
Note all of this explained thus far does not cover the effects of duration spells that do not do "direct damage". Most of those are, at this point, unresistable in their numeric affects on your stats. However, higher resistance has proven to significantly reduce the duration of these spells. The numeric effects of these spells on stats are easily tabled for you here:
Magery Level 10 20 30 40 50 60 70 80 90 100 Stat Change ± 1 ± 2 ± 3 ± 4 ± 5 ± 6 ± 7 ± 8 ± 9 ± 10
- Note: Duration modification data is not available. However, The numeric affects these spells have on you are simple to calculate.
A Simple example of this would be casting CURSE on a monster or player. If your magery is 85, then you take -8 points away from that character in all three stat categories. Conversely, if you were to cast bless, you would add +8 stats to all three stat categories.
To train resist relatively quickly until skill level 55.0, you can use the firefield method: run up and down a firefield (4th level spell) to cause skill checks in quick succession. After 55 skill resist cannot be gained from the fire field spell anymore. This can be macroed with Razor but requires a long macro, managing of which may be cumbersome. Also, a firefield running macro requires the usage of movement commands which will make your movement seem jumpy, fixing of which probably will require restarting the client when you're done macroing. Here is an example macro for training with a fire field that will be placed in the east-west axis (copy and paste to a text editor to modify or save):
// requires around 50 magery, 30 healing, 80+ HPs // and probably considerably more than 30 anatomy (i had 70). // if you don't meet these (or if you clearly surpass any) // you should probably modify the macro // practicing is executed in a narrow west-eastward corridor // of 2 by 7 tiles in size. !Loop //main loop Assistant.Macros.IfAction|50|1|1|Sulfurous Ash // check whether you (still) have regs to start (or keep going on) training. // sulf. ash is assumed to be the sparsest and hence the only one checked. also // you should make sure you won't run out of bandages before you run out of regs (or you'll end up killing yourself in the fire field) Assistant.Macros.ForAction|10 // loop a while to make sure you'll be full health. Assistant.Macros.IfAction|0|0|79 // check that you have enough health, mine full hp is 80, hence the 79 here. // if you have higher HPs, edit the line for a bit of extra safety Assistant.Macros.HotKeyAction|1025| // apparently action no. 1025 is healing. how intuitive! Assistant.Macros.PauseAction|00:00:00.5000000 // slight delay to prevent action queue clogging. you'll notice me inserting these here and there Assistant.Macros.HotKeyAction|1044106| // ...and 1044106 stands for meditation! easy and readable. Assistant.Macros.PauseAction|00:00:15.5000000 Assistant.Macros.EndIfAction Assistant.Macros.EndForAction Assistant.Macros.MacroCastSpellAction|28 // first attempt to cast the firefield... Assistant.Macros.WaitForTargetAction|5 Assistant.Macros.TargetRelLocAction|0|1 Assistant.Macros.ForAction|6 // ...and trying again at least 6 times... (lower this number if you have confidence in your magery skill) Assistant.Macros.IfAction|4|0|fizzles // ...to take account of the possible fizzles... Assistant.Macros.PauseAction|00:00:01.5000000 Assistant.Macros.MacroCastSpellAction|28 // ...try casting it again! Assistant.Macros.WaitForTargetAction|5 Assistant.Macros.TargetRelLocAction|0|1 Assistant.Macros.EndIfAction Assistant.Macros.EndForAction // now the center of the field should have flamed up exactly one step south of you! // walk into the west end of it and east from there: Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|4 Assistant.Macros.WalkAction|4 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.ForAction|3 // go back at most 3 times for a little bit extra hurt... Assistant.Macros.IfAction|0|1|59 // if your HP's allow it (cuz my healing was as low as 30, i didn't want to go too low and set the limit at 59) Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.EndIfAction Assistant.Macros.EndForAction Assistant.Macros.HotKeyAction|1025| // bandage up (and meditate) Assistant.Macros.PauseAction|00:00:00.5000000 Assistant.Macros.HotKeyAction|1044106| Assistant.Macros.PauseAction|00:00:15.5000000 Assistant.Macros.IfAction|0|1|75 // if the bandage kicked in, there's still time for a second firewalk! from east to west: Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.ForAction|3 // again extra hurt if HP's permit Assistant.Macros.IfAction|0|1|59 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.EndIfAction Assistant.Macros.EndForAction Assistant.Macros.HotKeyAction|1025| // bandage up and return to starting position Assistant.Macros.WalkAction|0 Assistant.Macros.WalkAction|0 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|2 Assistant.Macros.WalkAction|4 Assistant.Macros.HotKeyAction|1044106| // as already before, using the bandage delay to meditate Assistant.Macros.PauseAction|00:00:15.5000000 Assistant.Macros.ElseAction // if the bandage didn't kick in after the first go at the first attempt, // there won't be time for more (safe) firewalking // thus, proceed to return back to the starting point and bandage & meditate up: Assistant.Macros.WalkAction|0 Assistant.Macros.WalkAction|0 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|6 Assistant.Macros.WalkAction|4 Assistant.Macros.HotKeyAction|1025| Assistant.Macros.PauseAction|00:00:00.5000000 Assistant.Macros.HotKeyAction|1044106| Assistant.Macros.PauseAction|00:00:15.5000000 Assistant.Macros.EndIfAction Assistant.Macros.ElseAction // else block for the if clause "check whether you (still) have regs" // when your sulf. ash runs out, the loop will be stuck in this block, doing nothing. // for a more elegant solution, implement recall+restock functionality (can get a tad more complex) // or escape and end this macro by invoking another macro, say, a macro that will hide you or recall you elsewhere Assistant.Macros.EndIfAction // end if "check whether you (still) have regs"
With the above macro, which is not optimized for time, it takes about 200-250 of each fire field reagent, a few hundred bandages and 3 hours to reach skill level 55, starting from around 30.
The new function of the spell Poisonis a complete mystery at this point. It is known that higher levels of resistance reduce the level of poison received and seemingly the duration that it remains potent. However, the UOSS currently has no conclusive data to share on this spell.
The spells Mana Drain and Mana Vampire work slightly differently. The calculation for the chance-to-resist these two spells is known to be similar, if not identical to the calculation for direct damage spells. However, instead of reducing their effects by half, when these spells are resisted, they are completely resisted, having NO EFFECT on their target. When they are not resisted, they take a percentage of Mana OUT of their target's attributes. In the case of Mana Vampire, that mana is given to the attackers attributes. How this percentage of mana is calculated, noone seems to know. Observations seem to show that these spells can take as much as 65-75% to as little as 30% of the mana currently available to the defender.
The Mind Blast spell is another complete mystery. Originally this spell compared the INT of the attacker versus the INT of the defender, and the loser suffered severe damage. Now, it's rather unknown exactly how this spell works with resistance and evaluate intelligence, or even how much damage can be accomplished by using it.
The spells Earthquake, Chain Lightning, and Meteor Swarm all have an added wrinkle. The nature of these spells is that they are area affect spells. As such, anyone standing in the area of affect receives a portion of the damage. This means that using these spells against large groups is rather ineffective, as the damage sustained by any one target is very low. However, against 1-3 opponents, the results can be devastating if timed and targeted correctly.