Please use this for reference. At the bottom of the post someone Randomstraw posts an untested conversion (bot -> plugin) but no one ever gets a reply. How would I go about making this work? I changed the orb to "Dizzying Haze" as my monk is too low level for orbs....and I actually want to port it over to Haze. Code: using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Styx; using Styx.Common; using Styx.CommonBot; using Styx.CommonBot.POI; using Styx.CommonBot.Profiles; using Styx.CommonBot.Routines; using Styx.Helpers; using Styx.Pathing; using Styx.WoWInternals.WoWObjects; using Styx.TreeSharp; using Action = Styx.TreeSharp.Action; using Sequence = Styx.TreeSharp.Sequence; using Styx.WoWInternals; using Styx.WoWInternals.WoWObjects; using Styx.Plugins; using System.Windows.Media; using System.Diagnostics; namespace HSphereBuddy { class HSphereBuddy : HBPlugin { private static LocalPlayer Me { get { return StyxWoW.Me; } } public override string Name { get { return "HSpherePlugin"; } } public override string Author { get { return "xxx /randomstraw"; } } public override Version Version { get { return new Version(0, 1, 0, 0); ; } } public override string ButtonText { get { return "magic"; } } public override bool WantButton { get { return false; } } private static Stopwatch spamDelay = new Stopwatch(); static int healOrbType = 0; WoWPoint target; bool init = false; public override void Initialize() { if (init) return; init = true; Logging.Write(Colors.Gold, "+ {0}", Name); } public override void Pulse() { if (spamDelay.ElapsedMilliseconds < 100) return; spamDelay.Reset(); spamDelay.Start(); if (Me.CurrentTarget == null) { Lua.DoString("healOrbNum = 0;"); healOrbType = 0; return; } if (healOrbType == 1) { target = Me.CurrentTarget.WorldLocation; SpellManager.Cast("Dizzying Haze"); SpellManager.ClickRemoteLocation(target); Lua.DoString("healOrbNum = 0;"); healOrbType = 0; } } [COLOR="#FF0000"] private Composite _root; public override Composite Root { get { return _root ?? (_root = new PrioritySelector( logic() ) ); } } private static Composite logic() { return new Action(delegate { healOrbType = Lua.GetReturnVal<int>("return healOrbNum", 0); }); }[/COLOR] } } With this macro: #showtool Healing Sphere /script healOrbNum = 1; to activate the casting. The plugin hangs at the red text, but I'm not sure what to do. Error: Compiler Error: c:\Users\HB\Plugins\Sphere\HSpherePlugin.cs(92,35) : error CS0115: 'HSphereBuddy.HSphereBuddy.Root': no suitable method found to override I'm going to keep playing with it, but I'd like some help. I feel like this will be a 2min fix to the trained eye... Thanks!
using System; using System.Collections.Generic; using System.Linq; using System.Text; using System.Threading.Tasks; using Styx; using Styx.Common; using Styx.CommonBot; using Styx.CommonBot.POI; using Styx.CommonBot.Profiles; using Styx.CommonBot.Routines; using Styx.Helpers; using Styx.Pathing; using Styx.WoWInternals.WoWObjects; using Styx.TreeSharp; using Action = Styx.TreeSharp.Action; using Sequence = Styx.TreeSharp.Sequence; using Styx.WoWInternals; using Styx.WoWInternals.WoWObjects; using Styx.Plugins; using System.Windows.Media; using System.Diagnostics; namespace HSphereBuddy { class HSphereBuddy : HBPlugin { private static LocalPlayer Me { get { return StyxWoW.Me; } } public override string Name { get { return "HSpherePlugin"; } } public override string Author { get { return "xxx /randomstraw"; } } public override Version Version { get { return new Version(0, 1, 0, 0); ; } } public override string ButtonText { get { return "magic"; } } public override bool WantButton { get { return false; } } private static Stopwatch spamDelay = new Stopwatch(); static int healOrbType = 0; WoWPoint target; bool init = false; public override void Initialize() { if (init) return; init = true; Logging.Write(Colors.Gold, "+ {0}", Name); } public override void Pulse() { if (spamDelay.ElapsedMilliseconds < 100) return; spamDelay.Reset(); spamDelay.Start(); if (Me.CurrentTarget == null) { Lua.DoString("healOrbNum = 0;"); healOrbType = 0; return; } healOrbType = Lua.GetReturnVal<int>("return healOrbNum", 0); if (healOrbType == 1) { target = Me.CurrentTarget.WorldLocation; SpellManager.Cast("Dizzying Haze"); SpellManager.ClickRemoteLocation(target); Lua.DoString("healOrbNum = 0;"); healOrbType = 0; } } } }