What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal

Unified GilesPlugin's Unnoficial Updates File

Status
Not open for further replies.
I guess the older version .39 is working?
Not sure. If you have Custom Rules v0.39 and it works, could you please attach it here so I can check for differences between broken and working version?

edit: Alright guys, I tried my best and now I really need to get some sleep. I'm sure darkfriend77 will find a solution for this. In the mean time, I ask that you, please, don't freak out, okay?
 
Last edited:
For those encountering the idling in town bug, tell me what profile you're using.
 
jubisman I think the burrowed function is broken because its based on RactorGUIDs and Attributes like "hidden" which is broken now.
Example: "withermoth_A_hidden

When the moth show up it's still "withermoth_A_hidden"
And these stucks happen because hidden moths are named like this: withermoth_A (not hidden) and because of that trinity thinks it can attack the moths.

So trinity needs a rework in this part. I know that Demonbuddy with belphegor uses Animation States (ACD) to check this.

I did a quick search through all of the Belphegor files and found nothing for ACD.AnimationState...you sure it's using them? I saw them doing some set/checks for "Burrowed"

Which file did you see them using this animation state?

This is all I found for Belphegor:

Code:
private bool IsValid(ACD commonData)
        {
            if (!_isValidCache.ContainsKey(commonData.DynamicId))
            {
                _isValidCache.Add(commonData.DynamicId,
                                  commonData.GetAttribute<int>(ActorAttributeType.Untargetable) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.Burrowed) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.SlowdownImmune) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.Uninterruptible) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.Invulnerable) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.StunImmune) == 0 &&
                                  commonData.GetAttribute<int>(ActorAttributeType.RootImmune) == 0 &&
                                  commonData.GetAttribute<float>(ActorAttributeType.HitpointsCur) > 0);
            }
            return _isValidCache[commonData.DynamicId];
        }
 
Last edited:
This is the error it gives:
[23:07:55.475 D] Exception while enabling plugin GilesTrinity: System.IndexOutOfRangeException: Index was outside the bounds of the array.
at GilesTrinity.GilesTrinity.LoadConfiguration() in c:\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs:line 12804
at GilesTrinity.GilesTrinity.OnEnabled() in c:\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs:line 15522
at Zeta.Common.Plugins.PluginContainer.set_Enabled(Boolean value)

I'm getting the same error. Got v40 from download link on the first page. Deleting Compiled Assemblies doesn't help.
 
Hi, there is a small bug/inefficiency in Monk code.
There is a piece that is meant to spam Sweeping Wind when the buff is already up and monk has >= 6 Spirit.
Which is all fine, except it assumes Inna's set, and it really should check for it.
My fix is, don't spam w/o Inna's at all.

Modified code that checks:
Code:
                    // Sweeping wind
                    if ((!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && !GilesHasBuff(SNOPower.Monk_SweepingWind) &&
                        (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_20] >= 2 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 25f)) &&
                        // Check if either we don't have blinding flash, or we do and it's been cast in the last 6000ms
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_BlindingFlash]).TotalMilliseconds <= 6000)) &&
                        // Check our mantras, if we have them, are up first
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) && GilesHasBuff(SNOPower.Monk_MantraOfEvasion))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) && GilesHasBuff(SNOPower.Monk_MantraOfRetribution))) &&
                        // Check the re-use timer and energy costs
                        (playerStatus.dCurrentEnergy >= 75 || (settings.bMonkInnaSet && playerStatus.dCurrentEnergy >= 5)) && GilesUseTimer(SNOPower.Monk_SweepingWind)) || 
						// OR, if we have Inna's and Wind is up, we just spam it to keep it up
						(settings.bMonkInnaSet && GilesHasBuff(SNOPower.Monk_SweepingWind) && GilesUseTimer(SNOPower.Monk_SweepingWind) && playerStatus.dCurrentEnergy >= 6))
                    {
                        return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
                    }

(goes to line 6921 or thereabouts)
 
I'm getting the same error. Got v40 from download link on the first page. Deleting Compiled Assemblies doesn't help.
Had the same error, figured it out though. Through the addition of Ghoms gas avoidance there is a new setting, which is not in your config file. Either delete your config file (DemonBuddy\Settings\GilesTrinity.cfg) or add a 13th array entry to all the AOE*= entries within the config file.
 
Hi, there is a small bug/inefficiency in Monk code.
There is a piece that is meant to spam Sweeping Wind when the buff is already up and monk has >= 6 Spirit.
Which is all fine, except it assumes Inna's set, and it really should check for it.
My fix is, don't spam w/o Inna's at all.

Modified code that checks:
Code:
                    // Sweeping wind
                    if ((!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && !GilesHasBuff(SNOPower.Monk_SweepingWind) &&
                        (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_20] >= 2 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 25f)) &&
                        // Check if either we don't have blinding flash, or we do and it's been cast in the last 6000ms
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_BlindingFlash]).TotalMilliseconds <= 6000)) &&
                        // Check our mantras, if we have them, are up first
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) && GilesHasBuff(SNOPower.Monk_MantraOfEvasion))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) && GilesHasBuff(SNOPower.Monk_MantraOfRetribution))) &&
                        // Check the re-use timer and energy costs
                        (playerStatus.dCurrentEnergy >= 75 || (settings.bMonkInnaSet && playerStatus.dCurrentEnergy >= 5)) && GilesUseTimer(SNOPower.Monk_SweepingWind)) || 
						// OR, if we have Inna's and Wind is up, we just spam it to keep it up
						(settings.bMonkInnaSet && GilesHasBuff(SNOPower.Monk_SweepingWind) && GilesUseTimer(SNOPower.Monk_SweepingWind) && playerStatus.dCurrentEnergy >= 6))
                    {
                        return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
                    }

(goes to line 6921 or thereabouts)

+1 please include this in update, quite important monk efficiency fix for any without 4pc inna's, thanks!
 
Can you guys update this line:
Code:
Logging.WriteDiagnostic("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
To
Code:
Logging.Write("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
This way we can actually see what gets blacklisted and know it's working and/or why it got stuck for a little bit without running in Diagnostic mode.
 
What the heck is going on with my install? I deleted the compiled assemblies folder after installing v0.4 and I end up with this...

[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(31,18) : error CS0260: Missing partial modifier on declaration of type 'GilesTrinity.GilesTrinity'; another partial declaration of this type exists
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(387,21) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesItemType'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(446,21) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesBaseItemType'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(461,21) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesObjectType'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(17672,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'GilesCombatTargetingReplacer'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(17684,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'GilesLootTargetingProvider'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\GilesTrinity.cs(17692,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'GilesObstacleTargetingProvider'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\ItemHandling.cs(1595,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesStashSort'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Prowl.cs(37,23) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'ProwlNotification'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Prowl.cs(44,21) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'ProwlNotificationPriority'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\StuckHandler.cs(32,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'GilesStuckHandler'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesCachedACDItem.cs(38,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesCachedACDItem'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesGameBalanceDataCache.cs(34,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesGameBalanceDataCache'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesItemStats.cs(35,23) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesItemStats'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesObject.cs(39,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesObject'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesObjstacle.cs(35,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesObstacle'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesPlayerCache.cs(37,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesPlayerCache'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesPlayerMover.cs(32,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'GilesPlayerMover'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesPower.cs(35,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesPower'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\GilesSettings.cs(34,22) : error CS0102: The type 'GilesTrinity.GilesTrinity' already contains a definition for 'GilesSettings'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(48,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityTownRunTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(78,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityLoadProfile'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(192,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityMaxDeathsTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(255,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityInteractTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(321,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityLogTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(382,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityMoveToTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(590,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityMoveToSNOTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(703,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityIfTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(829,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'IfSNOInRangeTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(967,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityRandomRollTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(1049,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityIfRandomTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(1174,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityUseResetTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(1224,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityUseStopTag'
[09:56:57.263 N] Compiler Error: c:\Users\Owner\Saved Games\Diablo\DemonBuddy\Plugins\GilesTrinity\Classes\XmlTags.cs(1278,18) : error CS0101: The namespace 'GilesTrinity' already contains a definition for 'TrinityUseOnceTag'

HELP!!
 
What the heck is going on with my install? I deleted the compiled assemblies folder after installing v0.4 and I end up with this...

HELP!!
The file you've downloaded has several syntax errors. I suggest you download latest stable version while the devs of this thread check it out.
 
What the heck is going on with my install? I deleted the compiled assemblies folder after installing v0.4 and I end up with this...



HELP!!
You have 2 or more .cs files in your Giles Trinity folder. Delete the older ones and keep only the newest one

Can you guys update this line:
Code:
Logging.WriteDiagnostic("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
To
Code:
Logging.Write("[GilesTrinity] Blacklisting a monster because of possible stuck issues. Monster=" + targetCurrent.sThisInternalName + " {" +
This way we can actually see what gets blacklisted and know it's working and/or why it got stuck for a little bit without running in Diagnostic mode.
Alright

Hi, there is a small bug/inefficiency in Monk code.
There is a piece that is meant to spam Sweeping Wind when the buff is already up and monk has >= 6 Spirit.
Which is all fine, except it assumes Inna's set, and it really should check for it.
My fix is, don't spam w/o Inna's at all.

Modified code that checks:
Code:
                    // Sweeping wind
                    if ((!bOOCBuff && hashPowerHotbarAbilities.Contains(SNOPower.Monk_SweepingWind) && !GilesHasBuff(SNOPower.Monk_SweepingWind) &&
                        (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_20] >= 2 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 25f)) &&
                        // Check if either we don't have blinding flash, or we do and it's been cast in the last 6000ms
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_BlindingFlash) && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Monk_BlindingFlash]).TotalMilliseconds <= 6000)) &&
                        // Check our mantras, if we have them, are up first
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfEvasion) && GilesHasBuff(SNOPower.Monk_MantraOfEvasion))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfConviction) && GilesHasBuff(SNOPower.Monk_MantraOfConviction))) &&
                        (!hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) || (hashPowerHotbarAbilities.Contains(SNOPower.Monk_MantraOfRetribution) && GilesHasBuff(SNOPower.Monk_MantraOfRetribution))) &&
                        // Check the re-use timer and energy costs
                        (playerStatus.dCurrentEnergy >= 75 || (settings.bMonkInnaSet && playerStatus.dCurrentEnergy >= 5)) && GilesUseTimer(SNOPower.Monk_SweepingWind)) || 
						// OR, if we have Inna's and Wind is up, we just spam it to keep it up
						(settings.bMonkInnaSet && GilesHasBuff(SNOPower.Monk_SweepingWind) && GilesUseTimer(SNOPower.Monk_SweepingWind) && playerStatus.dCurrentEnergy >= 6))
                    {
                        return new GilesPower(SNOPower.Monk_SweepingWind, 0f, vNullLocation, iCurrentWorldID, -1, 2, 2, USE_SLOWLY);
                    }

(goes to line 6921 or thereabouts)
Sure thing
 
Last edited:
Also, can anyone tell me if darkfriend77's fixes actually fixed the issues with Custom Rules?

ps: v0.41 is up!
 
Last edited:
It does not have anything to do with the bug I think? Ciggarc Act 3 tho
It actually does have something to do with the profile. Add a 10 second pause before the bot TPs back to town in the following profiles:

Damned Heart, Cursed Heart, Battlefields, Fields of Slaughter, Rakkis Crossing, Skycrown and Stonefort.

It may not be needed for anything but the first 2 profiles but better safe than bugged out in town.
 
I still see it getting stuck in act 3 trying to open chest, or kill and enemy behind a wall.. using the svn
 
Well, a stuck here or there is pretty much inevitable. Unless you are experiencing too many stucks. Then there is definitely something wrong
 
Well, a stuck here or there is pretty much inevitable. Unless you are experiencing too many stucks. Then there is definitely something wrong

Cant those be completely avoided with a time to health ratio? If it does not go down in say 10 seconds at all they ignore it?
 
We need to take a look at the Use Timers for a lot of skills. By default they're fine, but if the bot ever picks up an Empowered Shrine or a Monk is using something like Beacon of Ytar that reduces cooldowns, many important skills will not get used when they are available simply because the wait timers are too long.

Does Trinity check for cooldowns? I see this line: PowerManager.CanCast(SNOPower.Monk_Serenity)
which leads me to believe that it will only cast if the cooldown is up, so why do we have wait timers at all? If the bot needs to cast Serenity it should absolutely cast Serenity as soon as possible. That's just an example, I'm sure there are plenty of other skills that would benefit from moving away from Use timers and just monitoring cooldowns.
 
Status
Not open for further replies.
Back
Top