Jump to content

Quester skipping stages in instance


Recommended Posts

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 : EnterZFToTabletOfThekaToGravesToStairsToGongBackToStartExitZF

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)&#xD;&#xA;(you need know base in &quot;Easy Quests&quot; and small know base in Lua/C#)&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;1:&#xD;&#xA;-  Change WRobot settings to works in dungeon (step 1 RunCode).&#xD;&#xA;&#xD;&#xA;2:&#xD;&#xA;- Create new quest to go to dungeon portal named &quot;Go To Dungeon&quot;.&#xD;&#xA;- In this quest I put &quot;True&quot; at the option &quot;Not required in quest log&quot; (because it is not an real quest).&#xD;&#xA;- At the option &quot;Is complete condition&quot; I put &quot;return (wManager.Wow.Helpers.Usefuls.ContinentId == (int)wManager.Wow.Enums.ContinentId.Strateholme);&quot; (if you want make profile for another dungeon change SunkenTemple (you can found map name of your current position in &quot;Dev tools&quot; button &quot;Me/Target position&quot;).&#xD;&#xA;- I change &quot;Quest type&quot; to &quot;KillAndLoot&quot; (you don't need to kill mobs to go to dungeon but if you don't add &quot;target entry&quot; WRobot only go to Hotspots).&#xD;&#xA;- 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 &quot;+ Add my position&quot; 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 &quot;Add my position&quot; and edit the file with an editor and add 0,5 to your position (x or y or both)&#xD;&#xA;&#xD;&#xA;3: &#xD;&#xA;- Now, I create new quest to kill http://www.wowhead.com/npc=8443/avatar-of-hakkar named &quot;Kill Avatar Of Hakkar&quot;.&#xD;&#xA;- In this quest I put &quot;True&quot; at the option &quot;Not required in quest log&quot; (because it is not an real quest).&#xD;&#xA;- At the option &quot;Is complete condition&quot; I put &quot;return (wManager.Wow.Helpers.Lua.LuaDoString(&quot;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;&quot;, &quot;completedObj&quot;).ToLower() == &quot;true&quot;);&quot;, 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)&#xD;&#xA;- 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 &quot;Gatherer&quot;, 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.&#xD;&#xA;- (...)&#xD;&#xA;- I make one quest by dungeon objective, in this profile I have juste changed objective number in &quot;Is complete condition&quot; and use quest type &quot;KillAndLoot&quot; for others objectives.&#xD;&#xA;&#xD;&#xA;4:&#xD;&#xA;- Create new quest to exit dungeon (like the quest &quot;Go To Dungeon&quot;, just replace in &quot;Is complete condition&quot; &quot;==&quot; by &quot;!=&quot;).&#xD;&#xA;&#xD;&#xA;5:&#xD;&#xA;- Make/Add steps (with tools &quot;Quests order editor&quot;) (At the end of steps list, add step type &quot;RunLuaCode&quot; with  &quot;ResetInstances()&quot; to reset dungeon and add step type &quot;GoToStep&quot; with the first step number of your profile (default 0) to run this profile in loop automaticly).&#xD;&#xA;&#xD;&#xA;&#xD;&#xA;HELPFULS:&#xD;&#xA;&#xD;&#xA;Get objectives ID:&#xD;&#xA;In main WRobot window, go to tab &quot;Tools&quot;, click on button &quot;Development Tools&quot;, put this text in textbox (without ___):&#xD;&#xA;___________________________________________________________________&#xD;&#xA;local stageName, stageDescription, numCriteria = C_Scenario.GetStepInfo();  &#xD;&#xA;local idObj = 1;&#xD;&#xA;for idObj = 1, numCriteria do&#xD;&#xA; local criteriaString, criteriaType, completed, quantity, totalQuantity, flags, assetID, quantityString, criteriaID, duration, elapsed = C_Scenario.GetCriteriaInfo(idObj);&#xD;&#xA; if (completed) then&#xD;&#xA;  print(idObj .. ' ' .. criteriaString .. ':' .. criteriaID .. ': Completed' );&#xD;&#xA; else&#xD;&#xA;  print(idObj .. ' ' .. criteriaString .. ':' .. criteriaID .. ': In Progress' );&#xD;&#xA; end&#xD;&#xA;end&#xD;&#xA;___________________________________________________________________&#xD;&#xA;&#xD;&#xA;and click on button &quot;Lua (...&quot;, this write in your wow chat list of objectives." />
    <QuestsSorted Action="RunCode" NameClass="// Change WRobot settings:&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.CloseIfPlayerTeleported = false;&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.MaxUnitsNear=99;&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.CanAttackUnitsAlreadyInFight = true;&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.AttackElite = true;&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.AttackBeforeBeingAttacked = false;&#xD;&#xA;wManager.wManagerSetting.CurrentSetting.SearchRadius=40;&#xD;&#xA;" />
    <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
Share on other sites

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.
 

Link to comment
Share on other sites

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 :-)

 

 

Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...