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

Trinity 2.9.1 and QuestTools 3.4.19

Still goes for Gogok of Swiftness, which is at its maxlevel and just creates a loop until gold inactivity is tripped. I've literally put it on bottom and that's still the one it chooses.

If you have Gogok Equipped then of course it's going to choose it..

It chooses the highest % chance to upgrade gem which is equipped i.e the Gogok because it's only R50, so take Equipped gems down to the bottom and Gogok there too.
 
If you have Gogok Equipped then of course it's going to choose it..

It chooses the highest % chance to upgrade gem which is equipped i.e the Gogok because it's only R50, so take Equipped gems down to the bottom and Gogok there too.

I've said which gems I have equipped. Gogok is not one of them. Thanks for your input though.

I have bane of the trapped at the very top, doesn't matter. Goes for other ones anyway.
 
Last edited:
In profile zerg mode(like <CombatSetting combat="false" />)
The bot can't attack corrupt growth in A4.
And then stucked...
 
Trinity fork handles the WW barb much better, it would be nice if the devs implemented these changes in the original.
 
My WW barb keeps getting stuck on corners and at walls with enemies behind them.
 
Also, I wonder would it be better if the radius for the zigzag was much smaller, I've done some testing and boss dps increased considerably.
 
Yes friend, same problem here.
DB Beta 519, latest QT/Trinity from assembla.
This issue started on assembla jubisman change named "Fixed Bash - Punish acting wonky", and other changes after that. On his previous change "Added CanCast check for Ignore Pain" there's not that kind of problem.
Due that, Trinity doesn't show up on DB plugins tab.
Thanks in advance.
My bad, I was running low on caffeine at the time. Fixed now.

Also, I wonder would it be better if the radius for the zigzag was much smaller, I've done some testing and boss dps increased considerably.
This is a TVar IIRC, so you can change that on your own. Just go to the variables tab and mess around with Barbarian.Whirlwind distance values, check what best suits you.
 
Last edited:
I wonder if someone could implement Fujiyama's Dashing strike code into this or a future version of Trinity? It is much more effective at dashing than this release due to the fact that it dashes past a mob instead of directly underneath it.

Code:
// Dashing Strike            if (CanCastDashingStrike)
            {
                
                if (Legendary.Jawbreaker.IsEquipped &&
                    (
                        (Hotbar.Contains(SNOPower.Monk_FistsofThunder) && SpellHistory.TimeSinceUse(SNOPower.Monk_FistsofThunder) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_DeadlyReach) && SpellHistory.TimeSinceUse(SNOPower.Monk_DeadlyReach) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_WayOfTheHundredFists) && SpellHistory.TimeSinceUse(SNOPower.Monk_WayOfTheHundredFists) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_CripplingWave) && SpellHistory.TimeSinceUse(SNOPower.Monk_CripplingWave) < TimeSpan.FromMilliseconds(4900))
                    )
                )
                {
                    return JawBreakerDashingStrike();
                }


                // Raiment set, dash costs 75 spirit and refunds a charge when it's used
                
                
                if (Sets.ThousandStorms.IsSecondBonusActive && 
                    (
                        (Skills.Monk.DashingStrike.Charges > 1 && (Skills.Monk.DashingStrike.TimeSinceUse > 200 || CacheData.Buffs.HasCastingShrine)) || 
                        (Player.PrimaryResource > 250 && Skills.Monk.DashingStrike.Charges > 0 && (Skills.Monk.DashingStrike.TimeSinceUse > 200 || CacheData.Buffs.HasCastingShrine)) ||
                        (Player.PrimaryResource > 150 && Skills.Monk.DashingStrike.Charges > 0 && (Skills.Monk.DashingStrike.TimeSinceUse > 500|| CacheData.Buffs.HasCastingShrine)) || 
                        (Player.PrimaryResource > 75 && Skills.Monk.DashingStrike.Charges > 0 && (Skills.Monk.DashingStrike.TimeSinceUse > 1000 || CacheData.Buffs.HasCastingShrine)) || 
                        (CacheData.Buffs.HasCastingShrine && Skills.Monk.DashingStrike.Charges > 0)
                    ) &&
                    (
                        (Hotbar.Contains(SNOPower.Monk_FistsofThunder) && SpellHistory.TimeSinceUse(SNOPower.Monk_FistsofThunder) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_DeadlyReach) && SpellHistory.TimeSinceUse(SNOPower.Monk_DeadlyReach) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_WayOfTheHundredFists) && SpellHistory.TimeSinceUse(SNOPower.Monk_WayOfTheHundredFists) < TimeSpan.FromMilliseconds(4900)) ||
                        (Hotbar.Contains(SNOPower.Monk_CripplingWave) && SpellHistory.TimeSinceUse(SNOPower.Monk_CripplingWave) < TimeSpan.FromMilliseconds(4900))
                    )
                
                )
                {
                    bool ignoreUnitsInAOE = false;
                    if (Player.CurrentHealthPct < 0.4) {ignoreUnitsInAOE = true;}
                    
                    RefreshSweepingWind(true);
                    
                    if (CurrentTarget.IsBossOrEliteRareUnique)
                    {
                        
                        TrinityCacheObject dashtarget = TargetUtil.GetFarthestEliteWithinRange(50f, ignoreUnitsInAOE);
                        float direction = (float)MathUtil.FindDirectionRadian(Player.Position, dashtarget.Position);
                        dashtarget.Position = MathEx.GetPointAt(Player.Position, dashtarget.RadiusDistance + 5f, (float)direction);
                        
                        
                        //SpellHistory.RecordSpell(SNOPower.X1_Monk_DashingStrike);
                        return new TrinityPower(SNOPower.X1_Monk_DashingStrike, MaxDashingStrikeRange, dashtarget.Position);
                    }
                    else
                    {
                        TrinityCacheObject dashtarget = TargetUtil.GetBestPierceTarget(50f, ignoreUnitsInAOE);
                        float direction = (float)MathUtil.FindDirectionRadian(Player.Position, dashtarget.Position);
                        dashtarget.Position = MathEx.GetPointAt(Player.Position, dashtarget.RadiusDistance + 5f, (float)direction);
                        
                        //SpellHistory.RecordSpell(SNOPower.X1_Monk_DashingStrike);
                        return new TrinityPower(SNOPower.X1_Monk_DashingStrike, MaxDashingStrikeRange, dashtarget.Position);
                    }


                }


                if (!Sets.ThousandStorms.IsSecondBonusActive)
                {
                    // We get a charge every 8 seconds. If we have 2 charges, be dashing
                    if (Skills.Monk.DashingStrike.Charges > 1 && (Skills.Monk.DashingStrike.TimeSinceUse > 200 || CacheData.Buffs.HasCastingShrine) )
                    {
                        Logger.Log("SecondBonusActive = False");
                        return new TrinityPower(SNOPower.X1_Monk_DashingStrike, MaxDashingStrikeRange, CurrentTarget.Position);
                    }


                    if ((Skills.Monk.DashingStrike.TimeSinceUse > 200 || CacheData.Buffs.HasCastingShrine) && Skills.Monk.DashingStrike.Charges > 1 && CurrentTarget.IsEliteRareUnique || TargetUtil.ClusterExists(15f, 3) &&
                        TargetUtil.IsUnitWithDebuffInRangeOfPosition(15f, TargetUtil.GetBestClusterPoint(), SNOPower.Monk_ExplodingPalm) ||
                        TargetUtil.AnyMobsInRangeOfPosition(CurrentTarget.Position, 20f, 3) && Skills.Monk.ExplodingPalm.IsTrackedOnUnit(CurrentTarget) ||
                        _hasSwk && TargetUtil.AnyMobsInRange(50f))
                    {
                        Logger.Log("SecondBonusActive = False");
                        RefreshSweepingWind(true);
                        //SpellHistory.RecordSpell(SNOPower.X1_Monk_DashingStrike);
                        return new TrinityPower(SNOPower.X1_Monk_DashingStrike, MaxDashingStrikeRange, CurrentTarget.Position, Trinity.CurrentWorldDynamicId, -1, 2, 2);
                    }
                }
            }

Had trouble adding the various variables myself so the source is here if anyone fancies a go :)

https://www.assembla.com/code/fujiyama-unifiedtrinity-fork/git/nodes/master/Trinity
 
Last edited:
dont want to hate on the hard work put into updates and stuff, but whats with the lack of love for Demon hunter trinities. the combat is always so bad. and usually its just simple avoidance and not facetanking bosses.
 
anyone know how to set fan of knives and smokescreen to just keep spamming off cooldown with no other stipulations? so even when out of combat
 
About DemonHunter.
It looks like Player.SecondaryResourceMax is always 30, even passive skills or equipment to increase the maximum value of Discipline.
This problem will make Player.SecondaryResourcePct and Player.SecondaryResourceMissing cannot work well.

Through debug code, I found the problem seems to be in _me.MaxSecondaryResource.It always return 30.
_me is DiaActivePlayer,so it looks like a DB issue.

Update: DiaActivePlayer.MaxPrimaryResource have same issue.It is always return 125.
 
Last edited:
My WW barb keeps getting stuck on corners and at walls with enemies behind them.

Edit HandleTarget.cs:

Original(remove red line):

Code:
if (Player.ActorClass == ActorClass.Barbarian)
                        {
                            bool wwToItem = (CurrentTarget.Type != TrinityObjectType.Item || (CurrentTarget.Type == TrinityObjectType.Item && CurrentTarget.Distance > 10f [COLOR="#FF0000"]&& NavHelper.CanRayCast(CurrentTarget.Position)[/COLOR]));
                            // Whirlwind against everything within range
                            if (Player.PrimaryResource >= 10 && CombatBase.CanCast(SNOPower.Barbarian_Whirlwind) && wwToItem &&
                                (TargetUtil.AnyMobsInRange(20, false) || Sets.BulKathossOath.IsFullyEquipped) && !IsWaitingForSpecial)
                            {
                                Skills.Barbarian.Whirlwind.Cast(CurrentDestination);
                                LastMoveToTarget = CurrentDestination;
                                return GetRunStatus(RunStatus.Running, "Whirlwind");
                            }
                        }

Edited (add red line):

Code:
if (Player.ActorClass == ActorClass.Barbarian)
                        {
                            bool wwToItem = (CurrentTarget.Type != TrinityObjectType.Item || (CurrentTarget.Type == TrinityObjectType.Item && CurrentTarget.Distance > 10f));
                            // Whirlwind against everything within range
                            if (Player.PrimaryResource >= 10 && CombatBase.CanCast(SNOPower.Barbarian_Whirlwind) [COLOR="#FF0000"]&& NavHelper.CanRayCast(CurrentTarget.Position)[/COLOR] && wwToItem &&
                                (TargetUtil.AnyMobsInRange(20, false) || Sets.BulKathossOath.IsFullyEquipped) && !IsWaitingForSpecial)
                            {
                                Skills.Barbarian.Whirlwind.Cast(CurrentDestination);
                                LastMoveToTarget = CurrentDestination;
                                return GetRunStatus(RunStatus.Running, "Whirlwind");
                            }
                        }
 
About DemonHunter.
It looks like Player.SecondaryResourceMax is always 30, even passive skills or equipment to increase the maximum value of Discipline.
This problem will make Player.SecondaryResourcePct and Player.SecondaryResourceMissing cannot work well.

Through debug code, I found the problem seems to be in _me.MaxSecondaryResource.It always return 30.
_me is DiaActivePlayer,so it looks like a DB issue.

Update: DiaActivePlayer.MaxPrimaryResource have same issue.It is always return 125.

yes this has not worked for a very long time; i reported it to nesox about a year ago, not fixed.
 
Anyone else having trouble with the new updates in Rifts that it sometimes just ignores elites and rift boss to kill trash or exploring the map instead?
 
Why does the WD need to be close to the mobs even if you set 10, 15, 20 or even 30 kite range?
 
Back
Top