December 8, 20169 yr Bought the bot and decided to create a Wotlk daily questing profile (playing on a private server and using Wrobot for Wotlk). I just started and I'm already running into a problem with the first quest. Here's the code: using robotManager.Helpful; using wManager.Wow.Class; public sealed class PreparingForTheWorst : QuestGathererClass { public PreparingForTheWorst() { // http://www.wowhead.com/quest=11945 Name = "Preparing for the Worst"; QuestId.Add(11945); // Collect 8 items Step.AddRange(new[] { 8, 0, 0, 0 }); // Entry id of game objects to gather EntryIdObjects.Add(188164); // Positions where you can found game objects HotSpots.Add(new Vector3(3077.732f, 4793.737f, 1.133921f)); HotSpots.Add(new Vector3(2993.261f, 4866.646f, 0.3964394f)); HotSpots.Add(new Vector3(2889.96f, 4877.763f, 2.177183f)); } } <?xml version="1.0" encoding="utf-8" ?> <QuesterProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <QuestFile>Daily.cs</QuestFile> <QuestsSorted> <QuestsSorted NameClass="PreparingForTheWorst" Action="PulseAllInOne" /> </QuestsSorted> <NpcQuest> <NPCQuest Id="26213" Name="Utaik" GameObject="false"> <PickUpQuests> <int>11945</int> </PickUpQuests> <TurnInQuests> <int>11945</int> </TurnInQuests> <Position> <X>3140.63</X> <Y>4884.43</Y> <Z>3.05607</Z> <Type>Flying</Type> </Position> </NPCQuest> </NpcQuest> </QuesterProfile> The problem is that Bot does nothing when I start it. Everything loads, but the 'Bot State' just goes to 'Quester' and not even trying to go and pick up the quest. For the sake of testing, I also did the Easy Quest Profile with all the same settings and it was working.
December 8, 20169 yr Author Did some debugging and found out that Bot determines the quest as 'Completed' and therefore not trying to do it again. I'm not sure if this is the correct solution, as I cannot find the setting to mark quest as repeatable in C#: public override bool IsCompleted() { return false; }
December 8, 20169 yr That seems correct. This will just override the method from the parent QuestClass, that gets the information if the quest is completed and return a false statement everytime. Im sure if you so wish you could customize the method with other conditions to return either a true or false, depending on for example if the quest was already done that day.
December 8, 20169 yr 2 hours ago, Skalikas said: Did some debugging and found out that Bot determines the quest as 'Completed' and therefore not trying to do it again. I'm not sure if this is the correct solution, as I cannot find the setting to mark quest as repeatable in C#: public override bool IsCompleted() { return false; } Not tested: QuestID: 1234 public override bool IsCompleted() { return Lua.LuaDoString<List<int>>("return GetDailyQuestsCompleted();").Contains(1234); } You also could add this line in a if block and check if its allready done. ps: If it wont work with int just replace it with string and change Containts(1234) to Contains("1234")
December 9, 20169 yr Author 5 hours ago, iMod said: Not tested: QuestID: 1234 public override bool IsCompleted() { return Lua.LuaDoString<List<int>>("return GetDailyQuestsCompleted();").Contains(1234); } You also could add this line in a if block and check if its allready done. ps: If it wont work with int just replace it with string and change Containts(1234) to Contains("1234") This returns only the number of quests completed, but not the ids. I looked over the Lua API and it doesn't seem that u can get a list of daily quests completed.
December 9, 20169 yr 5 hours ago, Skalikas said: This returns only the number of quests completed, but not the ids. I looked over the Lua API and it doesn't seem that u can get a list of daily quests completed. Oh i see, thought it will return the quest id's of the finished quests. Another idea would be to subscribe to the quest finish event and log the quest id's by your self and clear it after you are done with all of them.
Create an account or sign in to comment