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.
|
Summary of existing issues:
x86 debug build, built March 20th 8:47am. Using ROF or UF clients. Cleric mercs chain cast bulwark of vie on themselves with a level 66 j2 healer merc for example, this happens on a number of buffs for healer mercs. Strange part is after i died and delveled to 65 the merc would still chain cast buff but it wouldnt say bulwark of vie, just say casting a spell, surrounded by bright white aura... Tank mercs dont rest regen at all, ever. If you suspend your merc and delvel(like if you died in a zone, had someone rezz you in zone, and tried to bring merc back) you cant unsuspend, dismiss, or do anything with pet. Sometimes zoning brings it back, sometimes not. Seeing lots and lots of chars with 1-8 mercs for same charid with the multiples suspended. i saw one instance of a single char having 14 different mercs with all suspended but 1. All in all, lots of improvements, thank you for the hard work. |
I'll have to do some more testing. I haven't seen the chain casting of any of the vie spells, at least at 65, but there shouldn't be much difference between the two.
Unless I'm wrong, you need to sit to rest regen, correct? I guess I could have them sit, but that would look a little strange, the tank merc sitting in between pulls. I still haven't fixed the delevel bug. Yes, it will be the same between suspending and dying and deleveling. I will try to get it done by the end of the weekend. I know i fixed the multi-save issue a while back, so I'm not sure why that came back. I know there have been a lot of changes in the last week or so, so maybe something broke again. Or it's happening after the merc gets bugged. Right now, mercs are being suspended when you die, so that could be the cause. I'll look into it. |
Update-
Everyone on server that i could talk to had healer mercs chain buffing. i personally saw them(mercs) chain buffing bulwark of vie on themselves, and after i jumped my level up they started chain casting symbols on themselves. The point being is they only seem to chain cast buffs on self. Perhaps that helps. I have disabled them from buffing for now till it gets squared away. Tank and melee mercs sitting is fairly important early on because people use the tank merc to duo with and since most arent healers, rest regen in between fights is important to them. Its quicker in the early levels to let a merc tank plow through stuff rather than try to tank something and have a merc healing you. To add more detail on the multisave. I am not sure what triggers it for sure yet, seems to involve suspending/unsuspending. In database there are no DUPLICATE mercs that are exactly the same name. There are just multiple mercs with different names for ONE pc. |
Quote:
As for the AI, I will take a look at that next. edit: AI issue seems to be maybe related to having wrong merc spells data. The buffs they cast need to be set to type buff, or 8. Should work in its current form heh. |
Secrets, is there any way you could split out the merc stuff into a separate pull request? I was looking through it last night and saw a bunch of other stuff I don't feel comfortable messing with. I'd like to be able to apply just those changes to my local machine and test them with some other changes I've made. If not, I can just apply each change manually, but I'd like to try out the pull requesy stuff. Still learning git and coming up with a more efficient process.
|
Also, I guess we can add a check for melee mercs to sit if there's no healer and/or below a certain level.
|
Quote:
I'm not exactly sure but I think you can just clone my repository and test the changes that way. Basically, the things I fixed are the following: -Made emulator structure for two packets (OP_MercenaryData and OP_MercenaryMerchantResponse) static instead of creating it dynamically twice -Fixed a memory leak in the AI code. -Fixed a memory leak related to groups. In their current form, groups are leaking memory because they are never assigned a group ID in the unsuspend command. -Fixed a few issues with merging groups with mercenaries in them. -Fixed an issue where group IDs were not being handed out and leaking memory in OP_GroupDisband and OP_GroupFollow The two changes that were not related to mercs are: -Fixed a crash issue in the RoF encoder -Fixed a crash issue related to calling NPC functions after the deconstructor for NPC was called. |
Question-
Double checking merc_spell_list_entries What does the slot number do exactly? |
Quote:
|
Slot is how the spells are ordered. So, when buffing, healers will loop through their spells, starting slot 1, and going up from there. I have plans to use it to help identify single and group spells. I.E. Virtue is slot 1- I want it cast first. I would also check for a buff in slot 1 that was a group spell, and assume it was Hand of Virtue. I would then cast it if a group spell was prefered. That code isn't in yet, but the spells should be ordered by slot so the mercs will cycle through their spells. CastercDPS mercs also use it to cycle through all of their nukes once they are all in. That way, specific nukes higher in the spell list will be cast more often.
I'll check it out more tonight, secrets. It was just hard to see the merc specific changes- there seemed to be a lot of unrelated changes in the pull request. Maybe I'm just looking at it wrong. |
All times are GMT -4. The time now is 10:39 PM. |
Powered by vBulletin®, Copyright ©2000 - 2025, Jelsoft Enterprises Ltd.