Project 1999

Go Back   Project 1999 > Class Discussions > Priests

Reply
 
Thread Tools Display Modes
  #1  
Old 02-03-2023, 12:41 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,390
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
Like neither of you get it, I actually posted the source documentation to the original warrior post that had the chances per hit and broke the math down to the 5% margin you avoid being "stunned"

You two literally don't understand the following;

1. Bash does not always stun. It has a chance to stun. It's not guaranteed
2. It also has a less chance of hitting you than a normal hit
3. If a mob is lower than you in level by a decent amount, even if it bashes, it has a reduced chance to stun the lower level the monster is.


I'm literally feeding you guys the source material and you're not reading it.
You simply aren't reading, which is why you think we don't get it, and why you think your evidence is good.

I posted this earlier:

Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
No, FSI is only relevant when mobs bash you. Bash has 3 components:
1. Damage
2. Chance to interrupt spell
3. Chance to Stun (100% chance to interrupt spell)

FSI removes the chance to stun. This means you always have a chance to finish casting your spells when you get bashed, you never have to worry about the stun (auto interrupt). This is if you are facing the target. If they hit you from behind, you can still be stunned.
And I showed the source code for EQEMU in the other thread you made in the tank section (which you also didn't read):

 

Code:
		bool can_stun = false;
		int stunbash_chance = 0; // bonus
		if (attacker) {
			if (skill_used == EQ::skills::SkillBash) {
				can_stun = true;
				if (attacker->IsClient())
					stunbash_chance = attacker->spellbonuses.StunBashChance +
					attacker->itembonuses.StunBashChance +
					attacker->aabonuses.StunBashChance;
			}
			else if (skill_used == EQ::skills::SkillKick &&
				(attacker->GetLevel() > 55 || attacker->IsNPC()) && GetClass() == WARRIOR) {
				can_stun = true;
			}

			bool is_immune_to_frontal_stun = false;

			if (IsBot() || IsClient() || IsMerc()) {
				if (
					IsPlayerClass(GetClass()) &&
					RuleI(Combat, FrontalStunImmunityClasses) & GetPlayerClassBit(GetClass())
				) {
					is_immune_to_frontal_stun = true;
				}


				if (
					(
						IsPlayerRace(GetBaseRace()) &&
						RuleI(Combat, FrontalStunImmunityRaces) & GetPlayerRaceBit(GetBaseRace())
					) ||
					GetBaseRace() == RACE_OGGOK_CITIZEN_93
				) {
					is_immune_to_frontal_stun = true;
				}
			} else if (IsNPC()) {
				if (
					RuleB(Combat, NPCsUseFrontalStunImmunityClasses) &&
					IsPlayerClass(GetClass()) &&
					RuleI(Combat, FrontalStunImmunityClasses) & GetPlayerClassBit(GetClass())
				) {
					is_immune_to_frontal_stun = true;
				}

				if (
					RuleB(Combat, NPCsUseFrontalStunImmunityRaces) &&
					(
						(
							IsPlayerRace(GetBaseRace()) &&
							RuleI(Combat, FrontalStunImmunityRaces) & GetPlayerRaceBit(GetBaseRace())
						) ||
						GetBaseRace() == RACE_OGGOK_CITIZEN_93
					)
				) {
					is_immune_to_frontal_stun = true;
				}
			}

			if (
				is_immune_to_frontal_stun &&
				!attacker->BehindMob(this, attacker->GetX(), attacker->GetY())
			) {
				can_stun = false;
			}

			if (GetSpecialAbility(UNSTUNABLE)) {
				can_stun = false;
			}
		}
		if (can_stun) {
			int bashsave_roll = zone->random.Int(0, 100);
			if (bashsave_roll > 98 || bashsave_roll > (55 - stunbash_chance)) {
				// did stun -- roll other resists
				// SE_FrontalStunResist description says any angle now a days
				int stun_resist2 = spellbonuses.FrontalStunResist + itembonuses.FrontalStunResist +
					aabonuses.FrontalStunResist;
				if (zone->random.Int(1, 100) > stun_resist2) {
					// stun resist 2 failed
					// time to check SE_StunResist and mod2 stun resist
					int stun_resist =
						spellbonuses.StunResist + itembonuses.StunResist + aabonuses.StunResist;
					if (zone->random.Int(0, 100) >= stun_resist) {
						// did stun
						// nothing else to check!
						Stun(2000); // straight 2 seconds every time
					}
					else {
						// stun resist passed!
						if (IsClient())
							MessageString(Chat::Stun, SHAKE_OFF_STUN);
					}
				}
				else {
					// stun resist 2 passed!
					if (IsClient())
						MessageString(Chat::Stun, AVOID_STUNNING_BLOW);
				}
			}
			else {
				// main stun failed -- extra interrupt roll
				if (IsCasting() &&
					!EQ::ValueWithin(casting_spell_id, 859, 1023)) // these spells are excluded
																	  // 90% chance >< -- stun immune won't reach this branch though :(
					if (zone->random.Int(0, 9) > 1)
						InterruptSpell();
			}
		}

		if (spell_id != SPELL_UNKNOWN && !iBuffTic) {
			//see if root will break
			if (IsRooted() && !FromDamageShield)  // neotoyko: only spells cancel root
				TryRootFadeByDamage(buffslot, attacker);
		}
		else if (spell_id == SPELL_UNKNOWN)
		{
			//increment chances of interrupting
			if (IsCasting()) { //shouldnt interrupt on regular spell damage
				attacked_count++;
				LogCombat("Melee attack while casting. Attack count [{}]", attacked_count);
			}
		}


I have also shown videos where it shows I would save more HP with FSI preventing a stun than HP regen:

https://youtu.be/igpbLuNe0ls?t=440

https://youtu.be/uEgFcImQ9XU?t=18

You didn't even read https://wiki.project1999.com/Sakuragi%27s_Warrior_Guide correctly. He is saying if a fight lasts 40 seconds and you get stunned for 2 seconds, the 2 seconds of being stunned is 5% of the total 40 seconds. A Warrior only cares about the raw stun time, since that is time they can't swing their weapons. Spell casters lose more time when getting stunned, because you also have to take into account the amount of time it takes to recast a spell. If you get stunned 4 seconds in to casting Malo, you end up wasting a minimum of 6 seconds (2 from stun and 4 from the spell you didn't finish).

If Sakuragi's math is correct:

1. Over 80 seconds a mob would use their secondary attack 10 times.
2. 8/10 of those secondary attacks would be bashes
3. 4/10 of those secondary attacks would hit
4. 2/10 of those bashes would stun

This means 1 stunning bash every 40 seconds, so I assume he thinks the stuns last for 2 seconds. Based on the source code I showed above, that seems correct.
Last edited by DeathsSilkyMist; 02-03-2023 at 01:01 PM..
Reply With Quote
  #2  
Old 02-03-2023, 08:25 PM
ya.dingus ya.dingus is offline
Sarnak

ya.dingus's Avatar

Join Date: May 2022
Posts: 320
Default

Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
You simply aren't reading, which is why you think we don't get it, and why you think your evidence is good.

I posted this earlier:



And I showed the source code for EQEMU in the other thread you made in the tank section (which you also didn't read):

 

Code:
		bool can_stun = false;
		int stunbash_chance = 0; // bonus
		if (attacker) {
			if (skill_used == EQ::skills::SkillBash) {
				can_stun = true;
				if (attacker->IsClient())
					stunbash_chance = attacker->spellbonuses.StunBashChance +
					attacker->itembonuses.StunBashChance +
					attacker->aabonuses.StunBashChance;
			}
			else if (skill_used == EQ::skills::SkillKick &&
				(attacker->GetLevel() > 55 || attacker->IsNPC()) && GetClass() == WARRIOR) {
				can_stun = true;
			}

			bool is_immune_to_frontal_stun = false;

			if (IsBot() || IsClient() || IsMerc()) {
				if (
					IsPlayerClass(GetClass()) &&
					RuleI(Combat, FrontalStunImmunityClasses) & GetPlayerClassBit(GetClass())
				) {
					is_immune_to_frontal_stun = true;
				}


				if (
					(
						IsPlayerRace(GetBaseRace()) &&
						RuleI(Combat, FrontalStunImmunityRaces) & GetPlayerRaceBit(GetBaseRace())
					) ||
					GetBaseRace() == RACE_OGGOK_CITIZEN_93
				) {
					is_immune_to_frontal_stun = true;
				}
			} else if (IsNPC()) {
				if (
					RuleB(Combat, NPCsUseFrontalStunImmunityClasses) &&
					IsPlayerClass(GetClass()) &&
					RuleI(Combat, FrontalStunImmunityClasses) & GetPlayerClassBit(GetClass())
				) {
					is_immune_to_frontal_stun = true;
				}

				if (
					RuleB(Combat, NPCsUseFrontalStunImmunityRaces) &&
					(
						(
							IsPlayerRace(GetBaseRace()) &&
							RuleI(Combat, FrontalStunImmunityRaces) & GetPlayerRaceBit(GetBaseRace())
						) ||
						GetBaseRace() == RACE_OGGOK_CITIZEN_93
					)
				) {
					is_immune_to_frontal_stun = true;
				}
			}

			if (
				is_immune_to_frontal_stun &&
				!attacker->BehindMob(this, attacker->GetX(), attacker->GetY())
			) {
				can_stun = false;
			}

			if (GetSpecialAbility(UNSTUNABLE)) {
				can_stun = false;
			}
		}
		if (can_stun) {
			int bashsave_roll = zone->random.Int(0, 100);
			if (bashsave_roll > 98 || bashsave_roll > (55 - stunbash_chance)) {
				// did stun -- roll other resists
				// SE_FrontalStunResist description says any angle now a days
				int stun_resist2 = spellbonuses.FrontalStunResist + itembonuses.FrontalStunResist +
					aabonuses.FrontalStunResist;
				if (zone->random.Int(1, 100) > stun_resist2) {
					// stun resist 2 failed
					// time to check SE_StunResist and mod2 stun resist
					int stun_resist =
						spellbonuses.StunResist + itembonuses.StunResist + aabonuses.StunResist;
					if (zone->random.Int(0, 100) >= stun_resist) {
						// did stun
						// nothing else to check!
						Stun(2000); // straight 2 seconds every time
					}
					else {
						// stun resist passed!
						if (IsClient())
							MessageString(Chat::Stun, SHAKE_OFF_STUN);
					}
				}
				else {
					// stun resist 2 passed!
					if (IsClient())
						MessageString(Chat::Stun, AVOID_STUNNING_BLOW);
				}
			}
			else {
				// main stun failed -- extra interrupt roll
				if (IsCasting() &&
					!EQ::ValueWithin(casting_spell_id, 859, 1023)) // these spells are excluded
																	  // 90% chance >< -- stun immune won't reach this branch though :(
					if (zone->random.Int(0, 9) > 1)
						InterruptSpell();
			}
		}

		if (spell_id != SPELL_UNKNOWN && !iBuffTic) {
			//see if root will break
			if (IsRooted() && !FromDamageShield)  // neotoyko: only spells cancel root
				TryRootFadeByDamage(buffslot, attacker);
		}
		else if (spell_id == SPELL_UNKNOWN)
		{
			//increment chances of interrupting
			if (IsCasting()) { //shouldnt interrupt on regular spell damage
				attacked_count++;
				LogCombat("Melee attack while casting. Attack count [{}]", attacked_count);
			}
		}


I have also shown videos where it shows I would save more HP with FSI preventing a stun than HP regen:

https://youtu.be/igpbLuNe0ls?t=440

https://youtu.be/uEgFcImQ9XU?t=18

You didn't even read https://wiki.project1999.com/Sakuragi%27s_Warrior_Guide correctly. He is saying if a fight lasts 40 seconds and you get stunned for 2 seconds, the 2 seconds of being stunned is 5% of the total 40 seconds. A Warrior only cares about the raw stun time, since that is time they can't swing their weapons. Spell casters lose more time when getting stunned, because you also have to take into account the amount of time it takes to recast a spell. If you get stunned 4 seconds in to casting Malo, you end up wasting a minimum of 6 seconds (2 from stun and 4 from the spell you didn't finish).

If Sakuragi's math is correct:

1. Over 80 seconds a mob would use their secondary attack 10 times.
2. 8/10 of those secondary attacks would be bashes
3. 4/10 of those secondary attacks would hit
4. 2/10 of those bashes would stun

This means 1 stunning bash every 40 seconds, so I assume he thinks the stuns last for 2 seconds. Based on the source code I showed above, that seems correct.
So you're saying, it's still 5%

And for that 5% you want me to believe that overcapping on stats, being big all the time, having some of the worse visual icons, is somehow a good trade?

Sorry 5% while being hit, which you only get the maximum amount of value that FSI offers if you're a warrior basically. Anyone else that's not getting hit from the front all the time sees none of the benefit.

I'm going to have to #hardpass. FSI is a noob trap at worst, or a small QOL at best.
__________________
Ever /report a playa?

(nope)

Reply With Quote
  #3  
Old 02-03-2023, 09:19 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,390
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
So you're saying, it's still 5%

And for that 5% you want me to believe that overcapping on stats, being big all the time, having some of the worse visual icons, is somehow a good trade?

Sorry 5% while being hit, which you only get the maximum amount of value that FSI offers if you're a warrior basically. Anyone else that's not getting hit from the front all the time sees none of the benefit.

I'm going to have to #hardpass. FSI is a noob trap at worst, or a small QOL at best.
No, it isn't 5% for casters. Did you not read what I just said? If you get bashed while casting Malo 4 seconds in, you are losing 6 seconds in that 40 seconds, not 2 seconds. That is 15% of your time wasted per 40 seconds on average. That is pretty big when you are in the pre-slow phase.

Nobody is forcing you to play an Ogre[You must be logged in to view images. Log in or Register.] I am not sure why you are so angry about FSI being superior to Regeneration with Torpor. Both are small benefits, we are just determining which one is better. Better doesn't mean leagues ahead. I have provided plenty of evidence to show how useful FSI is with Torpor. Your evidence isn't evidence against FSI.
Reply With Quote
  #4  
Old 02-03-2023, 09:42 PM
ya.dingus ya.dingus is offline
Sarnak

ya.dingus's Avatar

Join Date: May 2022
Posts: 320
Default

Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
No, it isn't 5% for casters. Did you not read what I just said? If you get bashed while casting Malo 4 seconds in, you are losing 6 seconds in that 40 seconds, not 2 seconds. That is 15% of your time wasted per 40 seconds on average. That is pretty big when you are in the pre-slow phase.

Nobody is forcing you to play an Ogre[You must be logged in to view images. Log in or Register.] I am not sure why you are so angry about FSI being superior to Regeneration with Torpor. Both are small benefits, we are just determining which one is better. Better doesn't mean leagues ahead. I have provided plenty of evidence to show how useful FSI is with Torpor. Your evidence isn't evidence against FSI.
It's 5% for melee, it's worse for casters.

Here you are trying to change the goal posts to make FSI "better" but it's just a noob trap.

Why dont you adjust your situation to be more accurate:

1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you get interrupted.


Or what's more likely to happen as the ogre experience:


1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you resist.
5. If you didnt get immediately interrupted you may get pushed
6. If you get pushed, you may get interrupted, but you wont know until the end of your cast
7. you may get your spell off.



It's a n00b trap baby, nooooooob trap. Learn to play better is what I highly recommend.


Like I said, Ogres just living in an atmosphere of copium, they've practically evolved in it to ensure their survivability as everyone realizes FSI is the worst trade deal in the history of trade deals.
__________________
Ever /report a playa?

(nope)

Last edited by ya.dingus; 02-03-2023 at 09:44 PM..
Reply With Quote
  #5  
Old 02-03-2023, 09:44 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,390
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
It's 5% for melee, it's worse for casters.

Here you are trying to change the goal posts to make FSI "better" but it's just a noob trap.

Why dont you adjust your situation to be more accurate:

1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you get interrupted.


Or what's more likely to happen as the ogre experience:


1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you resist.
5. If you didnt get immediately interrupted you may get pushed
6. If you get pushed, you may get interrupted, but you wont know until the end of your cast
7. you may get your spell off.



It's a n00b trap baby, nooooooob trap. Learn to play better is what I highly recommend.
This is just nonsense lol. I am not sure how "playing better" changes how FSI or Regen helps you with Torpor. But you totally proved your point by repeating childish sayings.
Reply With Quote
  #6  
Old 02-03-2023, 09:48 PM
ya.dingus ya.dingus is offline
Sarnak

ya.dingus's Avatar

Join Date: May 2022
Posts: 320
Default

Quote:
Originally Posted by DeathsSilkyMist [You must be logged in to view images. Log in or Register.]
This is just nonsense lol. I am not sure how "playing better" changes how FSI or Regen helps you with Torpor. But you totally proved your point by repeating childish sayings.
How playing better doesn't effect FSI?

Maybe not trying to take free hits whenever you can to try to make your situational race trait somewhat useful.

Just straight up convo be like:

"Yo guys, I'm permanently immune to stuns from the front. So in the 37% chance a mob's bash may actually hit me, and may actually stun, I'll be immune to it!"

What did you have to give up for it?

"Everything."
__________________
Ever /report a playa?

(nope)

Reply With Quote
  #7  
Old 02-03-2023, 09:54 PM
DeathsSilkyMist DeathsSilkyMist is offline
Planar Protector

DeathsSilkyMist's Avatar

Join Date: Jan 2014
Posts: 8,390
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
How playing better doesn't effect FSI?

Maybe not trying to take free hits whenever you can to try to make your situational race trait somewhat useful.

Just straight up convo be like:

"Yo guys, I'm permanently immune to stuns from the front. So in the 37% chance a mob's bash may actually hit me, and may actually stun, I'll be immune to it!"

What did you have to give up for it?

"Everything."
You do know if you "play better", you aren't regenerating most of the time, right? You just Torpor back to full HP out of combat. Not sure how that helps your case. The better you get, typically the less you are regenerating. Torpor Shamans typically aren't chain killing mobs.

Shaman spells are slow to cast. Malo has a 5 second cast. There are many situations where you don't have enough room to have max distance on a mob when casting your first spell. How are you going to avoid getting hit in the pre-slow phase? Are resistances something you can game with skill? What if a mob resists multiple spells?

If you have some awesome strategies to share, that would be great!
Reply With Quote
  #8  
Old 02-03-2023, 10:37 PM
skorge skorge is offline
Planar Protector

skorge's Avatar

Join Date: Sep 2010
Posts: 1,474
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
What did you have to give up for it?

"Everything."
You literally give up nothing for it. It’s a free racial trait. What kinda crack u smokin bro?
Reply With Quote
  #9  
Old 02-04-2023, 07:41 AM
Jimjam Jimjam is offline
Planar Protector


Join Date: Jul 2013
Posts: 12,856
Default

Quote:
Originally Posted by ya.dingus [You must be logged in to view images. Log in or Register.]
It's 5% for melee, it's worse for casters.

Here you are trying to change the goal posts to make FSI "better" but it's just a noob trap.

Why dont you adjust your situation to be more accurate:

1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you get interrupted.


Or what's more likely to happen as the ogre experience:


1. If a mob uses its secondary it may bash.
2. If a mob tries to bash you, it may hit.
3. If it does hit you, it may stun.
4. If it does stun you, you resist.
5. If you didnt get immediately interrupted you may get pushed
6. If you get pushed, you may get interrupted, but you wont know until the end of your cast
7. you may get your spell off.



It's a n00b trap baby, nooooooob trap. Learn to play better is what I highly recommend.


Like I said, Ogres just living in an atmosphere of copium, they've practically evolved in it to ensure their survivability as everyone realizes FSI is the worst trade deal in the history of trade deals.
Bash has a chance to interrupt just for hitting, in addition to the chances derived from stun and push.

P99 isn’t using the stock eqemu code for this (unless Rogean pushed the change back to eqemu idk).
Reply With Quote
Reply


Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off

Forum Jump


All times are GMT -4. The time now is 04:22 AM.


Everquest is a registered trademark of Daybreak Game Company LLC.
Project 1999 is not associated or affiliated in any way with Daybreak Game Company LLC.
Powered by vBulletin®
Copyright ©2000 - 2026, Jelsoft Enterprises Ltd.