November 18, 20178 yr Does anyone know the method that is handling this or how to recreate it? When I'm botting and I'm physically at the computer I don't want the game to be closed when teleported, rather I would like the bot to stop / close. I tried looking in the DLL but man, those random names are messing me up so bad.
November 19, 20178 yr Hello, I am not sure to understand what you want but: robotManager.Events.FiniteStateMachineEvents.OnRunState += delegate(robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable) { if (state is wManager.Wow.Bot.States.StopBotIf && state.DisplayName == "Security/Stop game") { // sample to disable tp detection: wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; wManager.Wow.Bot.States.StopBotIf.LastPos = wManager.Wow.ObjectManager.ObjectManager.Me.Position; // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 450) { // close bot... } } };
November 20, 20178 yr Author On 19. 11. 2017 at 12:02 PM, Droidz said: Hello, I am not sure to understand what you want but: robotManager.Events.FiniteStateMachineEvents.OnRunState += delegate(robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable) { if (state is wManager.Wow.Bot.States.StopBotIf && state.DisplayName == "Security/Stop game") { // sample to disable tp detection: wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; wManager.Wow.Bot.States.StopBotIf.LastPos = wManager.Wow.ObjectManager.ObjectManager.Me.Position; // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 450) { // close bot... } } }; BTW, what does wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; do? EDIT: any idea how to test it? Tried with using HS but that apparently didn't work.
November 20, 20178 yr To test Teleporting, you can use a hearthstone or use a mage portal / game portal etc.
November 20, 20178 yr Author Just now, Avvi said: To test Teleporting, you can use a hearthstone or use a mage portal / game portal etc. Thanks, so smething must be wrong. Tried with HS and it didn't work. What I don't get is the first IF statement: if (state is wManager.Wow.Bot.States.StopBotIf && state.DisplayName == "Security/Stop game")
November 20, 20178 yr state comes from the FiniteStateMachine robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable To be honest, I have implemented what Droidz has , but in my RoboAlert plugin. I implemented it a little differently through looking at his code in dotPeek. One problem with the code snippet Droidz provided is that it's missing the continent change. The above code might not catch that.
November 20, 20178 yr You may want to just try the below in its own method with a while loop (for testing). // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 450) { // close bot... } That should probably work
November 20, 20178 yr Author Tried using it in a plugin. Didn't work with blink, both for the event and the while loops Spoiler using wManager.Wow.ObjectManager; using wManager.Wow.Bot.Tasks; using System; using System.Collections.Generic; using System.Threading; using robotManager.Helpful; using robotManager.Products; using robotManager.Events; using wManager.Plugin; using wManager.Wow.Helpers; using System.Configuration; using System.ComponentModel; using System.IO; using System.Windows.Forms; using wManager.Wow.Enums; using System.Linq; public class Main : wManager.Plugin.IPlugin { public void Initialize() { robotManager.Events.FiniteStateMachineEvents.OnRunState += delegate(robotManager.FiniteStateMachine.Engine engine, robotManager.FiniteStateMachine.State state, System.ComponentModel.CancelEventArgs cancelable) { if (state is wManager.Wow.Bot.States.StopBotIf && state.DisplayName == "Security/Stop game") { // sample to disable tp detection: wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; wManager.Wow.Bot.States.StopBotIf.LastPos = wManager.Wow.ObjectManager.ObjectManager.Me.Position; // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 15) { robotManager.Products.Products.ProductStop(); } } }; /* while (Conditions.ProductIsStartedNotInPause) { // sample to disable tp detection: wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false; wManager.Wow.Bot.States.StopBotIf.ForcePvpMode = true; wManager.Wow.Bot.States.StopBotIf.LastPos = wManager.Wow.ObjectManager.ObjectManager.Me.Position; // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 15) { robotManager.Products.Products.ProductStop(); } Thread.Sleep(5); } */ } public void Dispose() { } public void Settings() { } }
November 20, 20178 yr Can you try the below? using wManager.Wow.ObjectManager; using wManager.Wow.Bot.Tasks; using System; using System.Collections.Generic; using System.Threading; using robotManager.Helpful; using robotManager.Products; using robotManager.Events; using wManager.Plugin; using wManager.Wow.Helpers; using System.Configuration; using System.ComponentModel; using System.IO; using System.Windows.Forms; using wManager.Wow.Enums; using System.Linq; public class Main : wManager.Plugin.IPlugin { public void Initialize() { pluginLoop(); } public void pluginLoop() { while (Products.IsStarted && _isLaunched) { if (!Products.InPause) { checkForTeleport() } } } public void checkForTeleport() { // how to wrobot check if your char is tp: if (wManager.Wow.Bot.States.StopBotIf.LastPos != null && wManager.Wow.Helpers.Conditions.InGameAndConnectedAndAlive && wManager.Wow.ObjectManager.ObjectManager.Me.Position.DistanceTo(wManager.Wow.Bot.States.StopBotIf.LastPos) >= 450) { Logging.Write("[Teleport Tester] PLAYER HAS TELEPORTED."); robotManager.Products.Products.ProductStop(); } } public void Dispose() { } public void Settings() { } }
November 20, 20178 yr Author Didn't work even though I tried >= 15, since Blink teleports you 20yards...
November 20, 20178 yr Just now, Seminko said: Didn't work even though I tried >= 15, since Blink teleports you 20yards... Do the logs show [Teleport Tester] PLAYER HAS TELEPORTED."
November 20, 20178 yr My recommendation is to take a look / decompile the WRobot code using dotPeek to figure out how Droidz does it. In his above snippet, he is omitting a lot - such as checking for when character is dead / character moved to different continent, etc.
Create an account or sign in to comment