Skalikas 8 Posted December 8, 2016 Share Posted December 8, 2016 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. Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/ Share on other sites More sharing options...
Skalikas 8 Posted December 8, 2016 Author Share Posted December 8, 2016 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; } Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21351 Share on other sites More sharing options...
Eldunar 3 Posted December 8, 2016 Share Posted December 8, 2016 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. Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21354 Share on other sites More sharing options...
iMod 99 Posted December 8, 2016 Share Posted December 8, 2016 Are you sure that you pulse the quest? Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21356 Share on other sites More sharing options...
iMod 99 Posted December 8, 2016 Share Posted December 8, 2016 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") Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21357 Share on other sites More sharing options...
Skalikas 8 Posted December 9, 2016 Author Share Posted December 9, 2016 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. Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21360 Share on other sites More sharing options...
iMod 99 Posted December 9, 2016 Share Posted December 9, 2016 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. Link to comment https://wrobot.eu/forums/topic/4583-wotlk-daily-quester/#findComment-21362 Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now