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

[Guide/Setup] Crusader solo setup: 200B exp per hour no grift key burn

This happen to me either.
I modify the "CrusaderCombat.cs" file(\Plugins\Trinity\Combat\Abilities\CrusaderCombat.cs):
find:
Code:
private static bool CanCastBombardment()
rem these line(use "//"):
Code:
                [COLOR=#ff0000]//[/COLOR]if (Settings.Combat.Misc.UseConventionElementOnly && !GetHasBuff(SNOPower.X1_Crusader_IronSkin))
                    [COLOR=#ff0000]//[/COLOR]return false;

                [COLOR=#ff0000]//[/COLOR]if (ZetaDia.Me.Movement.SpeedXY == 0)
                    [COLOR=#ff0000]//[/COLOR]return false;

In the code above, "GetHasBuff(SNOPower.X1_Crusader_IronSkin)" means to check whether you have IronSkin Buff, and "ZetaDia.Me.Movement.SpeedXY == 0" means you are not in move -- that cause “Hexing Pants" stop working.
In my opnion, these lines are nonsense! If you are in a CoE cycle, and it's right time to cast Bombardment, then you find you're not in move or you don't have IronSkin Buff, you cancel this round of Bombardment??? At this moment, if you cast Bombardment, at least you did some damage. But, if you don't cast, you did nothing! Which one is good? It's obvious.

This change is terrible, anyone doing this can expect a huge drop in damage
 
Looks like capeman did a little more testing to realize it runs on average around 200B/hr and not 400B/hr
Where did I say it averages 400B/hr???

and if you are getting even 170B per hour with zero grift key burn it is more exp than getting 200B per hour running just greater rifts, do the math
 
Last edited:
99% area damage
61.52% CDR
60% Physical damage
26% Bombardment
250 Million thoughness standing in town
300K thorns
1430 Paragon
Gear is not perfect, but the issue here is bot being quite retarded and standing still in the middle of area damages from time to time (been monitoring it and is not 100% of the times) so it eventually dies for no reason... I can quite confirm that my regular farming GR setup is not doing this at all and is able to clear 75 within 5-7 minutes and with almost no deaths so i have no idea what is happening here...
And for the decreasing the difficulty... I'll pass on that, just testing this setup to see if it can match my regular farming setup, as the no key burn is a plus and on the long run it can save many key farming hours

if the bot is standing around doing nothing and dying, obviously something isn't working correctly, try a fresh install and confirm all your settings are correct. Also, as I said in the OP, those stats are too low for efficient 71, so after you fix whatever is making your bot malfunction, I suggest running 70 and not 71.
 
Last edited:
Just trying to compare potential dmg of both build on fly:

Akkhan/Invoker: 5,5(akkhan)*2(EndlessWalk)*1,3(BloodBrother)=14,3 this is max/potential/permament multilier.
LoN bomb: 14(LoN)*1,25(HexingPants))=17,5 is permement multiplier and 17,5*3(CoE)=52,5 physcal CoE rotation multipler and 52,5x2(Mortal Drama)=105.

Akkhan even with 3x more often cast of Bombardment is not competetive vs LoN.

And another big loos of this build is mobility, very bad for bot.
 
Last edited:
This change is terrible, anyone doing this can expect a huge drop in damage
Huge drop??? If you don't change this, when you in a CoE cycle, and stand still, then you'll give up this round of Bombardment, you did 0 damage. I think "huge drop" is better than 0 damage.
 
Last edited:
Huge drop??? If you don't change this, when you in a CoE cycle, and stand still, then you give up this round of Bombardment, you did 0 damage. I think "huge drop" is better than 0 damage.

1) bot will almost never stand still. If it is standing still a lot, something is wrong and you shouldn't be using this setup until you manage to get it working properly
2) Losing the multipliers from iron skin and hexing pants on a significant amount of casts is way way waaaaay worse than losing the occasional bombardments.
 
1) bot will almost never stand still. If it is standing still a lot, something is wrong and you shouldn't be using this setup until you manage to get it working properly
2) Losing the multipliers from iron skin and hexing pants on a significant amount of casts is way way waaaaay worse than losing the occasional bombardments.
If bot always in move, why the developer set this condition???
if (ZetaDia.Me.Movement.SpeedXY == 0)
return false;
You said "losing the multipliers from iron skin", yes, if you haven't got the IronSkin Buff, you'll give up the Bombardment too -- also did 0 damage. That's a simple question.
I can't see what's the way way waaaaay worse than 0 damage.
 
Last edited:
If bot always in move, why the developer set this condition???

Because if the bot is moving 90% of the time, you only want it to cast during that 10%, not during the 10% of the time it stands still.

You said "losing the multipliers from iron skin", yes, if you haven't got the IronSkin Buff, you'll give up the Bombardment too -- also did 0 damage. That's a simple question.
I can't see what's the way way waaaaay worse than 0 damage.

let's say that the window of casting started, but iron skin has 0.3 seconds of cooldown left.
with check: bot will wait 0.3 seconds, and then cast iron skin, followed by bombardment for full damage
without check: bot will cast bombardment, then cast iron skin after it, for 1/5 damage
 
Because if the bot is moving 90% of the time, you only want it to cast during that 10%, not during the 10% of the time it stands still.



let's say that the window of casting started, but iron skin has 0.3 seconds of cooldown left.
with check: bot will wait 0.3 seconds, and then cast iron skin, followed by bombardment for full damage
without check: bot will cast bombardment, then cast iron skin after it, for 1/5 damage

I think you can read the source code of "CrusaderCombat.cs", the "CanCastIronSkin" method decide when Iron Skin cast. Here's the code:
Code:
        private static bool CanCastIronSkin()
        {
            if (!CanCast(SNOPower.X1_Crusader_IronSkin))
                return false;

            if (Player.CurrentHealthPct <= CrusaderSettings.IronSkinHpPct)
                return true;

            if (!IsBombardmentBuild && CurrentTarget.IsBossOrEliteRareUnique &&
                CurrentTarget.RadiusDistance <= 10f && !Settings.Combat.Misc.UseConventionElementOnly)
                return true;

            if (IsBombardmentBuild && ![COLOR="#FF0000"]ShouldWaitForConventionofElements(Skills.Crusader.IronSkin, Element.Physical, 1600, 0)[/COLOR])
                return true;

            return false;
        }
Which means IronSkin will always cast at the right time. I modified the "CanCastBombardment" method to make sure Bombardment will cast at every CoE cycle.
If IronSkin cast and bot is in "special move"(to make Hexing Pants work), with my code, bot will always get the full damage. If IronSkin not cast (in some reason) or bot is not in "special move", with my code, bot will do "1/5 damage". But, with original code, bot will do 0 damage.
Do you think which is better? 0 damage? Or 1/5 damage?

In Trinity 2.14.31, "CanCastBombardment" method don't have these two condition. I think the developer want to make a perfect damage, then he add these condition. But in real world, it's worse than old version.
 
Last edited:
just use only this
//if (ZetaDia.Me.Movement.SpeedXY == 0)
//return false;

this is much better than // iron skin line

cuz bot is always moving. that means almost applied hexing pants.

sometimes you noticed that physics times up, then cast iron skin, then standing without cast bombardment

so that // will help you to cast with iron skin. but you will lose hexing pants at that situation but it's far far far better than not casting when iron skin is casted.
 
If bot always in move, why the developer set this condition???

You said "losing the multipliers from iron skin", yes, if you haven't got the IronSkin Buff, you'll give up the Bombardment too -- also did 0 damage. That's a simple question.
I can't see what's the way way waaaaay worse than 0 damage.

While i agree that movement check i nonsense, iron skin check is a must, if you cast bomb before iron skin and then cast iron skin damage calculation of bomb going crazy and you do like about 30% of damage that you do when cast iron skin first. Any way in this setup you bot will never have a situation when iron skinn will be on CD when phys cycle is coming and bomb is not on CD.

cuz bot is always moving. that means almost applied hexing pants.

There is also one more thing about bombardment itself, you can't cast it while moving, game is forcing your character to stop while you cast this skill.
 
Which means IronSkin will always cast at the right time.
If IronSkin will always cast at the right time, the check for ironskin buff will always return "true", so why remove it?

If nothing went wrong this doesn't matter, but there is lag, There are abilities that mess with casting, and things occasionally go wrong. Removing iron skin check means sometimes
1) you get 1/4 dmg instead of 0 dmg.
2) you get 1/4 dmg instead of 4/4 dmg.
Personally I am willing to bet (2) happens more than (1), but for your change do be worth it (1) needs to happen THREE times more often than (2), and there is no way that is correct
 
Last edited:
just use only this
//if (ZetaDia.Me.Movement.SpeedXY == 0)
//return false;

This is a very important check, removing it is wrong. For every time where the bot wouldn't have cast bombardment at all there are 10 times where this check stopped it from casting a no hexing pants bomb, and cast a full dmg bomb 1 second later.
 
"IronSkin will always cast" only happens in "perfect world". I think, in real world, there's lag, or other accident, IronSkin maybe not cast in some CoE cycle.
If you don't rem the "if (!GetHasBuff(SNOPower.X1_Crusader_IronSkin))" code, it will stop cast Bombardment. We know GR is a timeline, you can imagine it's make up with many CoE cyles one by one, if you miss a cycle, that opportunity can't come back, at last, you lose some damage.
 
Last edited:
"IronSkin will always cast" only happens in "perfect world". I think, in real world, there's lag, or other accident, IronSkin maybe not cast in some CoE cycle.
If you don't rem the "if (!GetHasBuff(SNOPower.X1_Crusader_IronSkin))" code, it will stop cast Bombardment. We know GR is a timeline, you can imagine it's make up with many CoE cyles one by one, if you miss a cycle, that opportunity can't come back, at last, you lose some damage.

Removing iron skin check means sometimes
1) you get 1/4 dmg instead of 0 dmg.
2) you get 1/4 dmg instead of 4/4 dmg.

you are correct that (1) is a gain but you completely disregard the bigger loss in (2). I suspect this is because it is very clear visually when (1) happens but not when (2) happens. Same thing for hexing pants.
 
Last edited:
Just maybe someone will find this useful:

Code:
private static bool CanCastBombardment()
        {
            if (!CanCast(SNOPower.X1_Crusader_Bombardment))
                return false;

            if (IsBombardmentBuild)
            {
                if (ShouldWaitForConventionofElements(Skills.Crusader.Bombardment, Element.Physical, [COLOR="#FF0000"]1000[/COLOR], 1000) [COLOR="#FF0000"]&& !CacheData.Buffs.HasBuff(SNOPower.Pages_Buff_Damage)[/COLOR])
                    return false;

                if (Settings.Combat.Misc.UseConventionElementOnly && !GetHasBuff(SNOPower.X1_Crusader_IronSkin))
                    return false;

                //if (ZetaDia.Me.Movement.SpeedXY == 0)
                //    return false;

                return true;
            }

            return (TargetUtil.AnyMobsInRange(60f, CrusaderSettings.BombardmentAoECount) || TargetUtil.AnyElitesInRange(60f)) &&
                !(Settings.Combat.Misc.UseConventionElementOnly && ShouldWaitForConventionofElements(Skills.Crusader.Bombardment, Element.Physical, 1600, 1000));
        }

private static bool CanCastIronSkin()
        {
            if (!CanCast(SNOPower.X1_Crusader_IronSkin))
                return false;

            //if (Player.CurrentHealthPct <= CrusaderSettings.IronSkinHpPct)
            //    return true;

            if (!IsBombardmentBuild && CurrentTarget.IsBossOrEliteRareUnique &&
                CurrentTarget.RadiusDistance <= 10f && !Settings.Combat.Misc.UseConventionElementOnly)
                return true;

            if (IsBombardmentBuild && CanCast(SNOPower.X1_Crusader_Bombardment) && (!ShouldWaitForConventionofElements(Skills.Crusader.IronSkin, Element.Physical, [COLOR="#FF0000"]1100[/COLOR], 0) [COLOR="#FF0000"]||
                                                                                    CacheData.Buffs.HasBuff(SNOPower.Pages_Buff_Damage)[/COLOR]))
                return true;

            return false;
        }

I'm reduced time by half second while w8 for CoE cycle and added the logic to ignore coe cycle while Power Pylon buff is active in order ot spam iron skin + bomb combo.
 
Last edited:
Just maybe someone will find this useful:

Code:
private static bool CanCastBombardment()
        {
            if (!CanCast(SNOPower.X1_Crusader_Bombardment))
                return false;

            if (IsBombardmentBuild)
            {
                if (ShouldWaitForConventionofElements(Skills.Crusader.Bombardment, Element.Physical, [COLOR="#FF0000"]1000[/COLOR], 1000) [COLOR="#FF0000"]&& !CacheData.Buffs.HasBuff(SNOPower.Pages_Buff_Damage)[/COLOR])
                    return false;

                if (Settings.Combat.Misc.UseConventionElementOnly && !GetHasBuff(SNOPower.X1_Crusader_IronSkin))
                    return false;

                //if (ZetaDia.Me.Movement.SpeedXY == 0)
                //    return false;

                return true;
            }

            return (TargetUtil.AnyMobsInRange(60f, CrusaderSettings.BombardmentAoECount) || TargetUtil.AnyElitesInRange(60f)) &&
                !(Settings.Combat.Misc.UseConventionElementOnly && ShouldWaitForConventionofElements(Skills.Crusader.Bombardment, Element.Physical, 1600, 1000));
        }

private static bool CanCastIronSkin()
        {
            if (!CanCast(SNOPower.X1_Crusader_IronSkin))
                return false;

            //if (Player.CurrentHealthPct <= CrusaderSettings.IronSkinHpPct)
            //    return true;

            if (!IsBombardmentBuild && CurrentTarget.IsBossOrEliteRareUnique &&
                CurrentTarget.RadiusDistance <= 10f && !Settings.Combat.Misc.UseConventionElementOnly)
                return true;

            if (IsBombardmentBuild && CanCast(SNOPower.X1_Crusader_Bombardment) && (!ShouldWaitForConventionofElements(Skills.Crusader.IronSkin, Element.Physical, [COLOR="#FF0000"]1100[/COLOR], 0) [COLOR="#FF0000"]||
                                                                                    CacheData.Buffs.HasBuff(SNOPower.Pages_Buff_Damage)[/COLOR]))
                return true;

            return false;
        }

I'm reduced time by half second while w8 for CoE cycle and added the logic to ignore coe cycle while Power Pylon buff is active in order ot spam iron skin + bomb combo.

great xD thx.
one question. why are you reduced 500ms? any reason? cuz I heard that 1500ms is perfect timing for coe
 
Sounds like you need more toughness. I'm sitting @ 440mil standing in town.
As you said in other post, you are using Esoteric. This response is irrelevant as i'm noty pushing, i'd be at 550mil if i did. Thanks for the response tho.

if the bot is standing around doing nothing and dying, obviously something isn't working correctly, try a fresh install and confirm all your settings are correct. Also, as I said in the OP, those stats are too low for efficient 71, so after you fix whatever is making your bot malfunction, I suggest running 70 and not 71.
Thanks for the suggestion, but as i said in my previous post i'm running 70, not 71. Install is fresh, that i did not mention, but the fact that with my regular setup i'm getting more XP/hour is kind of weird to me... I could assume it's due to the bot getting killed because of being dumb and just standing still, but then again i have been monitoring this and at least for me i don think the fact that there is no key burn is not advantage enough...
 
Back
Top