yes its a bug, like all the other bugs no one cares to report. Instead people write plugins which then stop to work at the next version.
Potions works fine with belphegor. Diamond skin too can be both set in the guy. Using .146 http://www.thebuddyforum.com/demonbuddy-forum/combat-routines/58270-belphegor-test-release.html If only we could find some way to tune it well with wicked winds. The bot is not going for more than 3 tornadoes at once but with 40% crit and 20 arcane regen per crit we can get up to 6 at once and that's true good dps. The bot is not spammy enough imo. Edit: Here we go!! I found Wicked Twister was an AoE skill in Belph, this turned out that the bot had no skill left to single target so I switched Twister to 1. Belphegor\Routines\Wizard.cs Code: using System;using Belphegor.Composites; using Belphegor.Dynamics; using Belphegor.Helpers; using Belphegor.Settings; using Zeta; using Zeta.Common.Helpers; using Zeta.CommonBot; using Zeta.Internals.Actors; using Zeta.TreeSharp; using Action = Zeta.TreeSharp.Action; namespace Belphegor.Routines { public class Wizard { [Class(ActorClass.Wizard)] [Behavior(BehaviorType.Buff)] public static Composite WizardBuffs() { return new PrioritySelector( Common.CreateWaitForAttack(), Common.CreateWaitForCast(), new SelfCast(SNOPower.Wizard_MagicWeapon, extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_MagicWeapon)), new SelfCast(SNOPower.Wizard_Familiar, extra => _familiarTimer.IsFinished, s => _familiarTimer.Reset()), new SelfCast(SNOPower.Wizard_EnergyArmor, extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_EnergyArmor)), new SelfCast(SNOPower.Wizard_StormArmor, extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_StormArmor)), new SelfCast(SNOPower.Wizard_IceArmor, extra => !ZetaDia.Me.HasBuff(SNOPower.Wizard_IceArmor)) ); } [Class(ActorClass.Wizard)] [Behavior(BehaviorType.Combat)] public static Composite WizardCombat() { return new PrioritySelector(ctx => CombatTargeting.Instance.FirstNpc, new Decorator(ctx => ctx != null, new PrioritySelector( new SelfCast(SNOPower.Wizard_DiamondSkin, extra => ZetaDia.Me.HitpointsCurrentPct <= BelphegorSettings.Instance.Wizard.DiamondSkinHp || Unit.MeIncapacited), Common.CreateWaitWhileIncapacitated(), Common.CreateWaitForAttack(), Common.CreateUsePotion(), Movement.MoveTo(ctx => ((DiaUnit)ctx).Position, 30f), new Decorator(ret => ZetaDia.Me.HasBuff(SNOPower.Wizard_Archon), new PrioritySelector( new SelfCast(SNOPower.Wizard_Archon_SlowTime, extra => ZetaDia.Me.HitpointsCurrentPct <= 0.4), new SelfCast(SNOPower.Wizard_Archon_ArcaneBlast, ctx => Unit.IsElite((DiaUnit)ctx, 16f) || Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= 2), new CastOnUnit(SNOPower.Wizard_Archon_DisintegrationWave, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_Archon_ArcaneStrike, ctx => ((DiaUnit)ctx).ACDGuid) )), // Low health stuff new SelfCast(SNOPower.Wizard_MirrorImage, extra => ZetaDia.Me.HitpointsCurrentPct <= BelphegorSettings.Instance.Wizard.MirrorImageHp), new SelfCast(SNOPower.Wizard_SlowTime, extra => ZetaDia.Me.HitpointsCurrentPct <= BelphegorSettings.Instance.Wizard.SlowTimeHp), // AoE spells. new SelfCast(SNOPower.Wizard_WaveOfForce, ctx => Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >= 2 || (Unit.IsElite((DiaUnit)ctx, 16f))), new SelfCast(SNOPower.Wizard_FrostNova, ctx => Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= 2 || (Unit.IsElite((DiaUnit)ctx, 16f))), //Hydra new CastAtLocation(SNOPower.Wizard_Hydra, ctx => ((DiaUnit)ctx).Position, ctx => _hydraTimer.IsFinished && !Unit.HasPet("Hydra") && Unit.IsElite((DiaUnit)ctx) || Clusters.GetClusterCount((DiaUnit)ctx, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >= 4, s => _hydraTimer.Reset()), new SelfCast(SNOPower.Wizard_Archon, ctx => Unit.IsElite((DiaUnit)ctx) || Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 60f) >= BelphegorSettings.Instance.Wizard.ArchonAoECount), new CastOnUnit(SNOPower.Wizard_EnergyTwister, ctx => ((DiaUnit)ctx).ACDGuid, ctx => Clusters.GetClusterCount((DiaUnit)ctx, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 20f) >= [COLOR=#ff0000]1[/COLOR]), new CastAtLocation(SNOPower.Wizard_Meteor, ctx => ((DiaUnit)ctx).Position, ctx => _meteorTimer.IsFinished && (Unit.IsElite((DiaUnit)ctx) || Clusters.GetClusterCount((DiaUnit)ctx, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= 4), s => _meteorTimer.Reset()), new CastAtLocation(SNOPower.Wizard_Blizzard, ctx => ((DiaUnit)ctx).Position, ctx => _blizzardTimer.IsFinished && Clusters.GetClusterCount((DiaUnit)ctx, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= 4, s => _blizzardTimer.Reset()), new SelfCast(SNOPower.Wizard_ExplosiveBlast, ctx => _explosiveBlast.IsFinished && (Unit.IsElite((DiaUnit)ctx, 12f) || Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 12f) >= 2), s => _explosiveBlast.Reset()), // Arcane power spenders. new CastOnUnit(SNOPower.Wizard_ArcaneOrb, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_RayOfFrost, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_ArcaneTorrent, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_Disintegrate, ctx => ((DiaUnit)ctx).ACDGuid), // Signature spells. new CastOnUnit(SNOPower.Wizard_SpectralBlade, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_Electrocute, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_ShockPulse, ctx => ((DiaUnit)ctx).ACDGuid), new CastOnUnit(SNOPower.Wizard_MagicMissile, ctx => ((DiaUnit)ctx).ACDGuid) )), new Action(ret => RunStatus.Success) ); } #region Timers static Wizard() { GameEvents.OnGameLeft += ResetTimers; GameEvents.OnPlayerDied += ResetTimers; } static void ResetTimers(object sender, EventArgs e) { _familiarTimer.Stop(); _blizzardTimer.Stop(); _hydraTimer.Stop(); _meteorTimer.Stop(); _explosiveBlast.Stop(); } private static WaitTimer _explosiveBlast = new WaitTimer(TimeSpan.FromSeconds(5)); private static WaitTimer _blizzardTimer = new WaitTimer(TimeSpan.FromSeconds(5)); private static WaitTimer _meteorTimer = new WaitTimer(TimeSpan.FromSeconds(5)); private static WaitTimer _familiarTimer = new WaitTimer(TimeSpan.FromMinutes(5)); private static WaitTimer _hydraTimer = new WaitTimer(TimeSpan.FromSeconds(10)); #endregion public static void WizardOnLevelUp(object sender, EventArgs e) { if (ZetaDia.Me.ActorClass != ActorClass.Wizard) return; int myLevel = ZetaDia.Me.Level; Logger.Write("Player leveled up, congrats! Your level is now: {0}", myLevel ); // ********** PRIMARY SLOT CHANGES ********** // Set Shock Pulse as primary. if (myLevel == 3) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_ShockPulse, -1, 0); Logger.Write("Setting Shock Pulse as Primary"); } // Set Shock Pulse-Explosive bolts as primary. if (myLevel == 9) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_ShockPulse, 1, 0); Logger.Write("Changing rune for Shock Pulse: \"Explosive Bolts\""); } // Set Electrocute as primary. if (myLevel == 15) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_Electrocute, -1, 0); Logger.Write("Setting Electrocute as Primary"); } // Set Electrocute-Chain lightning as primary. if (myLevel == 22) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_Electrocute, 1, 0); Logger.Write("Changing rune for Electrocute: \"Chain Lightning\""); } // ********** SECONDARY SLOT CHANGES ********** // Set Ray of Frost as secondary spell. if (myLevel == 2) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_RayOfFrost, -1, 1); Logger.Write("Setting Ray of Frost as Secondary"); } // Set arcane orb as secondary if (myLevel == 5) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_ArcaneOrb, -1, 1); Logger.Write("Setting Arcane Orb as Secondary"); } // Set arcane orb rune to "obliteration" if (myLevel == 11) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_ArcaneOrb, 1, 1); Logger.Write("Changing rune for Arcane Orb: \"Obliteration\""); } // ********** SKILL SLOTS 1-4 ********** // Set Frost Nova as slot 1 if (myLevel == 4) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_FrostNova, -1, 2); Logger.Write("Setting Frost Nova as slot 1"); } // Set Diamond Skin as slot 1 if (myLevel == 8) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_DiamondSkin, -1, 2); Logger.Write("Setting Diamond Skin as slot 1"); } // Level 9, slot 2 unlocked! // Set Wave of Force as slot 2 if (myLevel == 9) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_WaveOfForce, -1, 3); Logger.Write("Setting Wave of Force as slot 2"); } // Level 14, slot 3 unlocked! // Set Diamond Skin-Crystal Shell as slot 1, Ice Armor as slot 3 if (myLevel == 14) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_DiamondSkin, 1, 2); Logger.Write("Changing rune for Diamond Skin: \"Crystal Shell\""); ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_IceArmor, -1, 4); Logger.Write("Setting Ice Armor as slot 3"); } // Set Wave of Force-Impactful Wave as slot 2 if (myLevel == 15) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_WaveOfForce, 1, 3); Logger.Write("Changing rune for Wave of Force: \"Impactful Wave\""); } // Level 19, slot 4 unlocked! // Set Explosive Blast as slot 4 if (myLevel == 19) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_ExplosiveBlast, -1, 5); Logger.Write("Setting Explosive Blast as slot 4"); } // Set Ice Armor-Chilling Aura as slot 3, Hydra as slot 4 if (myLevel == 21) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_IceArmor, 1, 4); Logger.Write("Changing rune for Ice Armor: \"Chilling Aura\""); ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_Hydra, -1, 5); Logger.Write("Setting Hydra as slot 4"); } // Set Hydra-Arcane Hydra as slot 4 if (myLevel == 26) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_Hydra, 1, 5); Logger.Write("Changing rune for Hydra: \"Arcane Hydra\""); } // Set Energy Armor as slot 3 if (myLevel == 28) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_EnergyArmor, -1, 4); Logger.Write("Setting Energy Armor as slot 3"); } // Set Energy Armor-Absorption as slot 3 if (myLevel == 32) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_EnergyArmor, 1, 4); Logger.Write("Changing rune for Energy Armor: \"Absorption\""); } // Set Hydra-Venom Hydra as slot 4 if (myLevel == 38) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_Hydra, 3, 5); Logger.Write("Changing rune for Hydra: \"Venom Hydra\""); } // Set Energy Armor-Pinpoint Barrier as slot 3 if (myLevel == 41) { ZetaDia.Me.SetActiveSkill(SNOPower.Wizard_EnergyArmor, 2, 4); Logger.Write("Changing rune for Energy Armor: \"Pinpoint Barrier\""); } // ********** PASSIVE SKILLS ********** if (myLevel == 10) { // Blur - Decreases melee damage taken by 20%. ZetaDia.Me.SetTraits(SNOPower.Wizard_Passive_Blur); } if (myLevel == 20) { // Blur - Decreases melee damage taken by 20%. // Prodigy - 4 arcane power from signature casts ZetaDia.Me.SetTraits(SNOPower.Wizard_Passive_Blur, SNOPower.Wizard_Passive_Prodigy); } if (myLevel == 30) { // Blur - Decreases melee damage taken by 20%. // Prodigy - 4 arcane power from signature casts // Astral Presence - +20 arcane power, +2 arcane regen ZetaDia.Me.SetTraits(SNOPower.Wizard_Passive_Blur, SNOPower.Wizard_Passive_Prodigy, SNOPower.Wizard_Passive_AstralPresence); } } } } Going to see how well it goes with Belph! In setting I switched Diamond Skin to 99, potions to 55% and I modified the Twister value.
tried belphegor 146,the twister part is not spammy enough sadly.belphegor like 3 twisters at a time max,then it just stands around waiting for 1 to expire..really frustrating with fast elites. also.. survival tip if you find yourself dying a lot : EQUIP A SHIELD! i got a int vit mf shield with 1400 armor cheap on the ah...increased my surviability a lot!
Yeah agreed shield is a must I will put it in the guide thx for input I forgot to mention! About Belph did you try it with my mod to Energy Twister on 1 target Xergz? On my side it seems to work very well at least with the test release and some tweaks. At least the bot will take potions.
yeah,i tried the mod to make twister single target..but belp still refuses to spam it even though we have the arcane power to do so.max i've seen is 3-4 twisters at a time
You are right, didnt have time to see it in action yesterday but tried it again this morning, Generic is way more efficient.
any idea of the general cost of a formidable build? debating on whether to build another barb build which cost under 15 mil or this.
i wonder how the bot would perform with belp routine and archon instead of fimiliar..if it works the way a barbarian I.E : blow cooldown on elites,it may just work..will try it out tomorrow.if anyone tries it before that..please post results.thanks
Bad side of Archon in a tank build is that Swapping to archon makes you more vulnerable as you cannot abuse Diamond skin and wicked winds will stop generating mass criticals cooldown reduction, just saying, this might work who knows!!
my wizard won't attack any monsters at all with the generic routine, any idea what is wrong? i have all settings as recommended in the first post the same and have tried db 180 and 185
I'm no expert here, but my guess is, you have a function called CreateUsePotion, but there is no call for it. There are other Create* functions, which is called on pulse: I belive, if you put CreateUsePotion, it would work, but never had a chance to try it yet, tomorrow I will my a new char where i could test it
Hmm.. Started using this a few days ago, and for the most part, it works well, but it definitely dies quite a bit.. I wonder what I'm doing wrong. 23k HP 21k DPS 33% Crit Chance 960+ all resists 215 LoH 10 Arcane Power on Crit The Arcane Power on crit is a little lower than the recommended, but I don't think that's the problem, since it doesn't seem to be struggling with arcane power.
Try making diamond skin "on cool down" in generic settings.also,if you stay above 20k dps,you can change your rune on either familiar to the guardian rune or magic weapon to the life on hit rune. helped me initially
So this is working perfectly for me, except one big problem... My wizard dies against Arcane Enhanced creatures... The damage unbelieveable... My stats: 23k HP 30k DPS 41% Crit Chance 920+ all resists (Arcane 1004) 423 LoH I wont go with profit if I dont solve the arcane enhanced creature problem... Can anyone share a few tips on how to survive against them?
Plugin for Arcane and Descecrator avoidance. Trying it out now http://www.thebuddyforum.com/demonbuddy-forum/plugins/62699-plugin-escape-desecrator-arcane.html
Having the same problem still even with 35k hp / 1120 arcane / 400 loh and 1k life per second, guess I'll try out the new plugin for arcane sentries in the plugin forum now.