MrCeeJ
Elite user-
Posts
24 -
Joined
-
Last visited
Recent Profile Visitors
The recent visitors block is disabled and is not being shown to other users.
MrCeeJ's Achievements
-
morrish reacted to a post in a topic: [Free] Basic Plugin for handing in Damaged Necklaces for Jewelcrafter tokens (WOTLK) [Source Included]
-
I see you removed the count value, that is fine as it wasn't used in this version (it was there for debugging). You also increased the waits. I am assuming it wasn't working as the code was running to fast, either the server or your connection was slower. I wan't able to test that and set the values for my setup, where the server is on my own local network and no-one else is on it so it is probably unreasonably fast. I could add a 'latency' value at the top of the file, and then use that to multiply all the waits, so for your case that would be set to 10 as you seem to have increased them all 10 fold.
-
Do you mean you want to tank yourself? or go with a random tank? Either way, the bots will expect certain things, like a readycheck at a certain spot, the tank to follow a specific path etc. If that doesn't happen they will either wait for it to happen, or reset back to the start of the instance if they think they have got lost. All the bots need to be at the same point on the same path for them to work together. It is possible, though, if you know what the path is and do the readychecks correctly to play as the tank youself. THe bots will need to have your name in the files, and you will need to invite them and queue, and you will need to know the path and the readycheck spots (called regroup steps in the files)
-
Mob skilling is already there, it is part of the base wrobot settings and if you turn it on it will happen automatically, no need to add that to the dungeon crawler. The path finding throught the dungeons is pretty complex and we have to create routes to follow and actions to perform at each node. It would be possible to add a 'mining' step or a 'herbing' step at different points, but it would be a lot of work to go through each profile and change the paths to cover all the possible spawn locations, and there is a lot of work to do still in just getting to the end of all the dungeons and dealing with all the different mechanics so I can't see it coming anytime soon. It is open source though so if people are keen for it they are welcome to join in and help
-
What do you mean? THe paths work well, the pulls are all split out to get through safely and don't require you to overlevel at all. The tank abilities are controlled by the fight class. What classes are you using and what fightclasses are you using? I have run multiple teams from 10 to 80 using AIO fightclasses and while I haven't tried every combo of tank/healer/dps I haven't had any that didn't work. Some instances are harder than others, certainly when you just meet the level requirements, but that is just classic for you.
-
MrCeeJ started following [Free] Wholesome Dungeon Crawler
-
morrish reacted to a post in a topic: [Free] Basic Plugin for handing in Damaged Necklaces for Jewelcrafter tokens (WOTLK) [Source Included]
-
[Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
MrCeeJ commented on Talamin's file in Fight Classes - Wotlk
-
Zer0 reacted to a comment on a file: [Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
-
[Free] Project Wholesome - WOTLK Fightclasses (all 10 included)
MrCeeJ commented on Talamin's file in Fight Classes - Wotlk
-
Talamin reacted to a post in a topic: [Free] Basic Plugin for handing in Damaged Necklaces for Jewelcrafter tokens (WOTLK) [Source Included]
-
Talamin reacted to a post in a topic: [Free] Basic Plugin for handing in Damaged Necklaces for Jewelcrafter tokens (WOTLK) [Source Included]
-
I have refactored it a little, to suit my preferred 'functional' style. Not sure if it is everyone's cup of tea so I'll leave the original, but I do enjoy being able to chain functions with simple boolean return values, and it makes it very easy to compose and modify things like dps rotations that can form very complex decision trees. I am curious what other devs think, it is full of side-effects and empty statements, which are normally considered smells as they can make the code hard to understand and work with, but since the purpose of the refactoring is to make it easier to understand and work with I don't think they are necessarily valid objections here. Finally, I am sorry the capitalisation is all over the place, coming from a Java / Python / Prolog background the .net capitalisation always confuses me.. using System; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.IO; using System.Linq; using System.Reflection; using System.Threading; using robotManager.Helpful; using robotManager.FiniteStateMachine; using robotManager.Products; using wManager.Plugin; using wManager.Wow.Helpers; using wManager.Wow.Bot.States; using wManager.Wow.Enums; using wManager.Wow.ObjectManager; using wManager.Wow.Class; public class Main : wManager.Plugin.IPlugin { public void Initialize() { Logging.Write("JCToken: Started."); int count = 0; while (TurnIn() || Repair() || GetQuest()){} Logging.Write("JCToken: Finished"); } private bool TurnIn() { return HaveRepairedItem() && CompleteQuest(); } private bool Repair() { return HaveQuest() && RepairItem(); } private bool GetQuest() { return HaveItems() && AcceptQuest(); } private bool HaveRepairedItem() { return HaveItemId(43298); } private void CompleteQuest() { wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(ObjectManager.Me.Position, 28701); System.Threading.Thread.Sleep(128); Quest.SelectGossipActiveQuest(1); System.Threading.Thread.Sleep(128); Quest.CompleteQuest(); System.Threading.Thread.Sleep(256); return true; } private bool HaveQuest() { return HaveItemId(43299); } private bool RepairItem() { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int itemId = GetId(info.ItemLink); if (itemId == 43299) { List<int> bagAndSlot = Bag.GetItemContainerBagIdAndSlot(info.ItemName); Lua.LuaDoString("UseContainerItem(" + bagAndSlot[0] + "," + bagAndSlot[1] + ")"); System.Threading.Thread.Sleep(12500); return true; } } return false; } private bool HaveItems() { return HaveItemId(43297) && HaveItemId(36923); } private bool AcceptQuest() { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int itemId = GetId(info.ItemLink); if (itemId == 43297) { List<int> bagAndSlot = Bag.GetItemContainerBagIdAndSlot(info.ItemName); Lua.LuaDoString("UseContainerItem(" + bagAndSlot[0] + "," + bagAndSlot[1] + ")"); Lua.LuaDoString("AcceptQuest()"); return true; } } return false; } private bool HaveItemId(int Id) { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int itemId = GetId(info.ItemLink); if (itemId == Id) { return true; } } return false; } private int GetId(String itemLink) { String pattern = "Hitem:"; int index = itemLink.IndexOf(pattern); return Int32.Parse(itemLink.Substring(index + 6).Split(':')[0]); } public void Settings(){} public void Dispose() { Logging.Write("JCToken: Stopped."); } }
-
Zer0 reacted to a post in a topic: [Free] Basic Plugin for handing in Damaged Necklaces for Jewelcrafter tokens (WOTLK) [Source Included]
-
So after grinding for a while in northrend you will probably have hundreds of these, if you actually want to turn them in yourself it can take a long time, so I wrote a little plugin to do it for you. You need the Damaged Necklaces and Gems in your inventory, and need to be near the Grand Master trainer in Dalaran in order to spam turn them in. To use the plugin just save it in your plugins folder, turn on WRotation and hit go. Some plugins can interfere with it (when they pause the bot) but it should be ok, you can always turn them off while running it. Finally here is the source code, feel free to give me suggestions to make it better, I just hacked away using the API until it worked, so I am sure there are better ways of doing things, so happy to take suggestions and improve it (which is really why I'm posting it here). The source is also attached for easy downloading. Have fun 🙂 using System; using robotManager.Helpful; using wManager.Wow.Helpers; using System.Collections.Generic; using System.ComponentModel; using System.Configuration; using System.IO; using System.Linq; using System.Reflection; using System.Threading; using robotManager.FiniteStateMachine; using robotManager.Products; using Timer = robotManager.Helpful.Timer; using wManager.Plugin; using wManager.Wow.Bot.States; using wManager.Wow.Enums; using wManager.Wow.ObjectManager; using wManager.Wow.Class; public class Main : wManager.Plugin.IPlugin { public void Initialize() { Logging.Write("JCTokenTurnIn: Started."); MakeAllTokens(); } private void MakeAllTokens(){ bool crafting = true; int count = 0; while(crafting) { if (HaveRepairedItem()) { TurnIn(); count++; } else if (HaveQuest()){ RepairItem(); } else if (HaveItems()) { AcceptQuest(); } else { crafting = false; } } Logging.Write("JCTokenTurnIn: Finished, tokens made: "+count); } private bool HaveRepairedItem() { return HaveItemId(43298); } private void TurnIn() { wManager.Wow.Bot.Tasks.GoToTask.ToPositionAndIntecractWithNpc(wManager.Wow.ObjectManager.ObjectManager.Me.Position, 28701); System.Threading.Thread.Sleep(128); Quest.SelectGossipActiveQuest(1); System.Threading.Thread.Sleep(128); Quest.CompleteQuest(); System.Threading.Thread.Sleep(256); } private bool HaveQuest() { return HaveItemId(43299); } private void RepairItem() { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int ItemId = getId(info.ItemLink); if (ItemId == 43299) { List<int> bagAndSlot = Bag.GetItemContainerBagIdAndSlot(info.ItemName); Lua.LuaDoString("UseContainerItem(" + bagAndSlot[0] + "," + bagAndSlot[1] + ")"); System.Threading.Thread.Sleep(12500); return; } } } private bool HaveItems() { return HaveItemId(43297) && HaveItemId(36923); } private void AcceptQuest() { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int ItemId = getId(info.ItemLink); if (ItemId == 43297) { List<int> bagAndSlot = Bag.GetItemContainerBagIdAndSlot(info.ItemName); Lua.LuaDoString("UseContainerItem(" + bagAndSlot[0] + "," + bagAndSlot[1] + ")"); Lua.LuaDoString("AcceptQuest()"); } } } private bool HaveItemId(int Id) { foreach (WoWItem item in Bag.GetBagItem()) { ItemInfo info = item.GetItemInfo; int ItemId = getId(info.ItemLink); if (ItemId == Id) { return true; } } return false; } private int getId(String itemLink){ String pattern = "Hitem:"; int index = itemLink.IndexOf(pattern); return Int32.Parse(itemLink.Substring(index+6).Split(':')[0]); } public void Settings() {} public void Dispose() { Logging.Write("JCTokenTurnIn: Stopped."); } } JCTokenTurnIn.cs
-
There are some good blog posts about minimising the graphics settings, there is a lot you can do both ingame and in the config.xml file to reduce the CPU usage. Some of the FCs are not very efficient, and without caching and sensible use of memory they can actually be very CPU intensive, even if the actual code is very simple, so depending what you are doing that can also be an issue. I have no problem running 5-10 bots on a single (good) PC, along with the wow clients and servers, so depending on how old the laptop is it should be able to handle one, epsecially if it can run wow fine on its own.
-
auto dungeon starter / gold grinder - wotlk
MrCeeJ replied to cometttor's topic in General assistance
The Wholsome team are working on a Dungeon Crawler, which is designed for 5 bots to run dungeons via the LFG tool, and there are some other Products that do solo dungeons etc, if you browse the fourms and downloads you will find them -
Change connected Game .exe
MrCeeJ replied to Andromat's topic in WRobot for Wow Vanilla - Help and support
If you want to change which installed version of wow to use, the value is in Settings/WRobotGeneralSetting.xml, but as Droidz mentioned, it is unlikely to work if the client has been modified.