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

Trinity - Wizard Class

Stats and stuff

Non Archon stats

DPS 91.5
Crit 48% CD 244

HP 45.2
Resist - 920-1000
Armor - 5400
LoH - 880
Pickup Radius - 14

Build
Stromchaser
Improved Archon
Crystal shell
Deep freeze
Blood Magic
Prismatic Armor

Giles 1.6.1.1 with Archon patch at 100% health, did not disable Arcane strike
Kill Radius 40, Pickup health orbs at 40%

Gangnam style 1.2.6 with Azmodan

===== Misc Statistics =====
Total tracking time: 1h 10m 8s
Total deaths: 9 [7.7 per hour]
 
Stats and stuff

Non Archon stats

DPS 91.5
Crit 48% CD 244

HP 45.2
Resist - 920-1000
Armor - 5400
LoH - 880
Pickup Radius - 14

Build
Stromchaser
Improved Archon
Crystal shell
Deep freeze
Blood Magic
Prismatic Armor

Giles 1.6.1.1 with Archon patch at 100% health, did not disable Arcane strike
Kill Radius 40, Pickup health orbs at 40%

Gangnam style 1.2.6 with Azmodan

===== Misc Statistics =====
Total tracking time: 1h 10m 8s
Total deaths: 9 [7.7 per hour]

Have you watched the bot for all of this time? All deaths I'm receiving at the moment are from DB/Avoidance issues unfortunately, and since the last few DB updates my deaths have doubled from 3 to around 6.

If you find when most deaths are occurring (i.e out of Archon or in Archon) then you can adapt depending on that. For example if you're dying in Archon more than when using SC then swap out Blood magic for Force weapon (as the lifesteal doesn't work in Archon mode currently). Have you also got a SOJ with + cold damage (3-4m I think) and a windforce on your scoundrel? Setting cold blooded/blur/CM as passives helps out.

EDIT: I've just played around with the .cs a bit and the following happened (full run!)

===== Misc Statistics =====
Total tracking time: 0h 34m 58s
Total deaths: 1 [1.72 per hour]
Total games (approx): 0 [0 per hour]
(your games left value may be bugged @ 0 due to profile managers/routines etc., now showing games joined instead:)
Total games joined: 1 [1.72 per hour]

I've attached the .cs (Note I'm using Sparkflint instead of Magic Weapon)

NOTE: Version edited is 1.6
 

Attachments

Last edited:
we really need a source repository to track changes and make merges
 
I am impressed with your run time..
I have a Windforce Scoundrel with 1.85 APS.. No SoJ on that guy, that will freezes targets ? I missed that, damn, now there are no cold damage + on AH.. of they are very expensive.

Bot dies when its meele range.. It runs out of archon, so goes melee mode.. Turns back on archon.. then gets destroyed because its surrounded by mobs or elites or all stupid affixes!!
 
I am impressed with your run time..
I have a Windforce Scoundrel with 1.85 APS.. No SoJ on that guy, that will freezes targets ? I missed that, damn, now there are no cold damage + on AH.. of they are very expensive.

Bot dies when its meele range.. It runs out of archon, so goes melee mode.. Turns back on archon.. then gets destroyed because its surrounded by mobs or elites or all stupid affixes!!

Updated continuation of that profile loop, deaths seem to have evened out to my usual per hour, but it's definitely an improvement on 1.6.

===== Misc Statistics =====
Total tracking time: 2h 59m 19s
Total deaths: 9 [3.01 per hour]
Total games (approx): 0 [0 per hour]
(your games left value may be bugged @ 0 due to profile managers/routines etc., now showing games joined instead:)
Total games joined: 1 [0.33 per hour]

If you're dying in melee range you don't have enough lifesteal, try changing to a weapon with 2.5%+ Lifesteal, it returns more hp than LOH past 75k DPS. Whenever anything gets in melee my bot stays at max HP from that alone.
 
Just posting to confirm the archon trigger issue others have already mentioned. Sometimes it also doesn't seem to recast energy armor when it should.

Edit: Scratch the energy armor part, my bad.
 
Last edited:
Just posting to confirm the archon trigger issue others have already mentioned. Sometimes it also doesn't seem to recast energy armor when it should.

Edit: Scratch the energy armor part, my bad.

The the edited .cs attached in an earlier post. Fixed it for me :)
 
Can you tell me what you edited to fix it? So I can edit it in future releases myself if needed.

Sure thing:

Reduced cooldown timers of Energy armor to 60s and Archon to 40s (to make it actually use it mid combat when it failed to do so before).
Reduced the range at which Archon Strike (melee) is triggered, down to 10f from 13f (stops bot running after molten ranged enemies to melee them to death, I've reduced this amount further to 5f in the latest version). Removed all conditions !bCurrentlyAvoiding, to make skills be used whilst trying to avoid things, instead of just sitting there like a lemon when trapped should now attack and gain some life back via lifesteal.

Removed Priorities for Fallen shamans, fallen grunts and succubus.
 
Last edited:
the current DB will not hold mouse button down if D3 is in the background, it will work fine if its in the foreground or another slightly expensive and neat approach to this is to use Isboxer
I'm not good at English. Post through the Google translator :)
Isboxer is not free. Are there any other free programs?
vmware seems possible. But computer is too much heavy
 
Sure thing:

Reduced cooldown timers of Energy armor to 60s and Archon to 40s (to make it actually use it mid combat when it failed to do so before).
Reduced the range at which Archon Strike (melee) is triggered, down to 10f from 13f (stops bot running after molten ranged enemies to melee them to death, I've reduced this amount further to 5f in the latest version). Removed all conditions !bCurrentlyAvoiding, to make skills be used whilst trying to avoid things, instead of just sitting there like a lemon when trapped should now attack and gain some life back via lifesteal.

Removed Priorities for Fallen shamans, fallen grunts and succubus.

Thx, testing right now
 
beardi what about health globe thing ? Enable it or disable it ? With your patched giles? kill radius at 40 right?
 
beardi what about health globe thing ? Enable it or disable it ? With your patched giles? kill radius at 40 right?

I had health globe unticked for a while, literally just testing it back on again at 50% hp. Will let you know how it goes :)

After testing seems survivability is slightly boosted versus most packs, however against molten you get owned pretty damn fast. Even changing the Arcane Strike range to 5f doesn't help there as the bot seems to run after the ranged mobs anyway. Massive issue as about 75% of my deaths are from that when in or out of Archon form, the rest from being trapped =/.

The Archon activation bug (not correctly activating with a pack of elites around it but will activate when 1 is left etc), really does need to be fixed, especially to combat the molten problems.
 
Last edited:
I had health globe unticked for a while, literally just testing it back on again at 50% hp. Will let you know how it goes :)

After testing seems survivability is slightly boosted versus most packs, however against molten you get owned pretty damn fast. Even changing the Arcane Strike range to 5f doesn't help there as the bot seems to run after the ranged mobs anyway. Massive issue as about 75% of my deaths are from that when in or out of Archon form, the rest from being trapped =/.

The Archon activation bug (not correctly activating with a pack of elites around it but will activate when 1 is left etc), really does need to be fixed, especially to combat the molten problems.


Search for "ranged" and lower the health values for when the bot tries to chase low health elites
 
1.6 diff

unfortunately, it does not apply directly to 1.6.6.1

Code:
--- 1.6/GilesTrinity.cs 2012-10-05 02:19:36.000000000 -0700
+++ beardi/1.6/GilesTrinity.cs  2012-10-08 09:08:21.407152000 -0700
@@ -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)
@@ -202,7 +202,7 @@
             // GoatMutantshaman (4300)
             {4300, 901},
             // Succubus (5508)
-            {5508, 801},
+            //{5508, 801},
             // skeleton summoners (5387, 5388, 5389)
             {5387, 951}, {5388, 951}, {5389, 951},
             // Weak skeletons summoned by the above
@@ -232,7 +232,7 @@
         // 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,
+            4304, 4300, 4738, 4299, 62736, 130794,
          };
         // 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> {
@@ -5800,12 +5800,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, 60000},
                 {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},
@@ -6884,7 +6884,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)) &&
@@ -7025,7 +7025,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))
@@ -7042,7 +7042,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))
@@ -7050,10 +7050,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 && !bCurrentlyAvoiding && !playerStatus.bIsIncapacitated && targetCurrent.fRadiusDistance <= 13f &&
+                        if (!bOOCBuff && targetCurrent.fRadiusDistance <= 10f &&
                             (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)
 
Last edited:
I have applied beardi's changes to 1.6.6.1...

beardi can you explain the incapacitated change? I'm not sure what that boolean means

1.6.1.1 patch
Code:
--- ../../1.6.1.1/GilesTrinity.cs       2012-10-07 07:31:26.000000000 -0700
+++ GilesTrinity.cs     2012-10-08 09:22:35.775019100 -0700
@@ -30,7 +30,7 @@
     {
         public Version Version { get { return new Version(1, 6, 1, 1); } }
         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> {
@@ -5911,12 +5913,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},
@@ -6983,7 +6985,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)) &&
@@ -7124,7 +7126,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))
@@ -7141,7 +7143,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))
@@ -7149,10 +7151,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 && !bCurrentlyAvoiding && !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)
 

Attachments

Code:
&& !playerStatus.bIsIncapacitated

This means 'and player is not trapped'. I.e if running to target a prioritized mob and getting surrounded, or attempting to avoid something and becoming trapped. Removing this means that the skill will still be used in this scenario, instead of just standing there not casting any skills.

Good to have Archon Strike + Blast usable in any situation, but if you remove it from Disintegrate avoidance becomes very sluggish.

I've also tweaked 1.6.1.1 a little more to remove priorities on ranged mobs (seems to stop the running over molten trails from ranged elites issue, or at least reduce it), thanks to Moley who posted :)
 

Attachments

Last edited:
Armor now at 6.2 buffed, Resists at 900! physical, arcane 1000
DPH is at 3.5 !! DPS is 100k ..
I am happy about this.. This is now little faster than my barb.
 
Just trying out the latest 1.6.2 with cm/archon... freaking awesome. using voidx's build with cm, cold blooded, and blur

cm and archon kite clicked, 100kdps, 800-900 resist, 6k armor (prismatic), 43% ChC (with scoundrel), 9 AoC, and only 1.6APS!

so far kicking serious ass in 1.0.4 (not PTR)

dying some, but not a lot. considering im at the bleeding edge with aoc, chc, and aps, i'm pretty happy.
 
Last edited:
Back
Top