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

Trinity - Wizard Class

does DB work on PTR ? I actually want to run on PTR..

All deaths happen when Archon is in melee range.
Or it transforms from CM to Archon in a heated moment with 3 elites in melee range..

So I am trying to create this patch.. If there are 3 nasty elites in melee range, then stay CM don't go archon! And I may swap out force weapon to explosive blast chain reaction!
This is especially true with Phase beats and Demonic tremors, both with extra health and horde is huge pain and will result in 2 deaths.
 
Having watched the bot post 1.6.2 can you add in a clause that stops kiting from Phasebeasts, with their teleporting you cannot kite from them, but just stands there trying to get away (my distance is only set to 5f) and gets pummeled. Other than that loving the changes Giles!

Also the bug where Archon doesn't correctly activate vs elites is still occurring, fine vs most but it does slow down kill-speed dramatically.

I've still had to change around a few things, but otherwise looking good :)

voidx said:
does DB work on PTR ? I actually want to run on PTR..

All deaths happen when Archon is in melee range.
Or it transforms from CM to Archon in a heated moment with 3 elites in melee range..

So I am trying to create this patch.. If there are 3 nasty elites in melee range, then stay CM don't go archon! And I may swap out force weapon to explosive blast chain reaction!
This is especially true with Phase beats and Demonic tremors, both with extra health and horde is huge pain and will result in 2 deaths.


DB doesn't work on PTR otherwise we'd all be testing it out :P Also, in future don't triple post haha, just edit your first post :)
 
Last edited:
And I may swap out force weapon to explosive blast chain reaction!

Considering blood magic is still broken, this might be the way to go. Not sure yet, still experimenting.
 
here is what i have (relative to 1.6.2)

Code:
--- ../../1.6.2/GilesTrinity.cs 2012-10-09 02:59:30.000000000 -0700
+++ GilesTrinity.cs     2012-10-09 09:28:24.510146000 -0700
@@ -30,7 +30,7 @@
     {
         public Version Version { get { return new Version(1, 6, 2); } }
         public string Author { get { return "GilesSmith"; } }
-        public string Description { get { return "GilesTrinity version " + Version; } }
+        public string Description { get { return "GilesTrinity version " + Version + "+beardi"; } }
         public string Name { get { return "GilesTrinity"; } }
         public bool Equals(IPlugin other) { return (other.Name == Name) && (other.Version == Version); }

@@ -184,7 +184,7 @@
             // Wood wraiths all this line (495 & 496 & 6572 & 139454 & 139456 & 170324 & 170325)
             {495, 901}, {496, 901}, {6572, 901}, {139454, 901}, {139456, 901}, {170324, 901}, {170325, 901},
             // Fallen Shaman prophets goblin Summoners (365 & 4100)
-            {365, 1901}, {4100, 1901},
+           //{365, 1901}, {4100, 1901},
             // The annoying grunts summoned by the above
             {4084, -401},
             // Wretched mothers that summon zombies in act 1 (6639)
@@ -232,7 +232,9 @@
         // A list of ranged mobs that should be attacked even if they are outside of the routines current kill radius
         //365, 4100 = fallen; 4300, 4304 = goat shaman; 4738 = pestilence; 4299 = goat ranged; 62736, 130794 = demon flyer; 5508 = succubus
         private static readonly HashSet<int> hashActorSNORanged = new HashSet<int> {
-            365, 4100, 4304, 4300, 4738, 4299, 62736, 130794, 5508,
+            // 365, 4100,
+           4304, 4300, 4738, 4299, 62736,
+           // 130794, 5508,
          };
         // A list of bosses in the game, just to make CERTAIN they are treated as elites
         private static readonly HashSet<int> hashBossSNO = new HashSet<int> {
@@ -5984,12 +5986,12 @@
                 {SNOPower.Wizard_Blizzard, 6000}, // Effect lasts for 6 seconds, actual cooldown is 0...
                 {SNOPower.Wizard_IceArmor, 115000},
                 {SNOPower.Wizard_StormArmor, 115000},
-                {SNOPower.Wizard_MagicWeapon, 60000},
+                {SNOPower.Wizard_MagicWeapon, 180000},
                 {SNOPower.Wizard_Familiar, 60000},
-                {SNOPower.Wizard_EnergyArmor, 115000},
+                {SNOPower.Wizard_EnergyArmor, 6000},
                 {SNOPower.Wizard_ExplosiveBlast, 6000},
                 {SNOPower.Wizard_MirrorImage, 5000},
-                {SNOPower.Wizard_Archon, 100000}, // Actually 120 seconds, but 100 seconds with a rune
+                {SNOPower.Wizard_Archon, 30000}, // Actually 120 seconds, but 100 seconds with a rune
                 {SNOPower.Wizard_Archon_ArcaneBlast, 5000},
                 {SNOPower.Wizard_Archon_ArcaneStrike, 200},
                 {SNOPower.Wizard_Archon_DisintegrationWave, 5},
@@ -7064,7 +7066,7 @@
                         }
                         // Archon
                         if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) &&
-                            (iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_25] >= 1 || playerStatus.dCurrentHealthPct <= 0.6 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 30f)) &&
+                            (iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_25] >= 1 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 30f)) &&
                             playerStatus.dCurrentEnergy >= 25 && playerStatus.dCurrentHealthPct >= 0.10 &&
                             (GilesUseTimer(SNOPower.Wizard_Archon) ||
                              (settings.bEnableCriticalMass && DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Wizard_Archon]).TotalMilliseconds >= 20000)) &&
@@ -7205,7 +7207,7 @@
                     {
                         // Archon form
                         // Archon Slow Time for in combat
-                        if (!bOOCBuff && !playerStatus.bIsIncapacitated &&
+                        if (!bOOCBuff &&
                             (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_25] > 1 || playerStatus.dCurrentHealthPct <= 0.7 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisTreasureGoblin || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 35f)) &&
                             hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon_SlowTime) &&
                             GilesUseTimer(SNOPower.Wizard_Archon_SlowTime, true) && PowerManager.CanCast(SNOPower.Wizard_Archon_SlowTime))
@@ -7222,7 +7224,7 @@
                             return new GilesPower(SNOPower.Wizard_Archon_Teleport, 35f, vNewTarget, iCurrentWorldID, -1, 1, 1, USE_SLOWLY);
                         }
                         // Arcane Blast
-                        if (!bOOCBuff && !playerStatus.bIsIncapacitated &&
+                        if (!bOOCBuff &&
                             (iElitesWithinRange[RANGE_15] >= 1 || iAnythingWithinRange[RANGE_15] >= 1 ||
                              ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 15f)) &&
                             GilesUseTimer(SNOPower.Wizard_Archon_ArcaneBlast) && PowerManager.CanCast(SNOPower.Wizard_Archon_ArcaneBlast))
@@ -7230,10 +7232,10 @@
                             return new GilesPower(SNOPower.Wizard_Archon_ArcaneBlast, 0f, vNullLocation, iCurrentWorldID, -1, 0, 0, USE_SLOWLY);
                         }
                         // Arcane Strike (Arcane Strike) Rapid Spam at close-range only
-                        if (!bOOCBuff && !playerStatus.bIsIncapacitated && targetCurrent.fRadiusDistance <= 13f &&
+                        if (!bOOCBuff && targetCurrent.fRadiusDistance <= 13f &&
                             (targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss))
                         {
-                            return new GilesPower(SNOPower.Wizard_Archon_ArcaneStrike, 11f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, USE_SLOWLY);
+                            return new GilesPower(SNOPower.Wizard_Archon_ArcaneStrike, 10f, vNullLocation, -1, targetCurrent.iThisACDGUID, 0, 0, USE_SLOWLY);
                         }
                         // Disintegrate
                         if (!bOOCBuff && !bCurrentlyAvoiding && !playerStatus.bIsIncapacitated)
 
humph. and the non-window focused channeling/pulsing thing really gets me killed a lot...

Lol I'll post my changes when I get back from the pub, and please could you just edit one post, not post 5 in a row lol. Tis against forum rules as far as I know.
 
Do you have an idea how to disable looting before killing a mob?

It's very annoying to see how it burns monsters (Archon) from range 30+ and all of a sudden it disregards everything and goes in melee range to pickup a gold pile. Of course it get surrounded and it dies.

If kiting is enabled and there is a gold pile on the ground or around a corner it goes "Michael Jackson"

Also, sometimes when it start to kill a grey, it doesn't finish... leave it alive at 1-5% health. It might start killing 2nd mob or get prioritized on another, but when it's done it never return back to the first mob.

Another thing I noticed is that when it change from Archon to normal and it is in half-way from picking up a gold pile, it reset something and skip the gold pile.

EDIT: One more thing... when it detect a mob behind a wall it is trying to kill it till the Archon is gone.
 
Last edited:
Do you have an idea how to disable looting before killing a mob?

It's very annoying to see how it burns monsters (Archon) from range 30+ and all of a sudden it disregards everything and goes in melee range to pickup a gold pile. Of course it get surrounded and it dies.

If kiting is enabled and there is a gold pile on the ground or around a corner it goes "Michael Jackson"

Also, sometimes when it start to kill a grey, it doesn't finish... leave it alive at 1-5% health. It might start killing 2nd mob or get prioritized on another, but when it's done it never return back to the first mob.

Another thing I noticed is that when it change from Archon to normal and it is in half-way from picking up a gold pile, it reset something and skip the gold pile.

EDIT: One more thing... when it detect a mob behind a wall it is trying to kill it till the Archon is gone.

Disabling looting mid combat is a bad idea, when I started botting this was a major fault for me, however the reason is pretty simple. If looting is enabled AFTER killing mobs then the movement you take while killing elites/mobs that run away means that the bot cannot find the loot (even if you set loot radius to 80+) and was leading to many items being missed, and about 30% of legendary's being missed. So unfortunately this is something you will have to deal with.

You can set health potion pickup to max 100 and gold to 1000+, gems off and it helps a lot compared to default settings. There is a way to change the 'weights' that each piece of loot is given in regard to the mobs targeted however I have no idea what effects this will have on looting capacity and you may end up missing more loot than is desirable.

Kiting currently in Archon form is not desirable because the bot wants to kite, yet at the same time (even with the range changed on Archon Strike to 5f) wants to run after the mobs to melee them.

The missing mobs thing is something I have noticed, however because we aren't looking to kill all of the trash (unless farming for XP/Gold) it doesn't matter too much. (You should be geared sufficiently so that even if 20+ mobs surround you you won't die), but it is a known issue and from what I've gathered is more of a DB ActorSNO issue than a GilesTrinity issue.

The Goldpile/Archon activation issue is quite a minimal loss (say max 1000 gold per minute), and we ain't farming gold, we're farming items!

ob behind a wall is an issue with the kill range, which again we cannot fix, this is because if we reduce the trash kill range we will miss far too many mobs that we need to keep Archon active, however normally the mob moves within kill range (the issue normally occurs in Stonefort/Battlements and cannot be resolved without gimping Archon uptime).

Hope that responds to most of your issues, again please post if you need any help/advice from any of us and we will be here to help :) !
 
cfong, post your latest stats and setup
coz kiting enabled is killing me a lot. And yeah I have seen the archon moon walking !

What's your kite range ? Avoidance settings ? And also gear!
 
voidx i gave up. i was dying a lot even with kiting disabled (which was also causing lots of problems)

im back to pure cm until i can get more dps, ias and AR/armor

also, i was dying a lot when the window wasn't focused and it was stuttering the channeling... basically means i can't use the comp for anything else, which is a deal breaker.
 
I am doing Archon build, improved damage, 7 dph still..
May be I should use Templar instead of scoundrel ..

cfong, how much time does it take to clear with CM build ? post build, are you using teleport or something instead of archon ?
 
Beardi,

Do you remember what you have changed in 6.1.1? While using the provided changes from you and some additional tweaks my bot run with 1-3 DPH.
Now with the default settings from 6.2 it hit the sky with 7-8+ DPH.
After changing the melee range from Arcane strike to 3f it improved it a bit, but still there are much to improve. (Blinking phase beasts are now a joke with the short range)

The archon strength is while holding the disintegrate ray up and blowing everything out of the screen. I don't need any avoidance at all if it kills the mobs and then goes for looting. I do realize that it has to loot mid-combat to prevent missing a loot. I checked the code, but couldn't find the weight and priority of items looting to prioritize the mobs first.

I did a lot of tests with blank profile to see it how it acts and even if the movement is controlled by me when surrounded by mobs it tries to execute many priorities at once and just "moon walking" in melee.

While the Archon is the fastest grinding method I've seen so far it need a lot of tweaking and most probably implementing affixes filter.

However my main question here is... is there an option to check if body blocked by "whatever" to do 1-3 arcane strikes (to clean the trash from the melee range) and continue prioritize on what ever is next on the queue? (hopefully not a gold pile on the ground)
 
Also the bug where Archon doesn't correctly activate vs elites is still occurring, fine vs most but it does slow down kill-speed dramatically.

Everything else is working just perfect for me but this issue quoted here from Beardi is generating more pauses and sometime +dph than usual (from 3dph to 10+dph).
the issue is that sometimes it just stand there casting ET with archon available.
I reverted to the old one (1.6.1) and its doing fine with my modifications to the .cs so i think its not related to them (the mods).

The only thing i would like to ask Giles (other than thanking him big time for his wonderful work) is to look at the spamming of skills without mana (like ET when less than 35 arcane power) to actually kill stuff (and leech life) with our main hand hit instead of waiting in idle for mana to increase(just for when there are no primary skills on the bars).
Related to this I have also tried to modify in the .cs the 2 ET options (1 for cm the other without) wich was at 35 arcane power minimum , tried with 0 or 1 but it still wait for the full regen before launching a cast .
 
yeah I need that 1-3 dph patch!! Its not working for me any more, vanilla giles 1.6.2 is like 7-8dph!
 
Everything else is working just perfect for me but this issue quoted here from Beardi is generating more pauses and sometime +dph than usual (from 3dph to 10+dph).
the issue is that sometimes it just stand there casting ET with archon available.
I reverted to the old one (1.6.1) and its doing fine with my modifications to the .cs so i think its not related to them (the mods).

The only thing i would like to ask Giles (other than thanking him big time for his wonderful work) is to look at the spamming of skills without mana (like ET when less than 35 arcane power) to actually kill stuff (and leech life) with our main hand hit instead of waiting in idle for mana to increase(just for when there are no primary skills on the bars).
Related to this I have also tried to modify in the .cs the 2 ET options (1 for cm the other without) wich was at 35 arcane power minimum , tried with 0 or 1 but it still wait for the full regen before launching a cast .

Try changing this to zero
Code:
                    // Wizards want to save up to a reserve of 65+ energy
                    iWaitingReservedAmount = 65;
Then it wont try and keep reserve arcane power
 
Try changing this to zero
Code:
                    // Wizards want to save up to a reserve of 65+ energy
                    iWaitingReservedAmount = 65;
Then it wont try and keep reserve arcane power

I forgot to say i already did that too, it was set to 1 though. I'm going to try out 0 to see if it changes, thanks!

And for the sake of understanding better the code, does any of you know why spam abilities like diamond skin , explosive blast , frostnova are not set to cast on "playerStatus.dCurrentHealthPct <= 1" ? they are all under "1" on ranges like 0.60 , or 0.90.
I thought that maybe its a sort of prioritizing the order in wich it casts them but maybe i am wrong and anyway i find it a bit strange. Diamond skin and frostnova should be casted always when possible.
Could it also be that it can cause some unknown issues setting them all to 1 ?

Thanks and sorry for the many questions but after weeks of reading i finally made an account :)
 
I forgot to say i already did that too, it was set to 1 though. I'm going to try out 0 to see if it changes, thanks!

And for the sake of understanding better the code, does any of you know why spam abilities like diamond skin , explosive blast , frostnova are not set to cast on "playerStatus.dCurrentHealthPct <= 1" ? they are all under "1" on ranges like 0.60 , or 0.90.
I thought that maybe its a sort of prioritizing the order in wich it casts them but maybe i am wrong and anyway i find it a bit strange. Diamond skin and frostnova should be casted always when possible.
Could it also be that it can cause some unknown issues setting them all to 1 ?

Thanks and sorry for the many questions but after weeks of reading i finally made an account :)

The health check is an OR statement, it will spam based on monster distance OR if in low health.
Are you finding it doesn't spam enough?
 
I have always modified em all to 1 and i found em to be spammed more consistently when in range of something and as soon as they get off cd. In particular is very noticeable with diamond skin where it never waits for it to lose a bit of life, just refresh it asap , and correctly still not doing it when nothing in range (so its not goin around spamming frostnova or diamond skinn always).

edit : more aps and crit makes it more evident tho.
 
v:

Takes about an hour to clear all of siggarc's a3 champ hunter. 0-4 dph. scoundrel. paper dps is around 80k

teleport/safe passage. only have 12% movement (boots only)
 
anyone know where to add barricades to the list of things to break in archon mode? im getting stuck in stonefort alot.
 
Back
Top