Bash Resists and Stun Immunity
Bash and kick stuns aren't spells but since we found the logic in the client and it's somewhat similar I'll go over it here.
The chance to 'resist' a bash stun is 55%, modified by the same level difference modifier as spells. I.e. level^2/2. It uses the same function.
The bash stun immunity check is the same function used by spells.
The check for level 55+ warriors using kick to stun and ogre race immunity is found in the decompiles.
Bashes that don't actually stun the target due to failing the roll will do a second roll to determine if the bash will interrupt a spell cast without stunning the target. These stunless interrupts still check for stun immunity however and will not happen on stun immune targets. This chance is 7 in 9, or about 78%.
Spells 859 to 1023 are excluded from this stunless interrupt chance.
There is a 1% minimum chance to full stun the target if it's not stun immune. (level difference would make deep reds immune otherwise)
The logic is this with some irrelevant things removed for clarity:
Code:
bash_resist_chance = GetBashResistChance(attacker_level);
roll = Rand0(0,100); // random number from 0 to 99 inclusive
if (roll < 99 && roll <= bash_resist_chance) {
roll = Rand0(0,9); // random number from 0 to 8 inclusive
if (roll > 1 && (spell_id < 859 || spell_id > 1023) && !this->IsStunImmune())
{
InterruptCast();
}
}
else {
StunMe(2000); // Stun for 2000 milliseconds. This function has a stun immunity check inside it as well
}
Pre-Velious if a target was stun immune then it was also always mez immune. Before Velious this immunity was solely hardcoded by race and level as far as I know. But in Velious they added a mez immune flag, so a target could be made mez immune but not stun immune. I started finding mobs in PoP that were stun immune and not mez immune but I can't say when exactly they added a stun immunity flag.
Interestingly the stun immunity check was added in the late pre-K classic period. My earliest log is from December 31 1999, and is of my wizard on a Vox raid. In this log Lady Vox is interrupted by bashes 19 times, and her melee damage is less frequent than expected, so the bashes may have actually been stunning. Even bashes from pets were interrupting Vox's casts. I have more Lady Vox logs from late pre-K classic era and there are no Vox interrupts in them, the next log being February 19 2000, so Sony added the stun immunity check to dragons between Dec 31 and Feb 19.
The February 1999 client handles bash a little differently. There is no stun immunity check and the chance to stun is reduced on targets above level 30 by an amount that increases the higher level the target is. The base stun chance is also 50 instead of 55.
Enchanter NPC Resist Override
Level 25+ Enchanter NPCs were hardcoded to be able to land spells on players no matter how much MR the players had. This was in all the decompiles except the February 1999 one.
The Enchanter NPC resist override reduced the effective resist to the target's level if the level was lower than the resist, then capped it at 40. So technically this would be a very low ceiling but since players are unlikely to face enchanter NPCs before they reach level 40 aside from evil eyes I just labeled it an override.
For the most part it caused green enchanter NPCs in Velious zones to grief players. I found several old threads to confirm this override:
"Um Sirens can charm through 200MR when they are green ... (trust me after that long soloing those things for the shawl) ...
Their charm is lured ... because this is the only spell that will land ... and being chanters all spells are MR based"
"I guess you could call it a lure. What's really wrong with sirens charm is the same thing as every other mobs charm. It's broken.
It doesn't matter what your mr is, because according to popular opinion on these boards, the NPC charm spell doesn't do a check on your MR, it just sticks.
Whats even worse than that is you can be charmed by a mob that already has a pet."
(Feb 2002)
https://web.archive.org/web/20020214...&f=19&t=001372
"By the way, if invis pops you could have 200 mr and those green freaking sirens can still charm a lvl 60. Talk about overpowered." (04-25-2001)
https://web.archive.org/web/20040928...p/t-10835.html
"They charm you right away as soon as they are within casting range. My Magic Resist with druid buff was at 170 and I was charmed just as often as my druid partner was with his MR at 60." (Jan 3rd 2002)
https://web.archive.org/web/20030130....shtml?id=6153
"As a level 60 monk...with 120-130 MR, green con sirens in CS have little trouble charming me... h8 those things!" (22 Apr 2002)
https://dbsanfte.github.io/eq-archiv...msg-108955.txt
This June 2002 post seems to indicate this override being removed mid-Luclin:
Quote:
Originally Posted by A Player on June 7 2002
"There used to be the same problem with Enchanter mobs,
they could Charm you with ease, even if they were *way*
green to you.
But that was mentioned as changed in one of the recent
flurry of patch messages -- now you get a normal
level/MR check against being Charmed.
And I can verify it. Last night I soloed the Sirens outside
of Sirens Grotto to clear them away before our raid
group came through, and although they tried to Charm
me a total of about 30 times, not one stuck (58 Paladin
with 91 MR). Hooray."
|
https://dbsanfte.github.io/eq-archiv...msg-121620.txt
Although I could not find a patch note mentioning this.
Al'Kabor logs do
not show any enchanter NPC resist override. I do see some charms on players in AK logs but these are Dictate casts. (Silverwing, Lady Nevederia and level 60+ PoP NPCs cast Dictate)
Why did Sony add this? Because reaching 100 MR, which is very easy to hit, would make enchanter NPCs entirely unthreatening as all spells would be resisted without it. That is my guess anyway. (although enchanter NPCs do cast tash)
More Post September 4 2002 Issues
When Sony switched to the new resist system about six weeks before PoP launched, they failed to account for some things which resulted in peculiar behavior.
One of the most significant issues is that many of the
CHA -4 lures were made
much harder to resist, because before the patch all lures were all-or-nothing rolls and after the patch some lures became partial hittable. Not only that but the partial damage scale became 600, so these spells went from a resist cap of 75% with somewhere around 200 resist value, to resisting ~64% with 500 resist value. Luclin added bard songs which hit outside of the group so this wasn't quite as bad as it sounds, but resist rates still went way down for these spells after the revamp.
The CHA -4 issue was very preventable however because Sony added a no_partial_save field to spells. They just neglected to flip this on for CHA -4 spells for whatever reason. They did apply this flag to the CHA -6 dragon breaths. Notably Freezing Breath (Ventani's AoE) and Stream of Acid (Nexona's AoE) were flagged to not partial save. If this flag were not flipped on then these AoEs would have resisted at a rate of 15% if the player had 192 resist value at level 60 whereas the rate is 45% using classic rules.
CHA -4 AoEs were more prevalent than CHA -6 AoEs in NToV. This made NToV harder than before the patch although by then it was fairly easy content due to AAs, Luclin gear and spells, spoilers and players having experienced it before. Vyemm's AoE is a CHA -4 AoE however.
"Is a lot tougher and longer fight. With nearly 300 mr i only resisted about 3 of his 50+ aoes, the fight usually takes us a couple mins, today it took 30! But nonetheless it was pretty fun fighting for 30 mins against nev"
"This fight is utter BS now. Some of the people in our guild had 350+ MR and were resisting 1 out of 30"
"We did Vyemm and Lady N and with at least 180+ in MR at all times I never resisted the Gflux and I only once resisted the "spin the bottle thingy""
"Fight was three times as long as before for us tonight. With 177 MR after she tash'd me I resisted about 20 to 25% of her AOEs. Now she also seemed to be AOEing more as well. Lord Koi was also longer, but not nearly the same upgrade that Lady N got"
Thread title:
Lady N with new resists
https://web.archive.org/web/20021120...cID=1237.topic
Stun Breath is Phara Dar's AoE and Zlandicar's proc spell. This spell became much easier to resist after the revamp because Sony either neglected to put a -150 resist adjust on it or decided not to. Unfortunately not doing that made those fights trivial and the fights would have still been much easier even if they had applied a -150 adjust on the spell because bards can raise MR by over 200 and the lure caps were removed.
Immolating Breath is Talendor's AoE and this had its no_partial_save field set true because it would have used the partial scale otherwise. This spell also unfortunately did not get a -150 adjust to it when it should have, so resisting it became very easy and it trivialized the encounter.
Ceticious Cloud is the weirdest spell of all of these. This is Severilous' and Wuoshi's AoE. The spell data for this spell had a direct damage component but the spell didn't actually do any damage in-game. It also had no recast timer/cooldown on it. Sev and Wuoshi in fact spammed this spell every 3-5 seconds and this was the case even on Al'Kabor. Sony seems to have "fixed" this spell's incorrect recast timer by making it not do damage. Why they did not just give it a recast time I don't know. Anyway this spell used to be a dragon breath lure before the revamp but all spells with damage in the first slot were made partialable and that includes this spell, so it needed the no-partial flag set to true which Sony did set, but they neglected to apply a -150 adjust on the spell. The result is that it became very easy to resist and these two dragons became loot pinatas.
The revamp removed the lure caps, and so players could be made immune from all the CHA -6 dragon breaths using bards. This made the encounters using these spells much easier if bards were available, as Sony had put a low cap (45% or not much higher) on these AoEs because the spells are what made the encounters difficult. It also made resists much less effective per-unit, so if your raid didn't have a bard then you had a harder time. The revamp made bards much more valuable for raids.
Memory Blur Resists
The resist function checks for SE 63 (mem blur) and applies the charisma modifier on these spells. This appears to be vestigial.
Blur effects are most likely handled outside of the resist function but I'll include what I know about them for completeness.
Developer posts and patch notes mention blurs:
May 18, 1999
"High level creatures get a better save vs. Memory Blur (Enchanter) and Atone (Cleric) spells"
https://web.archive.org/web/20001022...i/news.pl?id=7
May 21, 1999 GZ comments on Enchanter spell changes pt.1
"Only monsters with level 40 or higher gain resistance to Blur."
http://web.archive.org/web/200105010...ws/99-5-16.htm
May 24th, 1999
"The saving throw against Memory Blur and Atone was reduced (harder to save against) from the last patch."
https://groups.yahoo.com/api/v1/grou...t/messages/335
EverQuest Third Anniversary State of the Game part 2 (March 2002)
"Enchanters' Memory Blur line, and aspects of Rapture and Glamour of Kintaz have been improved."
http://boards.station.sony.com/ubb/e...ML/000521.html
March 19, 2002
"- Memory Blur, Mind Wipe, Blanket of Forgetfulness, Memory Flux, Glamour of Kintaz and Rapture have been given a greater chance of clearing the ‘hate list’"
A player I've corresponded with named Ravenwing who played on Al'Kabor and TAKP is extremely knowledgeable about the game and is somebody I and the community consider to be of high character. His input has been invaluable to my emu work and I consider any claims he makes to be highly credible. He posted this on the TAKP board:
Quote:
Originally Posted by Ravenwing
I personally confirmed that any memory blur - even a 1% blur, such as that on the level 4 mez - against a low-level NPC had a 100% success rate on Al'Kabor.
In 2010, long after the Al'Kabor era, a player named Crystilla (the webmaster at eqclerics.org, who seems to have been part of some kind of volunteer player committee with access to the developers) posted the following about Atone:
Quote:
Originally Posted by Crystilla
I talked to a Dev and it does. For those curious here's the formula and summary.
Description: Clears the affected NPC's entire hatelist.
Base effect 1 is a % bonus for the effect to occur.
The player is given a percentage bonus based on level, lower is better. < 17, bonus = 100, > 53 bonus = 25. Del's note: Referring to mob level with this part
Another bonus is applied for charisma. (Cha - 150) / 10 up to a maximum of 15.
|
Now, granted, this post is about eight years post Al'Kabor. However, I think the formula is accurate. First, because it matches my subjective impression of memory blur's success; second, because Pithy (one of Al'Kabor's smarter and more empirically-minded players) did a bit of testing of Blanket of Forgetfulness and Memory Flux on AK and found their success rates on high-level NPCs to be around 85% and 70% with ~300 cha, respectively; and third, because the mob levels specified in the formula suggest that it was written early on in the game's development.
|
Presumably that's how mem blur's chance to succeed worked from March 19 2002 onward.
I found an older comment regarding mem blur success rates from 2000:
Quote:
Originally Posted by Caster's Realm Poster, Sept 2000
I disagree that the entire memory blur line is useless at the higher levels, and find your figure of 12.5% success rate to be much, much lower than what I've experienced with the "real" blur spell, blanket of forgetfulness. Even against NPCs level 57 to 62, this spell is effective 30-50% of the time. That is extremely powerful, when you consider what the spell is really doing.
|
He claims that Blanket of Forgetfulness worked about half as often back then. The Luclin patch probably removed the level 40+ increased resistance. OG Sony liked to make things not work at higher levels, so them having made mem blur not work well at higher levels is unsurprising.
I also ran some mem blur tests on Live servers in 2021. The results did not quite match Crystilla's claim:
Memory Blur cast on a level 69 target by a level 65 enchanter with 277 charisma 401 times resulted in about 146 blurs, or 36%.
Memory Blur cast on a level 62 target by a level 65 enchanter with 277 charisma 478 times resulted in about 203 blurs, or 42.5%.
Expected chance would be 10%+25%+12% = 47%
Memory Flux cast on a level 62 target by a level 65 enchanter with 277 charisma 335 times resulted in about 199 blurs, or 59.5%.
Expected chance would be 30%+25%+12% = 67%
Blanket of Forgetfulness cast on a level 62 target by a level 65 enchanter with 277 charisma 354 times resulted in about 254 blurs, or 72%.
Expected chance would be 20%+25%+12%=57%+24.5% = 81.5%
So either Sony/Darkpaw nerfed mem blur somewhat after 2010, or Crystilla's claim is incorrect, or we're misinterpreting Crystilla's explanation or my tests were faulty. The tests were done by standing on top of a KOS NPC while an enchanter was blurring from outside of aggro range using an automated push button tool. NPCs will do their "I'm aggro" emote every 5.5 minutes and also when they aggro again after a blur, so I had to manually account for these extra emotes which is why I say "about" X blurs.
Miscellaneous
Spells That Didn't Roll
Several spell IDs were hardcoded to bypass the resist roll. These spells are: Dictate, Rapture, Enslave Death. Lifetaps (spell type 13) also bypassed the resist roll. All of these spells however could be blocked by the 151 limit, so all of these spells could still resist on mobs with high enough MR, and they all resisted exactly the same way. If the target had 150 or less effective resist then the spells landed, for full. (assuming they met level requirements)
CHA -5 spells (mostly wizard lures) and Poison Breath were also found in the "IsUnresistableSpell()" (I'm guessing at the name) function that Dictate, Rapture and Enslave Death were in. It appears as though Sony had early plans to make wizard lures (and Takanon's AoE) resist like lifetaps but instead decided to create the separate roll just for lures which I outlined earlier. This "IsUnresistableSpell()" function would never be called for lures because lures branch away from the main resist logic early in the function and do their own rolls.
In regards to lifetaps, apparently they were made resistable at some point in late 1999. I found old comments mentioning that time frame. The Feb 1999 client doesn't have an exception for lifetap spells in it but the March 2000 client does. Players mentioned something about Sony not liking newbie necros taking down Sand Giants. They also mention the "six level" rule applying.
I need to make this clear: lifetaps were
not unresistable in 2000 and later. In fact they resisted on so many raid NPCs that necros made it a primary issue for their class. See this thread:
https://web.archive.org/web/20010124.../045291-5.html
I did find an old comment which mentioned lifetaps not landing on Aaryonar until malo was applied, and that agrees with the logic and data I outlined.
Cazic Touch is also hardcoded right at the top of the resist algorithm to always land.
Mage Pet Level Advantage
At the top of the resist function there is a +5 to the caster level if something equals 27. We think that this may be a body type check but we're not entirely sure. If it is then this would give summoned mage pets a +5 to their caster level for their spells.
Resistant Discipline
The November 29 2000 client is the first client with the resist discipline in it. In that client the discipline always granted +3 to all resists, which is terrible. Sony buffed the discipline on December 6 2000. I checked the April 4 2001 client and can confirm that client scales from 3 to 10, with +4 starting at level 35.