Jump to content

bael666

Members
  • Posts

    41
  • Joined

  • Last visited

Everything posted by bael666

  1. Noted, thanks for tip - guessing just doing this covers it? Lua.LuaDoString("if not ScanTooltip then ScanTooltip = CreateFrame('GameTooltip', 'ScanTooltip', nil, 'GameTooltipTemplate'); end"); Lua.LuaDoString("ScanTooltip:SetOwner(UIParent, 'ANCHOR_NONE');"); Lua.LuaDoString("ScanTooltip:ClearLines();"); Lua.LuaDoString("ScanTooltip:SetHyperlink(\"" +itemLink+"\");"); I don't set it to nil and only create the frame if it doesn't already exist.
  2. I figured it out... I'm an idiot... Lua.LuaDoString("ScanTooltip:SetHyperlink('" +itemLink+"');"); Changed to this; Lua.LuaDoString("ScanTooltip:SetHyperlink(\"" +itemLink+"\");"); The items that were failing all contained an apostrophe...
  3. I've already read that and tried both solutions posted by @Matenia and @Nax but I'm still having the same issue.
  4. Thanks for that- it all goes a bit beyond my understanding at the moment as I'm probably where you were back in 2016 experimenting with stuff through trial and error! Maybe you could help with another problem I'm having. I'm trying to make a plugin that automatically equips better gear, it works fine for the most part, except for some reason I can't understand it just can't pull the stats for certain items and it's driving me crazy. Basically, I create a tooltip from an itemlink then iterate over the lines, the problem I'm having is that sometimes the tooltip just seems to fail to get created. Lua.LuaDoString("if not ScanTooltip then ScanTooltip = CreateFrame('GameTooltip', 'ScanTooltip', nil, 'GameTooltipTemplate'); end"); Lua.LuaDoString("ScanTooltip:SetOwner(UIParent, 'ANCHOR_NONE');"); Lua.LuaDoString("ScanTooltip:ClearLines();"); Lua.LuaDoString("ScanTooltip:SetHyperlink('" +itemLink+"');"); string[] tooltipLines = Lua.LuaDoString<string[]>("local StatsTable = {} for i = 1, ScanTooltip:NumLines() do local text=_G[\"ScanTooltipTextLeft\"..i]:GetText() table.insert(StatsTable, text) end return unpack(StatsTable);"); // DEBUG STUFF Logging.Write("Item Link: " + itemLink); Logging.Write("Number of Lines:" + Lua.LuaDoString<int>("return ScanTooltip:NumLines()")); Lua.RunMacroText("/script print(\"Item: " + itemLink + "\")"); The top part of the code segment is how I create and then scan the tooltips, below is the result of the 3 debug lines in the WRobot log and WoW chat window; 19:32:21 - [InventoryManager] Started. 19:32:23 - Item Link: |cff1eff00|Hitem:15512:0:0:0:0:0:1097:0|h[Grunt's Shield of the Boar]|h|r 19:32:23 - Number of Lines:0 19:32:23 - [InventoryManager] item "Grunt's Shield" id 15512 reports no stats - blacklisted 19:32:23 - Item Link: |cff1eff00|Hitem:14569:0:0:0:0:0:0:0|h[Bristlebark Bindings]|h|r 19:32:23 - Number of Lines:7 19:32:25 - [InventoryManager] equipping "Bristlebark Bindings" id 14569 value 480 19:32:26 - Item Link: |cff1eff00|Hitem:4697:0:0:0:0:0:0:0|h[Burnished Girdle]|h|r 19:32:26 - Number of Lines:7 19:32:28 - [InventoryManager] [InventoryManager] cannot equip item "Burnished Girdle" id 4697 - blacklisted In example above the tooltip seems to fail to create for Grunt's shield, but in game the itemlink appears to be fine; Any ideas what I could be doing wrong? EDIT: I should point out that the above example makes it look like an issue specifically with items that have a suffix, however, it does work for some items with suffixes and it doesn't work for some items without them. I can't help but feel like I'm missing something really simple.
  5. That's exactly what I'm doing! I got sick of the bot trying to mission to NPCs way out of its level range and getting stuck on a never ending death loop. So I don't let it know about any NPCs, I clear the NPC DB on every to town state and explicitly tell it which NPCs to use based on level and zone. Sample below; private void MulgoreRedCloud() { if (IsZoneLevel("Mulgore", 0, 6)) { SetFoodDrink("Tough Hunk of Bread", "Refreshing Spring Water", 16, 36); AddVendor("Kawnie Softbreeze", 3072, -2893.72, -279.332, 53.91661); AddDruidTrainer("Gart Mistrunner", 3060, -2873.57, -268.591, -53.91648); } } private void MulgoreBloodhoof() { if (IsZoneLevel("Mulgore", 7, 12)) { SellFoodDrink("Tough Hunk of Bread", "Refreshing Spring Water"); SetFoodDrink("Freshly Baked Bread", "Ice Cold Milk"); AddRepair("Kennah Hawkseye", 3078, -2275.53, -289.265, -9.42487); AddVendor("Jhawna Oatwind", 3884, -2378.96, -399.268, -3.889035); AddMailbox("Mailbox", 143984, -2338.21, -367.143, -8.52861); AddDruidTrainer("Gennia Runetotem", 3064, -2315.75, -442.634, -5.438329); } } private void BarrensCrossroads() { if (IsZoneLevel("The Barrens", 10, 19)) { SellFoodDrink("Freshly Baked Bread"); SetFoodDrink("Tel'Abim Banana", "Ice Cold Milk"); AddRepair("Nargal Deatheye", 3479, -356.996, -2568.86, 95.78785); AddVendor("Innkeeper Boorand Plainswind", 3934, -407.123, -2645.22, 96.22299); AddMailbox("Mailbox", 143982, -443.692, -2649.08, 95.7738); TrainInMoonglade(); } } It takes a little longer to setup, but I've built the definitions around a questing profile I setup that takes me all the way to 60, combined with this I've had a bot get to 60 with only one death and minimal intervention - working on improving /played time and fixing some pathing issues now (there's areas the bot always gets stuck, but I've seen a code snippet where I can override path selection within a range of a vector).
  6. Readability is my preference, my plugin currently manages over 150 NPCs, adding them/quickly seeing what the code is doing is far easier in my version; AddRepair("Kennah Hawkseye", 3078, -2275.53, -289.265, -9.42487); AddVendor("Jhawna Oatwind", 3884, -2378.96, -399.268, -3.889035); AddMailbox("Mailbox", 143984, -2338.21, -367.143, -8.52861); AddDruidTrainer("Gennia Runetotem", 3064, -2315.75, -442.634, -5.438329); vs Npc npc = new Npc { Type = NpcType.Vendor, Name = "Kennah Hawkseye", Entry = 3078, Position = new Vector3(-2275.53, -289.265, -9.42487), ContinentId = wManager.Wow.Enums.ContinentId.Kalimdor, Faction = Npc.FactionType.Neutral, CanFlyTo = true }; NpcDB.AddNpc(npc, false, true); npc = new Npc { Type = NpcType.Repair, Name = "Jhawna Oatwind", Entry = 3884, Position = new Vector3(-2378.96, -399.268, -3.889035), ContinentId = wManager.Wow.Enums.ContinentId.Kalimdor, Faction = Npc.FactionType.Neutral, CanFlyTo = true }; NpcDB.AddNpc(npc, false, true); npc = new Npc { Type = NpcType.Mailbox, Name = "Mailbox", Entry = 143984, Position = new Vector3(-2338.21, -367.143, -8.52861), ContinentId = wManager.Wow.Enums.ContinentId.Kalimdor, Faction = Npc.FactionType.Neutral, CanFlyTo = true }; NpcDB.AddNpc(npc, false, true); npc = new Npc { Type = NpcType.DruidTrainer, Name = "Gennia Runetotem", Entry = 3064, Position = new Vector3(-2315.75, -442.634, -5.438329), ContinentId = wManager.Wow.Enums.ContinentId.Kalimdor, Faction = Npc.FactionType.Neutral, CanFlyTo = true }; NpcDB.AddNpc(npc, false, true); I also noticed you changed the "save" bool to store in the NpcDb to true, it's intentionally set to false.
  7. I'll look at implementing some of the cleaner methods, but some of them would lead to a lot of duplicated code in the full plugin. Primarily the removal of AddNpc() as a lot more than just the moonglade trainer are managed by it. Thanks.
  8. In case anyone comes across this, I managed to achieve what I was looking to do using the below code; private void TrainingEvents() { robotManager.Events.FiniteStateMachineEvents.OnBeforeCheckIfNeedToRunState += (engine, state, cancelable) => { var currentLevel = wManager.Wow.ObjectManager.ObjectManager.Me.Level; if (state.GetType() == typeof(Trainers)) { if (!wManager.wManagerSetting.CurrentSetting.TrainNewSkills || currentLevel%2 != 0 || (trainInMoonglade && !CanTravelToMoonglade())) { cancelable.Cancel = true; } } }; robotManager.Events.FiniteStateMachineEvents.OnRunState += (engine, state, cancelable) => { if (state.GetType() == typeof(Trainers) && wManager.Wow.Helpers.Usefuls.MapZoneName != "Moonglade" && trainInMoonglade && CanTravelToMoonglade()) { Lua.RunMacroText("/cast Teleport: Moonglade"); wManager.Wow.Helpers.Usefuls.WaitIsCasting(); Thread.Sleep(5000); if(wManager.Wow.Helpers.Usefuls.MapZoneName != "Moonglade") { cancelable.Cancel = true; } } }; robotManager.Events.FiniteStateMachineEvents.OnAfterRunState += (engine, state) => { if (state.GetType() == typeof(Trainers)) { if (wManager.Wow.Helpers.Usefuls.MapZoneName == "Moonglade" && CanTravelToMoonglade()) { wManager.Wow.Helpers.ItemsManager.UseItem(6948); wManager.Wow.Helpers.Usefuls.WaitIsCasting(); Thread.Sleep(5000); wManager.Wow.Bot.States.ToTown.ForceToTown = true; } } }; } private void AddDruidTrainer(string Name, int Id, double x, double y, double z) { AddNpc(Name, Id, x, y, z, wManager.Wow.Class.Npc.NpcType.DruidTrainer); wManager.wManagerSetting.CurrentSetting.TrainNewSkills = true; } private void TrainInMoonglade() { AddDruidTrainer("Loganaar", 12042, 7867.13, -2593.73, 486.8367); trainInMoonglade = true; } private bool CanTravelToMoonglade() { return wManager.Wow.Helpers.SpellManager.KnowSpell(18960) && Lua.LuaDoString<bool>("return GetItemCooldown(6948)==0"); } private void AddNpc(string Name, int Id, double x, double y, double z, wManager.Wow.Class.Npc.NpcType Type) { robotManager.Helpful.Vector3 pos = new robotManager.Helpful.Vector3(x, y, z); wManager.Wow.Class.Npc npc = new wManager.Wow.Class.Npc { Type = Type, Name = Name, Entry = Id, Position = pos, ContinentId = wManager.Wow.Enums.ContinentId.Kalimdor, Faction = wManager.Wow.Class.Npc.FactionType.Neutral, CanFlyTo = true }; wManager.Wow.Helpers.NpcDB.AddNpc(npc, false, true); } The plugin I'm working on does a lot more stuff so there may be methods in the snippet above that seem redundant but they're used for wider purposes in the overall plugin. I reworked what I originally planned to do slightly as there isn't a mailbox in Moonglade, so the bot will teleport to Moonglade to train, then HS, then run ToTown on return. I'd imagine this could be expanded to mages to TP to Org etc too - I'll probably also look at adding some checks to HS if in Moonglade on non-Trainer events too (in case the bot crashes/closes there and then the bot doesn't know how to get back other than running...) Next up is to figure out how to make it only learn skills I want instead of all of them if anyone knows where I should start there?
  9. I'd like to force my Druid bot to use Teleport: Moonglade, restock/repair and train skills there and then use HS when all of those activities have been done. If possible, I'd also like to disable the ToTown state if HS is on cooldown. Is this possible?
  10. Any chance we could get the source code? I'd like to implement some additional features using the work you've done as a base rather than starting from scratch. Cheers.
    Why does this use stealth and why don't we have an option to turn it off? It's so unnecessarily slow...
  11. Pretty sure the name is Bright Bauble not Bright Baubles. Try that.
  12. I wrote a working TBC hunter profile that I used from 10 to 70 last year, unfortunately I lost all of my fightclasses and grinding profiles when my HDD died so I don't have a copy of it in it's finished form. :( There is a version of it on the forums before it was finished where I was asking how I could get it to walk backwards (which I managed to do). Maybe you can use this as a starting point and figure out how I got it to walk backwards. :) If I remember correctly the profile even had logic to allow the pet to use as much focus as possible on damage, instead of using 15 focus every 5 seconds to taunt/growl it would only growl if the pet lost aggro. Pretty sure I also built in some freezing-trap logic for multi-mob fights too. How much of that stuff will be in the version posted here I don't know, though. Edit: This won't work in Vanilla in it's current form as a few of the commands used didn't exist in Vanilla (/petattack & /startattack etc) but it should be possible to amend those to work in Vanilla (eg by using "/script PetAttack()" etc).
  13. This fixed it, though in the time I spent trying to get this fixed I instead bought a subscription to Zzukbot. I may give WRobot another try once my subscription ends. Thanks.
  14. I managed to troubleshoot the bot performing steps provided in other posts and I can now start products and have removed the error: [E] 21:02:27 - gdgfdgfd: Compilator Error : error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f However when wrobot is connected to my WoW client rhe game freezes every 30~ seconds and it seems to be reloading the ui every time it does that. Thanks.
  15. Hi, Trying to use the bot with a Vanilla private server and getting an error and unable to start any products. below is my log files: [D] 21:02:15 - [Info] Log file created: 10 Jun 2017 21H02.log.html[D] 21:02:15 - [Info] WRobot Version: 1.7.2 (22090) for wow: 1.12.1_5875[D] 21:02:15 - [Info] Offical website: https://wrobot.eu/[D] 21:02:15 - [Info] Operating System Details: Microsoft Windows NT 6.2.9200.0[D] 21:02:15 - [Info] Lang: English (United Kingdom)[D] 21:02:15 - -nodx arg activated.[E] 21:02:27 - gdgfdgfd: Compilator Error : error CS0012: The type 'System.Attribute' is defined in an assembly that is not referenced. You must add a reference to assembly 'System.Runtime, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b03f5f7f11d50a3a'. 21:02:28 - [Memory] Select game process: 12220 - Mow...[D] 21:02:29 - [Blacklist] Added, 0 uniques Npcs, 0 Blackspots and 0 Npcs types (Training dummy ignored = True).21:02:29 - [Quester] Loaded[F] 21:02:29 - NewUserSettings = False ; LastProductSelected = Quester ; CustomClass = Warri_edit.xml ; SellQuickly = False ; OffMeshConnectionsSearchDistance = 1600 ; NpcScanRepair = True ; NpcScanAuctioneer = True ; NpcScanVendor = True ; NpcScanMailboxes = True ; SkipInOutDoors = False ; RandomJumping = True ; UseCTM = False ; MyMacro1 = wManager.wManagerSetting+MyMacro ; MyMacro2 = wManager.wManagerSetting+MyMacro ; MyMacro3 = wManager.wManagerSetting+MyMacro ; MyMacro4 = wManager.wManagerSetting+MyMacro ; PluginsSettings = System.Collections.Generic.List`1[wManager.wManagerSetting+PluginSetting] ; CurrentSetting = wManager.wManagerSetting ; AssignTalents = False ; TrainNewSkills = True ; CanAttackUnitsAlreadyInFight = False ; DontStartFighting = False ; UseSpiritHealer = False ; UseMount = False ; UseGroundMount = False ; GroundMountName = ; MountDistance = 80 ; IgnoreFightGoundMount = True ; FlyingMountName = ; UseFlyingMount = False ; AquaticMountName = ; FoodName = Wild Hog Shank ; FoodPercent = 45 ; DrinkName = ; DrinkPercent = 35 ; RestingMana = False ; FoodIsSpell = False ; DrinkIsSpell = False ; LootMobs = True ; DetectNodesStuck = True ; LootChests = False ; SkinMobs = True ; SkinNinja = True ; HarvestMinerals = False ; HarvestHerbs = False ; HarvestTimber = False ; HarvestAvoidPlayersRadius = 7 ; MaxUnitsNear = 3 ; SearchRadius = 300 ; HarvestDuringLongMove = False ; Smelting = False ; Prospecting = False ; ProspectingInTown = False ; ProspectingTime = 15 ; ProspectingList = System.Collections.Generic.List`1[System.String] ; Milling = False ; MillingInTown = False ; MillingTime = 15 ; MillingList = System.Collections.Generic.List`1[System.String] ; BlackListHarvest = System.Collections.Generic.List`1[System.Int32] ; BlackListHarvestByName = System.Collections.Generic.List`1[System.String] ; ListHarvest = System.Collections.Generic.List`1[System.Int32] ; ListHarvestByName = System.Collections.Generic.List`1[System.String] ; Relogger = True ; AccountEmail = ; AccountPassword = ; BNetName = ; FoodAmount = 60 ; DrinkAmount = 0 ; MinFreeBagSlotsToGoToTown = 3 ; UseMammoth = False ; ToTownTimer = 40 ; ToTownTimerActivated = False ; Repair = True ; Selling = True ; SellGray = True ; SellWhite = False ; SellGreen = False ; SellBlue = False ; SellPurple = False ; DoNotSellList = System.Collections.Generic.List`1[System.String] ; ForceSellList = System.Collections.Generic.List`1[System.String] ; UseMail = True ; UseMollE = False ; MailRecipient = bael ; MailSubject = Hey ; MailGray = False ; MailWhite = True ; MailGreen = True ; MailBlue = True ; MailPurple = True ; DoNotMailList = System.Collections.Generic.List`1[System.String] ; ForceMailList = System.Collections.Generic.List`1[System.String] ; CloseIfFullBag = False ; CloseIfReached4000HonorPoints = False ; CloseIfPlayerTeleported = True ; CloseAfterXLevel = 100 ; CloseIfWhisperBiggerOrEgalAt = 10 ; CloseAfterXBlockagesLatest10Minutes = 25 ; CloseAfterXMin = 2880 ; SecurityPauseBotIfNerbyPlayer = False ; SecurityRecordWhisperInLogFile = True ; SecuritySongIfNewWhisper = False ; UsePathsFinder = True ; NpcMailboxSearchRadius = 10000 ; HelpingGroupMembers = True ; AttackElite = False ; CloseAfterXBlockagesActive = True ; CloseAfterXDeathsActive = False ; CloseAfterXDeathsLatest10Minutes = 5 ; CloseAfterXMinActive = False ; AttackBeforeBeingAttacked = False ; SpellRotationSpeed = False ; IgnoreFightDuringFarmIfDruidForm = False ; WaitResurrectionSickness = False ; BlackListZoneWhereDead = False ; DisableNearPlayerToTown = False ; GoToTownHerbBags = False ; GoToTownMiningBags = False ; CalcuCombatRange = True ; UnlockMaxFps = False ; IgnoreCombatWithPet = False ; UseLuaToMove = False ; SecurityPauseBotIfNerbyPlayerRadius = 1000 ; SecurityPauseBotIfNerbyPlayerTime = 20 ; SecurityShutdownComputer = False ; LatencyMin = 150 ; LatencyMax = 500 ; AddToNpcDb = True ; BlackListTrainingDummy = True ; AvoidWallWithRays = True ; FlyAboveGroundHeight = 1.5 ; AvoidBlacklistedZonesPathFinder = True ; BlackListIfNotCompletePath = True ; WallDistancePathFinder = 0.5 ; PathFinderPostionOffset = 1.7 ; FlightMasterDiscoverRange = 150 ; FlightMasterTaxiDistance = 1000 ; FlightMasterTaxiUse = True ; FlightMasterTaxiUseOnlyIfNear = True ; [D] 21:02:29 - [Blacklist] Added, 0 uniques Npcs, 0 Blackspots and 0 Npcs types (Training dummy ignored = True).[F] 21:02:29 - NewUserSettings = False ; LastProductSelected = Quester ; CustomClass = Warri_edit.xml ; SellQuickly = False ; OffMeshConnectionsSearchDistance = 1600 ; NpcScanRepair = True ; NpcScanAuctioneer = True ; NpcScanVendor = True ; NpcScanMailboxes = True ; SkipInOutDoors = False ; RandomJumping = True ; UseCTM = False ; MyMacro1 = wManager.wManagerSetting+MyMacro ; MyMacro2 = wManager.wManagerSetting+MyMacro ; MyMacro3 = wManager.wManagerSetting+MyMacro ; MyMacro4 = wManager.wManagerSetting+MyMacro ; PluginsSettings = System.Collections.Generic.List`1[wManager.wManagerSetting+PluginSetting] ; CurrentSetting = wManager.wManagerSetting ; AssignTalents = False ; TrainNewSkills = True ; CanAttackUnitsAlreadyInFight = False ; DontStartFighting = False ; UseSpiritHealer = False ; UseMount = False ; UseGroundMount = False ; GroundMountName = ; MountDistance = 80 ; IgnoreFightGoundMount = True ; FlyingMountName = ; UseFlyingMount = False ; AquaticMountName = ; FoodName = Wild Hog Shank ; FoodPercent = 45 ; DrinkName = ; DrinkPercent = 35 ; RestingMana = False ; FoodIsSpell = False ; DrinkIsSpell = False ; LootMobs = True ; DetectNodesStuck = True ; LootChests = False ; SkinMobs = True ; SkinNinja = True ; HarvestMinerals = False ; HarvestHerbs = False ; HarvestTimber = False ; HarvestAvoidPlayersRadius = 7 ; MaxUnitsNear = 3 ; SearchRadius = 300 ; HarvestDuringLongMove = False ; Smelting = False ; Prospecting = False ; ProspectingInTown = False ; ProspectingTime = 15 ; ProspectingList = System.Collections.Generic.List`1[System.String] ; Milling = False ; MillingInTown = False ; MillingTime = 15 ; MillingList = System.Collections.Generic.List`1[System.String] ; BlackListHarvest = System.Collections.Generic.List`1[System.Int32] ; BlackListHarvestByName = System.Collections.Generic.List`1[System.String] ; ListHarvest = System.Collections.Generic.List`1[System.Int32] ; ListHarvestByName = System.Collections.Generic.List`1[System.String] ; Relogger = True ; AccountEmail = ; AccountPassword = ; BNetName = ; FoodAmount = 60 ; DrinkAmount = 0 ; MinFreeBagSlotsToGoToTown = 3 ; UseMammoth = False ; ToTownTimer = 40 ; ToTownTimerActivated = False ; Repair = True ; Selling = True ; SellGray = True ; SellWhite = False ; SellGreen = False ; SellBlue = False ; SellPurple = False ; DoNotSellList = System.Collections.Generic.List`1[System.String] ; ForceSellList = System.Collections.Generic.List`1[System.String] ; UseMail = True ; UseMollE = False ; MailRecipient = bael ; MailSubject = Hey ; MailGray = False ; MailWhite = True ; MailGreen = True ; MailBlue = True ; MailPurple = True ; DoNotMailList = System.Collections.Generic.List`1[System.String] ; ForceMailList = System.Collections.Generic.List`1[System.String] ; CloseIfFullBag = False ; CloseIfReached4000HonorPoints = False ; CloseIfPlayerTeleported = True ; CloseAfterXLevel = 100 ; CloseIfWhisperBiggerOrEgalAt = 10 ; CloseAfterXBlockagesLatest10Minutes = 25 ; CloseAfterXMin = 2880 ; SecurityPauseBotIfNerbyPlayer = False ; SecurityRecordWhisperInLogFile = True ; SecuritySongIfNewWhisper = False ; UsePathsFinder = True ; NpcMailboxSearchRadius = 10000 ; HelpingGroupMembers = True ; AttackElite = False ; CloseAfterXBlockagesActive = True ; CloseAfterXDeathsActive = False ; CloseAfterXDeathsLatest10Minutes = 5 ; CloseAfterXMinActive = False ; AttackBeforeBeingAttacked = False ; SpellRotationSpeed = False ; IgnoreFightDuringFarmIfDruidForm = False ; WaitResurrectionSickness = False ; BlackListZoneWhereDead = False ; DisableNearPlayerToTown = False ; GoToTownHerbBags = False ; GoToTownMiningBags = False ; CalcuCombatRange = True ; UnlockMaxFps = False ; IgnoreCombatWithPet = False ; UseLuaToMove = False ; SecurityPauseBotIfNerbyPlayerRadius = 1000 ; SecurityPauseBotIfNerbyPlayerTime = 20 ; SecurityShutdownComputer = False ; LatencyMin = 150 ; LatencyMax = 500 ; AddToNpcDb = True ; BlackListTrainingDummy = True ; AvoidWallWithRays = True ; FlyAboveGroundHeight = 1.5 ; AvoidBlacklistedZonesPathFinder = True ; BlackListIfNotCompletePath = True ; WallDistancePathFinder = 0.5 ; PathFinderPostionOffset = 1.7 ; FlightMasterDiscoverRange = 150 ; FlightMasterTaxiDistance = 1000 ; FlightMasterTaxiUse = True ; FlightMasterTaxiUseOnlyIfNear = True ; [D] 21:02:29 - [Info] Wow Version: 5875[D] 21:02:29 - [Info] Player found: True[D] 21:02:29 - [Info] Wow Addons: LazyPig, Ace2, Align, AlphaMap, Atlas, AtlasLoot, AtlasQuest, aux-addon, aux_merchant_prices, Bagnon, Bagnon_Core, Bagnon_Options, Banknon, BEB, BEBOptions, Cartographer, ChatSuey, ChatSuey-EditOnTop, ChatSuey-ItemLinkHover, ChatSuey-MouseWheel, ChatSuey-PlayerLinks, ChatSuey-RemoveButtons, ChatSuey-WebLinks, Chronometer, Clean_Up_GUI, DeuceCommander, DiscordActionBarsOptions, DiscordActionBars, DiscordArt, DiscordArtOptions, DiscordLibrary, DiscordUnitFrames, DiscordUnitFramesOptions, EquipCompare, EQL3, ImprovedMacro, LootFilter, MikScrollingBattleText, MikScrollingBattleTextOptions, oCB, postal, simpleMinimap, SmartBuff, TheoryCraft, TinyTip, TinyTipExtras, TinyTipOptions, VCB, ShaguPlates, !Questie, 21:02:29 - [SpellManager] Initializing SpellBook - (Wait few seconds)21:02:29 - [SpellManager] Initialize SpellBook Finished (45 spell found)[D] 21:02:29 - [SpellManager] List of id found in spellbook: Attack (6603) Axe Specialization (20574) Basic Campfire (818) Block (107) Blood Fury (20572) Command (21563) Cooking (3413) Disenchant (13262) Dodge (81) Dual Wield (674) Enchanting (7411) First Aid (3274) Fishing (7732) Hardiness (20573) Parry (3127) Shoot Bow (2480) Skinning (8618) Battle Stance (2457) Charge (6178) Hamstring (1715) Heroic Strike (1608) Mocking Blow (7400) Overpower (7887) Rend (6548) Retaliation (20230) Thunder Clap (8204) Battle Shout (6192) Berserker Stance (2458) Challenging Shout (1161) Cleave (7369) Demoralizing Shout (6190) Execute (5308) Intercept (20252) Intimidating Shout (5246) Piercing Howl (12323) Slam (1464) Bloodrage (2687) Defensive Stance (71) Disarm (676) Revenge (6574) Shield Bash (72) Shield Block (2565) Shield Wall (871) Sunder Armor (7405) Taunt (355) 21:02:29 - [SpellManager] Please wait, loading spellbook...21:02:29 - [SpellManager] Spellbook loaded.[D] 21:02:29 - [Keybindings] Sit / Stand: X Backward: S Forward: W Jump: SPACE Strafe Left: Q Strafe Right: E I used to use WRobot on a TBC server without issued. Regards.
  16. I noticed on the map inside wrobot there's an option to only show players on the radar, could we possibly have this option on the tracker too? I know we can track humanoids, but it's annoying trying to pick out players when in a village/city. Thanks.
  17. First of all, I'd like a "Target is Hostile" condition. My paladin fightclass will switch to "Crusader Aura" while mounted, but there is also a condition that will tell it to switch to "Retribution Aura" while mounted if the bot has a target (castable while out of combat) - I made it this way so it looks more Human like, it will change to retribution aura while 25 yards away from target to save that GCD so the bot can use Seal>Judgement as soon as it's in range. This works fine, the only issue I have is that when the bot goes to town, it will spam switch between the 2 auras when it targets a friendly vendor. A "Target is Hostile" condition would allow me to fix this. Second suggestion is a "Target is Type" condition. In TBC paladins had several spells that could only be used on Undead/Demon type NPCs. The spells are classed as "Usable" per the "Is Spell Usable" condition even if the mobs aren't Demon/Undead - so the bot tries spamming Exorcism on targets it can't use it on and gets stuck there until higher priority spells come off cooldown. Thanks.
  18. Hey all, I'm trying to find a way to eat a specific food if my "Well Fed" buff has run out, I've got it to start eating the food when the buff runs out, but it just stands right back up and starts killing mobs again - is there anyway I can make the bot wait 10 seconds before performing any other action after using the food? I'm also have a similar issue with a Shockadin Fightclass, I've add FoL to the fightclass twice, one is only cast during combat when I'm lower than 40% hp, which works fine, and the other is only cast out of combat when I'm below 80% hp - which works some of the time, bot will try casting the spell as soon as it leaves combat after killing a mob, sometime it will move on to the next mob before the cast has finished, sometimes it will let the cast finish. I've set "Can move during cast" to "No". Thanks.
  19. <?xml version="1.0" encoding="utf-16"?> <FightClass xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <FightClassGeneralSettings> <FightClassName>BM Hunter 2.4.3</FightClassName> <Range>35</Range> <Pet>true</Pet> <PetCallSpellName>Call Pet</PetCallSpellName> <FramePerSecond>60</FramePerSecond> </FightClassGeneralSettings> <FightClassSpells> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInCombat</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> <FightClassCondition> <ContionType>DistanceMeToPet</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>10</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>if GetPetHappiness() == 3 then DEFAULT_CHAT_FRAME:AddMessage("Pet Happy - Don't Feed") else RunMacroText("/cast Feed Pet"); RunMacroText("/use Clefthoof Ribs") end</SpellName> <Priority>10</Priority> <CombatOnly>false</CombatOnly> <CheckIfKnow>false</CheckIfKnow> <CheckSpellDistance>false</CheckSpellDistance> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <Timer>120000</Timer> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <CanMoveDuringCast>Yes</CanMoveDuringCast> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>PetHealthPercent</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>70</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>Mend Pet</SpellName> <Priority>9</Priority> <IsBuff>true</IsBuff> <CombatOnly>false</CombatOnly> <Timer>15100</Timer> <CastOn>pet</CastOn> </FightClassSpell> <FightClassSpell> <FightClassConditions /> <SpellName>Aspect of the Hawk</SpellName> <Priority>8</Priority> <IsBuff>true</IsBuff> <CombatOnly>false</CombatOnly> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetHealthPercent</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>BiggerOrEqual</Type> <Value>1</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetIsPlayer</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>Smaller</Type> <Value>100</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>Bigger</Type> </Param> </FightClassCondition> </FightClassConditions> <SpellName>RunMacroText('/startattack') RunMacroText("/cast Hunter's Mark") RunMacroText('/petattack') UIErrorsFrame:Clear();</SpellName> <Priority>7</Priority> <CombatOnly>false</CombatOnly> <CheckSpellDistance>false</CheckSpellDistance> <CheckIfView>false</CheckIfView> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <OncePerTarget>true</OncePerTarget> <WaitDuringCasting>false</WaitDuringCasting> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetTargetingMe</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>IsSpellUsable</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>27047</Name> <Need>true</Need> </Param> </FightClassCondition> <FightClassCondition> <ContionType>DistancePetToTarget</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>5</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>CastSpell(7,'pet') UIErrorsFrame:Clear();</SpellName> <Priority>6</Priority> <CheckIfSpellUsable>false</CheckIfSpellUsable> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Use Taunt Logic (Turn Off Taunt Auto-Cast Ingame)</DescriptionSpell> <WaitDuringCasting>false</WaitDuringCasting> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>DistancePetToTarget</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>45</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>Kill Command</SpellName> <WaitDuringCasting>false</WaitDuringCasting> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>12</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetTargetingMyPet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>DistanceMeToPet</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>12</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>local waitTable = {}; local waitFrame = nil; function WaitToCall(delay, func, ...) if(type(delay)~="number" or type(func)~="function") then return false; end if(waitFrame == nil) then waitFrame = CreateFrame("Frame","WaitFrame", UIParent); waitFrame:SetScript("onUpdate",function (self,elapse) local count = #waitTable; local i = 1; while(i&lt;=count) do local waitRecord = tremove(waitTable,i); local d = tremove(waitRecord,1); local f = tremove(waitRecord,1); local p = tremove(waitRecord,1); if(d&gt;elapse) then tinsert(waitTable,i,{d-elapse,f,p}); i = i + 1; else count = count - 1; f(unpack(p)); end end end); end tinsert(waitTable,{delay,func,{...}}); return true; end MoveBackwardStart() WaitToCall(2, function() MoveBackwardStop() end)</SpellName> <Priority>4</Priority> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <Timer>2</Timer> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Create Distance if Target in Melee Range</DescriptionSpell> <WaitDuringCasting>false</WaitDuringCasting> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HavePet</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>BiggerOrEqual</Type> <Value>12</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>DistanceMeToPet</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>BiggerOrEqual</Type> <Value>12</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>UnitAttackPlayerNear</ContionType> <Param xsi:type="FightClassConditionUnitNear"> <Number>1</Number> <Type>BiggerOrEqual</Type> <Radius>10</Radius> </Param> </FightClassCondition> <FightClassCondition> <ContionType>IsSpellUsable</ContionType> <Param xsi:type="FightClassConditionStringBool"> <Name>Freezing Trap</Name> <Need>true</Need> </Param> </FightClassCondition> </FightClassConditions> <SpellName>RunMacroText("/Cast Freezing Trap") UIErrorsFrame:Clear();</SpellName> <Priority>3</Priority> <CheckIfKnow>false</CheckIfKnow> <CheckSpellDistance>false</CheckSpellDistance> <CheckIfView>false</CheckIfView> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> <DescriptionSpell>Cast Freezing Trap if &gt;1 Hostile Unit in Melee Range</DescriptionSpell> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>GlobalCooldownEnabled</ContionType> <Param xsi:type="FightClassConditionBool" /> </FightClassCondition> <FightClassCondition> <ContionType>GlobalCooldownTimeLeft</ContionType> <Param xsi:type="FightClassConditionNumber" /> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>BiggerOrEqual</Type> <Value>6</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>35</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInCombat</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>Arcane Shot</SpellName> <Priority>2</Priority> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <Timer>100</Timer> </FightClassSpell> <FightClassSpell> <FightClassConditions> <FightClassCondition> <ContionType>TargetDistance</ContionType> <Param xsi:type="FightClassConditionNumber"> <Type>SmallerOrEqual</Type> <Value>35</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>HaveTarget</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> <FightClassCondition> <ContionType>MeInCombat</ContionType> <Param xsi:type="FightClassConditionBool"> <Value>true</Value> </Param> </FightClassCondition> </FightClassConditions> <SpellName>RunMacroText("/startattack") UIErrorsFrame:Clear();</SpellName> <Priority>1</Priority> <AddToSettings>true</AddToSettings> <AddToSettingsActiveByDefault>true</AddToSettingsActiveByDefault> <Timer>200</Timer> <NotSpellIsLuaScript>true</NotSpellIsLuaScript> </FightClassSpell> </FightClassSpells> </FightClass>
×
×
  • Create New...