Jump to content

TheSmokie

Elite user
  • Content Count

    1088
  • Joined

Reputation Activity

  1. Like
    TheSmokie reacted to Droidz in BfA version   
    Hello, what is your BfA game version (with build number)? I need to know this to add the supports
  2. Like
    TheSmokie got a reaction from zatvorgt in Manual selling   
    I know this is a old thread but i came across it when trying to find a method to bender item by name, i was able to make a method that vender ALL item by the name, i thought I'd share.
     
    public static class Toolbox { public static void Sellitem(string ItemName) { Lua.LuaDoString(string.Format(@" local ItemToSell = '{0}' for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag, slot); if name and string.find(name, ItemToSell) then if (MerchantFrame:IsShown() ) then ShowMerchantSellCursor(1) UseContainerItem(bag, slot) end end end end", ItemName)); } } if (wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(new Vector3(x, y, z), NpcID, 1)) { Toolbox.Sellitem("Name of item"); }  
  3. Like
    TheSmokie got a reaction from szabijr in Wow Classic   
    This does not work on blizzard servers
  4. Haha
    TheSmokie got a reaction from Talamin in [Wotlk][Source] GetSpecialization   
    While i was working on my own copy of AIO, i made a simple way to check spec by string, its more Accurate then the method @iMod used, 
    public static class ToolHelper_Rotation { public static void Spec() { string MainTalents = GetSpec(); if (ObjectManager.Me.WowClass == WoWClass.Priest) { switch (MainTalents) { case ("Shadow"): { MessageBox.Show("Your spec is Shadow"); break; } case ("Holy"): { MessageBox.Show("Your spec is Holy"); break; } case ("Disco"): { MessageBox.Show("Your spec is Disco"); break; } default: { MessageBox.Show("Your spec is Shadow"); break; } } } } public static string GetSpec() { string SpecName = @" local highest_tab, highest = 0, 0; for i=1, 3 do local name, _, points = GetTalentTabInfo(i); if points > highest then highest = points; highest_tab = i; highest_name = name end end return highest_name"; return Lua.LuaDoString<string>(SpecName); } }  
  5. Like
    TheSmokie got a reaction from bilbao in Item usage/trinkets/stones   
    Hello, there is many ways to do what you are asking, C# and lua.
    Take your pick of one that works for you.
    1st : string ItemName = ItemsManager.GetNameById(50259); Lua.LuaDoString("UseItemByName('" + ItemName+ "')"); 2nd : ItemsManager.UseItemByNameOrId("50259"); 3rd: ItemsManager.UseItem(555); 4th : ItemsManager.UseContainerItem("Name here"); 5th : Lua.LuaDoString("UseItemByName('ItemName Here')");  
  6. Like
    TheSmokie got a reaction from pudge in Bot ignoring complete condition   
    @pudge i do not know if you fix this problem, but i got it working by using this as a return complete condition.
    return Usefuls.SubMapZoneName.Contains("The Vault of Lights"); if(GoToTask.ToPositionAndIntecractWithGameObject(new Vector3(5699.33, 735.217, 641.767), 191007)) { Thread.Sleep(5000); } return true; tested, works gread.
     
    Transport to Exodar from Dalaran.xml
  7. Thanks
    TheSmokie got a reaction from zhxwbr8 in ignore macros?   
    instead of using macros with turn off, turn on (your gonna get some errors no matter what,) use this template for make your own plugin : 
    using robotManager.Helpful; using robotManager.Products; using System; using System.Threading; using System.Windows.Forms; using wManager.Plugin; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Main : IPlugin { bool Launched; int timer = 1000; string PluginName = "[Plugin]: "; public void Initialize() { Launched = true; while (Launched && Products.IsStarted) { try { if (Conditions.InGameAndConnectedAndAliveAndProductStartedNotInPause) { if (!ObjectManager.Me.InCombat && !ObjectManager.Me.IsDead) { Lua.RunMacroText("Code here"); } } } catch (Exception e) { Logging.WriteError(PluginName + "there was an error: " + e); } Thread.Sleep(timer); } } public void Dispose() { Launched = false; } public void Settings() { MessageBox.Show(PluginName + "There are no settings."); } }  
  8. Like
    TheSmokie reacted to Apexx in Authenticate Your Intellectual Property   
    I stumbled across a website the other day, while looking for an alternative to Rocketr to process payments, and validate plugins, fight classes, etc.
    when I found, cryptlex (Powerful software licensing API).
    Quick Start
    Using LexActivator with C#
    After working with the code a bit, I wanted to share a demo project, along with a demo product online, as well as license keys if anyone would like to test it out for themselves.
    This project may have bugs and may not work 100%. I am hoping if other programmers check out the code they can offer ideas, comments, and even
    constructive criticism using this method.
    There is a "WRobot" directory in the attached zip file that stores the files required to run the LexActivator C# wrapper as well as the plugin and the product.dat file.
    Extract the files into their appropriate directory.
    VirusTotal
    CryptlexAuthenticator.zip
  9. Like
    TheSmokie got a reaction from Strijder in PQR Undetected   
    Hello !
    Today i wanted to release my copy of PQR aka Rotation here to help others.
    What is PQR ?
    PQR is a bot designed to perform complex DPS, healing and tanking rotations for the player. It was mainly designed to reduce the tediousness of performing a complex rotation for hours on end, which for many can be a huge relief and provide them with a better WoW experience where they may have wanted to quit in other cases.
    No addons to configure.
    No pixel scanning to hinder performance.
    Easily customizable and shareable abilities and rotations.
    Note: this copy of pqr is Undetected on ALL servers 
    This only works for 3.3.5a Wrath Of the Lich King.
    Servers that been tested :
    Warmane (Undetected)
    SunWell (Undetected)
    Wow-Circle (Undetected)
    Sirus (Semi Undetected, Read how to for Custom servers.)
    Dalaran-Wow (Undetected)

    How to install :
    *NOTE: Since you are downloading an EXE directly, some web browsers may consider it malicious*
    Download file from below,
    extract folder with all files content inside to somewhere on your computer.
    Select the process you would like to attach to. You must be logged into your character to do this.
    Install and Select your Primary and Secondary rotations.
    Press ALT+X to start your Primary rotation, and ALT+Z to start your Secondary rotation. Pressing the key(s) again will either stop the bot or switch the rotation, depending on what you have selected.
    Configuring a Rotation :
    Select the "Rotation Editor"
    Select the Class that you wish to edit.
    Select the Profile you wish to edit, or create a new profile.
    Select the rotation you wish to edit, or add a new rotation.
    The "Current Abilities" list is the rotation that will be used from top to bottom.
    Rotations are automatically saved as you make changes.
    You may also provide a static download address for your profiles to allow users to use the "Download Update" button as well as provide a note to users so they have more details on what the rotation is supposed to do.

    How to use on Custom Servers :
    Note : This is just a work around, and Can be Detected AnyTime :
    These kind of servers using a custom Mpq file to stop users from using some lua functions, like (CastSpellByName)
    i have gotten it to work by using RunMacroText(/cast Spell), you will need to modify whatever profile you are using to use this casting method.
    DO NOT NEED EWT TO RUN THIS ,
    Credit goes to my friend Scizzydo
    Credit for the Rotation bot :  Xelper
    if you find any bugs or suggestions please report on my discord :PQR SUPPORT
    Download LINK :
    Rotation
     
    Rotation.rar
  10. Like
    TheSmokie got a reaction from Avvi in [ToolBox][Vanilla - WOTLK] Many Useful Functions (Custom script)   
    Hi,
    this is a toolbox kit i put together with different some code i had laying around, enjoy!
    using robotManager.Helpful; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using wManager.Wow.Bot.Tasks; using wManager.Wow.Enums; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Tool { public static void LearningSpells(string SpellName) { Lua.LuaDoString(string.Format(@" for i=1,GetNumTrainerServices() do local name = GetTrainerServiceInfo(i) if (name == '{0}') then BuyTrainerService(i) end end ", SpellName.Replace("'", "\'"))); } public static bool RecipeIsKnown(string profession, string RecipeName) { bool Known = Lua.LuaDoString<bool>(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end numTradeSkills = GetNumTradeSkills() for i = 1, numTradeSkills do tradeSkillName, _, _, _ = GetTradeSkillInfo(i) if (tradeSkillName == '{1}') then return true; end if (TradeSkillFrame:IsVisible()) then TradeSkillFrame:Hide(); end end return false; ", profession, RecipeName)); Thread.Sleep(100); return Known; } // Craft works for Wrath of the Lich king public static void Craft(string profession, string itemName, int quantity) { if (RecipeIsKnown(profession, itemName) == true) { if (Usefuls.WowVersion == 12340) { Lua.LuaDoString(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end for i=1,GetNumTradeSkills() do local name, _, _, _ = GetTradeSkillInfo(i) if (name == '{1}') then DoTradeSkill(i, {2}) end if (TradeSkillFrame:IsVisible() and {2} < 2) then TradeSkillFrame:Hide(); end end ", profession, itemName, quantity)); } else if (Usefuls.WowVersion == 8606 || Usefuls.WowVersion == 5875) { Lua.LuaDoString(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end for i=1,GetNumTradeSkills() do local name, _, _, _ = GetTradeSkillInfo(i) if (name == '{1}') then DoTradeSkill(i, {2}) end if (TradeSkillFrame:IsVisible() and {2} < 2) then TradeSkillFrame:Hide(); end end ", profession, itemName, quantity)); } } } public static void RemoveItem(int Itemid) { Lua.LuaDoString(string.Format(@"for i=0,4 do for p=1,36 do if GetContainerItemID(i,p) == {0} then PickupContainerItem(i,p) DeleteCursorItem(); return end end end", Itemid)); } public static void UseItem(int itemID) { Lua.LuaDoString(string.Format(@"for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemID(bag, slot) if (item and item == {0}) then if (GetContainerItemCooldown(bag,slot)==0) then UseContainerItem(bag,slot) return true end end end end ", itemID)); } public static int HasItem(string itemName) { var execute = "local itemCount = 0; " + "for b=0,4 do " + "if GetBagName(b) then " + "for s=1, GetContainerNumSlots(b) do " + "local itemLink = GetContainerItemLink(b, s) " + "if itemLink then " + "local _, stackCount = GetContainerItemInfo(b, s)\t " + "if string.find(itemLink, \"" + itemName + "\") then " + "itemCount = itemCount + stackCount; " + "end " + "end " + "end " + "end " + "end; " + "return itemCount; "; return Lua.LuaDoString<int>(execute); } public static bool Faction(string FactionName) { bool rep = Lua.LuaDoString<bool>("for factionIndex = 1, GetNumFactions() do local name, _, standingId = GetFactionInfo(factionIndex); if string.find(name, '" + FactionName.Replace("'", "\'") + "') then return standingId; end end"); return rep; } public static void AbandonQuest(string questName) { Lua.LuaDoString("local name = '" + questName + "' for i=1,GetNumQuestLogEntries() do local questTitle, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete = GetQuestLogTitle(i) if string.find(questTitle, name) then SelectQuestLogEntry(i) SetAbandonQuest() AbandonQuest() end end"); } public static bool haveKey(int keyId) { bool haveKey = Lua.LuaDoString<bool>("local itemIdSearch = " + keyId + "; local bag = KEYRING_CONTAINER; for slot = 1,MAX_CONTAINER_ITEMS do local itemLink = GetContainerItemLink(bag,slot); local _, itemCount = GetContainerItemInfo(bag,slot); if itemLink and itemCount then local _,_,itemId = string.find(itemLink, '.*|Hitem:(%d+):.*'); if itemId and tonumber(itemId) == itemIdSearch then return true end end end return false"); return haveKey; } public static void BuyItem(string name, int amount) { Lua.LuaDoString(string.Format(@" local itemName = ""{0}"" local quantity = {1} for i=1, GetMerchantNumItems() do local name = GetMerchantItemInfo(i) if name and name == itemName then BuyMerchantItem(i, quantity) end end", name, amount)); } public static void Sellitem(string ItemName) { Lua.LuaDoString(string.Format(@" local ItemToSell = '{0}' for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag, slot); if name and string.find(name, ItemToSell) then if (MerchantFrame:IsShown() ) then ShowMerchantSellCursor(1) UseContainerItem(bag, slot) end end end end", ItemName)); } public static bool Face(Vector3 vector3) { var player = new Vector3(vector3); ObjectManager.Me.Rotation = robotManager.Helpful.Math.TargetFacingToRadian(ObjectManager.Me.Position, player); Move.StrafeLeft(); Move.StrafeRight(); return true; } public static void Fish(Vector3 vector3, Vector3 Water, int SkillLineStart, int SkillLineEnd, uint rode, uint sword) { while (Skill.GetValue(SkillLine.Fishing) >= SkillLineStart && Skill.GetValue(SkillLine.Fishing) <= SkillLineEnd) { ItemsManager.UseItem(rode); if (!FishingTask.IsLaunched) { if (GoToTask.ToPosition(vector3, 1.5f)) { Face(Water); FishingTask.LoopFish(); } } } FishingTask.StopLoopFish(); ItemsManager.UseItem(sword); } public static void CheckUpdate() { try { string onlineFile = "Github Raw link"; Quester.Bot.QuesterSetting.Load(); string profileName = "File.xml"; string currentFile = System.Windows.Forms.Application.StartupPath + @"\Profiles\Quester\" + profileName; var currentFileContent = System.IO.File.ReadAllText(currentFile, System.Text.Encoding.UTF8); var onlineFileContent = new System.Net.WebClient { Encoding = System.Text.Encoding.UTF8 }.DownloadString(onlineFile); if (!string.IsNullOrWhiteSpace(currentFileContent) && !string.IsNullOrWhiteSpace(onlineFileContent)) { if (currentFileContent != onlineFileContent) { Logging.Write("New version found, try to update file", (Logging.LogType)1, System.Drawing.Color.Red); System.IO.File.WriteAllText(currentFile, onlineFileContent); Thread.Sleep(500); new Thread(() => robotManager.Products.Products.ProductRestart()).Start(); } } Logging.Write("[Auto Updater]The version on your pc is the latest updated version.", (Logging.LogType)1, System.Drawing.Color.Red); } catch (Exception e) { Logging.WriteError("Auto update: " + e); } } public static int InteractItems(List<string> itemNames, int interactions = int.MaxValue) { if (!itemNames.Any()) return -1; var execute = "local counter = 0; " + "local leftStacks = 0; " + "for b=0,4 do " + "if GetBagName(b) then " + "for s=1, GetContainerNumSlots(b) do " + "local itemLink = GetContainerItemLink(b, s) " + "if itemLink then " + "local _, stackCount = GetContainerItemInfo(b, s)\t" + "if string.find(itemLink, \"" + itemNames.FirstOrDefault() + "\") "; if (itemNames.Count > 1) { execute = itemNames.Where(obj => itemNames.FirstOrDefault() != obj).Aggregate(execute, (current, obj) => current + "or string.find(itemLink, \"" + obj + "\") "); } execute = execute + "then " + "if (counter < " + interactions + ") then " + "UseContainerItem(b, s); " + "counter = counter + 1; " + "else " + "leftStacks = leftStacks + 1;" + "end " + "\tend\tend\tend end end return leftStacks;"; return Lua.LuaDoString<int>(execute); } /// <summary> /// Sends a mail to a recipient. /// </summary> /// <param name="recipient">The recipient.</param> /// <param name="subject">The subject.</param> /// <param name="itemNames">The items to send as names.</param> /// <returns>true if successful ; false if no mailbox available or stacks are left.</returns> public static bool SendItems(string recipient, string subject, List<string> itemNames) { var mailBox = ObjectManager.GetObjectWoWGameObject().FirstOrDefault(i => i.IsMailbox && i.GetDistance <= 5); if (mailBox == null || string.IsNullOrWhiteSpace(recipient)) return false; if (subject.Length == 0) subject = "-"; if (mailBox) { const int delayMs = 800; var timeOut = DateTime.Now.AddSeconds(40); Interact.InteractGameObject(mailBox.GetBaseAddress); Thread.Sleep(delayMs); Lua.LuaDoString("RunMacroText('/click MailFrameTab2');"); Thread.Sleep(delayMs); var leftStack = InteractItems(itemNames, 12); Thread.Sleep(delayMs); Lua.LuaDoString(@"SendMail(\" + recipient + ",\"{subject}\",\" \");"); Thread.Sleep(delayMs * 3); while (leftStack != 0 && DateTime.Now < timeOut) { leftStack = InteractItems(itemNames, 12); Thread.Sleep(delayMs); Lua.LuaDoString(string.Format(@"SendMail(\" + recipient + ",\"{subject}\",\" \");")); Thread.Sleep(delayMs * 3); } Lua.LuaDoString("CloseMail();"); if (leftStack != 0) return false; } return true; } public static bool Achievement(int achievementID, int index) { bool haveAchievement = Lua.LuaDoString<bool>("local achievementID = " + achievementID + "; local indexCriteria = " + index +"; local achievementInfo = {GetAchievementInfo(achievementID)}; if achievementInfo[4] then return achievementInfo[4] end local achCriteriaInfo = {GetAchievementCriteriaInfo(achievementID, indexCriteria)}; return achCriteriaInfo[3];"); return haveAchievement; } } public static class Travel { public static class Flight { //Thunderbluff to Orgrimmar static readonly Vector3 ThunderBluffFlightMaster = new Vector3(-1196.75f, 26.0777f, 176.9492f); static readonly int FlightMasterID = 2995; static readonly Vector3 OrgrimmarPlateform = new Vector3(1676.25f, -4313.45f, 61.79468f); static readonly string Orgrimmar = "Orgrimmar"; //Orgrimmar to Thunderbluff static readonly Vector3 OrgrimmarFlightMaster = new Vector3(1676.25f, -4313.45f, 61.79468f); static readonly int OrgrimmarFlightMasterID = 3310; static readonly Vector3 ThunderBluffPlateform = new Vector3(-1196.75f, 26.0777f, 176.9492f); static readonly string Thunderbluff = "Thunder Bluff"; private static void Wait(Vector3 arrival, int distance) { if (ObjectManager.Me.IsOnTaxi) { while (ObjectManager.Me.Position.DistanceTo(arrival) > distance) { Thread.Sleep(5000); } } } public static bool FlightPathChecker(string FlightPath) { bool Flight = Lua.LuaDoString<bool>(string.Format(@" local node = '{0}' if ( TaxiFrame:IsVisible() ) then for i=1,NumTaxiNodes() do if string.find(TaxiNodeName(i), node) then return true; end end return false; end", FlightPath.Replace("'", "\'"))); return Flight; } public static bool Flying(int npcID, Vector3 vector, string FlightName) { if (!ObjectManager.Me.IsOnTaxi) { while (GoToTask.ToPositionAndIntecractWithNpc(vector, npcID, 1) && !ObjectManager.Me.IsOnTaxi) { if (FlightPathChecker(FlightName) == false) { Logging.Write("[Travel]Flight: " + "Sorry, you do not have the flightpath to " + FlightName); break; } int node; node = Lua.LuaDoString<int>("for i=0,30 do if string.find(TaxiNodeName(i),'" + FlightName + "') then return i end end"); Lua.LuaDoString("TakeTaxiNode(" + node + ")"); } } return true; } public static void ThunderBluffToOrgrimmar() { Flying(FlightMasterID, ThunderBluffFlightMaster, Orgrimmar); Wait(OrgrimmarPlateform, 5); } public static void OrgrimmarToThunderBluff() { Flying(OrgrimmarFlightMasterID, OrgrimmarFlightMaster, Thunderbluff); Wait(ThunderBluffPlateform, 5); } } } How to use Tool: 
    RunCode (Action): - Tool.LearningSpells("Name Of spell"); // Put in name of the spell you wish to buy. - Tool.Craft("profession", "RecipeName", 1); // This code will only work for Wrath of the lich king - Tool.RemoveItem(55); // Removes item by ID - Tool.UseItem(55); // Uses item by ID - Tool.AbandonQuest("Quest Name"); //Abandon Quest by Name - Tool.Sellitem("Item Name"); // sell item by name - Tool.Fish(new Vector3(1, 1, 1), new Vector3(1, 1, 1), 0, 75, 6562, 111); - Tool.CheckUpdate(); // updates quester profiles from github.raw - Tool.SendItems("name", "note", new List<string> { "Super Healing Potion", }); // mail itemlist to another player If statements : - Tool.RecipeIsKnown("profession", "RecipeName") == true // check if you have this Recipe! If statement! - Tool.HasItem("itemname") <= 0 - Tool.Faction("Name of the faction", 5) == true // add name of faction, and amount of rep you want to check aganst. 42999 is max rep. - Tool.haveKey(KeyID) // checks if you have a key - Tool.Achievement(int achievementID, int index) How to use Travel (RunCode):
    Flight : - Travel.Flight.ThunderBluffToOrgrimmar(); - Travel.Flight.OrgrimmarToThunderBluff(); I want to say thank you to both @Droidz For his hints on what the problem with was for some code.
    ToolBox has many useful functions to help you develop different products. 
    Credits (Thanks to these people for there help and or code.) : 
    @Droidz for Auto updater.
    @reaper for his SendMailing code.
    @Ordush for his Crafting Code.
    @Matenia for all the helpful links and hints to get this project Toolbox. Must respect!
    If you find any bugs or want me to implement anything, Join our discord server and send me a message. : https://discordapp.com/invite/xQuhs5C
  11. Like
    TheSmokie got a reaction from Blazeone in Grind if reputation isnt Friendly   
    glad i could help 😄
  12. Like
    TheSmokie reacted to Droidz in Bot not skinning   
    Hello, in advanced general settings increment your min latency
  13. Like
    TheSmokie reacted to maukor in Grind if reputation isnt Friendly   
    Yeah, i saw your post, didnt got how it works, using Smokie ToolBox now, works fine : ) Thanks anyway
  14. Like
    TheSmokie got a reaction from maukor in [ToolBox][Vanilla - WOTLK] Many Useful Functions (Custom script)   
    Hi,
    this is a toolbox kit i put together with different some code i had laying around, enjoy!
    using robotManager.Helpful; using System; using System.Collections.Generic; using System.Linq; using System.Threading; using wManager.Wow.Bot.Tasks; using wManager.Wow.Enums; using wManager.Wow.Helpers; using wManager.Wow.ObjectManager; public class Tool { public static void LearningSpells(string SpellName) { Lua.LuaDoString(string.Format(@" for i=1,GetNumTrainerServices() do local name = GetTrainerServiceInfo(i) if (name == '{0}') then BuyTrainerService(i) end end ", SpellName.Replace("'", "\'"))); } public static bool RecipeIsKnown(string profession, string RecipeName) { bool Known = Lua.LuaDoString<bool>(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end numTradeSkills = GetNumTradeSkills() for i = 1, numTradeSkills do tradeSkillName, _, _, _ = GetTradeSkillInfo(i) if (tradeSkillName == '{1}') then return true; end if (TradeSkillFrame:IsVisible()) then TradeSkillFrame:Hide(); end end return false; ", profession, RecipeName)); Thread.Sleep(100); return Known; } // Craft works for Wrath of the Lich king public static void Craft(string profession, string itemName, int quantity) { if (RecipeIsKnown(profession, itemName) == true) { if (Usefuls.WowVersion == 12340) { Lua.LuaDoString(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end for i=1,GetNumTradeSkills() do local name, _, _, _ = GetTradeSkillInfo(i) if (name == '{1}') then DoTradeSkill(i, {2}) end if (TradeSkillFrame:IsVisible() and {2} < 2) then TradeSkillFrame:Hide(); end end ", profession, itemName, quantity)); } else if (Usefuls.WowVersion == 8606 || Usefuls.WowVersion == 5875) { Lua.LuaDoString(string.Format(@" if not TradeSkillFrame then CastSpellByName('{0}') end if TradeSkillFrame:IsVisible() == nil then CastSpellByName('{0}') end for i=1,GetNumTradeSkills() do local name, _, _, _ = GetTradeSkillInfo(i) if (name == '{1}') then DoTradeSkill(i, {2}) end if (TradeSkillFrame:IsVisible() and {2} < 2) then TradeSkillFrame:Hide(); end end ", profession, itemName, quantity)); } } } public static void RemoveItem(int Itemid) { Lua.LuaDoString(string.Format(@"for i=0,4 do for p=1,36 do if GetContainerItemID(i,p) == {0} then PickupContainerItem(i,p) DeleteCursorItem(); return end end end", Itemid)); } public static void UseItem(int itemID) { Lua.LuaDoString(string.Format(@"for bag = 0,4 do for slot = 1,GetContainerNumSlots(bag) do local item = GetContainerItemID(bag, slot) if (item and item == {0}) then if (GetContainerItemCooldown(bag,slot)==0) then UseContainerItem(bag,slot) return true end end end end ", itemID)); } public static int HasItem(string itemName) { var execute = "local itemCount = 0; " + "for b=0,4 do " + "if GetBagName(b) then " + "for s=1, GetContainerNumSlots(b) do " + "local itemLink = GetContainerItemLink(b, s) " + "if itemLink then " + "local _, stackCount = GetContainerItemInfo(b, s)\t " + "if string.find(itemLink, \"" + itemName + "\") then " + "itemCount = itemCount + stackCount; " + "end " + "end " + "end " + "end " + "end; " + "return itemCount; "; return Lua.LuaDoString<int>(execute); } public static bool Faction(string FactionName) { bool rep = Lua.LuaDoString<bool>("for factionIndex = 1, GetNumFactions() do local name, _, standingId = GetFactionInfo(factionIndex); if string.find(name, '" + FactionName.Replace("'", "\'") + "') then return standingId; end end"); return rep; } public static void AbandonQuest(string questName) { Lua.LuaDoString("local name = '" + questName + "' for i=1,GetNumQuestLogEntries() do local questTitle, level, questTag, suggestedGroup, isHeader, isCollapsed, isComplete = GetQuestLogTitle(i) if string.find(questTitle, name) then SelectQuestLogEntry(i) SetAbandonQuest() AbandonQuest() end end"); } public static bool haveKey(int keyId) { bool haveKey = Lua.LuaDoString<bool>("local itemIdSearch = " + keyId + "; local bag = KEYRING_CONTAINER; for slot = 1,MAX_CONTAINER_ITEMS do local itemLink = GetContainerItemLink(bag,slot); local _, itemCount = GetContainerItemInfo(bag,slot); if itemLink and itemCount then local _,_,itemId = string.find(itemLink, '.*|Hitem:(%d+):.*'); if itemId and tonumber(itemId) == itemIdSearch then return true end end end return false"); return haveKey; } public static void BuyItem(string name, int amount) { Lua.LuaDoString(string.Format(@" local itemName = ""{0}"" local quantity = {1} for i=1, GetMerchantNumItems() do local name = GetMerchantItemInfo(i) if name and name == itemName then BuyMerchantItem(i, quantity) end end", name, amount)); } public static void Sellitem(string ItemName) { Lua.LuaDoString(string.Format(@" local ItemToSell = '{0}' for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag, slot); if name and string.find(name, ItemToSell) then if (MerchantFrame:IsShown() ) then ShowMerchantSellCursor(1) UseContainerItem(bag, slot) end end end end", ItemName)); } public static bool Face(Vector3 vector3) { var player = new Vector3(vector3); ObjectManager.Me.Rotation = robotManager.Helpful.Math.TargetFacingToRadian(ObjectManager.Me.Position, player); Move.StrafeLeft(); Move.StrafeRight(); return true; } public static void Fish(Vector3 vector3, Vector3 Water, int SkillLineStart, int SkillLineEnd, uint rode, uint sword) { while (Skill.GetValue(SkillLine.Fishing) >= SkillLineStart && Skill.GetValue(SkillLine.Fishing) <= SkillLineEnd) { ItemsManager.UseItem(rode); if (!FishingTask.IsLaunched) { if (GoToTask.ToPosition(vector3, 1.5f)) { Face(Water); FishingTask.LoopFish(); } } } FishingTask.StopLoopFish(); ItemsManager.UseItem(sword); } public static void CheckUpdate() { try { string onlineFile = "Github Raw link"; Quester.Bot.QuesterSetting.Load(); string profileName = "File.xml"; string currentFile = System.Windows.Forms.Application.StartupPath + @"\Profiles\Quester\" + profileName; var currentFileContent = System.IO.File.ReadAllText(currentFile, System.Text.Encoding.UTF8); var onlineFileContent = new System.Net.WebClient { Encoding = System.Text.Encoding.UTF8 }.DownloadString(onlineFile); if (!string.IsNullOrWhiteSpace(currentFileContent) && !string.IsNullOrWhiteSpace(onlineFileContent)) { if (currentFileContent != onlineFileContent) { Logging.Write("New version found, try to update file", (Logging.LogType)1, System.Drawing.Color.Red); System.IO.File.WriteAllText(currentFile, onlineFileContent); Thread.Sleep(500); new Thread(() => robotManager.Products.Products.ProductRestart()).Start(); } } Logging.Write("[Auto Updater]The version on your pc is the latest updated version.", (Logging.LogType)1, System.Drawing.Color.Red); } catch (Exception e) { Logging.WriteError("Auto update: " + e); } } public static int InteractItems(List<string> itemNames, int interactions = int.MaxValue) { if (!itemNames.Any()) return -1; var execute = "local counter = 0; " + "local leftStacks = 0; " + "for b=0,4 do " + "if GetBagName(b) then " + "for s=1, GetContainerNumSlots(b) do " + "local itemLink = GetContainerItemLink(b, s) " + "if itemLink then " + "local _, stackCount = GetContainerItemInfo(b, s)\t" + "if string.find(itemLink, \"" + itemNames.FirstOrDefault() + "\") "; if (itemNames.Count > 1) { execute = itemNames.Where(obj => itemNames.FirstOrDefault() != obj).Aggregate(execute, (current, obj) => current + "or string.find(itemLink, \"" + obj + "\") "); } execute = execute + "then " + "if (counter < " + interactions + ") then " + "UseContainerItem(b, s); " + "counter = counter + 1; " + "else " + "leftStacks = leftStacks + 1;" + "end " + "\tend\tend\tend end end return leftStacks;"; return Lua.LuaDoString<int>(execute); } /// <summary> /// Sends a mail to a recipient. /// </summary> /// <param name="recipient">The recipient.</param> /// <param name="subject">The subject.</param> /// <param name="itemNames">The items to send as names.</param> /// <returns>true if successful ; false if no mailbox available or stacks are left.</returns> public static bool SendItems(string recipient, string subject, List<string> itemNames) { var mailBox = ObjectManager.GetObjectWoWGameObject().FirstOrDefault(i => i.IsMailbox && i.GetDistance <= 5); if (mailBox == null || string.IsNullOrWhiteSpace(recipient)) return false; if (subject.Length == 0) subject = "-"; if (mailBox) { const int delayMs = 800; var timeOut = DateTime.Now.AddSeconds(40); Interact.InteractGameObject(mailBox.GetBaseAddress); Thread.Sleep(delayMs); Lua.LuaDoString("RunMacroText('/click MailFrameTab2');"); Thread.Sleep(delayMs); var leftStack = InteractItems(itemNames, 12); Thread.Sleep(delayMs); Lua.LuaDoString(@"SendMail(\" + recipient + ",\"{subject}\",\" \");"); Thread.Sleep(delayMs * 3); while (leftStack != 0 && DateTime.Now < timeOut) { leftStack = InteractItems(itemNames, 12); Thread.Sleep(delayMs); Lua.LuaDoString(string.Format(@"SendMail(\" + recipient + ",\"{subject}\",\" \");")); Thread.Sleep(delayMs * 3); } Lua.LuaDoString("CloseMail();"); if (leftStack != 0) return false; } return true; } public static bool Achievement(int achievementID, int index) { bool haveAchievement = Lua.LuaDoString<bool>("local achievementID = " + achievementID + "; local indexCriteria = " + index +"; local achievementInfo = {GetAchievementInfo(achievementID)}; if achievementInfo[4] then return achievementInfo[4] end local achCriteriaInfo = {GetAchievementCriteriaInfo(achievementID, indexCriteria)}; return achCriteriaInfo[3];"); return haveAchievement; } } public static class Travel { public static class Flight { //Thunderbluff to Orgrimmar static readonly Vector3 ThunderBluffFlightMaster = new Vector3(-1196.75f, 26.0777f, 176.9492f); static readonly int FlightMasterID = 2995; static readonly Vector3 OrgrimmarPlateform = new Vector3(1676.25f, -4313.45f, 61.79468f); static readonly string Orgrimmar = "Orgrimmar"; //Orgrimmar to Thunderbluff static readonly Vector3 OrgrimmarFlightMaster = new Vector3(1676.25f, -4313.45f, 61.79468f); static readonly int OrgrimmarFlightMasterID = 3310; static readonly Vector3 ThunderBluffPlateform = new Vector3(-1196.75f, 26.0777f, 176.9492f); static readonly string Thunderbluff = "Thunder Bluff"; private static void Wait(Vector3 arrival, int distance) { if (ObjectManager.Me.IsOnTaxi) { while (ObjectManager.Me.Position.DistanceTo(arrival) > distance) { Thread.Sleep(5000); } } } public static bool FlightPathChecker(string FlightPath) { bool Flight = Lua.LuaDoString<bool>(string.Format(@" local node = '{0}' if ( TaxiFrame:IsVisible() ) then for i=1,NumTaxiNodes() do if string.find(TaxiNodeName(i), node) then return true; end end return false; end", FlightPath.Replace("'", "\'"))); return Flight; } public static bool Flying(int npcID, Vector3 vector, string FlightName) { if (!ObjectManager.Me.IsOnTaxi) { while (GoToTask.ToPositionAndIntecractWithNpc(vector, npcID, 1) && !ObjectManager.Me.IsOnTaxi) { if (FlightPathChecker(FlightName) == false) { Logging.Write("[Travel]Flight: " + "Sorry, you do not have the flightpath to " + FlightName); break; } int node; node = Lua.LuaDoString<int>("for i=0,30 do if string.find(TaxiNodeName(i),'" + FlightName + "') then return i end end"); Lua.LuaDoString("TakeTaxiNode(" + node + ")"); } } return true; } public static void ThunderBluffToOrgrimmar() { Flying(FlightMasterID, ThunderBluffFlightMaster, Orgrimmar); Wait(OrgrimmarPlateform, 5); } public static void OrgrimmarToThunderBluff() { Flying(OrgrimmarFlightMasterID, OrgrimmarFlightMaster, Thunderbluff); Wait(ThunderBluffPlateform, 5); } } } How to use Tool: 
    RunCode (Action): - Tool.LearningSpells("Name Of spell"); // Put in name of the spell you wish to buy. - Tool.Craft("profession", "RecipeName", 1); // This code will only work for Wrath of the lich king - Tool.RemoveItem(55); // Removes item by ID - Tool.UseItem(55); // Uses item by ID - Tool.AbandonQuest("Quest Name"); //Abandon Quest by Name - Tool.Sellitem("Item Name"); // sell item by name - Tool.Fish(new Vector3(1, 1, 1), new Vector3(1, 1, 1), 0, 75, 6562, 111); - Tool.CheckUpdate(); // updates quester profiles from github.raw - Tool.SendItems("name", "note", new List<string> { "Super Healing Potion", }); // mail itemlist to another player If statements : - Tool.RecipeIsKnown("profession", "RecipeName") == true // check if you have this Recipe! If statement! - Tool.HasItem("itemname") <= 0 - Tool.Faction("Name of the faction", 5) == true // add name of faction, and amount of rep you want to check aganst. 42999 is max rep. - Tool.haveKey(KeyID) // checks if you have a key - Tool.Achievement(int achievementID, int index) How to use Travel (RunCode):
    Flight : - Travel.Flight.ThunderBluffToOrgrimmar(); - Travel.Flight.OrgrimmarToThunderBluff(); I want to say thank you to both @Droidz For his hints on what the problem with was for some code.
    ToolBox has many useful functions to help you develop different products. 
    Credits (Thanks to these people for there help and or code.) : 
    @Droidz for Auto updater.
    @reaper for his SendMailing code.
    @Ordush for his Crafting Code.
    @Matenia for all the helpful links and hints to get this project Toolbox. Must respect!
    If you find any bugs or want me to implement anything, Join our discord server and send me a message. : https://discordapp.com/invite/xQuhs5C
  15. Like
    TheSmokie got a reaction from Strijder in Manual selling   
    I know this is a old thread but i came across it when trying to find a method to bender item by name, i was able to make a method that vender ALL item by the name, i thought I'd share.
     
    public static class Toolbox { public static void Sellitem(string ItemName) { Lua.LuaDoString(string.Format(@" local ItemToSell = '{0}' for bag = 0,4,1 do for slot = 1, GetContainerNumSlots(bag), 1 do local name = GetContainerItemLink(bag, slot); if name and string.find(name, ItemToSell) then if (MerchantFrame:IsShown() ) then ShowMerchantSellCursor(1) UseContainerItem(bag, slot) end end end end", ItemName)); } } if (wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(new Vector3(x, y, z), NpcID, 1)) { Toolbox.Sellitem("Name of item"); }  
  16. Like
    TheSmokie got a reaction from Strijder in 1-80 Woltk Quest Profile   
    Hello, for wotlk quester. I’m pretty sure I’m the only one working on stuff, you can use project X to get you 1-60 questing in wotlk, then project throne for 60-80 grinding. I’ve been without a laptop recently so haven’t provided up dates but over all should work.
  17. Like
    TheSmokie got a reaction from Apexx in Interact with NPC - PickUp Quest if option is available   
    You could use my toolbox > 
    input into custom script, and call it using 
     
    return faction(“name”, amount);
     
  18. Like
    TheSmokie got a reaction from pudge in PQR Undetected   
    Hello !
    Today i wanted to release my copy of PQR aka Rotation here to help others.
    What is PQR ?
    PQR is a bot designed to perform complex DPS, healing and tanking rotations for the player. It was mainly designed to reduce the tediousness of performing a complex rotation for hours on end, which for many can be a huge relief and provide them with a better WoW experience where they may have wanted to quit in other cases.
    No addons to configure.
    No pixel scanning to hinder performance.
    Easily customizable and shareable abilities and rotations.
    Note: this copy of pqr is Undetected on ALL servers 
    This only works for 3.3.5a Wrath Of the Lich King.
    Servers that been tested :
    Warmane (Undetected)
    SunWell (Undetected)
    Wow-Circle (Undetected)
    Sirus (Semi Undetected, Read how to for Custom servers.)
    Dalaran-Wow (Undetected)

    How to install :
    *NOTE: Since you are downloading an EXE directly, some web browsers may consider it malicious*
    Download file from below,
    extract folder with all files content inside to somewhere on your computer.
    Select the process you would like to attach to. You must be logged into your character to do this.
    Install and Select your Primary and Secondary rotations.
    Press ALT+X to start your Primary rotation, and ALT+Z to start your Secondary rotation. Pressing the key(s) again will either stop the bot or switch the rotation, depending on what you have selected.
    Configuring a Rotation :
    Select the "Rotation Editor"
    Select the Class that you wish to edit.
    Select the Profile you wish to edit, or create a new profile.
    Select the rotation you wish to edit, or add a new rotation.
    The "Current Abilities" list is the rotation that will be used from top to bottom.
    Rotations are automatically saved as you make changes.
    You may also provide a static download address for your profiles to allow users to use the "Download Update" button as well as provide a note to users so they have more details on what the rotation is supposed to do.

    How to use on Custom Servers :
    Note : This is just a work around, and Can be Detected AnyTime :
    These kind of servers using a custom Mpq file to stop users from using some lua functions, like (CastSpellByName)
    i have gotten it to work by using RunMacroText(/cast Spell), you will need to modify whatever profile you are using to use this casting method.
    DO NOT NEED EWT TO RUN THIS ,
    Credit goes to my friend Scizzydo
    Credit for the Rotation bot :  Xelper
    if you find any bugs or suggestions please report on my discord :PQR SUPPORT
    Download LINK :
    Rotation
     
    Rotation.rar
  19. Thanks
  20. Like
    TheSmokie got a reaction from ripper45 in PQR Undetected   
    Hello !
    Today i wanted to release my copy of PQR aka Rotation here to help others.
    What is PQR ?
    PQR is a bot designed to perform complex DPS, healing and tanking rotations for the player. It was mainly designed to reduce the tediousness of performing a complex rotation for hours on end, which for many can be a huge relief and provide them with a better WoW experience where they may have wanted to quit in other cases.
    No addons to configure.
    No pixel scanning to hinder performance.
    Easily customizable and shareable abilities and rotations.
    Note: this copy of pqr is Undetected on ALL servers 
    This only works for 3.3.5a Wrath Of the Lich King.
    Servers that been tested :
    Warmane (Undetected)
    SunWell (Undetected)
    Wow-Circle (Undetected)
    Sirus (Semi Undetected, Read how to for Custom servers.)
    Dalaran-Wow (Undetected)

    How to install :
    *NOTE: Since you are downloading an EXE directly, some web browsers may consider it malicious*
    Download file from below,
    extract folder with all files content inside to somewhere on your computer.
    Select the process you would like to attach to. You must be logged into your character to do this.
    Install and Select your Primary and Secondary rotations.
    Press ALT+X to start your Primary rotation, and ALT+Z to start your Secondary rotation. Pressing the key(s) again will either stop the bot or switch the rotation, depending on what you have selected.
    Configuring a Rotation :
    Select the "Rotation Editor"
    Select the Class that you wish to edit.
    Select the Profile you wish to edit, or create a new profile.
    Select the rotation you wish to edit, or add a new rotation.
    The "Current Abilities" list is the rotation that will be used from top to bottom.
    Rotations are automatically saved as you make changes.
    You may also provide a static download address for your profiles to allow users to use the "Download Update" button as well as provide a note to users so they have more details on what the rotation is supposed to do.

    How to use on Custom Servers :
    Note : This is just a work around, and Can be Detected AnyTime :
    These kind of servers using a custom Mpq file to stop users from using some lua functions, like (CastSpellByName)
    i have gotten it to work by using RunMacroText(/cast Spell), you will need to modify whatever profile you are using to use this casting method.
    DO NOT NEED EWT TO RUN THIS ,
    Credit goes to my friend Scizzydo
    Credit for the Rotation bot :  Xelper
    if you find any bugs or suggestions please report on my discord :PQR SUPPORT
    Download LINK :
    Rotation
     
    Rotation.rar
  21. Thanks
    TheSmokie got a reaction from zhxwbr8 in Is there any way to encrypt XML?   
    There is a feature but only for paid products and you need premium Seller rank to sell stuff here.
  22. Thanks
    TheSmokie got a reaction from zhxwbr8 in Complete condition Boss died?   
    You can use follow path,
  23. Haha
    TheSmokie got a reaction from pudge in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    best bet is find another server 
  24. Like
    TheSmokie got a reaction from pudge in wManagerSetting.CurrentSetting.PathFinderFromServer   
    There is old mesh and new mesh which the pathfinder uses. That pretty much is true for you to use new mesh 
  25. Haha
    TheSmokie reacted to Matenia in World explore lua problem   
    Did you just link him to a thread where the answer was his own?
×
×
  • Create New...