Yes! There is final fix for annoying problem "WitchDoctor spamming Zombie Dogs out of combat by cooldown". And not just dogs - all pet counters, that Trinity maintains, are working now! And all combat routines, that relies on count of pets, must to work properly now too.
It affects:
WD Zombie Dogs
WD Gargantuan
DH Pets
DH Sentries
Wizard Hydras
Monk Mystic Allies
All you need is:
in Plugins\Trinity\Cache\RefreshObject.cs
1. Initialize variable in this fragment (find "bool AddToCache;" and insert " = true" there)...
2. Find this code snippet, CUT it...
...and PASTE it below end line of the next snippet
Or simply download modified file, as it keeps unchanged from previous Trinity versions: View attachment RefreshObject.cs
3. Switch off automatic updates, if you using it, as changes your have made will be reverted to original code!
Update:
To count DemonHunter sentries it is necessary to patch Plugins\Configuration\DataDictionary.cs
find this code...
...and extend it to
Tested on Trinity v2.1.21 from SVN with
Hardcore WD: works flawlessly through several consequent games (counts dogs 0..6, gargantuan 0..1, recasts by combat routine conditions (for ex., if i dismiss the dogs one by one manually), no CD recasts). I can't test softcore-specific cases such as "after death" as i haven't softcore characters. Sorry.
Hardcore DH: works ok, counting pets 0..9, sentries 0..3+
Enjoy!
This mod only repairs the original logic to work as intended (i truly hope!), unlocks function RefreshStepCachedSummons() that maintains pet counters. This may not affect the builds which have the authorized recast interval less than cooldown, such as in WD Sacrifice build.
It affects:
WD Zombie Dogs
WD Gargantuan
DH Pets
DH Sentries
Wizard Hydras
Monk Mystic Allies
All you need is:
in Plugins\Trinity\Cache\RefreshObject.cs
1. Initialize variable in this fragment (find "bool AddToCache;" and insert " = true" there)...
Code:
/*
* Initialize Variables
*/
bool AddToCache[B][COLOR="#00FF00"][COLOR="#008000"] = true[/COLOR][/COLOR][/B];
Code:
// Summons by the player
AddToCache = RefreshStepCachedSummons();
if (!AddToCache) { c_IgnoreReason = "CachedPlayerSummons"; return false; }using (new PerformanceLogger("RefreshDiaObject.CachedType"))
Code:
using (new PerformanceLogger("RefreshDiaObject.CachedType"))
{
/*
* Set Object Type
*/
AddToCache = RefreshStepCachedObjectType(AddToCache);
if (!AddToCache) { c_IgnoreReason = "CachedObjectType"; return AddToCache; }
}
3. Switch off automatic updates, if you using it, as changes your have made will be reverted to original code!
Update:
To count DemonHunter sentries it is necessary to patch Plugins\Configuration\DataDictionary.cs
find this code...
Code:
public static HashSet<int> DemonHunterSentryIds { get { return demonHunterSentryIds; } }
private static readonly HashSet<int> demonHunterSentryIds = new HashSet<int> {
141402
};
Code:
public static HashSet<int> DemonHunterSentryIds { get { return demonHunterSentryIds; } }
private static readonly HashSet<int> demonHunterSentryIds = new HashSet<int> {
141402,
150024,
150025,
150026,
150027,
168815
};
Hardcore WD: works flawlessly through several consequent games (counts dogs 0..6, gargantuan 0..1, recasts by combat routine conditions (for ex., if i dismiss the dogs one by one manually), no CD recasts). I can't test softcore-specific cases such as "after death" as i haven't softcore characters. Sorry.
Hardcore DH: works ok, counting pets 0..9, sentries 0..3+
Enjoy!
This mod only repairs the original logic to work as intended (i truly hope!), unlocks function RefreshStepCachedSummons() that maintains pet counters. This may not affect the builds which have the authorized recast interval less than cooldown, such as in WD Sacrifice build.
Last edited: