CarloBotto 4 Posted October 17, 2017 Share Posted October 17, 2017 Entering and exiting the dungeon works perfectly, and so do the individual parts/stages when the bot actually actions them, but it seems to like to skip over some of them which then messes up the entire script, usually resulting in the toon being taken for a long walk outside of the dungeon after it exits it. The many waits and resets were thrown in to try and get it to work properly, but no joy :( The different parts/stages of the script are : EnterZF, ToTabletOfTheka, ToGraves, ToStairs, ToGong, BackToStart, ExitZF EnterZF always works It's hit and miss whether or not the ToTabletOfTheka is actioned. It usually just goes straight to ToGraves. ToGraves appears to always work. ToStairs and ToGong hardly ever work, and have not done at all today, so far. BackToStart pretty much always works. I presume ExitZF always works because that's the only one that has coordinates that take the toon out of the dungeon. I have tried the EnterZF and ExitZF with a single FollowPath and that always works perfectly, resetting and repeating run. In the script below, I have removed all of the coordinates (lots upon lots of them!) to make it easier to look over the code. <?xml version="1.0" encoding="utf-16"?> <EasyQuestProfile xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xmlns:xsd="http://www.w3.org/2001/XMLSchema"> <QuestsSorted> <QuestsSorted Action="None" NameClass="How to works this profile: (orginal from Druidz, only changed/add a few things)
(you need know base in "Easy Quests" and small know base in Lua/C#)


1:
- Change WRobot settings to works in dungeon (step 1 RunCode).

2:
- Create new quest to go to dungeon portal named "Go To Dungeon".
- In this quest I put "True" at the option "Not required in quest log" (because it is not an real quest).
- At the option "Is complete condition" I put "return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.Strateholme);" (if you want make profile for another dungeon change SunkenTemple (you can found map name of your current position in "Dev tools" button "Me/Target position").
- I change "Quest type" to "KillAndLoot" (you don't need to kill mobs to go to dungeon but if you don't add "target entry" WRobot only go to Hotspots).
- Now you need to add a hotspot behind the portal (so that bot through it) (it is not easy, you need to go to gate and click quickly on button "+ Add my position" before load screen (during load screen and in dungeon the continent and base position change, WRobot cannot make path between two continent) (tip: use Click to Move (Right click in game to get time to return to WRobot window)). Another possibilitiy is: find out the nearest point in front of the portal before you get telepored, Click "Add my position" and edit the file with an editor and add 0,5 to your position (x or y or both)

3: 
- Now, I create new quest to kill http://www.wowhead.com/npc=8443/avatar-of-hakkar named "Kill Avatar Of Hakkar".
- In this quest I put "True" at the option "Not required in quest log" (because it is not an real quest).
- At the option "Is complete condition" I put "return (wManager.Wow.Helpers.Lua.LuaDoString("local _, _, numCriteria = C_Scenario.GetStepInfo(); if not numCriteria or numCriteria == 0 then completedObj = 'true'; return; end; local critID; _, _, completedObj,_,_,_,_,_,critID = C_Scenario.GetCriteriaInfo(3);if critID ~= 24920 then completedObj = 'true'; end;", "completedObj").ToLower() == "true");", replace 3 by objective id, if objective is completed, WRobot go to next step (quest). (go to end of this text to get script to get objectives id)
- For this objective I need to click on game object for spawn http://www.wowhead.com/npc=8443/avatar-of-hakkar, I use quest type "Gatherer", I add in hotspots the positions of targets (to force agro) and the position of game object (for spawn), in object entry I add game object for spawn boss.
- (...)
- I make one quest by dungeon objective, in this profile I have juste changed objective number in "Is complete condition" and use quest type "KillAndLoot" for others objectives.

4:
- Create new quest to exit dungeon (like the quest "Go To Dungeon", just replace in "Is complete condition" "==" by "!=").

5:
- Make/Add steps (with tools "Quests order editor") (At the end of steps list, add step type "RunLuaCode" with "ResetInstances()" to reset dungeon and add step type "GoToStep" with the first step number of your profile (default 0) to run this profile in loop automaticly).


HELPFULS:

Get objectives ID:
In main WRobot window, go to tab "Tools", click on button "Development Tools", put this text in textbox (without ___):
___________________________________________________________________
local stageName, stageDescription, numCriteria = C_Scenario.GetStepInfo(); 
local idObj = 1;
for idObj = 1, numCriteria do
 local criteriaString, criteriaType, completed, quantity, totalQuantity, flags, assetID, quantityString, criteriaID, duration, elapsed = C_Scenario.GetCriteriaInfo(idObj);
 if (completed) then
 print(idObj .. ' ' .. criteriaString .. ':' .. criteriaID .. ': Completed' );
 else
 print(idObj .. ' ' .. criteriaString .. ':' .. criteriaID .. ': In Progress' );
 end
end
___________________________________________________________________

and click on button "Lua (...", this write in your wow chat list of objectives." /> <QuestsSorted Action="RunCode" NameClass="// Change WRobot settings:
wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false;
wManager.wManagerSetting.CurrentSetting.MaxUnitsNear=99;
wManager.wManagerSetting.CurrentSetting.CanAttackUnitsAlreadyInFight = true;
wManager.wManagerSetting.CurrentSetting.AttackElite = true;
wManager.wManagerSetting.CurrentSetting.AttackBeforeBeingAttacked = false;
wManager.wManagerSetting.CurrentSetting.SearchRadius=40;
" /> <QuestsSorted Action="Pulse" NameClass="EnterZF" /> <QuestsSorted Action="Wait" NameClass="5000" /> <QuestsSorted Action="Reset" NameClass="ToTabletOfTheka" /> <QuestsSorted Action="Pulse" NameClass="ToTabletOfTheka" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="Reset" NameClass="ToGraves" /> <QuestsSorted Action="Pulse" NameClass="ToGraves" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="Reset" NameClass="ToStairs" /> <QuestsSorted Action="Pulse" NameClass="ToStairs" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="Reset" NameClass="ToGong" /> <QuestsSorted Action="Pulse" NameClass="ToGong" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="Reset" NameClass="BackToStart" /> <QuestsSorted Action="Pulse" NameClass="BackToStart" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="Pulse" NameClass="ExitZF" /> <QuestsSorted Action="Wait" NameClass="2000" /> <QuestsSorted Action="RunLuaCode" NameClass="ResetInstances();" /> <QuestsSorted Action="GoToStep" NameClass="1" /> </QuestsSorted> <NpcQuest /> <Npc /> <Blackspots /> <BlackGuids /> <EasyQuests> <EasyQuest> <Name>Enter ZF</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>false</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>false</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition>return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.TanarisInstance);</IsCompleteCondition> <RepeatableQuest>false</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>ToTabletOfTheka</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>true</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>true</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition /> <RepeatableQuest>true</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>ToGraves</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>true</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>true</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition /> <RepeatableQuest>true</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>ToStairs</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>true</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>true</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition /> <RepeatableQuest>true</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>ToGong</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>true</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>true</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition /> <RepeatableQuest>true</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>BackToStart</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>true</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>true</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition /> <IsCompleteCondition /> <RepeatableQuest>true</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> <EasyQuest> <Name>Exit ZF</Name> <QuestId /> <QuestType>FollowPath</QuestType> <QuestClass xsi:type="FollowPathEasyQuestClass"> <Path> </Path> <IsCompleteWhenAtLastPath>false</IsCompleteWhenAtLastPath> <ForceToStartFirstPosition>false</ForceToStartFirstPosition> <IsHotSpots>false</IsHotSpots> <IsLoop>false</IsLoop> </QuestClass> <ObjectiveCount1>0</ObjectiveCount1> <ObjectiveCount2>0</ObjectiveCount2> <ObjectiveCount3>0</ObjectiveCount3> <ObjectiveCount4>0</ObjectiveCount4> <ObjectiveCount5>0</ObjectiveCount5> <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1> <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2> <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3> <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4> <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5> <CanCondition>return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.Kalimdor);</CanCondition> <IsCompleteCondition /> <RepeatableQuest>false</RepeatableQuest> <NotRequiredInQuestLog>true</NotRequiredInQuestLog> <PickUpQuestOnItem>false</PickUpQuestOnItem> <PickUpQuestOnItemID>0</PickUpQuestOnItemID> <Comment /> <GossipOptionRewardItem>1</GossipOptionRewardItem> <RequiredQuest>0</RequiredQuest> <MaxLevel>999</MaxLevel> <MinLevel>0</MinLevel> <WoWClass>None</WoWClass> </EasyQuest> </EasyQuests> <Script> public class MyCustomScript { static MyCustomScript() { // You can put here code to run when bot start, you can also add methods and classes. } } </Script> <OffMeshConnections /> </EasyQuestProfile> 17 Oct 2017 09H43.log.html Link to comment https://wrobot.eu/forums/topic/7412-quester-skipping-stages-in-instance/ Share on other sites More sharing options...
CarloBotto 4 Posted October 17, 2017 Author Share Posted October 17, 2017 I just tried this with KillAndLoot quest type for the ToTabletOfTheka stage, and the bot totally ignored it, jumping straight to the BackToStart stage. Link to comment https://wrobot.eu/forums/topic/7412-quester-skipping-stages-in-instance/#findComment-33780 Share on other sites More sharing options...
nudl 74 Posted October 17, 2017 Share Posted October 17, 2017 ExitZF shouldn't (and can't?) work like this, because you have the can condition "return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.Kalimdor);" But you are in ZF. So this can't work, but you are saying it does? D: Other than that, try with a fresh install of wrobot (Just install another in another folder and try it with that one.) Maybe it's one of your settings. CarloBotto 1 Link to comment https://wrobot.eu/forums/topic/7412-quester-skipping-stages-in-instance/#findComment-33784 Share on other sites More sharing options...
CarloBotto 4 Posted October 17, 2017 Author Share Posted October 17, 2017 1 hour ago, nudl said: ExitZF shouldn't (and can't?) work like this, because you have the can condition "return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.Kalimdor);" But you are in ZF. So this can't work, but you are saying it does? D: OM Freaking G!!!!!!!! It was all because I pasted that condition in the wrong place!!!! That's not actually the first time I did that, but I managed to find and correct the mistake before! Perhaps a "better go to Specsavers" situation :D Or just stick with editing via Notepad++ :) ExitZF probably wasn't working as intended, but somehow the character was sent out of the instance anyway, to travel the lands of Kalimdor, lol Big THANKS, nudle :-) nudl 1 Link to comment https://wrobot.eu/forums/topic/7412-quester-skipping-stages-in-instance/#findComment-33788 Share on other sites More sharing options...
nudl 74 Posted October 17, 2017 Share Posted October 17, 2017 "to travel the lands of Kalimdor" haha, thanks for the laugh. :'D No problem. Here to help. Link to comment https://wrobot.eu/forums/topic/7412-quester-skipping-stages-in-instance/#findComment-33789 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