Dear little Programmers and Wannabes
Today i want to teach you how to make your own little Quest Profile with the newest Information and with the newest and most helpfully tools.
First of all here is your Shopping List: (Addons / Helpfull Tools)
WoW Addon ListWholly -- This is for the Quest IDs
Grail -- Database for Wholly
idTip -- This shows you the ItemIDs and Spell IDs by Mouseing over it
Helpfull Websites:WoW-Head -- Here you can find everything about anything that has to do with World of Warcraft
Standard BotFunction Wiki -- a list of many BotIntern Functions you can use for your QuestProfiles and other Profiles
The new QuestFramework -- a compendium of
all new Questing Functions and how to insert them into your profile
WoW API and LUA Codes -- There you can find all API and LUA codes you will need for your Profiles
Helpfull Tools:Of course the Crawlerbots.exe! --( Debug Mode... but i will explain that later)
How To Start:1. You start your WoW.exe and Login
2. You start the Crawlerbots.exe and Login too
3. You Accept Ingame a Quest ... lets call it
QuestID "1234"4. Change the BotMode to DebugMode and press Start
5. Press the QuestHeader in the upper Right Corner and insert the QuestID without the" " of course...
6. Press Generate! And then the Bot will Write a Template like this one...
function Quest_1234() -- QuestName (1234)
if WasQuestDone(1234) == true then
return 0
end
while IsQuestInLog(1234) == false do
_Log("<font color='#0000FF'>Accept Quest: QuestName (1234)</font>")
NavigateTo(x,y,z,2)
Sleep(1000)
AcceptQuest(ObjectID,1234) -- Use AcceptQuestRunningNPC for moving NPCS
end
if IsQuestInLog(1234) == true then
_Log("<font color='#008000'>Doing Quest: QuestName (1234)</font>")
end
if IsQuestStepDone(1234,1) == false then
--QuestConditions here you have to make for each QuestStep its own Query just make
sure you edit the 2nd number in the () after IsQuestStepDone into the wanted condition number
end
while WasQuestDone(1234) == false do
_Log("<font color='#0000FF'>Return to Questgiver: QuestName (1234)</font>")
NavigateTo(x,y,z,2)
Sleep(1000)
TurnInQuest(ObjectID,1234) -- Use TurnInQuestRunningNPC for moving NPCS
end
end
-----------------------------------------
Quest_1234() -- [Faction] QuestName
7. Start the BotDirectory\ProfileEditPro\ProfileEdit.exe and Create a New Questing Profile
8. Insert the Code Above from the DebugWindow and Save the Profile... Just the first QuickSave for you... Remember to save (Ctrl+s) every few Minutes or you will pay for it ^^
9. Now its Time to fill in the needed Informations for that Quest
- The Bot will automatically fill in the needet informations but if the QuestDebugTool fails you have to insert the Informations by yourself... so here is how it goes:
- Start the DebugMode and Change to the GameInfo Screen
- Now you walk Ingame to your QuestGiver and LeftClick him
- Now change the ; in the "String delimiter" to a , or the given Coordinates are useless for you
- Press "Refresh" and in the Screen appears Information about you and your Target like that example:
- now you Copy the
Object ID into the AcceptQuest(
ObjectID,1234) and TurnInQuest(
ObjectID,1234)
- then copy the Pos: into all NavigateTo(
x,y,z,2) lines. Just overwrite the x,y,z and dont forget the ", 2" in the end this is important. (without " ")
- now you look whatever you need to fulfill the QuestCondition ... lets say you need 10 Meat from a Mob that has the ObjectID 5555
- insert the following template:
if IsQuestStepDone(1234,1) == false then
AddGrindingHotSpot(x,y,z) --insert the Coordinates the Bot should search the needet requirements from the Quest
AddGrindingHotspot(x,y,z)--insert the Coordinates the Bot should search the needet requirements from the Quest
AddGrindingMobID(5555) -- Yess MobID and not AddGrindingCollectObject because you want to kill this Mob that drops the needet Meat Auto Loot should be enabled in the WoW Settings! and in the BotSettings
DoGrind("QuestCond",1234,1,1,) -- Template:("QuestCond",QuestID,1,QuestConditionNumber)
ClearGrindingSettings() -- this will clear the AddGrindingHotspots and the AddGrindingMobID after Completing the Requirements in DoGrind
end
Some Informations:- For example if you need to pick up a QuestItem from the Ground like Gathering Plants or something else you dont use AddGrindingMobID()... you need AddGrindingCollectObject(ObjectID from the Plant you want to click and gather)- If you want to make more than 1 Quest in the Profile just set the new QuestingFunction under the first one and Cut the last Line of each Quest and Paste it at the bottom of the Quest. Start with the 1. Quest you want to make and then the 2nd below and so on... The LUA code will be read from the Top of the Profile to the Bottom and so it will be executed!like that:
Quest_1234() -- [Faction] QuestName
Quest_23456() -- [Faction] QuestName
I hope this will help you with your First Steps into the LUA Programming i will write another Thread these days with helpfull Developement Functions to make your Profile even more easier!
Remember: You can use the Template i write on top of the Thread for each Quest just insert the QuestGiver and QuestReturner Coordinates and ObjectIDs and each QuestID into the needet Place and if you have trouble with some quests let you know where you can find me
#########[Space for more Informations]###########greetz
Galvanar