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
  #31  
Old 10-20-2012, 06:20 PM
Devincean's Avatar
Devincean
Fire Beetle
 
Join Date: Aug 2012
Posts: 10
Default

Ok ya the high tier mercs t3 to t5 are the harder to get usually you have to know someone high enough to run you through the unlock quests or pay someone too run you through the quest and its not cheap from what I use to charge was about half a million plat plus also I made a mistake have the T5 mercs on my guys not the T3 like I said been awhile but just peaked at them yesterday here is the guide i used for the mercs. http://articles.eqresource.com/mercoverview.php

Also just FYI the diffrence between Tier 1 - Tier 4 and Tier 5 mercs is very huge btw the T5 mercs can solo raid targets that are outdoor zones since mercs don't work in closed raid zones example (can't do 2.5 epics with mercs since the Dreadspire Keep: Demi-Plane of Blood is indoor raid zone.)

Also some other useful links for mercs sure you could find them yourself but just to help out since information is fairly scattered. These links made coming back and learning how mercs work and what they could do really easy.

Everything about mercs stances/upgrades etc
http://almarsguides.com/eq/general/mercenaries.cfm

Bottom of page has most the race/class combos for mercs
http://everquest.allakhazam.com/wiki/EQ:Mercenaries

Only big things I am not sure how ya would figure out is T5 mercs obviously have AA bonuses the clerics heals amazingly and the tank merc hardly ever take a lot of damage even against raid targets so not sure if there is a way to figure that out also since merc armor auto upgrades as you level up (you can see the armor change per couple levels) not sure what armor and weapons they change to as they level up with you. I guess I could see if I took a alt and power leveled it up at what levels it changes and take pictures of it but not sure how to get the stats of the armor they are wearing or what they are wearing.
Reply With Quote
  #32  
Old 10-22-2012, 03:21 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Unless we plan to allow mercs to be given items to equip like Bots (which might be a nice option for custom servers), then the easiest solution would just be to simulate it by changing armor textures and tint. We can also set them to use specific weapon models and attack types right in the npc_types table so we don't have to give them actual weapons. Then their stats just need to be adjusted to whatever we want. Unless they get racial benefits, we could probably save some effort by making a single npc_type entry for each merc and then adjusting the race at the time it is created. Otherwise you are going to end up with thousands of entries to do what could otherwise be done with a small percentage of that.

Also, bad_captain, we will probably need to remove the 2 assign mercenary packets from the hire handling, since those are actually just used for setting weapon models. Those won't be required if we set the weapon models on the npc_type. That, or we can just send normal wearchanges or whatever.

Mercs are looking pretty good so far. Since using them is optional, we could probably merge them into the trunk anytime now even though they are still being worked on. Can probably wait until at least the rest of the packet stuff is worked out I guess.

I will probably leave most of the merc supporting code up to you, since you probably know what is needed better than I due to your experience with Bots. I definitely want to keep helping to make sure all of the packet stuff is worked out though. It looks like we still need to get the timer stuff working, so maybe I will work on that next. I am willing to help with more though, if you want to divvy anything out.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #33  
Old 10-22-2012, 09:35 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I had planned to write up some stuff over the weekend, but was too busy to get to it. I started to work on stats last night and did give them an inventory, but could take it away just as easily. I would lean towards having it for customization reasons, and it allows for better code reuse from clients. But, I could be convinced otherwise. It would save the hassle of coming up with equipment sets, since they change weapons every 5 levels. They also change weapon types, as I had seen 1hs, 1hp, and 1hb all used by like level 30.

As far as race and npc_types, there is no different between races, and actually, they are all the same race (human?) with an illusion of their actual race. That is already in. I'm not sure I see the need for any entries in npc_types for a couple of reasons. First, everything needed is already in the current merc tables (most everything is dependent on class, proficiency (apprentice, journeyman) and tier). I think its very similar to pet power, which I believe was poorly implemented by having to use different records for each power for each pet. The rest just need to be handled in code based on those factors. Also, I think most fields in the npc_types table are not relevant to mercs (or at least won't vary among them) while there are also additional fields that aren't relevant to npcs but are for mercs.

Once I get a bit of time to write up what's done and what's not, I will have a better idea what can easily be delegated without us tripping over one another. I don't have a problem with others working on it, as another opinion from someone who doesn't work on bots may be beneficial, since I think of how to attack problems like they are bots. A fresh perspective is definitely helpful.

Once a little more work is done to handle the packets and most of the work is done that affects clients ( suspending, hiring, etc), I would feel better about merging. I don't want one of these big changes to mess anyone up. Once most of the work is just getting merc behavior correct, I say go ahead.

Also regarding equipment and stats. We need to decide on a way to scale spell casting as well as melee damage, especially if we choose not to give them an inventory. For journeyman healers, there can be almost a 100% increase in healing on a rank II spell at level 85. We need to determine if that holds true across the board, or if they also receive AA like bonuses that increase with levels (my assumption). I don't think my mercs currently heal for more than the base amount (level in mid 50s) but I would have to look through my logs.

Last edited by bad_captain; 10-22-2012 at 11:28 PM..
Reply With Quote
  #34  
Old 10-23-2012, 03:42 AM
trevius's Avatar
trevius
Developer
 
Join Date: Aug 2006
Location: USA
Posts: 5,946
Default

Yeah, definitely not all fields in npc_types would be relevant for mercs. I was just thinking it would be a nice way for servers to be able to adjust merc stats so they aren't hard coded in the source. If it used npc_types, it would let servers adjust stats and min/max damage etc so you could scale them in any way you want. This would remove the issue of trying to have gear come into play for mercs. I think having a gearing option for mercs might be nice as well to make them more flexible, but it might also be nice to be able to just create them similar to creating a pet. Though, given that mercs can range to any level and there are quite a few variations of mercs, that could mean quite a few npc_types entries to do it that way.

One possibility might be to have it load the base stats, min/max damage, health/mana, regen, weapon models, and so on from the db along with maybe a scaling ratio or something right from the merc_types table with a few new fields. Just like NPCs, they could use the npc_types_tint table to load the armor colors. If material/texture was added to that table as well, it would make it easy to simulate the appearance of any armor set on live for mercs.

The main argument I would have for allowing mercs to use stats over armor sets is that stats are much easier to tweak than armor sets are. It seems pretty clear to me that mercs on Live don't reflect exactly what a character of the same class type (such as warrior compared to merc tank) is capable of. I leveled a trio on Live recently from 1 to 60 and had a tank merc that is able to well out tank my warrior that is fairly well geared for his level now. I don't know if it is just that his mitigation is higher or if he just has a ton more HPs, but he probably tanks 2 or 3 times as well as my warrior does. Unless he is geared far beyond the standard gear for that level, I assume Live uses different base stats and/or formulas for mercs from what player characters use. I am sure there is more solid data out there somewhere from the crazy number crunchers, but I haven't done enough research to find it yet.

It could just be that mercs on Live are wearing the same armor set until they reach the higher levels or maybe only the higher tier mercs. If the set has a recommended level on it, maybe the armor just scales as the merc levels, which makes sense for simplifying the process. If that is the case, armor sets might not be a bad option and then we would just need to adjust the weapons that are used, which is much less work. I am guessing we would have to add support to make sure gear scales to level for recommended level gear that mercs are wearing.

You are probably right that AAs are used to increase spell effects. I don't think it would be hard to get that working for mercs. The other possibility would be if they use focus effects on gear they wear. If using the same armor set as they level as mentioned above, the focus effects wouldn't kick in until they reached the recommended level I think.

I wasn't aware that they are all a single race with an illusion cast on them. That should simplify things a bit as far as DB entries go.
__________________
Trevazar/Trevius Owner of: Storm Haven
Everquest Emulator FAQ (Frequently Asked Questions) - Read It!
Reply With Quote
  #35  
Old 10-23-2012, 05:55 AM
KLS
Administrator
 
Join Date: Sep 2006
Posts: 1,348
Default

Just create a mercs table to store stats. A lot of the npc_types info is completely useless to mercs and it sucks having to give up valuable npc type ids.
Reply With Quote
  #36  
Old 10-23-2012, 10:30 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

That seems like a good idea to just maintain it all in a new table. I think it will be important to decide how to scale the stats based on level. Tier also must affect stats since otherwise, why get the highest tier tank, when the lower tier and cheaper one would work almost as well.

With regards to equipment, just for testing, I had planned to give them the defiant gear for their level, with it changing every 20 levels or so. Weapons are a different story, but they are already in with pretty easy to determine effective level ranges. But, that also adds in another level of complexity. But, then we still need to figure out a way to give the mercs bonuses.

Also, Trevius, I think a lot of the merc tank's ability to tank is its regen. I can't remember the exact numbers, but I know at least at lower levels, they would regen more than 10% (I think closer to 15%) of their hps every tick. They could easily tank 3-4 even con mobs at least through level 30-35 or so without a heal.
Reply With Quote
  #37  
Old 10-24-2012, 06:13 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

Below is a first attempt at breaking up the remaining work to be done for mercs. Some of the areas are very broad, but will get refined once work is done on them or in other areas. I have done some work on stats, but until the exact method of giving mercs stats and skills is decided, a lot of the other areas can't be worked on (such as combat). I will try to update this as work is done and further clarify the remaining items to do.

Packets
Merc Merchant List- send correct stances instead of hard coded ones
Merc Hire- check if client has enough coin, deduct purchase cost from client
Timer- send response packet, check if client has enough coin, if so- deduct upkeep from client; if not- dismiss merc
Merc Command- zone, change stance, etc
Remove most if not all of the hard coded values left
Finish extracting packet sending functions

Stats
NPC style stats or equipment based?
Weapons or Max/Min hit?
Stats db table
Skills stored in db table?
if using equipment, need equipment lists
stat scaling based on lvl, proficiency, tier

Spells
Spell & Skill lists per lvl & proficiency

Combat
Melee Attacks
Spell Casting
AI based on proximity
Group Roles
Flee based on confidence & situation

Out of Combat
Buffs
Resurrections

Misc
Save merc to DB

Last edited by bad_captain; 11-03-2012 at 01:57 PM..
Reply With Quote
  #38  
Old 10-24-2012, 10:48 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I may be tired and not thinking correctly, but was trying to figure out the upkeep part. I looked at a log I did in December on live, and was watching for when I had my upkeep deducted. Here are the only unknown packets arriving at that time. Note: I was charged the upkeep just before I said 'Upkeep' as shown in the last packet. I was charged 1 platinum, 9 gold. I'm having trouble getting 1 platinum, 9 gold out of that, as well as matching it up with one of the existing structs. Am I missing something?

Code:
12/8/2011 9:02:45 PM
[OPCode: 0x7062] OP_ClientUpdate [Client->Server] [Size: 42]
000 | 59 6b 00 00 ce 55 02 00 00 00 b6 24 59 44 b6 2f  | Yk...U.....$YD./
016 | a0 42 00 00 a1 c4 00 00 00 00 00 00 00 00 68 cb  | .B............h.
032 | 58 40 00 00 00 00 00 78 18 00                    | X@.....x..

12/8/2011 9:02:45 PM
[OPCode: 0x528f] OP_Unknown [Server->Client] [Size: 16]
000 | 2d 00 00 00 00 00 00 00 06 00 00 00 05 00 00 00  | -...............

12/8/2011 9:02:45 PM
[OPCode: 0x6537] OP_Unknown [Server->Client] [Size: 4]
000 | 0a 00 00 00                                      | ....

12/8/2011 9:02:46 PM
[OPCode: 0x2e79] OP_ChannelMessage [Client->Server] [Size: 51]
000 | XX XX XX XX XX XX 00 00 00 00 00 00 00 00 00 00  | MyName..........
016 | 08 00 00 00 00 00 00 00 00 64 00 00 00 75 70 6b  | .........d...upk
032 | 65 65 70 00 00 00 00 00 00 00 00 00 00 00 00 00  | eep.............
048 | 00 00 00
Reply With Quote
  #39  
Old 10-24-2012, 11:00 PM
lerxst2112
Demi-God
 
Join Date: Aug 2010
Posts: 1,742
Default

Are there any AA or faction type mods that might change the amount you're charged?
Reply With Quote
  #40  
Old 10-24-2012, 11:09 PM
Devincean's Avatar
Devincean
Fire Beetle
 
Join Date: Aug 2012
Posts: 10
Default

Quote:
Originally Posted by lerxst2112 View Post
Are there any AA or faction type mods that might change the amount you're charged?
no but you can have a marketplace tokenthat gets deducted rather then plat from your character and the amount per upkeep goes up with levels and merc tier type ... possibly the easiest way to see upkeep is to put away and recall your merc since every time you dismiss and recall mercs it charges a upkeep cost.

Code:
12/8/2011 9:02:45 PM
[OPCode: 0x7062] OP_ClientUpdate [Client->Server] [Size: 42]
000 | 59 6b 00 00 ce 55 02 00 00 00 b6 24 59 44 b6 2f  | Yk...U.....$YD./
016 | a0 42 00 00 a1 c4 00 00 00 00 00 00 00 00 68 cb  | .B............h.
032 | 58 40 00 00 00 00 00 78 18 00                    | X@.....x..
Could be totally off but this looks like during the upkeep it checks for diffrence currencies first.

Code:
12/8/2011 9:02:45 PM
[OPCode: 0x528f] OP_Unknown [Server->Client] [Size: 16]
000 | 2d 00 00 00 00 00 00 00 06 00 00 00 05 00 00 00  | -...............

12/8/2011 9:02:45 PM
[OPCode: 0x6537] OP_Unknown [Server->Client] [Size: 4]
000 | 0a 00 00 00                                      | ....
Then possibly how much of what to minus plat or token
Mind you thats really just a guess.
Reply With Quote
  #41  
Old 10-24-2012, 11:12 PM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I don't think so. The only thing I've found that can change the amount is if you use a mercenary contract instead of purchasing from one of the merchants. The mercenary contract ones are a little cheaper (maybe 2/3 the regular price) for upkeep. There is no purchase price.

I think I just had a duh! moment. When spawned, the client requests the merc data, and the server responds, which includes the purchase price as well as the upkeep cost. The server just needs to tell the client to deduct the upkeep cost. Only issue is if the client levels after the data is sent, then the cost would be greater. I would assume (haven't found evidence in my logs yet, though) that the server would resend the merc data to include the updated costs, since the client is charged the correct amount after leveling. I guess I'll need to do more searching.
Reply With Quote
  #42  
Old 10-24-2012, 11:17 PM
Devincean's Avatar
Devincean
Fire Beetle
 
Join Date: Aug 2012
Posts: 10
Default

hey bad_captain was this pre level 50 or post because I know mercs are free no upkeep cost up to a certain level as long as its a Tier 1 or 2 merc

actually just read merc will start costing you 2g every 15 minutes at level 14. so guess the better question is were you 14+
Reply With Quote
  #43  
Old 10-25-2012, 12:52 AM
bad_captain
Developer
 
Join Date: Feb 2009
Location: Cincinnati, OH
Posts: 512
Default

I was around level 20. I was charged 1 plat, 9 gold. I received the message that I was charged, then I said 'upkeep' so I knew where to look. One packet may be the message that I was being charged, but that may be handled client side. I guess I just need to get back in there and get a bunch more packet collects.
Reply With Quote
  #44  
Old 10-25-2012, 06:25 AM
Noport
Opcode Ninja
 
Join Date: Mar 2009
Location: San francisco
Posts: 426
Default

Code:
OP_ClientUpdate=0x7062             #
OP_MoneyUpdate=0x528f		   #
OP_MercenaryDataResponse=0x6537	   # 
OP_CommonMessage=0x2e79            # You have been Charged for Upkeep
Opcode 0x6537 looks like your 12min timer was rest the opcode converted from hex to dec in ms time
2D65 hex converted to dec 11621 ms timer
Reply With Quote
  #45  
Old 10-25-2012, 08:43 AM
chrsschb's Avatar
chrsschb
Dragon
 
Join Date: Nov 2008
Location: GA
Posts: 904
Default

I like the idea of being able to control their stats per level / tier in a table like current NPCs, but using that method how would you scale stats for say Level 60 players who are going from Kunark to Velious and eventually into SoL. The level cap stayed 60 that entire time but the content got exponentially harder.

The tier system wouldn't work for this because once a tier is unlocked it's always unlocked. The progression of merc power needs to work similar to the players and not eventually permanently pass the player (especially not by a significant margin like current Live mercs).
__________________
Clumsy's World: Resurgence [2019-Present]
Clumsy's World 2.0 [2014-2016]
Clumsy's World [2006-2012]
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 09:15 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