Go Back   EQEmulator Home > EQEmulator Forums > Support > Support::General Support

Support::General Support Post all topics here having to do with errors while trying to connect to an EQEMu server but not about the setup/running of the Server itself.

Reply
 
Thread Tools Display Modes
  #1  
Old 01-22-2016, 12:29 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default Procs - Level Limit

Found a small bug today. I am not sure if this was something introduced with the newer source or not, no one noticed it with our old source Back in January 2015. Using something like a Throneblade of Ykesha (sp), which is a level 47 proc on lets say a level 41 Necro pet it will proc sometimes. Most of the time you get a "Your pets will is not sufficient", other times it gets right through. I have done multiple parses and with this combination it is around 1/5 times the proc makes it past some check.
Reply With Quote
  #2  
Old 01-22-2016, 01:33 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Okay dug further into the code. When the weapon is failing proc, it is failing where it should. When the weapon is actually procing, it is here...

This is around line 3845 in attack.cpp

Code:
	if (!rangedattk) {
			// Perma procs (AAs)
			if (PermaProcs[i].spellID != SPELL_UNKNOWN) {
				if (zone->random.Roll(PermaProcs[i].chance)) { // TODO: Do these get spell bonus?
					Log.Out(Logs::Detail, Logs::Combat,
							"Permanent proc %d procing spell %d (%d percent chance)",
							i, PermaProcs[i].spellID, PermaProcs[i].chance);
					ExecWeaponProc(nullptr, PermaProcs[i].spellID, on);
				} else {
					Log.Out(Logs::Detail, Logs::Combat,
							"Permanent proc %d failed to proc %d (%d percent chance)",
							i, PermaProcs[i].spellID, PermaProcs[i].chance);
				}
			}
Reply With Quote
  #3  
Old 01-22-2016, 01:46 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Here is a hit.

Code:
[Fri Jan 22 10:52:54 2016] [Combat] Proc chance 0.11 (9.75 from bonuses)
[Fri Jan 22 10:52:54 2016] [Combat] Proc chance 0.11 (9.75 from bonuses)
[Fri Jan 22 10:52:54 2016] [Combat] Permanent proc 0 failed to proc 445 (10 percent chance)
[Fri Jan 22 10:52:54 2016] [Combat] Permanent proc 1 procing spell 945 (3 percent chance)
[Fri Jan 22 10:52:54 2016] [Combat] Applying damage 75 done by Zibekn000 with skill 52 and spell 945, avoidable? no, is not a buff tic in slot -2
[Fri Jan 22 10:52:54 2016] a giant skeleton was hit by non-melee for 75 points of damage.
[Fri Jan 22 10:52:54 2016] [Combat] Stunned. We had 0 percent resist chance.
[Fri Jan 22 10:52:54 2016] A giant skeleton has been struck by the force of Ykesha.
And in the same battle, a miss because of level restriction on the item.

Code:
[Fri Jan 22 10:53:15 2016] Zibekn slashes a giant skeleton for 59 points of damage.
[Fri Jan 22 10:53:15 2016] [Combat] Proc chance 0.11 (9.75 from bonuses)
[Fri Jan 22 10:53:15 2016] [Combat] Tried to proc (Throneblade of the Ykesha), but our level (41) is lower than required (46)
[Fri Jan 22 10:53:15 2016] Your pet's will is not sufficient to command its weapon.
Reply With Quote
  #4  
Old 01-22-2016, 01:55 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

So, spell '945' is proc'ing ok..but, spell '445' is not?
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #5  
Old 01-22-2016, 01:56 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Yep. Still digging into the issue though
Reply With Quote
  #6  
Old 01-22-2016, 01:59 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Almost sounds like a required vs recommended level thing.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #7  
Old 01-22-2016, 02:07 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

https://github.com/EQEmu/Server/blob...ables.cpp#L332
Reply With Quote
  #8  
Old 01-22-2016, 02:18 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

My line in my source looks just like that? May have to spell it out for me Demonstar.
Reply With Quote
  #9  
Old 01-22-2016, 02:21 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

That's where the proc is added to the npc.

You could probably add a level check there to eliminate level-based failures.
__________________
Uleat of Bertoxxulous

Compilin' Dirty
Reply With Quote
  #10  
Old 01-22-2016, 02:30 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

I think I have it, adding some code in now.
Reply With Quote
  #11  
Old 01-22-2016, 02:30 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

It's adding the proc to the "PermaProcs" for some reason. I have no idea why, but it looks like that gives the NPC 2 chances to proc a proc from a weapon.
Reply With Quote
  #12  
Old 01-22-2016, 03:11 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Quote:
Originally Posted by demonstar55 View Post
It's adding the proc to the "PermaProcs" for some reason. I have no idea why, but it looks like that gives the NPC 2 chances to proc a proc from a weapon.
I am seeing the exact same thing, there is no reason for it to get that far into the code.
Reply With Quote
  #13  
Old 01-22-2016, 04:54 PM
Uleat's Avatar
Uleat
Developer
 
Join Date: Apr 2012
Location: North Carolina
Posts: 2,815
Default

Are you saying that client pets should not be processing this: https://github.com/EQEmu/Server/blob...ables.cpp#L224


EDIT: What I'm seeing is the possibility of two calls to this function..one with the primary weapon, the other with the secondary weapon.

This would allow a proc from each weapon to be added to the pet's weapon proc list.


EDIT2: There is a log message for debug > '11' here: https://github.com/EQEmu/Server/blob...ables.cpp#L234
__________________
Uleat of Bertoxxulous

Compilin' Dirty

Last edited by Uleat; 01-22-2016 at 05:03 PM..
Reply With Quote
  #14  
Old 01-22-2016, 05:09 PM
provocating's Avatar
provocating
Demi-God
 
Join Date: Nov 2007
Posts: 2,175
Default

Code:
		if (foundslot == MainPrimary) {
			if (item2->Proc.Effect != 0 && CastToMob()->GetLevel() > item2->Proc.Level) {
				CastToMob()->AddProcToWeapon(item2->Proc.Effect, true);
			}

This appears to be working. Is this safe or is there a better way of doing it?
Reply With Quote
  #15  
Old 01-22-2016, 05:11 PM
demonstar55
Demi-God
 
Join Date: Apr 2008
Location: MA
Posts: 1,164
Default

Quote:
Originally Posted by provocating View Post
Code:
		if (foundslot == MainPrimary) {
			if (item2->Proc.Effect != 0 && CastToMob()->GetLevel() > item2->Proc.Level) {
				CastToMob()->AddProcToWeapon(item2->Proc.Effect, true);
			}

This appears to be working. Is this safe or is there a better way of doing it?
Well, the fact that sometimes it was working tells me it's got 2 chances to proc, so the code should probably be removed, but I haven't had time to look over everything.
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 08:32 AM.


 

Everquest is a registered trademark of Daybreak Game Company LLC.
EQEmulator is not associated or affiliated in any way with Daybreak Game Company LLC.
Except where otherwise noted, this site is licensed under a Creative Commons License.
       
Powered by vBulletin®, Copyright ©2000 - 2024, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3