Droidz 2738 Posted April 24, 2013 Share Posted April 24, 2013 Quest profileQuest profile contain two files:Quests.cs > C# code - What the bot should do for completed the objectives of the quest, one class per quest. (I recommend for edit this file to use visual studio and add for reference wManager.dll at the project, this file)Profile.xml > Xml code – In this file is defined: The order of quest step (sample: quest1>PickUp ; quest2>PickUp ; quest2>Pulse ; quest2>TurnIn ; …) List of Npc quest giver (starts and ends quests list id) List of Npc (vendor, repair, mailbox)(You can use editor (You can found it in “Profile creator helper”) or block note)Useful tools:Select product « Quester », Click on button “Start”, new window appear, click on button “Profile creator helper”.Quest ToolsReturn entry id and position of your current target (text formatted to c# syntax for Quest.cs).Return your position (text formatted to c# syntax for Quest.cs).Return game objects information (game object is Mailbox, chest, mine, herb, …), entry id and position of all objects loaded in wow memory (position order by player distance) (replace “GameObject Name” by object name (case sensitive)) (text formatted to c# syntax for Quest.cs).Return unit information (uint is player, pet, creature, Npc, …), entry id and position of all unit loaded in wow memory (position order by player distance) (replace “Creature Name” by unit name (case sensitive)) (text formatted to c# syntax for Quest.cs).Create base quest class (information extracted of wowhead, it is recommended to manually check if they are correct) (replace “Quest ID” by your quest entry id”) (text formatted to c# syntax for Quest.cs).Create Npc quest giver, prefilled PickUp, TurnIn quests and position (information extracted of wowhead, it is recommended to manually check if they are correct) (replace “Npc ID” by your unit entry id”) (text formatted to xml syntax for Profile.xml).Return information about your current quests, this return quest entry id, stat of objectives 1, 2, 3, 4 and time left.Convert Zygor guide to WRobot quest profile (it don’t convert all, this can help you to gain time because you need to fix errors and bad information manually) (you can found guide in “ZygorGuidesViewer\Guides\Leveling”) (copy text of guide in textbox (14) for convert it) (return xml and C# code).Quest Profile Editor (for Profile.xml).This extract all quests classes name of c# (Quests.cs) file.Open Windows Notepad.Open Windows Calculator.Open Development tools (very useful tools for extract wow memory information).Textbox where are returned values.To get entry id of a unit, quest or object go to wowhead, on this URL wowhead.com/quest=26378 entry id of this quest is 26378.Download this file for get positions of NPC (extract it in wrobot folder): http://download.wrobot.eu/wrobot/Data_creature.csv.zipProfile.xmlFor edit this file you can use “Profile Editor” (9) or notepad.QuestFile:Path to c# file.QuestsSorted:Action of quests (WRobot reading this list in order)NameClass: The C# class name of the quest selected (case sensitive) (class name is in Quests.cs).Actions:· Pulse: Execute objective of the quest.· TurnIn: Return to Npc for complete the quest.· PickUp: Go to Npc for accept the quest.· PulseAllInOne: Execute PickUp > Pulse > TurnIn.NpcQuest:List of Npc and Game Object quest giver. Don’t forget to complete PickUpQuests and TurnInQuests (list of quest id), you can use Quest Tools (6) for gain time.Npc:List of mailbox, Npc vendor, repair…I recommend to edit existing quest profile to better understand.Quest.csFor edit Quest.cs you need base know of c#.net and POO. You need also Visual Studio 2010 (or 2012).Editor:You can use notepad, but I recommend:· Open Visual Studio· Create new project Class Library.· Add reference at your project wManager.dll and robotManager.dll.· When you create project with visual studio a .cs file is created, remove all text of it (Quest.cs don’t use namespace).Quest.cs don’t use namespace, you need one class by quest (it is possible to use two classes per quest if necessary). I use quest name for naming class (no compulsory), don't forget to use public class and inheritance of Quest.....Class.Quest simple, without objective, just pickup, turnin:public class ReportToGoldshire : QuestClass // inheritance of QuestClass { public ReportToGoldshire() { QuestId.Add (54); // Add quest id } } Quest type kills or get items find on creature:public sealed class BeatingThemBack : QuestGrinderClass // Inheritance of QuestGrinderClass { public BeatingThemBack () { QuestId.Add (28757); // Add quest id Step.AddRange(new[] { 6, 0, 0, 0 }); // Objective required count, for this quest he has only one objective to kills 6 creatures, if quest need 10 items replace 6 by 10 HotSpots.Add(new Vector3(-8885.293f, -62.18237f, 85.49203f)); // Position where you can found creature at kill HotSpots.Add(new Vector3(-8850.301f, -94.07894f, 83.14889f)); // Position where you can found creature at kill EntryTarget.Add(49871); // Entry id of creature at kill } } Quest type gatherer for pick up items:public sealed class ABundleofTrouble : QuestGathererClass // Inheritance of QuestGathererClass { public ABundleofTrouble() { QuestId.Add(5545); // Add quest id Step.AddRange(new[] { 8, 0, 0, 0 }); // Objective required count EntryIdObjects.Add(176793); // Entry id of game objects at gather HotSpots.Add (new Vector3(-9364, -1274, 60)); // Position where you can found game objects HotSpots.Add (new Vector3(-9494, -1464, 60)); // Position where you can found game objects } } Quest type use item on GameObjects/Unit:public sealed class ExtinguishingHope : QuestUseItemOnClass // Inheritance of QuestUseItemOnClass { public ExtinguishingHope() { QuestId.Add(26391); // Add quest id Step.AddRange(new[] { 8, 0, 0, 0 }); // Objective required count HotSpots.Add(new Vector3(-8921, -354, 73)); // Position where you can found game objects, creatures HotSpots.Add(new Vector3(-9037, -314, 73)); // Position where you can found game objects, creatures ItemId = 58362; // Entry id of item at use Range = 5 ; // Range of item EntryIdTarget.Add(42940); // Entry id of game objects or creatures/npc whose you need use item on it } } For quest type use spell on GameObjects/Unit replace inheritance class QuestUseSpellOnClass by QuestUseSpellOnClass and ItemId by SpellId Quest type interact with Npc:public sealed class FearNoEvil : QuestInteractWithClass { public FearNoEvil() { QuestId.Add (28813); // Add quest id Step.AddRange(new[] { 4, 0, 0, 0 });// Objective required count EntryIdTarget.Add(50047); // Entry id of creature/npc at interact with GossipOptionNpcInteractWith = 0; // This options is only if npc has menu HotSpots.Add(new Vector3(-8781, -105, 83)); HotSpots.Add(new Vector3(-8783, -187, 82)); } } Override, Add condition for get if character can get this quest:public class ReportToGoldshire : QuestClass // inheritance of QuestClass { public ReportToGoldshire() { QuestId.Add (54); // Add quest id } public override bool CanConditions()// Override method CanConditions { if (ObjectManager.Me.WowClass == WoWClass.Monk) { return false; } if (ObjectManager.Me.Level > 5) { return false; } if (ObjectManager.Me.WowRace != WoWRace.Human) { return false; } return true; } } If the character is an monk, or level is bigger than 5 or not human this quest is skipOverride PickUp for accep quest of item:public sealed class TheCollector : QuestClass { public TheCollector() { QuestId.AddRange(new[] { 123 }); Step.AddRange(new[] { 0, 0, 0, 0 }); } public override bool PickUp() // Override method PickUp() { ItemsManager.UseItem(ItemsManager.GetNameById(1307)); Quest.AcceptQuest(); return true; } } Quest without objective number count and with special objective:public sealed class TheJasperlodeMineQuest : QuestClass { public TheJasperlodeMineQuest() { QuestId.AddRange(new[] { 76 }); Step.AddRange(new[] { 0, 0, 0, 0 }); } private bool _step1; public override bool Pulse() // Override Pulse, special objective (need to Explore the Jasperlode Mine) { if (!_step1 && GoToTask.ToPosition(new Vector3(-9097, -565, 61))) // Go to Jasperlode Mine { Thread.Sleep(3000); _step1 = true; // character is at Jasperlode Mine, objective complete } return true; } public override bool IsComplete() // Override iscomplete for add _step1 { if (IsCompleted()) // If quest already turnin return true; if (!HasQuest()) // If character not have this quest return false; return _step1; // Return _step1 } } Multi Quest in one class:public sealed class BeatingThemBackQuest : QuestGrinderClass { public BeatingThemBackQuest() { QuestId.AddRange(new[] { 28757, 28762, 28763, 28764, 28765, 28766, 28767, 31139, 28763 }); Step.AddRange(new[] { 6, 0, 0, 0 }); HotSpots.Add(new Vector3(-8885.293f, -62.18237f, 85.49203f)); HotSpots.Add(new Vector3(-8850.301f, -94.07894f, 83.14889f)); EntryTarget.Add(49871); } }Wow have created 9 quests with same objective, one per wow class, when wrobot check if you have quest, he search if your character have one of quests of the class. fragik, creativextent and aomtte 3 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/ Share on other sites More sharing options...
Droidz 2738 Posted April 24, 2013 Author Share Posted April 24, 2013 Sorry for my bad English, I will correct later. fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2592 Share on other sites More sharing options...
Droidz 2738 Posted April 24, 2013 Author Share Posted April 24, 2013 Reserved fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2593 Share on other sites More sharing options...
Droidz 2738 Posted April 24, 2013 Author Share Posted April 24, 2013 Reserved fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2594 Share on other sites More sharing options...
creativextent 124 Posted April 30, 2013 Share Posted April 30, 2013 Thank you for the beginning tut. I think my self and other users need a direct with images showing how to put it all together. fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2728 Share on other sites More sharing options...
Droidz 2738 Posted April 30, 2013 Author Share Posted April 30, 2013 It is hard to explain this with images. I think the best method is to look existing profiles. If you have specific questions I'll reply but it is difficult to explain all. fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2731 Share on other sites More sharing options...
creativextent 124 Posted April 30, 2013 Share Posted April 30, 2013 Yes, i understand. Maybe a full profile with full comments inside so go from :) fragik and Droidz 2 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2732 Share on other sites More sharing options...
Nicki Anonymous 26 Posted May 5, 2013 Share Posted May 5, 2013 I've created some and got them working but, honest feedback which I hope helps, it needs to be made much easier. I'm sure it's being worked on and will come, just trying to provide some constructive feedback and am looking forward to the new versions as they are released :) fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2812 Share on other sites More sharing options...
AudreyH 17 Posted May 6, 2013 Share Posted May 6, 2013 It's the beginning of a great Adventure :) fragik and Droidz 2 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-2830 Share on other sites More sharing options...
kakimaki 2 Posted May 28, 2013 Share Posted May 28, 2013 SOLVED! included 2 lines at begining of QuestList.cs file. using wManager.Wow.Class; using robotManager.Helpful; Hi, I try to make it work but it seems i cant. I would like to make one MOP Daily quest first. I get an error while try using profile: cant find "QuestGrinderClass" type or namespace. This was the original error but half haungarian.Compilator Error :c:\Users\Home\AppData\Local\Temp\d2rf4nhz.0.cs(1,39) : error CS0246: A következő típus- vagy névtérnév nem található: „QuestGrinderClass” (esetleg hiányzik egy „using” direktíva vagy egy szerelvényre mutató hivatkozás).QuestList.cs //including these two rows solved my problem using wManager.Wow.Class; using robotManager.Helpful; public sealed class TheEternalVigil : QuestGrinderClass { public TheEternalVigil() { // http://www.wowhead.com/quest=30307 Name = "The Eternal Vigil"; QuestId.AddRange(new[] { 30307 }); //kill 8 creatures Step.AddRange(new[] {8, 0, 0, 0 }); // Target NPC info results HotSpots.Add(new Vector3(1575.099f, 1387.266f, 444.9345f)); HotSpots.Add(new Vector3(1551.12f, 1381.316f, 443.8689f)); HotSpots.Add(new Vector3(1570f, 1436.109f, 441.7368f)); HotSpots.Add(new Vector3(1517.842f, 1418.363f, 442.5871f)); HotSpots.Add(new Vector3(1608.345f, 1461.799f, 442.3046f)); HotSpots.Add(new Vector3(1614.658f, 1415.385f, 446.3118f)); EntryTarget.Add(58412); // Shao-Tien Marauder : http://www.wowhead.com/npc=58412 EntryTarget.Add(65810); // Shao-Tien Soul-Render : http://www.wowhead.com/npc=65810 } } GoldenLotusDaily.xml <?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>QuestList.cs</QuestFile> <QuestsSorted> <QuestsSorted Action="PickUp" NameClass="TheEternalVigil" /> <QuestsSorted Action="Pulse" NameClass="TheEternalVigil" /> <QuestsSorted Action="TurnIn" NameClass="TheEternalVigil" /> </QuestsSorted> <NpcQuest> <NPCQuest Id="58408" Name="Leven Dawnblade" GameObject="false"> <PickUpQuests> <int>30307</int> </PickUpQuests> <TurnInQuests> <int>30307</int> </TurnInQuests> <Position> <X>1212.302</X> <Y>1044.78</Y> <Z>425.9673</Z> <Type>None</Type> </Position> </NPCQuest> </NpcQuest> <Npc /> <Blackspots /> </QuesterProfile> I'd appreciate any advice. Thanks fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-3098 Share on other sites More sharing options...
beaty 5 Posted January 16, 2014 Share Posted January 16, 2014 is very lessy hard :-( xml file is okey, ... new 500 quest, at .cs file is not understand on work fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-5481 Share on other sites More sharing options...
Droidz 2738 Posted January 16, 2014 Author Share Posted January 16, 2014 is very lessy hard :-( xml file is okey, ... new 500 quest, at .cs file is not understand on work Hello, If you don't know C# you can create quest profiles with fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-5482 Share on other sites More sharing options...
beaty 5 Posted January 16, 2014 Share Posted January 16, 2014 its fine! xxx.xmlxxx2.xml fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-5483 Share on other sites More sharing options...
Droidz 2738 Posted January 17, 2014 Author Share Posted January 17, 2014 It is fixed profile (see code for more informations). Quester.zip fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-5494 Share on other sites More sharing options...
beaty 5 Posted January 18, 2014 Share Posted January 18, 2014 It is fixed profile (see code for more informations). Thanks, Tomorrow'll redoing worgen. dude you picked me up) fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-5503 Share on other sites More sharing options...
PierreDeRosette 13 Posted March 24, 2016 Share Posted March 24, 2016 Hi J'ai bien compris qu'une classe C# définissant une quête doit comporter : Une QuestId et le NPC correspondant doit être définis dans le XML. Supposons que je veuille effectuer une tache ne correspondant a aucune quête mais nécessitant l'interaction avec un NPC. Concrètement, je souhaite apres avoir recolté la mine et la commande de mine, passer aupres du NPC une nouvelle commande. Dans le Quest editor, il y a bien une option qu on doit passer a true si la quete ne fait pas forcement parti de notre liste de quetes. Comment définir ca dans un fichier .CS ?. De plus l'interaction ne se fait pas avec le perso si la QuestId n'est pas definie. Peut t on depasser cela ? Merciiiii :) fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-13067 Share on other sites More sharing options...
Droidz 2738 Posted March 24, 2016 Author Share Posted March 24, 2016 33 minutes ago, PierreDeRosette said: Hi J'ai bien compris qu'une classe C# définissant une quête doit comporter : Une QuestId et le NPC correspondant doit être définis dans le XML. Supposons que je veuille effectuer une tache ne correspondant a aucune quête mais nécessitant l'interaction avec un NPC. Concrètement, je souhaite apres avoir recolté la mine et la commande de mine, passer aupres du NPC une nouvelle commande. Dans le Quest editor, il y a bien une option qu on doit passer a true si la quete ne fait pas forcement parti de notre liste de quetes. Comment définir ca dans un fichier .CS ?. De plus l'interaction ne se fait pas avec le perso si la QuestId n'est pas definie. Peut t on depasser cela ? Merciiiii :) Salut, si ça peut t'aider regarde dans le dossier "WRobot\Profiles\Quester\Cache\", les profils XML sont convertis en c# (ça te donne des exemples). Pour ce que tu veux faire, reste dans avec un profil XML est utilise une quête de type "OverridePulseCSharpCode" (ou "FullCSharpCode" si elle est complexe) (regarde dans le dossier Cache après avoir lancé le profil pour comprendre ou est mis le code). Si tu veux je peux essayer de la coder, pour ça donne-moi le plus d'information possible. fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-13069 Share on other sites More sharing options...
kodec 3 Posted May 26, 2016 Share Posted May 26, 2016 Hi, how do i create /cast spell command? cheers edit: Rererenced WOW's API PROTECTED CastSpell(spellID, "bookType") - Cast the specified spell by ID. spellbookTab is "spell" or "pet". As of patch 2.0, this function has been restricted to Blizzard signed UI mods. Note: You can still use this function to open Craft windows and activate Lock Picking. (protected 2.0) http://wowwiki.wikia.com/wiki/World_of_Warcraft_API fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-14267 Share on other sites More sharing options...
bael666 6 Posted May 28, 2016 Share Posted May 28, 2016 On 5/26/2016 at 2:13 PM, kodec said: Hi, how do i create /cast spell command? cheers edit: Rererenced WOW's API PROTECTED CastSpell(spellID, "bookType") - Cast the specified spell by ID. spellbookTab is "spell" or "pet". As of patch 2.0, this function has been restricted to Blizzard signed UI mods. Note: You can still use this function to open Craft windows and activate Lock Picking. (protected 2.0) http://wowwiki.wikia.com/wiki/World_of_Warcraft_API You could try; RunMacroText("/Cast Frost Bolt") or you can also use the command you found but instead of spellid use the position in your spellbook, eg; CastSpell(1,"spell") will cast the first spell in your spellbook; CastSpell(1,"pet") will cast the first spell in your pet's spellbook. Hope that helps. fragik, BetterSister and kodec 3 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-14326 Share on other sites More sharing options...
Dequality 2 Posted April 15, 2017 Share Posted April 15, 2017 What is the C# line for checking if a certain quest is completed already? :) fragik 1 Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-25849 Share on other sites More sharing options...
Droidz 2738 Posted April 20, 2017 Author Share Posted April 20, 2017 On 15/04/2017 at 9:35 PM, Dequality said: What is the C# line for checking if a certain quest is completed already? :) Hello, Quest.GetQuestCompleted(123456) Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-26066 Share on other sites More sharing options...
Hugo123 1 Posted April 21, 2017 Share Posted April 21, 2017 You just keep on hammering out content! Great work, one step further for me to buy the bot... Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-26091 Share on other sites More sharing options...
wlhr 63 Posted April 21, 2017 Share Posted April 21, 2017 32 minutes ago, Hugo123 said: You just keep on hammering out content! Great work, one step further for me to buy the bot... just do it Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-26093 Share on other sites More sharing options...
Hugo123 1 Posted April 21, 2017 Share Posted April 21, 2017 3 hours ago, wlhr said: just do it I'm strongly considering it... I want the one for private servers as I feel the ban risk is smaller, however I kinda need to make my own profiles 1-80 which is some pretty heavy work haha. Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-26099 Share on other sites More sharing options...
anarchia 9 Posted April 23, 2017 Share Posted April 23, 2017 I have no Idea how to use this, even if I made alot of profiles for Pirox. Can u help me with some kind of "ToDo" List to make a succesfull profile? Can I create the Profile only in the "EasyProfileCreator" or do I need some other programms? There is my Testprofile. Tried to accept 2 Dailys at Icecrown and Turn them in. But he does nothing. It's 3.3.5 client btw TestDaily1111.xml Link to comment https://wrobot.eu/forums/topic/374-how-to-create-quest-profile/#findComment-26174 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