Go Back   EQEmulator Home > EQEmulator Forums > Development > Development::Development

Development::Development Forum for development topics and for those interested in EQEMu development. (Not a support forum)

Reply
 
Thread Tools Display Modes
  #181  
Old 03-08-2013, 11:37 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Yes, they should only regen while out of combat.

Yes, they should respect spell recast timers.

Both work correctly for bots, so I just need to figure out why not for mercs.


I doubt there's any check for losing or gaining a level while suspended, so I'll check that out. Thanks for the info and keep it coming. I'm sure there are plenty of other issues out there.
Reply With Quote
  #182  
Old 03-10-2013, 09:39 PM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

Update-

With 2 PC, 2 merc group(like before), if the PC with the healer DOES NOT damage the mob being fought by the other PC and merc. THAT is when the healer regens mana like he is in restregen mode. If the PC with the healer engages in combat then healer never enters restregen mode.
Reply With Quote
  #183  
Old 03-10-2013, 10:00 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Okay, that helps a lot.

I wasn't seeing it in my tests, which makes sense because I only usually run 1 PC. There is code there that seems like it should accomplish what we want (get the npc on the merc's hate list to make him Engaged()), so I will take a look at that.

I will fire up a second PC and test this out further.

I'm just trying to come up with a basic spell list for caster DPS mercs (they cast so many different spells on live, it's taking a while to get live-lie, so I'm just doing a temporary generic list for them), then I will commit what I have.
Reply With Quote
  #184  
Old 03-11-2013, 11:10 AM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

Upon thinking about it i wondered if this is because mercs act like mobs... For example when you are fighting a mob with a PC, you can have another mob heal the mob you are fighting without aggroing or joining the fight?

Check your PMs from me BadCaptain please.
Reply With Quote
  #185  
Old 03-11-2013, 02:10 PM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

Update-

I can trigger the restregen with one PC.

One PC had level 85 J2 healer merc. PC sends in pet and causes no dmg. Merc healer heals pet down to 20ish percent mana, then soon after that whenever they sit down they trigger restregen for mana. It stops the moment i do any damage with PC.
Reply With Quote
  #186  
Old 03-11-2013, 02:23 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

That may be a related, but somewhat different issue. I may be wrong, but there may be an issue of hate transferrence from pet to owner ( I know it's not 1:1, but if your pet is killing an npc, the npc should be adding some hate for you). I will try to test this out some on live and on my test server.

I did change how the mercs have npcs added to their hate list, but didn't get to test last night. I will try it tonight. Having 1 npc on their hate list should be sufficient to keep them from going into rest mode.
Reply With Quote
  #187  
Old 03-11-2013, 02:43 PM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

One thing I did notice with rezzing now with the cleric mercs is that they will only rez their master/hirerer. My experience is that if someone else dies in the group the merc cleric will not rez them.

Just offering additional feedback.
Reply With Quote
  #188  
Old 03-14-2013, 11:35 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Spell recast timers should be fixed, and OOC regen shouldn't happen, even if no damage was done (it now looks at the mob's hate list and if a group member is present, it adds the mob to the merc's hate list).

I still have to test out rezzing (I've only had about an hour this week to work on this stuff), but it should find all group member's corpses.

I've added Caster DPS merc spells in (at least a few spells for them to use, I'm still compiling data from live - lvl 65 & 85 dps caster mercs use like 10 spells total for all of the different stances. Multiply that by all the different levels and that's a lot of spells)
Reply With Quote
  #189  
Old 03-15-2013, 07:10 AM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

DPS casters seem to be working good so far. Definitely another fun element to the game. Captain, I know this isn't a priority right now but later it would be great to have each merc have a randomized look each time you hire one (robe, face, hair etc.)

Thank you for all of your work!
Reply With Quote
  #190  
Old 03-15-2013, 07:29 AM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

This is awesome. Ill start testing these right away. Thank you!
Reply With Quote
  #191  
Old 03-15-2013, 08:10 AM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

Good news - ooc regen problem seems solved, nice work and thank you.

Bad news - recast timers still dont work.

Level 85 merc cleric still chain casts frenetic renewal spell every couple seconds till oom. Should be 30 second recast like stated here...

http://lucy.allakhazam.com/spell.htm...64&setcookie=1

Ill test more later. Thanks again, the ooc regen was a real issue.
Reply With Quote
  #192  
Old 03-15-2013, 09:21 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Hmmm.. I'll try a longer recast spell and test on it. Maybe I only saw them being respected because the math worked out. I know the recast time is now being carried over ( before it was saved somewhere different than where it was accessed).

I'm glad the ooc regen thing is fixed. It actually is a better method of getting aggro anyway, I think, so it's good that was fixed.

As far as randomizing the merc's look, there is code in there to randomize hair, face, tattoos, eyes, etc, so maybe it just isn't being called at the right time or is being overwritten. The robes is a different thing (well, similar, but many different options), so it makes it harder to randomize I.E. you have to know the available texture values for each race. One live, they will change their armor or robe at certain levels, which is available in the code now. I just have 1 set in the database, but it could easily have more added. I suppose it could be changed to allow different textures to be selected from when the merc is created, but that may be more work than it would be worth. I'll check out the other random stuff and see why it's not working.
Reply With Quote
  #193  
Old 03-15-2013, 09:50 PM
Armm
Sarnak
 
Join Date: Feb 2013
Posts: 70
Default

First, there is still a major bug where when for example at level 85 i am fighting a mob with just merc and PC and the PC dies and loses a level. After i zone back to bind point the merc is visually there, but unresponsive, i cant unsuspend, i cant dismiss them, cant purchase a new one, and the old merc remains in database. If i RELOG, when i come back into the game the merc is there and responsive. If i then dismiss it it in fact dismisses properly, and is erased from the database.


The second bug i think i can help you out with. When a tank merc is fighting a mob and you get within melee range you draw immediate aggro no matter what, just like with pets... Since i had just been looking into changing that for pets i tested this code and it seems to work. I basically modified what you did with bots.... After i applied this ,ercs could hold aggro no problem even when in melee range unless i outdmged them... Hope this helps.

This is in hate_list.cpp

Code:
+++ "b/C:\\EQEMU\\EQEmuServer\\zone\\hate_list.cpp"
@@ -361,6 +361,20 @@ Mob *HateList::GetTop(Mob *center)
 				}
 			}
 #endif //BOTS
+			
+			
+			if(!isTopClientType) {
+				if(top->IsMerc()) {
+					isTopClientType = true;
+					topClientInRange = top;
+				}
+			}
+			
 			if(!isTopClientType)
 				return topClientInRange;
Reply With Quote
  #194  
Old 03-17-2013, 08:45 AM
daerath
Sarnak
 
Join Date: Jan 2011
Location: Northern VA
Posts: 91
Default

Quote:
Originally Posted by Armm View Post
First, there is still a major bug where when for example at level 85 i am fighting a mob with just merc and PC and the PC dies and loses a level. After i zone back to bind point the merc is visually there, but unresponsive, i cant unsuspend, i cant dismiss them, cant purchase a new one, and the old merc remains in database. If i RELOG, when i come back into the game the merc is there and responsive. If i then dismiss it it in fact dismisses properly, and is erased from the database.
I haven't looked at the mercenaries code (and don't have a dev environment set up to check), but I'm going to assume that gating back to bind (or porting) doesn't break mercenaries in the same way.

It sounds like you're losing a pointer to your mercenary. When you die, does your character object get recreated? If so, perhaps the code responsible isn't transferring over the pointer to the mercenary.
Reply With Quote
  #195  
Old 03-17-2013, 02:48 PM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

One thing with cleric mercs my server has noticed is that if you suspend them and then unsuspend them their mana will regen to full. Is this intended by default? I can't remember how that works on Live
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 11:22 PM.


 

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