morris79 3 Posted April 25, 2019 Share Posted April 25, 2019 Bin trying and trying, now give up. I want to make a plugin for my druid. When its lvl up and lvl is XX, then cast Teleport to moonglade. Do repair, sell and train new spells. I know Droidz HS on full bags works. Droidzs I know "Level UP! Reload Fight Class.", is written in log I know Train x lvl is working So fare, its kinda works, but does not see the lvl up in log. Help a noob out please ? using System; using System.ComponentModel; using System.Threading; using System.Windows.Forms; using robotManager.Events; using robotManager.FiniteStateMachine; using robotManager.Helpful; using wManager.Wow.Bot.Tasks; using wManager.Wow.Enums; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : wManager.Plugin.IPlugin { public void Initialize() { FiniteStateMachineEvents.OnRunState += FiniteStateMachineEventsOnOnRunState; Logging.Write("[HearthstoneToGoToTown] Loadded."); } public void Dispose() { Logging.Write("[HearthstoneToGoToTown] Disposed."); } public void Settings() { MessageBox.Show("[HearthstoneToGoToTown] No settings for this plugin."); } private void FiniteStateMachineEventsOnOnRunState(Engine engine, State state, CancelEventArgs cancelable) { try { if (string.IsNullOrWhiteSpace(state.DisplayName) || state.DisplayName != "Level UP!") return; Logging.WriteDebug("[HearthstoneToGoToTown] Use Hearthstone."); var o = wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported; wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; MovementManager.StopMove(); Thread.Sleep(Usefuls.Latency + 150); SpellManager.CastSpellByNameLUA("Teleport: Moonglade"); Thread.Sleep(Usefuls.Latency + 500); if (ObjectManager.Me.IsCast) { Usefuls.WaitIsCasting(); Thread.Sleep(Usefuls.Latency + 10000); // wait load screen } if (wManager.Wow.Helpers.Usefuls.MapZoneName == "Moonglade") { Logging.WriteDebug("Let sell"); GoToTask.ToPositionAndIntecractWithNpc(new Vector3(8030.57f, -2687.78f, 515.0596), 12023); Thread.Sleep(12000); Logging.WriteDebug("Go to Trainer"); GoToTask.ToPositionAndIntecractWithNpc(new Vector3(7867.13, -2593.73, 486.8363), 12042); Thread.Sleep(12000); // Forces for to Train. if (ObjectManager.Me.WowClass == WoWClass.Druid) { if (wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(new Vector3(7867.13, -2593.73, 486.8363), 12042, -1, false)) { Thread.Sleep(5000); wManager.Wow.Helpers.Lua.RunMacroText("/script SelectGossipOption(1)"); wManager.Wow.Helpers.Lua.LuaDoString("LoadAddOn'Blizzard_TrainerUI' f=ClassTrainerTrainButton f.e = 0 if f:GetScript'OnUpdate' then f:SetScript('OnUpdate', nil)else f:SetScript('OnUpdate', function(f,e) f.e=f.e+e if f.e>.01 then f.e=0 f:Click() end end)end"); Thread.Sleep(5000); } } Lua.LuaDoString("local itemName, _, _, _, _, _, _, _ = GetItemInfo(6948); RunMacroText('/use ' .. itemName);"); Thread.Sleep(Usefuls.Latency + 500); if (ObjectManager.Me.IsCast) { Usefuls.WaitIsCasting(); Thread.Sleep(Usefuls.Latency + 10000); // wait load screen } wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = o; } } catch (Exception e) { Logging.WriteError("[HearthstoneToGoToTown] " + e); } } } Link to comment Share on other sites More sharing options...
TheSmokie 242 Posted April 25, 2019 Share Posted April 25, 2019 Add levels and threadsleeps Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now