Jump to content

TheSmokie

Banned
  • Posts

    1215
  • Joined

Reputation Activity

  1. 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
  2. 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."); } }  
  3. 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
  4. 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
  5. 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
  6. Like
    TheSmokie got a reaction from Blazeone in Grind if reputation isnt Friendly   
    glad i could help ?
  7. Like
    TheSmokie reacted to Droidz in Bot not skinning   
    Hello, in advanced general settings increment your min latency
  8. 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
  9. 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
  10. 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"); }  
  11. 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.
  12. 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);
     
  13. 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
  14. Thanks
    TheSmokie reacted to Olya in Плагин автопокупки   
  15. 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
  16. 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.
  17. Thanks
    TheSmokie got a reaction from zhxwbr8 in Complete condition Boss died?   
    You can use follow path,
  18. Haha
    TheSmokie got a reaction from Pudge in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    best bet is find another server 
  19. 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 
  20. Haha
    TheSmokie reacted to Matenia in World explore lua problem   
    Did you just link him to a thread where the answer was his own?
  21. Like
    TheSmokie got a reaction from Pudge in Protection from SpellManager.CastSpellBy && LuaDoString (or what?)   
    Hello,
    This is the code they use for there custom MPQ and they check if the file is there and if its not then they download and replace the file with theres. @Droidz Might have to see if he can bypass it.
     
    the Mpq file  name : patch-ruRU-i.mpq
     
    -- Filename: Controller.lua -- Project: Sirus Game Interface -- Author: Nyll -- E-mail: [email protected] -- Web: https://sirus.su/ local _CastSpellByName = CastSpellByName local _CastSpellByID = CastSpellByID local _CastSpell = CastSpell local ignoreSpell = { 7620, 7731, 7732, 18248, 33095, 51294, 2550, 3102, 3413, 18260, 33359, 51296, 3273, 3274, 7924, 10846, 27028, 45542, 2259, 3101, 3464, 11611, 28596, 51304, 28677, 28675, 28672, 2018, 29844, 51300, 3538, 3100, 9785, 9788, 17039, 17040, 17041, 9787, 13262, 7411, 7412, 7413, 13920, 28029, 51313, 4036, 4037, 4038, 12656, 30350, 51306, 20222, 20219, 2366, 2368, 3570, 11993, 28695, 50300, 51005, 45357, 45358, 45359, 45360, 45361, 45363, 31252, 25229, 25230, 28894, 28895, 28897, 51311, 2108, 3104, 3811, 10662, 32549, 51302, 10656, 10660, 10658, 2656, 8613, 8617, 8618, 10768, 32678, 50305, 3908, 3909, 3910, 12180, 26790, 51309, 26798, 26797, 26801 } local blockSpell = { 306647, 306648, 306649, 306650, 306651, 306652, 306653, 306654, } local function GetSpellID( ... ) if ... then local link = GetSpellLink( ... ) if link then return tonumber(string.match(link, "spell:(%d*)")) end end end local function SendClientReport( name, ... ) SendServerMessage("ACMSG_PROTECTED_LUA_CALL_DETECTED", name.."|"..strjoin(" ", tostringall(...))) end function CastSpellByName( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpellByName(...) return end if id and tContains(ignoreSpell, id) then _CastSpellByName(...) return end SendClientReport("CastSpellByName", table.concat({..., id}, ", ")) end function CastSpellByID( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpellByID(...) return end if id and tContains(ignoreSpell, id) then _CastSpellByID(...) return end SendClientReport("CastSpellByID", ...) end function CastSpell( ... ) if not ... then return end local id = GetSpellID(...) if id and tContains(blockSpell, id) then return end if not UnitAffectingCombat("player") then _CastSpell(...) return end if id and tContains(ignoreSpell, id) then _CastSpell(...) return end SendClientReport("CastSpell", ...) end function JoinBattlefield( ... ) return nil end function AcceptBattlefieldPort( ... ) return nil end function AcceptTrade() return nil end function GuildInvite() return nil end function EventHandler:ASMSG_CLIENT_VERSION_REQUEST() SendAddonMessage("ACMSG_CLIENT_VERSION_VERIFICATION", 739, "WHISPER", UnitName("player")) end  
  22. Like
    TheSmokie got a reaction from bigdel in license key delivery   
    Look under purchased
  23. Like
    TheSmokie got a reaction from bigdel in purchasing wrobot   
    One is every year and other is monthly.
  24. Like
    TheSmokie reacted to Matenia in Is there a way to blacklist an NPC by ID as opposed to current target?   
    Add the entry 23534 to the blacklist editor under entryid (name doesn't matter, but feel free to add it).
    You can also open HMP's settings and add it to the trainer blacklist there (again, gotta add 23534)
  25. Haha
    TheSmokie reacted to Matenia in Fightclass Framework for 2.4.3/3.3.5a and more   
    There will be no updates for people who don't even own a wRobot license. Me telling you what to do to fix it was already generous. It's an incredibly easy fix in only 2 methods.
×
×
  • Create New...