public static void DiscoverDefaultNodes() { if (Main.isHorde) { if (ObjectManager.Me.PlayerRace == PlayerFactions.Orc || ObjectManager.Me.PlayerRace == PlayerFactions.Troll) { FlightMasterDB.SetFlightMasterToKnown(3310); } if (ObjectManager.Me.PlayerRace == PlayerFactions.Tauren) { FlightMasterDB.SetFlightMasterToKnown(2995); } if (ObjectManager.Me.PlayerRace == PlayerFactions.Undead) { FlightMasterDB.SetFlightMasterToKnown(4551); } if (ObjectManager.Me.PlayerRace == PlayerFactions.BloodElf) { FlightMasterDB.SetFlightMasterToKnown(16192); } } else { if (ObjectManager.Me.PlayerRace == PlayerFactions.Gnome || ObjectManager.Me.PlayerRace == PlayerFactions.Dwarf) { FlightMasterDB.SetFlightMasterToKnown(1573); } if (ObjectManager.Me.PlayerRace == PlayerFactions.Human) { FlightMasterDB.SetFlightMasterToKnown(352); } } }
public override void Run() { MovementManager.StopMoveNewThread(); MovementManager.StopMoveToNewThread(); FlightMaster flightmasterFrom = Main.from; FlightMaster flightmasterTo = Main.to; if (WFMMoveInteract.GoInteractwithFM(flightmasterFrom, true)) { if (FlightMasterDB.UpdateKnownFMs(flightmasterFrom)) { Logger.Log("Flightmaster list has changed. Trying to find a new path."); Main.to = null; Main.shouldTakeFlight = false; return; } List <string> reachableTaxis = new List <string>(); // Look for current To and record reachables in case we can't find it for (int i = 0; i < 120; i++) { string nodeStatus = Lua.LuaDoString <string>($"return TaxiNodeGetType({i})"); string nodeName = Lua.LuaDoString <string>($"return TaxiNodeName({i})"); if (nodeStatus == "REACHABLE") { if (nodeName == flightmasterTo.Name) { TakeTaxi(flightmasterFrom, nodeName); return; } reachableTaxis.Add(nodeName); } } // Find an alternative Logger.Log($"{flightmasterTo.Name} is unreachable, trying to find an alternative"); FlightMaster alternativeFm = Main.GetBestAlternativeTo(reachableTaxis); if (alternativeFm != null) { Logger.Log($"Found an alternative flight : {alternativeFm.Name}"); TakeTaxi(flightmasterFrom, alternativeFm.Name); return; } else { Main.shouldTakeFlight = false; ToolBox.PausePlugin("Couldn't find an alternative flight"); } } }
public static FlightMasterDB getClosestFlightMasterTo() { List <FlightMasterDB> FMLgcfmt = fillDB(); float tempDistance = 99999; FlightMasterDB returnObject = new FlightMasterDB("null", 0, new Vector3(0, 0, 0), false, false); foreach (var a in FMLgcfmt) { if (a.alreadyDiscovered && a.position.DistanceTo(destinationVector) < tempDistance && (a.continent == checkContinent())) { tempDistance = a.position.DistanceTo(destinationVector); returnObject = a; } } return(returnObject); }
// Token: 0x06000012 RID: 18 public static FlightMasterDB getClosestFlightMasterTo() { List <FlightMasterDB> list = Main.fillDB(); float num = 99999f; FlightMasterDB result = new FlightMasterDB("null", 0, new Vector3(0f, 0f, 0f, "None"), 0, false); foreach (FlightMasterDB flightMasterDB in list) { if (flightMasterDB.alreadyDiscovered && flightMasterDB.position.DistanceTo(Main.destinationVector) < num && flightMasterDB.continent == Main.checkContinent()) { num = flightMasterDB.position.DistanceTo(Main.destinationVector); result = flightMasterDB; } } return(result); }
private static void discoverTaxi(FlightMasterDB flightMasterToDiscover) { FNVFlightMasterSettings.Load(); List <FlightMasterDB> FMLdt = fillDB(); if (wManager.Wow.Bot.Tasks.GoToTask.ToPosition(flightMasterToDiscover.position, 3.5f, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore)) { wManager.Wow.Bot.Tasks.GoToTask.ToPosition(flightMasterToDiscover.position, 3.5f, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore); if (wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(flightMasterToDiscover.position, flightMasterToDiscover.NPCId, -1, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false)) { wManager.wManagerSetting.ClearBlacklistOfCurrentProductSession(); wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(flightMasterToDiscover.position, flightMasterToDiscover.NPCId, -1, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false); if (ObjectManager.Me.IsMounted) { wManager.Wow.Bot.Tasks.MountTask.DismountMount(false, false, 100); } Usefuls.SelectGossipOption(GossipOptionsType.taxi); Thread.Sleep(Usefuls.Latency + 1500); while (_updateNodes) { Logging.Write("[VanillaFLightMaster]: Taxi node update in progress..."); Thread.Sleep(10000); } Logging.Write("[VanillaFlightMaster]: Flight Master " + flightMasterToDiscover.name + " discovered"); flightMasterToDiscover.alreadyDiscovered = true; FNVFlightMasterSettings.flightMasterSaveChanges(flightMasterToDiscover, true); Thread.Sleep(Usefuls.Latency * 5); timer = 0; //_timer = true; discoverTaxiNode = (FlightMasterDB)null; _taxiToDiscover = false; _discoverInProessing = false; _discoverTaxiTimer = true; Reenable(); return; } } _discoverInProessing = false; return; }
private static void resetTaxi() { while (ObjectManager.Me.IsOnTaxi) { Thread.Sleep(5000); } Thread.Sleep(Usefuls.Latency * 3 + 1500); Logging.Write("[VanillaFlightMaster]: Reset taxi"); _takenTaxi = false; from = (FlightMasterDB)null; to = (FlightMasterDB)null; _timer = false; checkPath = true; checkPathActive = false; checkPathActiveFM = (FlightMasterDB)null; }
public void Initialize() { if (!Products.ProductName.Equals("Quester") && !Products.ProductName.Equals("Grinder") && !Products.ProductName.Equals("Wholesome Professions WotLK")) { return; } isLaunched = true; isHorde = ToolBox.GetIsHorde(); WFMSettings.Load(); WFMDeepSettings.Load(); if (AutoUpdater.CheckUpdate(version)) { Logger.LogWarning("New version downloaded, restarting plugin, please wait"); ToolBox.Restart(); return; } Logger.Log($"Launching version {version} on client {ToolBox.GetWoWVersion()}"); MovementManager.StopMoveNewThread(); MovementManager.StopMoveToNewThread(); FlightMasterDB.Initialize(); WFMSetup.SetBlacklistedZonesAndOffMeshConnections(); WFMSetup.DiscoverDefaultNodes(); detectionPulse.DoWork += BackGroundPulse; detectionPulse.RunWorkerAsync(); FiniteStateMachineEvents.OnRunState += StateEventHandler; MovementEvents.OnMovementPulse += MovementEventsOnMovementPulse; MovementEvents.OnSeemStuck += SeemStuckHandler; EventsLuaWithArgs.OnEventsLuaStringWithArgs += ToolBox.MessageHandler; EventsLua.AttachEventLua("TAXIMAP_OPENED", (e) => isFMMapOpen = true); EventsLua.AttachEventLua("TAXIMAP_CLOSED", (e) => isFMMapOpen = false); EventsLua.AttachEventLua("GOSSIP_SHOW", (e) => isGossipOpen = true); EventsLua.AttachEventLua("GOSSIP_CLOSED", (e) => isGossipOpen = false); }
private static void takeTaxi(FlightMasterDB from, FlightMasterDB to) { if (wManager.Wow.Bot.Tasks.GoToTask.ToPosition(from.position, 3.5f, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore)) { if (wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(from.position, from.NPCId, -1, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false)) { while (!ObjectManager.Me.IsOnTaxi) { if (ObjectManager.Me.IsMounted) { wManager.Wow.Bot.Tasks.MountTask.DismountMount(false, false, 100); } Usefuls.SelectGossipOption(GossipOptionsType.taxi); Thread.Sleep(Usefuls.Latency + 1500); while (_updateNodes) { Logging.Write("[VanillaFlightMaster]: Taxi node update in progress, waiting..."); Thread.Sleep(10000); } int node = Lua.LuaDoString <int>("for i=0,30 do if string.find(TaxiNodeName(i),'" + to.name + "') then return i end end"); Lua.LuaDoString("TakeTaxiNode(" + node + ")"); Logging.Write("[VanillaFlightMaster]: Taking Taxi from " + from.name + " to " + to.name); Thread.Sleep(Usefuls.Latency + 500); robotManager.Helpful.Keyboard.DownKey(wManager.Wow.Memory.WowMemory.Memory.WindowHandle, System.Windows.Forms.Keys.Escape); Thread.Sleep(Usefuls.Latency + 2500); if (!ObjectManager.Me.IsOnTaxi) { wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(from.position, from.NPCId, -1, false, context => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false); } } if (ObjectManager.Me.IsOnTaxi) { waitFlying(to.name); } } } }
public override void Run() { MovementManager.StopMoveNewThread(); MovementManager.StopMoveToNewThread(); FlightMaster fmToDiscover = Main.flightMasterToDiscover; Logger.Log($"Discovering flight master {fmToDiscover.Name}"); // We go to the position if (WFMMoveInteract.GoInteractwithFM(fmToDiscover)) { FlightMasterDB.SetFlightMasterToKnown(fmToDiscover.NPCId); Main.flightMasterToDiscover = null; ToolBox.UnPausePlugin(); Main.shouldTakeFlight = false; FlightMasterDB.UpdateKnownFMs(fmToDiscover); MovementManager.StopMove(); // reset path } }
// Token: 0x06000016 RID: 22 private static void takeTaxi(FlightMasterDB from, FlightMasterDB to) { if (GoToTask.ToPosition(from.position, 3.5f, false, (object context) => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore)) { if (GoToTask.ToPositionAndIntecractWithNpc(from.position, from.NPCId, -1, false, (object context) => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false)) { while (!ObjectManager.Me.IsOnTaxi) { if (ObjectManager.Me.IsMounted) { MountTask.DismountMount(false, false, 100); } Usefuls.SelectGossipOption(GossipOptionsType.taxi); Thread.Sleep(Usefuls.Latency + 1500); while (Main._updateNodes) { Logging.Write("[tbcFlightMaster]: Taxi node update in progress, waiting..."); Thread.Sleep(10000); } int num = Lua.LuaDoString <int>("for i=0,30 do if string.find(TaxiNodeName(i),\'" + to.name.Replace("'", "\\'") + "\') then return i end end", ""); Lua.LuaDoString("TakeTaxiNode(" + num + ")", false); Logging.Write("[tbcFlightMaster]: Taking Taxi from " + from.name + " to " + to.name); Thread.Sleep(Usefuls.Latency + 500); Keyboard.DownKey(Memory.WowMemory.Memory.WindowHandle, Keys.Escape); Thread.Sleep(Usefuls.Latency + 2500); if (!ObjectManager.Me.IsOnTaxi) { GoToTask.ToPositionAndIntecractWithNpc(from.position, from.NPCId, -1, false, (object context) => Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause && !Conditions.IsAttackedAndCannotIgnore, false); } } if (ObjectManager.Me.IsOnTaxi) { Main.waitFlying(to.name); } } } }
public static void flightMasterSaveChanges(FlightMasterDB needToChange, bool value) { if (needToChange.name.Contains("Arathi")) { CurrentSettings.ArathiHighlands = value; } if (needToChange.name.Contains("Wetlands")) { CurrentSettings.Wetlands = value; } if (needToChange.name.Contains("Chillwind")) { CurrentSettings.WesternPlaguelands = value; } if (needToChange.name.Contains("Chapel")) { CurrentSettings.EasternPlaguelands = value; } if (needToChange.name.Contains("Hillsbrad")) { CurrentSettings.HillsbradFoothills = value; } if (needToChange.name.Contains("Hinterlands")) { CurrentSettings.TheHinterlands = value; } if (needToChange.name.Contains("Thelsamar")) { CurrentSettings.LochModan = value; } if (needToChange.name.Contains("Ironforge")) { CurrentSettings.Ironforge = value; } if (needToChange.name.Contains("Searing")) { CurrentSettings.SearingGorge = value; } if (needToChange.name.Contains("Steppes")) { CurrentSettings.BurningSteppes = value; } if (needToChange.name.Contains("Redridge")) { CurrentSettings.RedridgeMountains = value; } if (needToChange.name.Contains("Stormwind")) { CurrentSettings.Stormwind = value; } if (needToChange.name.Contains("Westfall")) { CurrentSettings.Westfall = value; } if (needToChange.name.Contains("Duskwood")) { CurrentSettings.Duskwood = value; } if (needToChange.name.Contains("Stranglethorn")) { CurrentSettings.StranglethornValley = value; } if (needToChange.name.Contains("Blasted")) { CurrentSettings.BlastedLands = value; } if (needToChange.name.Contains("Teldrassil")) { CurrentSettings.Teldrassil = value; } if (needToChange.name.Contains("Darkshore")) { CurrentSettings.Darkshore = value; } if (needToChange.name.Contains("Winterspring")) { CurrentSettings.Winterspring = value; } if (needToChange.name.Contains("Azshara")) { CurrentSettings.Azshara = value; } if (needToChange.name.Contains("Ashenvale")) { CurrentSettings.Ashenvale = value; } if (needToChange.name.Contains("Stonetalon")) { CurrentSettings.StonetalonMountains = value; } if (needToChange.name.Contains("Desolace")) { CurrentSettings.Desolace = value; } if (needToChange.name.Contains("Tanaris")) { CurrentSettings.Tanaris = value; } if (needToChange.name.Contains("Barrens")) { CurrentSettings.TheBarrens = value; } if (needToChange.name.Contains("Feathermoon")) { CurrentSettings.FeralasFeathermoon = value; } if (needToChange.name.Contains("Thalanaar")) { CurrentSettings.FeralasThalanaar = value; } if (needToChange.name.Contains("Crater")) { CurrentSettings.UngoroCrater = value; } if (needToChange.name.Contains("Dustwallow")) { CurrentSettings.DustwallowMarsh = value; } if (needToChange.name.Contains("Silithus")) { CurrentSettings.Silithus = value; } if (needToChange.name.Contains("Felwood")) { CurrentSettings.Felwood = value; } FNVFlightMasterSettings.CurrentSettings.Save(); Thread.Sleep(2500); try { FNVFlightMasterSettings.CurrentSettings = Load <FNVFlightMasterSettings>(AdviserFilePathAndName("VanillaFlightMaster_DB", ObjectManager.Me.Name + "." + Usefuls.RealmName)); } catch (Exception e) { Logging.Write("[VanillaFlightMaster]: Error when trying to reload DB file -> " + e); } Logging.Write("[VanillaFlightMaster]: Settings saved of Flight Master " + needToChange.name); return; }
public static List <FlightMasterDB> fillDB() { //True = Kalimdor ; False = Eastern Kingdoms List <FlightMasterDB> FMListe = new List <FlightMasterDB>(); FlightMasterDB Stormwind = new FlightMasterDB("Stormwind", 352, new Vector3(-8835.76f, 490.084f, 109.6157f), false, FNVFlightMasterSettings.CurrentSettings.Stormwind); FMListe.Add(Stormwind); FlightMasterDB ArathiHighlands = new FlightMasterDB("Arathi", 2835, new Vector3(-1240.03f, -2513.96f, 21.92969f), false, FNVFlightMasterSettings.CurrentSettings.ArathiHighlands); FMListe.Add(ArathiHighlands); FlightMasterDB Ashenvale = new FlightMasterDB("Ashenvale", 4267, new Vector3(2828.4f, -284.3f, 106.7f), true, FNVFlightMasterSettings.CurrentSettings.Ashenvale); FMListe.Add(Ashenvale); FlightMasterDB Darkshore = new FlightMasterDB("Darkshore", 3841, new Vector3(6343.2f, 561.651f, 15.79876f), true, FNVFlightMasterSettings.CurrentSettings.Darkshore); FMListe.Add(Darkshore); FlightMasterDB Stranglethorn = new FlightMasterDB("Stranglethorn", 2859, new Vector3(-14477.9f, 464.101f, 36.38163f), false, FNVFlightMasterSettings.CurrentSettings.StranglethornValley); FMListe.Add(Stranglethorn); FlightMasterDB Duskwood = new FlightMasterDB("Duskwood", 2409, new Vector3(-10513.8f, -1258.79f, 41.43174f), false, FNVFlightMasterSettings.CurrentSettings.Duskwood); FMListe.Add(Duskwood); FlightMasterDB FeralasFeathermoon = new FlightMasterDB("Feathermoon", 8019, new Vector3(-4370.5f, 3340f, 12f), true, FNVFlightMasterSettings.CurrentSettings.FeralasFeathermoon); FMListe.Add(FeralasFeathermoon); FlightMasterDB FeralasThalanaar = new FlightMasterDB("Thalanaar", 4319, new Vector3(-4491f, -781f, -40f), true, FNVFlightMasterSettings.CurrentSettings.FeralasThalanaar); FMListe.Add(FeralasThalanaar); FlightMasterDB Tanaris = new FlightMasterDB("Tanaris", 7823, new Vector3(-7224.9f, -3738.2f, 8.4f), true, FNVFlightMasterSettings.CurrentSettings.Tanaris); FMListe.Add(Tanaris); FlightMasterDB Hinterlands = new FlightMasterDB("Hinterlands", 8018, new Vector3(282.1f, -2001.3f, 194.1f), false, FNVFlightMasterSettings.CurrentSettings.TheHinterlands); FMListe.Add(Hinterlands); FlightMasterDB Ironforge = new FlightMasterDB("Ironforge", 1573, new Vector3(-4821.13f, -1152.4f, 502.2116f), false, FNVFlightMasterSettings.CurrentSettings.Ironforge); FMListe.Add(Ironforge); FlightMasterDB Menethil = new FlightMasterDB("Wetlands", 1571, new Vector3(-3793.2f, -782.052f, 9.014864f), false, FNVFlightMasterSettings.CurrentSettings.Wetlands); FMListe.Add(Menethil); FlightMasterDB TheBarrens = new FlightMasterDB("Barrens", 16227, new Vector3(-898.246f, -3769.65f, 11.71021f), true, FNVFlightMasterSettings.CurrentSettings.TheBarrens); FMListe.Add(TheBarrens); FlightMasterDB Redridge = new FlightMasterDB("Redridge", 931, new Vector3(-9435.8f, -2234.79f, 69.43174f), false, FNVFlightMasterSettings.CurrentSettings.RedridgeMountains); FMListe.Add(Redridge); FlightMasterDB Teldrassil = new FlightMasterDB("Teldrassil", 3838, new Vector3(8640.58f, 841.118f, 23.26363f), true, FNVFlightMasterSettings.CurrentSettings.Teldrassil); FMListe.Add(Teldrassil); FlightMasterDB Southshore = new FlightMasterDB("Hillsbrad", 2432, new Vector3(-715.146f, -512.134f, 26.54455f), false, FNVFlightMasterSettings.CurrentSettings.HillsbradFoothills); FMListe.Add(Southshore); FlightMasterDB Stonetalon = new FlightMasterDB("Stonetalon", 4407, new Vector3(2682.83f, 1466.45f, 233.6483f), true, FNVFlightMasterSettings.CurrentSettings.StonetalonMountains); FMListe.Add(Stonetalon); FlightMasterDB Thelsamar = new FlightMasterDB("Thelsamar", 1572, new Vector3(-5424.85f, -2929.87f, 347.5623f), false, FNVFlightMasterSettings.CurrentSettings.LochModan); FMListe.Add(Thelsamar); FlightMasterDB Theramore = new FlightMasterDB("Dustwallow", 4321, new Vector3(-3828.88f, -4517.51f, 10.66067f), true, FNVFlightMasterSettings.CurrentSettings.DustwallowMarsh); FMListe.Add(Theramore); FlightMasterDB WesternP = new FlightMasterDB("Chillwind", 12596, new Vector3(928.3f, -1429.1f, 64.8f), false, FNVFlightMasterSettings.CurrentSettings.WesternPlaguelands); FMListe.Add(WesternP); FlightMasterDB Westfall = new FlightMasterDB("Westfall", 523, new Vector3(-10628.8f, 1037.79f, 34.43174f), false, FNVFlightMasterSettings.CurrentSettings.Westfall); FMListe.Add(Westfall); FlightMasterDB EasternP = new FlightMasterDB("Chapel", 12617, new Vector3(2269.9f, -5345.4f, 86.9f), false, FNVFlightMasterSettings.CurrentSettings.EasternPlaguelands); FMListe.Add(EasternP); FlightMasterDB SearingGorge = new FlightMasterDB("Searing", 2941, new Vector3(-6559.1f, -1169.4f, 309.8f), false, FNVFlightMasterSettings.CurrentSettings.SearingGorge); FMListe.Add(SearingGorge); FlightMasterDB BurningSteppes = new FlightMasterDB("Steppes", 2299, new Vector3(-8365.1f, -2758.5f, 185.6f), false, FNVFlightMasterSettings.CurrentSettings.BurningSteppes); FMListe.Add(BurningSteppes); FlightMasterDB BlastedLands = new FlightMasterDB("Blasted", 8609, new Vector3(-11110.2f, -3437.1f, 79.2f), false, FNVFlightMasterSettings.CurrentSettings.BlastedLands); FMListe.Add(BlastedLands); FlightMasterDB Azshara = new FlightMasterDB("Azshara", 12577, new Vector3(2718.2f, -3880.8f, 101.4f), true, FNVFlightMasterSettings.CurrentSettings.Azshara); FMListe.Add(Azshara); FlightMasterDB Felwood = new FlightMasterDB("Felwood", 12578, new Vector3(6204.2f, -1951.4f, 571.3f), true, FNVFlightMasterSettings.CurrentSettings.Felwood); FMListe.Add(Felwood); FlightMasterDB Winterspring = new FlightMasterDB("Winterspring", 11138, new Vector3(6800.5f, -4742.4f, 701.5f), true, FNVFlightMasterSettings.CurrentSettings.Winterspring); FMListe.Add(Winterspring); FlightMasterDB UngoroCreater = new FlightMasterDB("Crater", 10583, new Vector3(-6110.5f, -1140.4f, -186.9f), true, FNVFlightMasterSettings.CurrentSettings.UngoroCrater); FMListe.Add(UngoroCreater); FlightMasterDB Silithus = new FlightMasterDB("Silithus", 15177, new Vector3(-6758.6f, 775.6f, 89f), true, FNVFlightMasterSettings.CurrentSettings.Silithus); FMListe.Add(Silithus); FlightMasterDB Desolace = new FlightMasterDB("Desolace", 6706, new Vector3(136f, 1326f, 193f), true, FNVFlightMasterSettings.CurrentSettings.Desolace); FMListe.Add(Desolace); return(FMListe); }
private static void MovementEventsOnOnMovementPulse(List <Vector3> points, CancelEventArgs cancelable) { statusDiscover = Logging.Status; if (_taxiToDiscover && !discoverTaxiNode.Equals((FlightMasterDB)null) && !_discoverInProessing && !_updateNodes && !statusDiscover.Contains("Boat") && !statusDiscover.Contains("Ship")) { _discoverInProessing = true; Thread.Sleep(Usefuls.Latency + 500); cancelable.Cancel = true; checkPathActive = true; checkPathActiveFM = discoverTaxiNode; discoverTaxi(discoverTaxiNode); Thread.Sleep(Usefuls.Latency * 3); cancelable.Cancel = false; checkPathActive = false; } if (changer && !_updateNodes && !inProcessing && ObjectManager.Me.IsAlive) { changer = false; if (!_taxiToDiscover && !_timer && !_takenTaxi && ObjectManager.Me.Position.DistanceTo(points.Last <Vector3>()) > FNVFlightMasterSettings.CurrentSettings.taxiTriggerDistance) { status = Logging.Status; if (FNVFlightMasterSettings.CurrentSettings.skipIfFollowPath && status.Contains("Follow Path") && !status.Contains("Resurrect") && calculateRealDistance(ObjectManager.Me.Position, points.Last <Vector3>()) < FNVFlightMasterSettings.CurrentSettings.skipIfFollowPathDistance) { Logging.Write("[VanillaFlightMaster]: Currently following path or distance to start (" + calculateRealDistance(ObjectManager.Me.Position, points.Last <Vector3>()) + " yards) is smaller than setting value (" + FNVFlightMasterSettings.CurrentSettings.skipIfFollowPathDistance + " yards)"); Thread.Sleep(1000); cancelable.Cancel = false; inProcessing = false; checkPathActive = true; changer = true; _timer = true; return; } destinationVector = points.Last <Vector3>(); saveDistance = calculateRealDistance(ObjectManager.Me.Position, points.Last <Vector3>()); Thread.Sleep(Usefuls.Latency + 500); cancelable.Cancel = true; if (!inProcessing) { from = getClosestFlightMasterFrom(); to = getClosestFlightMasterTo(); } Thread.Sleep(1000); if (!from.name.Contains(to.name) && !to.name.Contains("null") && !to.name.Contains("FlightMaster") && !from.name.Contains("null") && !from.Equals(to) && calculateRealDistance(ObjectManager.Me.Position, from.position) + calculateRealDistance(to.position, destinationVector) + FNVFlightMasterSettings.CurrentSettings.shorterMinDistance <= saveDistance) { Logging.Write("[VanillaFlightMaster]: Shorter path detected, taking Taxi from " + from.name + " to " + to.name); inProcessing = true; checkPathActive = true; checkPathActiveFM = from; takeTaxi(from, to); Thread.Sleep(1000); cancelable.Cancel = false; inProcessing = false; checkPathActive = true; } else { Logging.Write("[VanillaFlightMaster]: No shorter path available, skip flying"); cancelable.Cancel = false; _timer = true; inProcessing = false; } } changer = true; } }
// Token: 0x06000026 RID: 38 RVA: 0x00003DE8 File Offset: 0x00001FE8 public static void flightMasterSaveChanges(FlightMasterDB needToChange, bool value) { if (needToChange.name.Contains("Base")) { FNVFlightMasterSettings.CurrentSettings.StranglethornGromgol = value; } if (needToChange.name.Contains("Booty")) { FNVFlightMasterSettings.CurrentSettings.StranglethornBootyBay = value; } if (needToChange.name.Contains("Silverpine")) { FNVFlightMasterSettings.CurrentSettings.SilverpineForest = value; } if (needToChange.name.Contains("Hillsbrad")) { FNVFlightMasterSettings.CurrentSettings.HillsbradFoothills = value; } if (needToChange.name.Contains("Arathi")) { FNVFlightMasterSettings.CurrentSettings.ArathiHighlands = value; } if (needToChange.name.Contains("Badlands")) { FNVFlightMasterSettings.CurrentSettings.Badlands = value; } if (needToChange.name.Contains("Mulgore")) { FNVFlightMasterSettings.CurrentSettings.Mulgore = value; } if (needToChange.name.Contains("Searing")) { FNVFlightMasterSettings.CurrentSettings.SearingGorge = value; } if (needToChange.name.Contains("Orgrimmar")) { FNVFlightMasterSettings.CurrentSettings.Orgrimmar = value; } if (needToChange.name.Contains("Crossroads")) { FNVFlightMasterSettings.CurrentSettings.BarrensCrossroads = value; } if (needToChange.name.Contains("Ratchet")) { FNVFlightMasterSettings.CurrentSettings.BarrensRatchet = value; } if (needToChange.name.Contains("Taurajo")) { FNVFlightMasterSettings.CurrentSettings.BarrensTaurajo = value; } if (needToChange.name.Contains("Retreat")) { FNVFlightMasterSettings.CurrentSettings.StonetalonSunRockRetreat = value; } if (needToChange.name.Contains("Hinterlands")) { FNVFlightMasterSettings.CurrentSettings.TheHinterlands = value; } if (needToChange.name.Contains("Thousand")) { FNVFlightMasterSettings.CurrentSettings.ThousandNeedles = value; } if (needToChange.name.Contains("Undercity")) { FNVFlightMasterSettings.CurrentSettings.Undercity = value; } if (needToChange.name.Contains("Swamp")) { FNVFlightMasterSettings.CurrentSettings.SwampofSorrows = value; } if (needToChange.name.Contains("Desolace")) { FNVFlightMasterSettings.CurrentSettings.Desolace = value; } if (needToChange.name.Contains("Tanaris")) { FNVFlightMasterSettings.CurrentSettings.Tanaris = value; } if (needToChange.name.Contains("Feralas")) { FNVFlightMasterSettings.CurrentSettings.Feralas = value; } if (needToChange.name.Contains("Azshara")) { FNVFlightMasterSettings.CurrentSettings.Azshara = value; } if (needToChange.name.Contains("Winterspring")) { FNVFlightMasterSettings.CurrentSettings.Winterspring = value; } if (needToChange.name.Contains("Dustwallow")) { FNVFlightMasterSettings.CurrentSettings.DustwallowMarsh = value; } if (needToChange.name.Contains("Felwood")) { FNVFlightMasterSettings.CurrentSettings.Felwood = value; } if (needToChange.name.Contains("Outpost")) { FNVFlightMasterSettings.CurrentSettings.AshenvaleZoramgar = value; } if (needToChange.name.Contains("Splintertree")) { FNVFlightMasterSettings.CurrentSettings.AshenvaleSplintertree = value; } if (needToChange.name.Contains("Moonglade")) { FNVFlightMasterSettings.CurrentSettings.Moonglade = value; } if (needToChange.name.Contains("Burning")) { FNVFlightMasterSettings.CurrentSettings.BurningSteppes = value; } if (needToChange.name.Contains("Silithus")) { FNVFlightMasterSettings.CurrentSettings.Silithus = value; } if (needToChange.name.Contains("Crater")) { FNVFlightMasterSettings.CurrentSettings.UngoroCrater = value; } if (needToChange.name.Contains("Thrallmar")) { FNVFlightMasterSettings.CurrentSettings.Thrallmar = value; } if (needToChange.name.Contains("Falcon")) { FNVFlightMasterSettings.CurrentSettings.FalconWatch = value; } if (needToChange.name.Contains("Zabra'jin")) { FNVFlightMasterSettings.CurrentSettings.Zabrajin = value; } if (needToChange.name.Contains("Garadar")) { FNVFlightMasterSettings.CurrentSettings.Garadar = value; } if (needToChange.name.Contains("Area")) { FNVFlightMasterSettings.CurrentSettings.Area52 = value; } if (needToChange.name.Contains("Shadowmoon")) { FNVFlightMasterSettings.CurrentSettings.ShadowmoonVillage = value; } if (needToChange.name.Contains("Stonebreaker")) { FNVFlightMasterSettings.CurrentSettings.StonebreakerHold = value; } if (needToChange.name.Contains("Thunderlord")) { FNVFlightMasterSettings.CurrentSettings.ThunderlordStronghold = value; } if (needToChange.name.Contains("Shattrath")) { FNVFlightMasterSettings.CurrentSettings.Shattrath = value; } if (needToChange.name.Contains("Stormspire")) { FNVFlightMasterSettings.CurrentSettings.TheStormspire = value; } if (needToChange.name.Contains("Altar")) { FNVFlightMasterSettings.CurrentSettings.AltarofShatar = value; } if (needToChange.name.Contains("Cosmowrench")) { FNVFlightMasterSettings.CurrentSettings.Cosmowrench = value; } if (needToChange.name.Contains("Sanctum")) { FNVFlightMasterSettings.CurrentSettings.SanctumOfTheStars = value; } if (needToChange.name.Contains("Spinebreaker")) { FNVFlightMasterSettings.CurrentSettings.SpinebreakerPost = value; } if (needToChange.name.Contains("Mok'Nathal")) { FNVFlightMasterSettings.CurrentSettings.MokNathalVillage = value; } if (needToChange.name.Contains("Evergrove")) { FNVFlightMasterSettings.CurrentSettings.Evergrove = value; } if (needToChange.name.Contains("Swamprat")) { FNVFlightMasterSettings.CurrentSettings.SwampratPost = value; } if (needToChange.name.Contains("Portal")) { FNVFlightMasterSettings.CurrentSettings.TheDarkPortal = value; } FNVFlightMasterSettings.CurrentSettings.Save(); Thread.Sleep(2500); try { FNVFlightMasterSettings.CurrentSettings = Settings.Load <FNVFlightMasterSettings>(Settings.AdviserFilePathAndName("tbcFlightMaster_DB", ObjectManager.Me.Name + "." + Usefuls.RealmName)); } catch (Exception arg) { Logging.Write("[tbcFlightMaster]: Error when trying to reload DB file -> " + arg); } Logging.Write("[tbcFlightMaster]: Settings saved of Flight Master " + needToChange.name); }