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 11-26-2012, 07:33 AM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Made a ton of progress tonight. Mercs now save groups across zone, they now show up as 'in the zone' on the group window. They do not save health or any buffs across zones yet. I'd say the basic functionality works great so far.

Gonna commit it later tonight after I fix it up a bit. Perhaps we can start moving it into the main branch? It seems 'ready' so to speak. I'd like to see about PEQ trying to break them when I commit it to SVN and we have PEQ's database updated.
Reply With Quote
  #2  
Old 11-26-2012, 07:37 AM
Secrets's Avatar
Secrets
Demi-God
 
Join Date: May 2007
Location: b
Posts: 1,449
Default

Picture of the mercs in groups. When one merc is removed, they get suspended. Not sure if that's how live intended mercs, but it seems 'better' imho.

When the leader is removed, the merc gets added to a new group with the person who got kicked.

Currently, you have to unsuspend your merc once you are in a group. Perhaps support for pending invites from players both merc grouped could be added later.

Reply With Quote
  #3  
Old 12-14-2012, 11:40 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Updated mercs last night. It includes a significant database update, and mercs.sql will need to be re-run for it all to work. There were really too many to create an update, so just source in mercs.sql again. The only other thing needed from secret's update 2 is adding ismerc to the one group table.

There are now merc stats for up to level 85. Up to 65 should be reasonably close, but more data is needed after that. Once mercs are able to act in combat, a better approximation can be made on some stats. Hp, mana, and maxhit would be the three most important to update post 65. We may need to add in the advanced stats, or add in equipment (I've read a few rumors of mercs having cloaks or something similar to pets (which are equipped based on pet power), and include the advanced stats. Depending on how well mercs perform in battle may help decide how to approach this.

Armor and weapon textures are set from the database. Currently, there's a record per proficiency/tier/class combination (check out reference table, merc_npc_types). Melee mercs have two records, one prior to dual wield, and one after. Healers and casters have one record only. This should suffice until more important work is accomplished. Weapon textures set from db is used instead of the previously hard coded values.

Mercs level with you- they will update stats when you level, but will con dark blue until you zone/suspend/etc.

Note: merchants are given the merc data if they should, but the npcs still need to be updated for correct placement, race, gender, etc. Two vendors that work are Mjdai in crescent reach tent, and guardian norerd in pok, who is at the top of the bridge by the soulbinder.

Two bugs I've noticed: after zoning, suspending/unsuspending, my merc no longer follows me ( code appears to be there to set the correct followID), and after dismissing a mercs, then rehiring, the second merc doesn't have stance data in merc window.

I will try to update my earlier post concerning what still needs to be accomplished for mercs tonight. I will be testing out the bugs listed earlier, and work on getting mercs into combat. I will need some more data on spell lists for healers and dps casters. I will focus on melee mercs first.

I also merged in everything from the trunk, so if everything checks out, it should be able to be merged into the trunk. A sql update would need to be added for the merc rules that have been added into the source. I can try to add that this weekend as well.
Reply With Quote
  #4  
Old 01-08-2013, 07:15 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I committed mercs to the trunk.

I split out the sql into 4 files which need to be sourced for mercs to work correctly:

OPTIONAL SQL: utils/sql/svn/2380_optional_merc_rules.sql
OPTIONAL SQL: utils/sql/svn/2380_optional_merc_merchant_npctypes_update.sql
OPTIONAL SQL: utils/sql/svn/2380_optional_merc_data.sql
OPTIONAL SQL: utils/sql/svn/mercs.sql

Splitting it up was done to keep rules separate from the data, and some servers may not need to update the PoK merc merchant spawns. The merc data that should not change much if at all is in the merc_data.sql, while merc stats, textures, and eventually spells & discs will be put into mercs.sql. This way, whenever changes are made to merc stats or spell casting AI is finalized, you will only need to source mercs.sql instead of the whole thing.

Included in the commit is basic merc functionality for melee (tank) mercs. Healing & Caster DPS mercs do not have spell lists or spell casting AI yet. I currently compiling spell lists for them, and I am adding the AI for the next commit.

Mercs do not currently charge you for being purchased or upkeep (the code just need to be uncommented), but until they are more functional, I would keep it commented out. I think a rule could be added as come servers may not want to be charged anway, but for now, I just have it commented out.

Current bugs I will be working on are the merc timer and stance bugs. SOmetimes, stances fail to show up (rarely) when hiring a merc, and sometimes (often the same time), the merc timer doesn't function. This will be addressed before players are charged for mercs.

I will update my earlier post about the current state of mercs and what still needs to be accomplished, but for now, I wanted to state that you can at least play around with them. They should group with you, attack when you get aggro, level with you, and increase in power as you level.

I'm still looking for post 65 data for mercs as far as HP, max hit, spells lists, etc. Just include class, proficiency, tier, and level please.
Reply With Quote
  #5  
Old 01-08-2013, 11:57 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

The newb merc you get in me tutorial on live has no purchase cost or upkeep cost. So the base merc code should account for a merc with no costs.
Reply With Quote
  #6  
Old 01-09-2013, 12:07 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I haven't look at the tutorial yet. If the player is below level 10, there shouldn't be a cost or upkeep. Is the merc from a merchant in the tutorial zone? I think if we add data to their merchant list, it should show up as being 0. If nothing is sent to them, it reads as 123p or something. I still need to get spawn data for merc merchants in starting cities, then I can finalize the merc merchant stuff. PoK should be done, and I know the one in Crescent Reach works.
Reply With Quote
  #7  
Old 01-26-2013, 05:32 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Today, I committed the initial spell casting code & AI. The spell data is in the mercs.sql file, which should be rerun. With this commit, healers should heal and tanks will use their aggro discs. I'm still working on dps mercs. For now, stances don't factor in, but will be added in soon.

Another issue I'm working on is the built in merc focus effects. I have most of the data, they are just not implemented yet.

Feel free to comment.
Reply With Quote
  #8  
Old 01-26-2013, 06:25 PM
Shiny151
Hill Giant
 
Join Date: Jul 2009
Location: Indianapolis
Posts: 228
Default

Quote:
Originally Posted by bad_captain View Post
Today, I committed the initial spell casting code & AI. The spell data is in the mercs.sql file, which should be rerun. With this commit, healers should heal and tanks will use their aggro discs. I'm still working on dps mercs. For now, stances don't factor in, but will be added in soon.

Another issue I'm working on is the built in merc focus effects. I have most of the data, they are just not implemented yet.

Feel free to comment.
Great work. Looks to be working okay so far. They are buffing me; only thing I've noticed right away is I'm getting continuously spammed by their upkeep cost. Not tried combat with them yet. Thanks captain, impressive so far. Look forward to future updates.
Reply With Quote
  #9  
Old 01-26-2013, 07:00 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

is there a specific order to run the sql for mercs? wanted to try em out, but having issues trying to run those sql's. only getting errors with em.
Reply With Quote
  #10  
Old 01-26-2013, 05:40 PM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

i picked up on another opcode that might have to with mercs found in 1-16-13 patch [OPCode: 0x27af] OP_MercenaryUnknown2 [Server->Client] [Size: 68] Merc Name????????*** i'll look back on patch 12/12/12 and see if i can find it. 0x38e3 12/12/12 [Size: 68]

all found in patch 1-16-13
Code:
[OPCode: 0x60a8] OP_ZoneEntry [Client->Server] [Size: 76] Players Mercenary or Quest,Corpse,Mercenary Liaison, a_diseased_spiderling's_corpse
[OPCode: 0x39a1] OP_MercenaryTimerRequest [Client->Server] [Size: 0]
[OPCode: 0x6e0e] OP_MercenaryUnknown1 [Server->Client] [Size: 1]
[OPCode: 0x35cc] OP_GroupFollow [Server->Client] [Size: 148] Char Name with Merc Name
[OPCode: 0x27af] OP_MercenaryUnknown2 [Server->Client] [Size: 68] Merc Name????????***
[OPCode: 0x1919] OP_MercenaryDataUpdateRequest [Client->Server] [Size: 0]
[OPCode: 0x27a5] OP_MercenaryList [Server->Client] [Size: 94] Merc Name  ??? OP_MercenaryDataUpdate
[OPCode: 0x5de1] OP_Find [Server->Client] [Size: 112] Blightfire Moors Zone, Banker Etc, Quest,Mercenary Liaison ?? OP_SendFindableNPCs
Reply With Quote
  #11  
Old 01-26-2013, 07:31 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

From the changelog:
REQUIRED SQL: utils/sql/svn/2383_required_group_ismerc.sql -- adds ismerc column to group_id table
OPTIONAL SQL: utils/sql/svn/2380_optional_merc_rules.sql -- Contains rules for mercs including rule to enable mercs
OPTIONAL SQL: utils/sql/svn/2380_optional_merc_merchant_npctypes_update.sql -- Contains npc_types & spawn updates for merc merchants in PoK
OPTIONAL SQL: utils/sql/svn/2380_optional_merc_data.sql -- Contains basic merc data, template info, & merc merchant entries
OPTIONAL SQL: utils/sql/svn/mercs.sql

Do them in that order. Actually, you just need to do 2380_optional_merc_merchant_npctypes_update.sql before 2380_optional_merc_data.sql, before mercs.sql

The rules one and isMerc for group_id can be done whenever.
Reply With Quote
  #12  
Old 01-26-2013, 07:31 PM
sorvani
Dragon
 
Join Date: May 2010
Posts: 965
Default

run mercs.sql last.
Reply With Quote
  #13  
Old 01-26-2013, 08:08 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

thanks, that worked for the most part. at the end of sourcing the last one (mercs.sql) i get an error that says " column spell_id cannot be null". gives me four of those errors right at the end.
Reply With Quote
  #14  
Old 01-26-2013, 09:07 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Yeah, that happens if the spells_new table doesn't have all of the correct spells. On the default peq spells_new (at least from a while ago), many if not most of the 75-80 spells are duplicates of the 70-75 spells, so it's not matching the spell name.

You can remove the ones it didn't find by doing:
DELETE FROM merc_spell_list_entries WHERE spell_id = 0;

Or, update the spells_new table to have all of the correct spells.

I'll see if I can add the missing spells as needed later.
Reply With Quote
  #15  
Old 01-26-2013, 10:44 PM
gibroni
Hill Giant
 
Join Date: Jun 2009
Location: glendale
Posts: 193
Default

ok just a question now that i had a second to install and see it for myself. Upkeep is charging every 3 minutes, not sure if that has been changed, but back a few years when i played upkeep was charged every 10 minutes.


nm i see it can be set in the db
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 05:02 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 - 2025, Jelsoft Enterprises Ltd.
Template by Bluepearl Design and vBulletin Templates - Ver3.3