Jump to content

TheSmokie

Banned
  • Posts

    1215
  • Joined

Everything posted by TheSmokie

  1. Thanks @Matenia! , I was gonna help him but got back to late!
  2. @mita I have got a method that should work, I’ll release it today.
  3. 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
  4. Go to Vector3 And click on object (Overridepulse) var pos = new Vector3(x, y, z); // position to where you need to interact with object int clickonobject = 0; // the object ID GoToTask.ToPosition(pos); while (MovementManager.InMovement) { Thread.Sleep(250); } if (ObjectManager.Me.Position.DistanceTo2D(pos) < 3) { Interact.InteractGameObject(ObjectManager.GetWoWGameObjectByEntry(clickonobject).FirstOrDefault().GetBaseAddress); Thread.Sleep(500); } return true;
  5. Go to Vector3 And Use Item (Overridepulse) var pos = new Vector3(x, y, z); // position to where you need to be to use the item string item = "Name"; // item Sring - change name to what item you are using. GoToTask.ToPosition(pos); // move to position while (MovementManager.InMovement) { Thread.Sleep(250); } if (ObjectManager.Me.Position.DistanceTo2D(pos) < 3) { ItemsManager.UseItem(item); Thread.Sleep(500); } return true;
  6. I can only speak about personal thoughts about cata and I personally don’t enjoy it but if you like, I can do or help you build one. Welcome to the community
  7. Click on Item and KILL mob (Overridepulse) var pos = new Vector3(x, y, z); // Vector3 postion int npc = 1; // hostile unit int clickitem = 1; // item you need to click on var target = ObjectManager.GetObjectWoWUnit().FirstOrDefault(o => o.Entry == npc && o.Position.DistanceTo(ObjectManager.Me.Position) < 50 && o.IsAlive); GoToTask.ToPosition(pos); while (MovementManager.InMovement) { Thread.Sleep(250); } if (ObjectManager.Me.Position.DistanceTo2D(new Vector3(pos)) < 3) { Interact.InteractGameObject(ObjectManager.GetWoWGameObjectByEntry(clickitem).FirstOrDefault().GetBaseAddress); Thread.Sleep(1500); } if (target != null && target.IsAlive) { ObjectManager.Me.Target = target.Guid; if (ObjectManager.Me.Position.DistanceTo(target.Position) >= 30) MovementManager.MoveTo(target.Position); if (ObjectManager.Target.Name == "unit") //name of the unit { Fight.StartFight(); } } return true; 1 - edit to your needs, change the info. 2 - use overridepulse 3- in quest order editer, do Pulseallinone
  8. TheSmokie

    Vehicle options

    Any update @Droidz
  9. Send me a pm on discord : https://discordapp.com/invite/xQuhs5C
  10. Quest like The gift that keeps on giving (You need to throw a item on the ground, to make ghouls and you need 5.) use this complete condition. return ObjectManager.GetObjectWoWUnit().Count(u => u.IsMyPet && u.Name == "name") == 5; Special thanks to @pudge
×
×
  • Create New...