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
  #1  
Old 12-15-2014, 05:37 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default Mercenary Development Tracking

This thread was created to track the development of Mercenaries in EQEmu.

Here is the previous (old) thread on this subject from when the work was initially started:
http://www.eqemulator.org/forums/showthread.php?t=35147

Overall, Mercenaries are now more functional than ever. There are still a few remaining issues to work out.


Last Updated - February 1st 2015


Top Priority Work:
1. Grouping - Mercenaries can sometimes still cause a group to get bugged in certain scenarios of creating/disbanding groups.
2. Stances - Currently, changing mercenary stances is not supported. This will require writing AI for different stance types and applying it.


Medium Priority Work:
1. Casters - There have been reports that the damage caster Mercenary does not cast often or at all. Needs further investigation.
2. Resurrection - Mercenaries resurrections are not yet supported in EQEmu.


Low Priority Work:
1. Timers - The timers for upkeep and suspend aren't always accurate. This is probably due to how/when we send certain packets.
2. Mercenary Window - Sometimes the Mercenary Window will pop up for players that don't own a mercenary. They also get messages related to Mercenaries. This needs to be investigated.
3. Base Settings - Mercenaries only save their current settings such as size, race, etc. They should have base settings added for those fields and only save the base instead.
4. Follow Distance - Mercenaries currently follow a bit too closely. Need to adjust the follow distance to about double (or so) what it is now.


Client Issues:
1. The dbstr_us.txt file does not include all Mercenary types for every race that is available for Mercenaries. This can be corrected by adjusting the database to match what the clients have available.


Database and Source Code Changes that will be needed at some point:
1. AAs - There is now a Mercenary AA tab on newer clients. No support for this yet in EQEmu.
2. Inventory - Mercenaries now have a few slots for inventory in newer clients. No support for this yet in EQEmu.
3. Multiple Mercenaries - Newer clients support owning multiple Mercenaries at a time, so you can switch between then without needing to visit the merchant again. Still only able to have 1 Mercenary spawned at a time.
4. Give Mercenary - Giving a Mercenary to another player is not yet supported in EQEmu.
5. Simplicity - Need to simplify database management of Mercenaries and their Merchants.


Recently Resolved Issues:
1. /split - Splitting money to a group using /split (and probably turning split on) caused Mercenaries to take a share. This has been resolved.
2. No Mercenary Messages - On zoning, you get duplicate no Mercenary messages. This was resolved by removing a duplicate SpawnMercOnZone() function during zone process.
3. Unsuspend Issues - Sometimes it is required to zone/relog in order to be able to unsuspend a Mercenary. This bug was resolved by having unsuspend load the Mercenary data if it isn't already loaded.
4. Leveling - Mercenaries currently don't level with a character. This was resolved by adding the level appearance on level as well as scaling their stats.


If there are any other issues with the current Mercenary updates, please feel free to post them in this thread and they will get added to the list above once verified.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!

Last edited by trevius; 02-01-2015 at 05:46 PM..
Reply With Quote
  #2  
Old 01-04-2015, 07:48 PM
bakajikara
Sarnak
 
Join Date: Dec 2006
Posts: 45
Default

Using ROF2 client sometimes caint unsuspend a merc unless zone or evac.
Reply With Quote
  #3  
Old 01-04-2015, 11:18 PM
bakajikara
Sarnak
 
Join Date: Dec 2006
Posts: 45
Default

Another Merc issue has arrived since you did last update on Storm Haven i caint invite other toons my group if i have merc out have get rid it invite others group.
Reply With Quote
  #4  
Old 01-05-2015, 12:35 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Quote:
Originally Posted by bakajikara View Post
Another Merc issue has arrived since you did last update on Storm Haven i caint invite other toons my group if i have merc out have get rid it invite others group.
I believe this issue is resolved on SH, and was due to one of the recent changes in the source related to groups (but not directly to mercs). We will still need to do further testing to figure out the final solution to correct the issue in the source.

I was already aware of the issue where mercs sometimes cannot be spawned without zoning first. I am not sure why this happens yet, but will look into it further once RoF2 is finished.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #5  
Old 06-02-2016, 04:54 PM
cannon
Hill Giant
 
Join Date: Dec 2004
Location: Pittsburgh, PA
Posts: 128
Default

Quote:
Originally Posted by bakajikara View Post
Using ROF2 client sometimes caint unsuspend a merc unless zone or evac.
I had this issue too and thought it might be worth mentioning. This started happening to me after I changed the Merc:SuspendIntervalMS (milliseconds) time in the database and it did not match the Merc:SuspendIntervalS (seconds)

I noticed someone abusing the merc healer set at a default 10 second timer, by running him dry then suspending him and unspending him back to full mana and health.

So, I thought changing them both to the same number would change the interval, apparently the timer was hitting zero with the MS setting and the actual unsuspend time was going the full time of the Seconds setting and not letting me unsuspend. If that makes any sense.

I changed the Merc:SuspendIntervalMS setting to 180000 (1000 milliseconds = 1 second)
and the Merc:SuspendIntervalS setting to 180

Now the unsuspend merc button will appear after 3 minutes of suspending the merc or the death of the merc.

The unsuspend/suspend button works without zoning on Sof2 and Underfoot.
Reply With Quote
  #6  
Old 06-05-2016, 04:49 PM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

Quote:
Originally Posted by cannon View Post
I had this issue too and thought it might be worth mentioning. This started happening to me after I changed the Merc:SuspendIntervalMS (milliseconds) time in the database and it did not match the Merc:SuspendIntervalS (seconds)

I noticed someone abusing the merc healer set at a default 10 second timer, by running him dry then suspending him and unspending him back to full mana and health.

So, I thought changing them both to the same number would change the interval, apparently the timer was hitting zero with the MS setting and the actual unsuspend time was going the full time of the Seconds setting and not letting me unsuspend. If that makes any sense.

I changed the Merc:SuspendIntervalMS setting to 180000 (1000 milliseconds = 1 second)
and the Merc:SuspendIntervalS setting to 180

Now the unsuspend merc button will appear after 3 minutes of suspending the merc or the death of the merc.

The unsuspend/suspend button works without zoning on Sof2 and Underfoot.
Is this still working for you? I was running into the same issue and have tried various time constraints from 45 seconds to 3 minutes; unless it's a very short time the result is always the same; at some point the unsuspend fails.
Reply With Quote
  #7  
Old 06-05-2016, 07:43 PM
cannon
Hill Giant
 
Join Date: Dec 2004
Location: Pittsburgh, PA
Posts: 128
Default

Quote:
Originally Posted by Shiny151 View Post
Is this still working for you? I was running into the same issue and have tried various time constraints from 45 seconds to 3 minutes; unless it's a very short time the result is always the same; at some point the unsuspend fails.
Seems like I can suspend and unsuspend a couple times then it quits working at random.
Reply With Quote
  #8  
Old 06-05-2016, 10:10 PM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

Quote:
Originally Posted by cannon View Post
Seems like I can suspend and unsuspend a couple times then it quits working at random.
I'm getting similar results. If I find a solution I'll post it.
Reply With Quote
  #9  
Old 01-11-2015, 01:29 PM
werebat's Avatar
werebat
Hill Giant
 
Join Date: Oct 2010
Posts: 143
Default

The AI on the healer mercs needs tweaking. Before level 10 my healer merc would cast heals when I was about 35% or so which is fine. Once she hit level 10, the healer merc would cast heals even if I was at 99%. Inefficiently burned up all her mana in battles. I am using recent build from 1/9/15 and SoF2 client.
Reply With Quote
  #10  
Old 01-20-2015, 03:32 PM
fault
Hill Giant
 
Join Date: Sep 2005
Posts: 114
Default

where can i debug (more debug then already can do) no mercs? #questerrors gives no errors, no errors in sourcing the sql in its all there in the database (manually confirmed this). no errors in any log any where, however i cant get the merc hire window to come up.
Reply With Quote
  #11  
Old 01-20-2015, 04:49 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Quote:
Originally Posted by fault View Post
where can i debug (more debug then already can do) no mercs? #questerrors gives no errors, no errors in sourcing the sql in its all there in the database (manually confirmed this). no errors in any log any where, however i cant get the merc hire window to come up.
What version of source code are you running (what date on Github)? I would suggest using the latest source on Github, as I have removed the use of the merc view, which I think was causing the most issues when setting up mercs on a server. If you want to debug mercs, open the merc.h file and change the following line from 0 to 1:

Code:
#define MERC_DEBUG 0
Then compile your source again. That will cause merc debug info to be sent to all players. It can be pretty useful.

Pretty soon, I think that debug will be available to enable in-game without having to change anything in the source. The logging system is undergoing a massive revamp right now that I think should be done soon. Once it is ready, I will convert all of those client Message() debugs in the merc code into using the new logging system. You would then be able to chose what you want to be shown to GMs in game in real-time, which is pretty badass.

In the current source, it should be fairly simple to get mercs running. You just turn the AllowMercs rule on (true) and create an NPC of class 71 and set their NPC ID in the merc_merchant_entries table.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #12  
Old 01-20-2015, 06:14 PM
fault
Hill Giant
 
Join Date: Sep 2005
Posts: 114
Default

After a few hours, i just dropped ALL merc tables and resourced them, i can now right click them, but about 1second later the window closes with the message

"you do not meet the requirements to purchase any mercenaries"


running RoF Client

and the git was from last night about 9pm when i updated it.
Reply With Quote
  #13  
Old 01-21-2015, 01:19 PM
akathanam
Fire Beetle
 
Join Date: Feb 2014
Posts: 3
Default

I had the same problem, but only with the liaison in (revamped) freeport (did not try other cities), the ones in POK did work...
Reply With Quote
  #14  
Old 01-22-2015, 12:56 PM
fault
Hill Giant
 
Join Date: Sep 2005
Posts: 114
Default

I dont get it, everything is proper, rof2 client, i noticed that it reports 0/0 expansions, but eqemu has always done that, i can access all content, zones etc that are in eqemu and rof2.

just cant access these dog gone mercs


i even set account where expansion says 0 to 21 and went down from there and nothing.
Reply With Quote
  #15  
Old 01-22-2015, 04:02 PM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

And you added the Liaison NPC ID to your merc_merchant_entries table?
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
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 07:21 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