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

[Guide/Setup] 4-man party setup for S11

I liked your znecro script I ran into some issues with channeling pylons though. The znecro would just death nova repeatedly and not generate any globes (i.e., devour).

Also imo deathnova is just to proc zodiac for land of the dead so there's no reason to cast it if lotd is off cd.

Great work!!

I have a question for you, is it possible to have the script pick the leader based on username? I think for the double rath + zbarb + znecro setup I would want my znecro to be the leader.

I made the following modification to address the aformentioned issues:

Code:
        private bool GetPower_lotdActive(TrinityActor leader, out TrinityPower power)
        {

            power = null;
            TrinityActor target;
            //LogMessage($"mana, maxmana, manapct = {Player.PrimaryResource}, {Player.PrimaryResourceMax}, {Player.PrimaryResourcePct}");
            if (Player.HasBuff(SNOPower.Pages_Buff_Infinite_Casting) && Skills.Necromancer.LandOfTheDead.CanCast()) {
                power = Devour();
                return true;
            }
            else if (!Skills.Necromancer.LandOfTheDead.CanCast() && ShouldDeathNova(leader, out target))
            {
                power = DeathNova(target);
                return true;
            }
            else if (ShouldBoneSpear(leader, out target))
            {
                power = BoneSpear(target);
                return true;
            }
            else if (ShouldDevour())
            {
                power = Devour();
                return true;
            }
            else return false;

        }
 
Last edited:
Good thinking. Thanks for fixing this, I missed this problem. To the leader question. Do you want the Znecro to lead the party in the sense that all other follow him/her? Will Znecro survive such a role? I often get zmonk running with 500M Toughness killed right away. In this case we could just set the leader from autofollow data.
 
Yes I want the whole party to follow the znecro. While the znecro is a little squishy with enough lotd uptime most mobs will be frozen when he pops into the neighbourhood and then the rathma mages melt everything before much damage is taken, rinse and repeat. Would it be possible for you to show an example of how to get the leader from the autofollow data?
 
This idea is decent enough to make it default. I will update the routines once I have it working.
 
Leader serves as a "targeting center" in the present routines. Dps always search targets around the leader. Class-based leadership was an dead end. I updated 1.3 so leader is defined by the leading character in auto-follow plugin, i.e. the one which is being followed. It is also the one which is set as "server" in settings. It seems to be working right, let me know if it misbehaves.
 
Last edited:
@Hyuks I have not updated Trinity for a month yet I seem to have newer version than yours, mine is [Trinity 2.270.8]. I don't see messages of the type "Waiting for avoidance to clear" in the logs. However, I have to acknowledge that Rathma necros stop occasionally and do nothing for several seconds, then the Unstuck from Trinity kicks in. Reason for this keeps eluding me. Any additional info will be helpful.
 
@Hyuks I have not updated Trinity for a month yet I seem to have newer version than yours, mine is [Trinity 2.270.8]. I don't see messages of the type "Waiting for avoidance to clear" in the logs. However, I have to acknowledge that Rathma necros stop occasionally and do nothing for several seconds, then the Unstuck from Trinity kicks in. Reason for this keeps eluding me. Any additional info will be helpful.

I wasn't running DemonbuddyBeta build so i was using trinity 2.270.7, i'll give a try with beta build and let my team working tonight. will check stats tomorrow morning.
 
I don't understand, really.
2b4e4ae223.png

first elite and this is spammed on both dps Demonbuddy... and they dies to Molten & Arcane sentry, doing nothing but standing still obviously.

Default settings everywhere (i reduced cluster in routines thats all), fresh DB beta install.
 
I don't understand, really.
2b4e4ae223.png

first elite and this is spammed on both dps Demonbuddy... and they dies to Molten & Arcane sentry, doing nothing but standing still obviously.

Default settings everywhere (i reduced cluster in routines thats all), fresh DB beta install.

might be an obvious answer, but are you running both tempest routines in those DPS necro's?
 
hmm...i get those avoidance messages, but my DPS necro is using blood rush to get away from them...maybe tempest can offer his insight :)...only thing i did with my DPS necro is set it not to pick up any globes and not to go into sanctuary...the rest are default including cluster size...
 
Im using exact same build/spells than d3planners in OP. Only diff is i do zbarb with double rathma actually. When there are some affixes (arcane, molten, motard mostly) they stop DPS and are not even trying to go to zbarb
 
@Tempest: Amazing work again. znecro never meant to be push higher greater rift 100+. It's for speed running for exp. for stable 105-110 the meta still the same as the first page.
 
@Hyuks for the sake of it, try this 3-4 weeks old Trinity.
Rathma necro:
Avoidance settings: Orlash 50%, Molten Core 80%, Arcane Sentry 30%. Rest unticked.
Equip Esoteric, Enforcer, Trapped.
No globes, shrines, minions, ClusterSize = 12 for whole group
I am gearing second Rathma, so I run zbarb, zmonk, 2x rathma w/o devour, I use Decrepify on 1st Rathma, Fraily on the 2nd, instead. Raping 104s in about 7-8 minutes. One Rathma got about 4M dps in town (in party), second 3.5M dps atm. Exps little lower than 107s, going about 450-480 b/h. No way this ain't gonna work for you.
 

Attachments

@Hyuks for the sake of it, try this 3-4 weeks old Trinity.
Rathma necro:
Avoidance settings: Orlash 50%, Molten Core 80%, Arcane Sentry 30%. Rest unticked.
Equip Esoteric, Enforcer, Trapped.
No globes, shrines, minions, ClusterSize = 12 for whole group
I am gearing second Rathma, so I run zbarb, zmonk, 2x rathma w/o devour, I use Decrepify on 1st Rathma, Fraily on the 2nd, instead. Raping 104s in about 7-8 minutes. One Rathma got about 4M dps in town (in party), second 3.5M dps atm. Exps little lower than 107s, going about 450-480 b/h. No way this ain't gonna work for you.
Thanks, i'll try it tomorrow when home
 
Hey Tempest, I had some issues with the barb picking up globes. Mainly that it was ignoring combat to pickup globes and on top of that lagging behind the group and missing ip to pickup globes after everything is dead and the party moves on. I disabled the health globe pickup in demon buddy (still picking up neph and grift progress globes) and added health globes to the barb's combat routine. It's helped a lot to get the barb to behave as I would expect it to.

Here are the changes I made:

Code:
private TrinityActor FindHealthGlobe(float range = 50 f) {
 return Core.Targets.Where(u => u ? .Type == TrinityObjectType.HealthGlobe && u.Distance < range && u.IsInLineOfSight).OrderBy(u => u.Distance).FirstOrDefault();
}

Code:
public TrinityPower GetOffensivePower() {
 Vector3 LeaderPos = GetLeaderPos();
 TrinityActor target;
 Vector3 position;

 if (ShouldIgnorePain())
  return IgnorePain();

 if (ShouldWarCry())
  return WarCry();

 if (ShouldThreateningShout(LeaderPos, out position))
  return ThreateningShout(position);

 if (ShouldRend(LeaderPos, out position))
  return Rend(position);


 if (ShouldFuriousCharge(out position))
  return FuriousCharge(position);

 target = FindHealthGlobe();
 if (target != null && !Core.Avoidance.InAvoidance(Player.Position)) {
  return Walk(target);
 }

 if (ShouldGroundStomp(LeaderPos, out position))
  return GroundStomp(position);

 if (ShouldAncientSpear(LeaderPos, out target))
  return AncientSpear(target);


 if (ShouldWhirlwind(out position))
  return Whirlwind(position);


 return new TrinityPower(SNOPower.Walk, 3 f, LeaderPos);
}

Code:
protected override bool ShouldFuriousCharge(out Vector3 position) {
 // Credit: phelon's raekor.

 position = Vector3.Zero;
 TrinityActor target = null;

 if (!Skills.Barbarian.FuriousCharge.CanCast() || Skills.Barbarian.AncientSpear.TimeSinceUse < 200 f)
  return false;

 var targetGoal = Math.Floor(5 * Core.Player.CooldownReductionPct);
 TrinityActor bestPierce = TargetUtil.GetBestPierceTarget((float) ChargeDistance);
 var bestPierceCount = bestPierce ? .NearbyUnitsWithinDistance(7) ? ? 0;
 TrinityActor bestTarget = TargetUtil.BestAoeUnit((float) ChargeDistance, true);
 var bestTargetCount = bestTarget ? .NearbyUnitsWithinDistance(7) ? ? 0;
 TrinityActor bestCluster = TargetUtil.GetBestClusterUnit(7, (float) ChargeDistance);
 var bestClusterCount = bestCluster ? .NearbyUnitsWithinDistance(7) ? ? 0;
 TrinityActor globe = FindHealthGlobe();

 if (!Core.Buffs.HasCastingShrine) {
  if (globe != null) {
   position = GetPositionBehind(globe.Position);
   return true;
  }
  if (bestTarget != null && TargetUtil.PierceHitsMonster(bestTarget.Position)) {
   if (bestTargetCount == 1 || bestTargetCount >= targetGoal) {
    position = GetPositionBehind(bestTarget.Position);
    return true;
   }
  }

  if (bestPierce != null && bestCluster != null && TargetUtil.PierceHitsMonster(bestPierce.Position) && TargetUtil.PierceHitsMonster(bestCluster.Position)) {
   if (bestPierceCount == 1 || bestPierceCount >= targetGoal &&
    bestClusterCount == 1 || bestClusterCount >= targetGoal) {
    if (bestClusterCount > bestPierceCount) {
     position = GetPositionBehind(bestCluster.Position);
     return true;
    }
    position = GetPositionBehind(bestPierce.Position);
    return true;
   }
   if (bestPierceCount != 1 && bestPierceCount < targetGoal &&
    (bestClusterCount == 1 || bestClusterCount >= targetGoal)) {
    position = GetPositionBehind(bestCluster.Position);
    return true;
   }
  }

  if (bestPierce != null && TargetUtil.PierceHitsMonster(bestPierce.Position)) {
   if (bestClusterCount != 1 && bestClusterCount < targetGoal &&
    (bestPierceCount == 1 || bestPierceCount >= targetGoal)) {
    position = GetPositionBehind(bestPierce.Position);
    return true;
   }
  }

 }

 position = GetPositionBehind(CurrentTarget.Position);
 return true;
}
 
Last edited:
@ZDL good idea, but I still have few problems with your implementation:

1. How is your implementation not gonna ignore combat since it seems to Furious Charge globe immediately as it appears? :-)
2. GetOffensivePower() is only called when Trinity or auto-follow activates the combat. So once the leader moves on, the combat switches off, your globe picking stops working in the same manner as it does now.
3. You would need to inject it into GetBuffPower() which is called also outside the combat but Trinity for some reason hardcoded limitation of 500ms for repeating calling of identical spell in GetBuffPower().
4. Why do you check Player' position in the avoidance in Core.Avoidance.InAvoidance(Player.Position), shouldn't you check the globe's? Barbarian should also completely ignore the avoidance.
5. I would guess that putting Furious Charge before Ancient Spear won't give you enough fury consumers (for zodiac ring) to have 100% Ignore Pain uptime.

With all these I can still see a merit in your idea. Although I don't see it solving any of your concerns, it can still solve the overwrite of Trinity's DefaultWeightingProvider.cs mentioned in the OP. Overwrite of DefaultWeightingProvider.cs is dangerous because it is the part of code where targeting and combat activation is decided, it's code is a complete mess, and a probability that Trinity guys will change something relevant inside is high. I will take a look.
 
Ok, this seems to be working. I have added this to 1.3 version, There is also an option to force health globes pickup in the barbarians routine. This overrides Trinity's globes pickup. So for the barbarian tick the globes in Trinity and also in the combat routine. If you untick them in Trinity, combat routine's override will still pickup the health globes but other kinds can be missed. Finally we got rid of DefaultWeightingProvider.cs overwrite, thanks to @ZDL. The last remaining overwrite we do in Trinity is TargetUtil.cs because last time I checked the function looking for Sanctuary buff is wrongly implemented.
 
@Tempest is 2 necro dps better than 1 nec and 1 lon wd? I have 2 good rathma dps and gearing up a lon wd but if the 2 rathma is better then there is no need to waste time on the lon wd.
 
Back
Top