Did you have all of the previous sql updates applied? I compiled that script from all of my changes and applied it as one to my secondary database, and it ran correctly.
Do you have to table merc_subtypes? what is its primary key? Had you somehow run the script before? Those rules are new, and should not already exist. Did you resource the database? Maybe it was already put in peq db? |
i just dropped all merc related tables except rule values, modified rule inserts to updates, and it went in this time. Sorry, its a bit confusing knowing what to apply first and some of that stuff is included in PEQ 2506(?) or whatever latest is.
|
I can confirm that the duplicate merc entry bug seems fixed. I can also confirm that trying to hire a merc above level 85 doesnt crash the zone anymore, you just get a message saying it failed, which is fine.
Thanks for the tips, info, and fixes, very much appreciated. |
Yeah, I would prefer to have 1 script for all things merc, but we have seen the issues it causes, so this is the best we can do. I'm not sure what else can be done, but it would be nice if there was some way to know what updates peq has included so people would know what to and what not to source in. Maybe a list of applied updates that can be compared to before sourcing in updates.
Something like db version, but for applied updates? A table with rows for all of the updates included in that version? I don't know. |
Quote:
|
Table merc_subtypes is MyISAM when building new db from 2506, will not take FK until I changed it to InnoDB..
This is in relation to 2013_03_1_Merc_Rules_and_Equipment.sql with a new db sourced from peqdb_rev2506... |
Confirming no ghosting of mercs after i suspend or dismiss, buffing seems to work correctly now. Thanks!!
|
No problem. It was actually an easier fix than I thought. I just had to have to time to sit down and debug through the entire suspend/dismiss procedure to figure out what it was.
I plan to tackle dps mercs next, I just need more data on spells cast / skills used, especially for Journeyman mercs (using different stances). I have a decent idea of Apprentice mercs at least to 65. After that, I'm clueless, but I should be able to come up with something. I just hate using a melee DPS merc because they are so picky on when to attack (they hate getting aggro and their range to decide to join the fight when the main tank is also the puller is miniscule). Timers still need work, and every once in a while I don't get stances when hiring (but suspending/unsuspending or zoning fixes it), but I think they are starting to work pretty well. I'll try to clean up the sql as well. I'm not sure why it would work on mine, but not using the peq download. |
Requesting Data- if you play on live (or test) and you use mercs, I could use some data. I'm trying to compile spell lists for caster dps specifically, but can use any other data.
I have pretty good data between lvl 60 - 65. I will be creating lvl 1 toons to get data, but this will take a lot of time. If anyone has data for any level, I would appreciate it. If you have it, lvl, stance, and proficiency should be known ( but not required) . I could also use /logs if you don't want to compile it on your own. ( just need the message when the spell hits) . I have basic nuke code working on my local machine, so spell lists are all I need now. Once stances are fully in, then the spell casting can be further tweaked. Thanks. |
Hey captain; my mercs don't rez for some reason. I'm up to date with the most recent build as of last night and I'm pretty sure i've got your .sql order down.
Clerics have really only been hitting my group with Virtue and that's about it. How can I resolve this? Thanks! |
What level, proficiency, tier?
Code:
select * from merc_spell_list_entries If it returns nothing, check that sql for those spells has been run. Also check spell_type in that same table for the datatype. I think at one time I had it as a tinyint, should be int. Other than that, the corpse's owner should be in your group. Do they heal at all, or just buff? What class are you? |
BTW, about spell lists- a good way to get them for apprentice and journeyman is to do a /testcopy for your characters so you don't have to worry about hiring/ upkeep cost, and gives you access to journeyman mercs as if you are gold member.
|
Quote:
Thanks for the tips. |
Yeah, mana regen seemz slow. I think there's a bug with rest regen that I've also fixed on my local machine, but rest regen helps ( if turned on of course). The higher level you try, the worse it probably is. I don't have much data above level 65, and had to guess on a lot of stats.
Prior to my commit with merc equipment, they had no mana preservation or improved healing. The equipment's focus items help a lot. There's still a lot of room for improvement, and tweaking will continue. I'm mostly worried about getting things working, and then making improvements. Especially after getting more feedback. Let me know about the resurrect spells. |
Quote:
So I ran it again and it's still not sticking; even clearing the table and rerunning doesn't help. Maybe i'll just have to dump all the merc tables and rerun them all from scratch. |
I just realized the problem. On my 2/18 commit, I referenced the mercs.sql file from the svn folder, which KLS fixed by copying over and adding to a new commit with the spell lists, since I wasn't supposed to reference the old svn scripts.. The mercs.sql file also included a change to the merc_spell_list_entries table, which wasn't copied over.
To fix, change the spell_type column to be an int instead of tinyint. You should be able to run: Code:
ALTER TABLE merc_spell_list_entries MODIFY spell_type INT UNSIGNED NOT NULL default '0'; I will be updating spell lists this week for dps caster, so I will fix this officially then. Let me know if this works. |
Okay thanks; i'll try that when I get home tonight. Since i cleared the table and reran the script for merc spells it created about 200+ line items; is this correct? It seemed like the first time i cleared the table there were a lot more lines than this.
|
Code:
ALTER TABLE merc_spell_list_entries MODIFY spell_type INT UNSIGNED NOT NULL default '0'; |
Things im noticing...
2 boxing 2 chars with mercs... one tank merc, J2 one helaer merc j2 both level 85... Once in combat, cleric gets low on mana fast, sits to regen, and because i had restregentimetoactivate rule set to 3 the cleric starts getting back massive mana quickly. I assume restregen shouldnt kick in while in combat? If you suspend the merc and lose/gain a level one of two things happen. 1.)Either the timer to unsuspend counts down to 0, and the unsuspend button lights up again, but you push on it and nothing happens. You try to dismiss and it asks you it you want to dismiss, you click yes, nothing happens. 2.) Or else the timer counts down to 0 and stays greyed out and only the dismiss button is active but doesnt work. After either 1 or 2 I then zoned. After the zone the merc is by my side again without me having to push unsuspend. Acts normally. All of the above was true with either UF or ROF clients. |
Addition..
I set restregenrule to 18 seconds. Started fight with 2pc, 1 healer merc and 1 tank merc, all level 85. Out of five fights, only ONE did the cleric merc not constantly regen 15+% of mana every random few seconds(3-9 seconds roughly). Cleric merc never runs out of mana in this state. Kill a 500k hp mob with just tank and cleric merc going at it. Cleric casting frenetic renewal every 3-5 seconds(checked in logs), default recast on that spell should be 30 seconds... Are they meant to adhere to recast times? |
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. |
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. |
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. |
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. |
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. |
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. |
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. |
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) |
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! |
This is awesome. Ill start testing these right away. Thank you!
|
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. |
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. |
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" |
Quote:
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. |
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
|
I'm not 100% sure, but I believe that they do. The issue is, on live, they become available to unsuspend in 5 minutes, as opposed to a few seconds here. Someone would have to verify though.
|
Mercs on live do not change state while suspended, they come out at the exact hp/mana/end that they were suspended with.
|
Maybe there's a setting within the database we can tweak but if there isn't, would it be possible to change the minimum health that a cleric merc actually starts casting heals?
For example, if you're looting your corpse and you have a cleric merc, they will spam you for each item you reequip since this raises your total hitpoints and you would normally have to regen that health. The cleric thinks you are taking damage and tries to top you off and wastes a bunch of mana for each item you reequip. I'm thinking if you go below 30-40% of your health then the cleric starts healing you. Just a suggestion. |
The cleric mercs on live are the same way. It's even more fun if you're in a zone where buff timers are suspended. When my int casters cast their shielding spell I end up with a hot and a promised heal sucking up buff slots if I'm not paying attention. All for a gap that was less than I'd regen in a single tick.
|
Just posting that I *think* I fixed the remaining mercenary memory leaks in code and when my pull request is accepted you should probably update. These were rather large fixes, and your RAM will thank you for it.
|
All times are GMT -4. The time now is 05:40 AM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.