Jump to content

TheSmokie

Elite user
  • Content Count

    1198
  • Joined

Reputation Activity

  1. Like
    TheSmokie got a reaction from bio33 in Happy holidays   
    From me to you. 
     
    Marry Christmas and have a awesome holidays ! 
  2. Like
    TheSmokie reacted to iMod in Movement Speed in Travel Form while in combat   
    Take a look at "ObjectManager.Me.SpeedMoving"
  3. Thanks
    TheSmokie got a reaction from Droidz in Happy holidays   
    From me to you. 
     
    Marry Christmas and have a awesome holidays ! 
  4. Thanks
    TheSmokie reacted to iMod in Snippets C# codes for Fight Classes   
    WoWUnit Extension "IsAutoAttacking" (WOTLK)
    /// <summary> /// Gets the flag if the unit is auto attacking. /// </summary> /// <returns>Returns true if the unit is auto attacking, otherwise false.</returns> public static bool IsAutoAttacking(this WoWUnit instance) { // Read bool result = Memory.WowMemory.Memory.ReadBoolean(address: instance.GetBaseAddress + (uint)0xA20); // Return return result; } I'm not sure about the other extension offsets.
  5. Like
    TheSmokie reacted to Matenia in c# offmesh connection to use elevator   
    No offense to Droidz, but it's pretty much laziness. He'd have to add everything for every expansion and then maintain it manually if pathfinding for the expansion ever changes.

    I do pretty much the same thing for some connections in HMP. A few Droidz added after being given the info so I could remove them. Others I still struggle with due to large distances. It's really not as reliable as I'd like it to be.
  6. Like
    TheSmokie reacted to Droidz in WoW has stopped working every time I'm about to launch the bot - REPLY TO DROIDZ   
    Hello, you can reply on the topic instead create new
    look torrent or others servers website to found others clients, I found https://wowdl.net/fichiers/clients
  7. Thanks
    TheSmokie got a reaction from Harvest Golem in Get Account Name   
    Hey @pudge, While i was looking to help you, I've looking into offsets that does what you asking, this works, I tested it on my account and it returned the name. enjoy.
    Note : i only ran in dev tools.
    var accountName = wManager.Wow.Memory.WowMemory.Memory.ReadStringUTF8(0x10D7914); if(!string.IsNullOrEmpty(accountName)) { Logging.Write(accountName.ToString()); }  
  8. Like
    TheSmokie got a reaction from Sorcerer in [ToolBox][Vanilla - WOTLK] Many Useful Functions (Custom script)   
    or use @Droidz method - 
     
  9. Like
    TheSmokie got a reaction from Sorcerer in [ToolBox][Vanilla - WOTLK] Many Useful Functions (Custom script)   
    using frames like that one is everything SINGLE TIME you try go to vender it will run, which can cause problems. use this instead, use overridepulse to go buy stuff from venders.
    if(wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(new Vector3(1,1,1), 55 , 1)) // vectors of the npc, npc ID, Gossip { Tool.BuyItem("itemName", Amount); } return true;  
  10. Thanks
    TheSmokie reacted to Droidz in Is item soulbound or not   
    Hey, you need to use lua for that.
    look  https://www.wowinterface.com/forums/showthread.php?t=51249 or maybe source code of https://www.curseforge.com/wow/addons/auto-seller   
  11. Thanks
    TheSmokie got a reaction from zhxwbr8 in How to write this command in "Is complete condition"?   
    return Usefuls.MapZoneName != "Westfall"; //Complete Condition  
  12. 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
  13. 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"); }  
  14. Like
    TheSmokie got a reaction from szabijr in Wow Classic   
    This does not work on blizzard servers
  15. 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); } }  
  16. 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')");  
  17. Like
    TheSmokie got a reaction from Harvest Golem 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
  18. 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."); } }  
  19. 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
  20. 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
  21. 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
  22. Like
    TheSmokie got a reaction from Blazeone in Grind if reputation isnt Friendly   
    glad i could help 😄
  23. Like
    TheSmokie reacted to Droidz in Bot not skinning   
    Hello, in advanced general settings increment your min latency
  24. 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
  25. 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
×
×
  • Create New...