Here is a simple plugin that i made for you. (Untested.)
using System;
using robotManager.Helpful;
using wManager.Wow.Helpers;
using System.Threading;
using System.ComponentModel;
using wManager.Wow.ObjectManager;
using System.IO;
using robotManager;
using wManager.Plugin;
public class Main : IPlugin
{
bool loaded;
public void Initialize()
{
MountVender.Load();
loaded = true;
while(loaded)
{
try
{
robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += (engine, state, cancelable) =>
{
if (state.DisplayName == "To Town" && MountVender.CurrentSetting.MountName != string.Empty && !ObjectManager.Me.HaveBuff(MountVender.CurrentSetting.MountName) && ObjectManager.Me.Level >= 20)
{
SpellManager.CastSpellByNameLUA(MountVender.CurrentSetting.MountName);
Thread.Sleep(2000);
}
};
}
catch { }
Thread.Sleep(100);
}
}
public void Dispose()
{
loaded = false;
}
public void Settings()
{
MountVender.Load();
MountVender.CurrentSetting.ToForm();
MountVender.CurrentSetting.Save();
}
}
[Serializable]
public class MountVender : Settings
{
[DefaultValue(1000)]
[Category("Mount")]
[DisplayName("Name")]
[Description("Mount Name you wish to use.")]
public string MountName { get; set; }
private MountVender()
{
MountName = "";
ConfigWinForm(
new System.Drawing.Point(300, 400), "ExamplePlugin " + Translate.Get("Settings")
);
}
public static MountVender CurrentSetting { get; set; }
public bool Save()
{
try
{
return Save(AdviserFilePathAndName("MountVender",
ObjectManager.Me.Name + "." + Usefuls.RealmName));
}
catch (Exception e)
{
Logging.WriteError("MountVender > Save(): " + e);
return false;
}
}
public static bool Load()
{
try
{
if (File.Exists(AdviserFilePathAndName("MountVender",
ObjectManager.Me.Name + "." + Usefuls.RealmName)))
{
CurrentSetting = Load<MountVender>(
AdviserFilePathAndName("MountVender",
ObjectManager.Me.Name + "." + Usefuls.RealmName));
return true;
}
CurrentSetting = new MountVender();
}
catch (Exception e)
{
Logging.WriteError("MountVender > Load(): " + e);
}
return false;
}
}
or if you want to use the normal settings of wrobot use this instead.
while(loaded)
{
try
{
robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += (engine, state, cancelable) =>
{
if (state.DisplayName == "To Town" && MountVender.CurrentSetting.MountName != string.Empty && !ObjectManager.Me.HaveBuff(MountVender.CurrentSetting.MountName) && ObjectManager.Me.Level >= 20)
{
SpellManager.CastSpellByNameLUA(MountVender.CurrentSetting.MountName);
Thread.Sleep(2000);
}
else
if (state.DisplayName == "To Town" && wManager.wManagerSetting.CurrentSetting.GroundMountName != string.Empty && !ObjectManager.Me.HaveBuff(wManager.wManagerSetting.CurrentSetting.GroundMountName) && ObjectManager.Me.Level >= 20)
{
SpellManager.CastSpellByNameLUA(wManager.wManagerSetting.CurrentSetting.GroundMountName);
Thread.Sleep(2000);
}
};
}
catch { }
Thread.Sleep(100);
}