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

Trinity - Wizard Class

Sorry for the double post.



Try changing this
Code:
// Slow time, for if being followed
                        if (bOOCBuff && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_SlowTime) &&
                            GilesUseTimer(SNOPower.Wizard_SlowTime, true) && PowerManager.CanCast(SNOPower.Wizard_SlowTime))
                        {
                            return new GilesPower(SNOPower.Wizard_SlowTime, 0f, vNullLocation, iCurrentWorldID, -1, 1, 1, USE_SLOWLY);
                        }
to this
Code:
// Slow time, for if being followed
                        /*if (bOOCBuff && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_SlowTime) &&
                            GilesUseTimer(SNOPower.Wizard_SlowTime, true) && PowerManager.CanCast(SNOPower.Wizard_SlowTime))
                        {
                            return new GilesPower(SNOPower.Wizard_SlowTime, 0f, vNullLocation, iCurrentWorldID, -1, 1, 1, USE_SLOWLY);
                        }*/
and this
Code:
// Slow Time for in combat
                        if (!bOOCBuff && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_SlowTime) &&
                            (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_25] > 1 || playerStatus.dCurrentHealthPct <= 0.7 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisTreasureGoblin || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 35f)) &&
                            PowerManager.CanCast(SNOPower.Wizard_SlowTime))
                        {
                            return new GilesPower(SNOPower.Wizard_SlowTime, 0f, vNullLocation, iCurrentWorldID, -1, 1, 1, USE_SLOWLY);
                        }
to this
Code:
// Slow Time for in combat
                        if (!bOOCBuff && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_SlowTime) &&
                            (iElitesWithinRange[RANGE_25] > 0 || iAnythingWithinRange[RANGE_25] > 3 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisTreasureGoblin || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 35f)) &&
                            PowerManager.CanCast(SNOPower.Wizard_SlowTime))
                        {
                            return new GilesPower(SNOPower.Wizard_SlowTime, 0f, vNullLocation, iCurrentWorldID, -1, 1, 1, USE_SLOWLY);
                        }


edited it exactly as above , created a compile error , i will try the released build of DB & maybe 2 older version,s of Giles i stil have , and try these changes on those too

thx for your help tho!~, much appreciated ^^
 
my archon skips too much trash kills is there anyway to make him kill anything he encounters ?

p.s already tried to extend trash kill, he still skips some
 

This time it's perfect , i have set it to 21 cause i use a wand and its working perfectly, really big thanks , i would ask Giles to modify it for future versions. Anyway Big thanks , this is a great improvement with 20apoc or less.

These are also some other thing i normally modify everytime i download a new release:
-Remove "// archon strike" entirely commenting all the section (a check in the settings would be too much i guess , but really who would use it once u have enough dps ?)
- Uncomment the familiar check for archon (why it is commented out?)
-Change the "SNOPower.Wizard_EnergyArmor" + other armor(frost and storm) to 60000 instead of 120000 in the timers section, and also there i lower the SNOPower.Wizard_Archon timer to 30000 from 100000 and Wizard_Archon_ArcaneBlast to 2000 from 5000.
Note : The armors tho' with the newest versions are not casted right away but always when the buff expires wich for archon builds is not that great. (and i don't know how to revert it like it was before where it just waited for the 60000 m/s)
-Lower the "// energy twisters" ap check to 20 ap (also at the start of the wizard section theres another >= 35 check)cause of the lesser ap rune for resetting archon that i use in my build
- The instant default attack fix http://www.thebuddyforum.com/demonb...s-plugins/78732-weapon_melee_instant-fix.html at 21f if you have a wand (maybe more?)

The build is this : Wizard - Game Guide - Diablo III
Unbuffed stats are 39 HP / 750 res all / 4.2k armor / 2.9 LL / 200 Loh / 44 cc / 2.5ish APS / 170 cd / 20 apoc / 2400 int / 100k+ Dps
I run at 1-2 dph and 350+gph , mp1 with latest a3 profile / 15m xp hour (sometimes more, sometimes less)
 
Last edited:
This time it's perfect , i have set it to 21 cause i use a wand and its working perfectly, really big thanks , i would ask Giles to modify it for future versions. Anyway Big thanks , this is a great improvement with 20apoc or less.

These are also some other thing i normally modify everytime i download a new release:
-Remove "// archon strike" entirely commenting all the section (a check in the settings would be too much i guess , but really who would use it once u have enough dps ?)
- Uncomment the familiar check for archon (why it is commented out?)
-Change the "SNOPower.Wizard_EnergyArmor" + other armor(frost and storm) to 60000 instead of 120000 in the timers section, and also there i lower the SNOPower.Wizard_Archon timer to 30000 from 100000 and Wizard_Archon_ArcaneBlast to 2000 from 5000.
Note : The armors tho' with the newest versions are not casted right away but always when the buff expires wich for archon builds is not that great. (and i don't know how to revert it like it was before where it just waited for the 60000 m/s)
-Lower the "// energy twisters" ap check to 20 ap (also at the start of the wizard section theres another >= 35 check)cause of the lesser ap rune for resetting archon that i use in my build
- The instant default attack fix http://www.thebuddyforum.com/demonb...s-plugins/78732-weapon_melee_instant-fix.html at 21f if you have a wand (maybe more?)

The build is this : Wizard - Game Guide - Diablo III
Unbuffed stats are 39 HP / 750 res all / 4.2k armor / 2.9 LL / 200 Loh / 44 cc / 2.5ish APS / 170 cd / 20 apoc / 2400 int / 100k+ Dps
I run at 1-2 dph and 350+gph , mp1 with latest a3 profile / 15m xp hour (sometimes more, sometimes less)

I like all of this
I hope to have much of this implemented into the next trinity, up in this thread somewhere i posted a fix for the armors not casting, maybe a page or two ago
Code:
                            if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_EnergyArmor))
                            {
                                if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) || PowerManager.CanCast(SNOPower.Wizard_EnergyArmor))))
                                {
                                    return new GilesPower(SNOPower.Wizard_EnergyArmor, 0f, vNullLocation, iCurrentWorldID, -1, 1, 2, USE_SLOWLY);
                                }
                            }
next trinity, much of the wiz casting will not rely on timers but rather on the ability to cast or not.

Try this for ET, no ap check, faster spamming when it can, regardless of rune
Code:
                        // Energy Twister SPAMS 
                        if (!bOOCBuff && !playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_EnergyTwister) && PowerManager.CanCast(SNOPower.Wizard_EnergyTwister) &&
                            // If using storm chaser, then force a signature spell every 1 stack of the buff, if we have a signature spell
                            (!bHasSignatureSpell || GilesBuffStacks(SNOPower.Wizard_EnergyTwister) < 1) &&
                            (iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_25] >= 1 || targetCurrent.fRadiusDistance <= 12f) &&
                            (!hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Electrocute) || !hashActorSNOFastMobs.Contains(targetCurrent.iThisActorSNO)) &&
                            ((settings.bEnableCriticalMass && !bHasSignatureSpell) || (!settings.bEnableCriticalMass)))
                        {
                            float fThisRange = 28f;
                            if (settings.bEnableCriticalMass)
                                fThisRange = 9f;
                            return new GilesPower(SNOPower.Wizard_EnergyTwister, fThisRange, new Vector3(targetCurrent.vThisPosition.X, targetCurrent.vThisPosition.Y, targetCurrent.vThisPosition.Z), iCurrentWorldID, -1, 0, 0, USE_SLOWLY);
                        }
 
Last edited:
@Moley, I think there an issue with the energy armor script.

This part
Code:
if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) || PowerManager.CanCast(SNOPower.Wizard_EnergyArmor))))

Wouldn't that mean that one will cast energy armor [if (energy armor is down & can cast energy armor) OR (if there's archon & (energy armor is down OR can cast energy armor))]

For me it spams Energy Armor non stop until it runs out of AP. And continues to spam once there's enough AP

I reckon that...

Code:
if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) || GilesUseTimer(SNOPower.Wizard_EnergyArmor))))

... would be a better way to ensure energy armor stays up as it will recast energy armor every 50/60 seconds cos I don't use galvanizing ward (you need to modify the energy armor timings to 50/60 seconds)
 
Last edited:
@Moley, I think there an issue with the energy armor script.

This part
Code:
if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) || PowerManager.CanCast(SNOPower.Wizard_EnergyArmor))))

Wouldn't that mean that one will cast energy armor [if (energy armor is down & can cast energy armor) OR (if there's archon & (energy armor is down OR can cast energy armor))]

For me it spams Energy Armor non stop until it runs out of AP. And continues to spam once there's enough AP

I reckon that...

Code:
if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) || GilesUseTimer(SNOPower.Wizard_EnergyArmor))))

... would be a better way to ensure energy armor stays up as it will recast energy armor every 50/60 seconds cos I don't use galvanizing ward (you need to modify the energy armor timings to 50/60 seconds)

correct I had an OR where it should have been an AND
Code:
                                if ((!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor)) || (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) && (!GilesHasBuff(SNOPower.Wizard_EnergyArmor) && PowerManager.CanCast(SNOPower.Wizard_EnergyArmor))))

I don't like having it rely on timers, very unreliable, have it fixed next version.
 
My fix for armors:

Code:
if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_StormArmor) && PowerManager.CanCast(SNOPower.Wizard_StormArmor))
                            {
                                if (!GilesHasBuff(SNOPower.Wizard_StormArmor) || ((DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Wizard_StormArmor]).TotalMilliseconds >= 15000) && PowerManager.CanCast(SNOPower.Wizard_Archon)))
                                {
                                    return new GilesPower(SNOPower.Wizard_StormArmor, 0f, vNullLocation, iCurrentWorldID, -1, 1, 2, USE_SLOWLY);
                                }
                            }

It recasts Armor if Archon is available. Do this for other armors

I changed Magic Weapon to something similar aswell:

Code:
if (!playerStatus.bIsIncapacitated && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_MagicWeapon) && PowerManager.CanCast(SNOPower.Wizard_MagicWeapon) && 
							(!GilesHasBuff(SNOPower.Wizard_MagicWeapon) || ((DateTime.Now.Subtract(dictAbilityLastUse[SNOPower.Wizard_MagicWeapon]).TotalMilliseconds >= 10000) && PowerManager.CanCast(SNOPower.Wizard_Archon))))
                        {
                            return new GilesPower(SNOPower.Wizard_MagicWeapon, 0f, vNullLocation, iCurrentWorldID, -1, 1, 2, USE_SLOWLY);
                        }

And finally i removed the buff checks from archon, so it looks like this:
Code:
                        // Archon
                        if (!bOOCBuff && !bCurrentlyAvoiding && hashPowerHotbarAbilities.Contains(SNOPower.Wizard_Archon) &&
                            (iElitesWithinRange[RANGE_30] >= 1 || iAnythingWithinRange[RANGE_25] >= 3 || ((targetCurrent.bThisEliteRareUnique || targetCurrent.bThisBoss) && targetCurrent.fRadiusDistance <= 30f)) && playerStatus.dCurrentHealthPct >= 0.10 && PowerManager.CanCast(SNOPower.Wizard_Archon))
                        {return new GilesPower(SNOPower.Wizard_Archon, 0f, vNullLocation, iCurrentWorldID, -1, 4, 5, USE_SLOWLY);
                        }

Hope it helps someone.
 
Last edited:
Say, d3pt, if I put the
Code:
&& PowerManager.CanCast(SNOPower.Wizard_StormArmor))
inside the
Code:
else if (hashPowerHotbarAbilities.Contains(SNOPower.Wizard_StormArmor))
that means I don't have to put a
Code:
&& PowerManager.CanCast(SNOPower.Wizard_StormArmor))
in every subsequent "||" for that particular skill right?
 
Does anyone here know how to play with the "Kite" settings? I want to try a mod which would disable kiting against certain mobs (phasebeasts fuuuuu)/activate kiting only when health is below X%.

@d3pt, what exactly does removing the buff check for archon do? Does it enable archon to be casted quicker or something along the lines of that?
 
Last edited:
I need some help over here regarding to melee attack issue.

I have melee wizard setup. I use twistor with left mouse button. Issue is when arcane power is depleted my char stops melee attack too. And he stands near to mobs and let them kill him.
I found a topic about this issue :

http://www.thebuddyforum.com/demonb...s-plugins/78732-weapon_melee_instant-fix.html

Before last updates of DB this fix was working but now not. It is a desperate situation.
 
it seems the hydra is cast by timer, how to make it cast whenever i encounter > 1 mobs and cast again when i meet next gang of mobs? (of coz i dun want it to spam hydra)
 
Something regarding Archon to optimize it. Arcane strike is a really high dps attack especially with high attack speed so I do not want to remove it from trinity, but I realize that sometimes, it would try to engage the monsters with the melee strike instead of using the disintegrate. Especially against mobs with bad affixes, I would end up dying. I was just wondering if there was a way to prioritize arcane beam and only use arcane strike when the mobs come within the vicinity? My arcane strike distance is 7f and disintegrate 45f. Currently removed the "not currently avoiding" code for both as my loh should be able to sustain staying alive.

Also, sometimes my character will just ignore mobs even though i'm being attacked. With archon up, I want to extend the time by killing as many mobs as possible, and ignoring a couple of them chasing after me is not a good way to do so (mobs will lose me after sometime cos of my movespd).
 
How can I edit my archon mode so I don't melee at all in it, and just use my energy beam.. I tend to die way more trying to melee down elites in archon mode as opposed to beaming them down.. Thanks
 
Just comment out all the lines from
// Arcane Strike
until before
// Disintegrate
 
Something regarding Archon to optimize it. Arcane strike is a really high dps attack especially with high attack speed so I do not want to remove it from trinity, but I realize that sometimes, it would try to engage the monsters with the melee strike instead of using the disintegrate. Especially against mobs with bad affixes, I would end up dying. I was just wondering if there was a way to prioritize arcane beam and only use arcane strike when the mobs come within the vicinity? My arcane strike distance is 7f and disintegrate 45f. Currently removed the "not currently avoiding" code for both as my loh should be able to sustain staying alive.

Also, sometimes my character will just ignore mobs even though i'm being attacked. With archon up, I want to extend the time by killing as many mobs as possible, and ignoring a couple of them chasing after me is not a good way to do so (mobs will lose me after sometime cos of my movespd).

Move the beam up the list ahead of strike in the .cs
 
I find that currently my CM/WW build is more efficient than Archon? But at the same time I see many using the archon build? So i wonder do you manage to stay in archon form long enough to make it worth it? Becouse my character sometimes run out of archon and then is not very efficient.. thoughts?
 
Back
Top