Jump to content

Recommended Posts

7 minutes ago, Arcangelo said:

The bot have no clue how to navigate to thunder bluff - i keeps running into the wall around the city instead of taking the "fly thingy" up

You have to do it the same way, like you would use a ship, or zeppelin.

Here's a example profile:

 

8 minutes ago, Runaro said:

You have to do it the same way, like you would use a ship, or zeppelin.

Here's a example profile:

 

I mean it would be stupid to create a custom path for tunning in 1 quest, but i just though i wouldent be the only one that had trouble with a "major" city.
so i think it should be something droidz should take a look at

46 minutes ago, Arcangelo said:

I mean it would be stupid to create a custom path for tunning in 1 quest, but i just though i wouldent be the only one that had trouble with a "major" city.
so i think it should be something droidz should take a look at

There's atm. no elevator support from the bot itself, for something like that, you have to write something by your own. :biggrin:

You'll encounter this problem not only in Thunder Bluff. ( Undercity, Thousand Needles etc. have elevator's too )

12 minutes ago, Runaro said:

Here's an demonstration, how the bot can manage to use the elevator of Thunder Bluff. ( i was bored, so i created a profile for it :biggrin: )

Took 15 minutes to create, on the base of Stauffenberg's ship profile.

 

Dude I'm well are about how it works xD

Would just be annoying to make it again and again and again for every city in the questing profiles :)

9 minutes ago, Arcangelo said:

Dude I'm well are about how it works xD

Would just be annoying to make it again and again and again for every city in the questing profiles :)

Once created, you can use it simply for all your profiles. :tongue:

But ye i agree, a implemented function directly in WRobot would be helpful.

7 minutes ago, Arcangelo said:

but we have another problem in Vanilla - there are no NPC's on the boats/ships so we cant use them to navigate

Meh, i haven't even used NPC's to move on the Zeppelins, Ships and Elevators.

I just use lua to move on them.http://wowprogramming.com/docs/api_categories#movement ( thanks iMod for this idea )

49 minutes ago, Runaro said:

Meh, i haven't even used NPC's to move on the Zeppelins, Ships and Elevators.

I just use lua to move on them.http://wowprogramming.com/docs/api_categories#movement ( thanks iMod for this idea )

okay fair enough - i would be very happy if you could share that code with me so i could use it in the questing profiles - credit would ofc be made :-)
As that would make the profiles so much more user frindly.

I would ofc credit you with a free profile when it is done , as thanks for the time saved :-)

9 hours ago, Arcangelo said:

okay fair enough - i would be very happy if you could share that code with me so i could use it in the questing profiles - credit would ofc be made :-)
As that would make the profiles so much more user frindly.

I would ofc credit you with a free profile when it is done , as thanks for the time saved :-)

If you wouldn't have removed me from skype, maybe. :biggrin:

No need for a "free" profile, since i have my own profiles, but thanks for the offer.

That being said, i'll not share the full code, because i use it by myself and don't want that a bunch of other people use it too. ( currently fully automating my profile, that's why i created for all Zeppelins, Ships and Elevators profiles )

But, i can send you the profile, with the checks, sleeps and movement behaviour examples. ( coordinates will get removed )

7 minutes ago, Runaro said:

If you wouldn't have removed me from skype, maybe. :biggrin:

No need for a "free" profile, since i have my own profiles, but thanks for the offer.

That being said, i'll not share the full code, because i use it by myself and don't want that a bunch of other people use it too. ( currently fully automating my profile, that's why i created for all Zeppelins, Ships and Elevators profiles )

But, i can send you the profile, with the checks, sleeps and movement behaviour examples. ( coordinates will get removed )

Sure.

It's nothing personal, I've removed like 50 people on Skype I dident talk to, as people was starting to send virus links xD 

But I'll be happy to take the profile with the steps.

 

I'll just post it here, so other users can use it too. ( spoofed the sleeps, removed coordinates and the turn timer )

<?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="Pulse" NameClass="GoTo" />
    <QuestsSorted Action="If" NameClass="ObjectManager.Me.Position.DistanceTo2D( new Vector3(1234, 1234, 1234, &quot;None&quot;) ) &lt; 1&#xD;&#xA;" />
    <QuestsSorted Action="None" NameClass="We are at the boarding point, to the Thunder Bluff Elevator!" />
    <QuestsSorted Action="RunCode" NameClass="// Wait for the Elevator &gt;&#xD;&#xA;&#xD;&#xA;if (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 6) {&#xD;&#xA;  Logging.Write(&quot;[Quester] Elevator is already here - waiting for the next one, to make sure boarding will not fail&quot;);&#xD;&#xA;}&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 6) {Thread.Sleep(500);};&#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Wait for Elevator&quot;);&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &gt; 6) {Thread.Sleep(500);};" />
    <QuestsSorted Action="RunCode" NameClass="// Enter the Elevator &gt; &#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will enter the Elevator in 1 second&quot;);&#xD;&#xA;Thread.Sleep(1000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 900); }" />
    <QuestsSorted Action="None" NameClass="We are on the Thunder Bluff Elevator!" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStart();" />
    <QuestsSorted Action="Wait" NameClass="YourTurnTimerHere" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStop();" />
    <QuestsSorted Action="RunCode" NameClass="// Leave the Elevator &gt; &#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will leave the Elevator in 16 seconds&quot;);&#xD;&#xA;Thread.Sleep(16000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 1200); }" />
    <QuestsSorted Action="EndIf" NameClass="" />
  </QuestsSorted>
  <NpcQuest />
  <Npc />
  <Blackspots />
  <BlackGuids />
  <EasyQuests>
    <EasyQuest>
      <Name>GoTo</Name>
      <QuestId />
      <QuestType>FollowPath</QuestType>
      <QuestClass xsi:type="FollowPathEasyQuestClass">
        <Path>
          <Vector3 X="1234" Y="1234" Z="1234" />
        </Path>
        <IsCompleteWhenAtLastPath>false</IsCompleteWhenAtLastPath>
        <ForceToStartFirstPosition>false</ForceToStartFirstPosition>
        <IsHotSpots>true</IsHotSpots>
        <IsLoop>false</IsLoop>
      </QuestClass>
      <ObjectiveCount1>0</ObjectiveCount1>
      <ObjectiveCount2>0</ObjectiveCount2>
      <ObjectiveCount3>0</ObjectiveCount3>
      <ObjectiveCount4>0</ObjectiveCount4>
      <ObjectiveCount5>0</ObjectiveCount5>
      <ObjectiveCount6>0</ObjectiveCount6>
      <ObjectiveCount7>0</ObjectiveCount7>
      <ObjectiveCount8>0</ObjectiveCount8>
      <ObjectiveCount9>0</ObjectiveCount9>
      <ObjectiveCount10>0</ObjectiveCount10>
	  <AutoDetectObjectiveCount1>false</AutoDetectObjectiveCount1>
      <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2>
      <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3>
      <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4>
      <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5>
      <AutoDetectObjectiveCount6>false</AutoDetectObjectiveCount6>
      <AutoDetectObjectiveCount7>false</AutoDetectObjectiveCount7>
      <AutoDetectObjectiveCount8>false</AutoDetectObjectiveCount8>
      <AutoDetectObjectiveCount9>false</AutoDetectObjectiveCount9>
      <AutoDetectObjectiveCount10>false</AutoDetectObjectiveCount10>
      <CanCondition />
      <IsCompleteCondition>return (ObjectManager.Me.Position.DistanceTo2D(new Vector3(1234, 1234, 1234)) &lt; 1);</IsCompleteCondition>
      <RepeatableQuest>false</RepeatableQuest>
      <NotRequiredInQuestLog>true</NotRequiredInQuestLog>
      <PickUpQuestOnItem>false</PickUpQuestOnItem>
      <PickUpQuestOnItemID>0</PickUpQuestOnItemID>
      <Comment />
      <GossipOptionRewardItem>1</GossipOptionRewardItem>
      <RequiredQuest>0</RequiredQuest>
      <MaxLevel>100</MaxLevel>
      <MinLevel>0</MinLevel>
      <WoWClass>None</WoWClass>
    </EasyQuest>
  </EasyQuests>
</EasyQuestProfile>

 

<?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="Pulse" NameClass="GoTo" />
    <QuestsSorted Action="If" NameClass="ObjectManager.Me.Position.DistanceTo2D( new Vector3(-1313.202, 181.7892, 68.55197, &quot;None&quot;) ) &lt; 1" />
    <QuestsSorted Action="None" NameClass="We are at the boarding point, to the Thunder Bluff Elevator!" />
    <QuestsSorted Action="RunCode" NameClass="// Wait for the Elevator &#xD;&#xA;&#xD;&#xA;if (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 5) {&#xD;&#xA;  Logging.Write(&quot;[Quester] Elevator is already here - waiting for the next one, to make sure boarding will not fail&quot;);&#xD;&#xA;}&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 5) {Thread.Sleep(500);};&#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Wait for Elevator&quot;);&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &gt; 5) {Thread.Sleep(500);};" />
    <QuestsSorted Action="RunCode" NameClass="// Enter the Elevator &#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will enter the Elevator in 10 second&quot;);&#xD;&#xA;Thread.Sleep(10000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 800); }" />
    <QuestsSorted Action="None" NameClass="We are on the Thunder Bluff Elevator!&#xD;&#xA;" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStart();" />
    <QuestsSorted Action="Wait" NameClass="350" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStop();" />
    <QuestsSorted Action="RunCode" NameClass="// Leave the Elevator&#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will leave the Elevator in 1 seconds&quot;);&#xD;&#xA;Thread.Sleep(10000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 1200); }" />
    <QuestsSorted Action="EndIf" NameClass="" />
  </QuestsSorted>
  <NpcQuest />
  <Npc />
  <Blackspots />
  <BlackGuids />
  <EasyQuests>
    <EasyQuest>
      <Name>GoTo</Name>
      <QuestId>
        <int>99</int>
      </QuestId>
      <QuestType>FollowPath</QuestType>
      <QuestClass xsi:type="FollowPathEasyQuestClass">
        <Path>
          <Vector3 X="-1313.525" Y="182.4907" Z="68.55195" />
        </Path>
        <IsCompleteWhenAtLastPath>false</IsCompleteWhenAtLastPath>
        <ForceToStartFirstPosition>false</ForceToStartFirstPosition>
        <IsHotSpots>true</IsHotSpots>
        <IsLoop>false</IsLoop>
      </QuestClass>
      <ObjectiveCount1>0</ObjectiveCount1>
      <ObjectiveCount2>0</ObjectiveCount2>
      <ObjectiveCount3>0</ObjectiveCount3>
      <ObjectiveCount4>0</ObjectiveCount4>
      <ObjectiveCount5>0</ObjectiveCount5>
      <AutoDetectObjectiveCount1>true</AutoDetectObjectiveCount1>
      <AutoDetectObjectiveCount2>false</AutoDetectObjectiveCount2>
      <AutoDetectObjectiveCount3>false</AutoDetectObjectiveCount3>
      <AutoDetectObjectiveCount4>false</AutoDetectObjectiveCount4>
      <AutoDetectObjectiveCount5>false</AutoDetectObjectiveCount5>
      <CanCondition />
      <IsCompleteCondition>return ObjectManager.Me.Position.DistanceTo2D(new Vector3(-1313.525, 182.4907, 68.55195, "None")) &lt; 1;</IsCompleteCondition>
      <RepeatableQuest>false</RepeatableQuest>
      <NotRequiredInQuestLog>false</NotRequiredInQuestLog>
      <PickUpQuestOnItem>false</PickUpQuestOnItem>
      <PickUpQuestOnItemID>0</PickUpQuestOnItemID>
      <Comment />
      <GossipOptionRewardItem>1</GossipOptionRewardItem>
      <RequiredQuest>0</RequiredQuest>
      <MaxLevel>100</MaxLevel>
      <MinLevel>0</MinLevel>
      <WoWClass>None</WoWClass>
    </EasyQuest>
  </EasyQuests>
</EasyQuestProfile>

 

TurnRightStop(); dosent seems to work in vanilla as well :/

20 minutes ago, Arcangelo said:

TurnRightStop(); dosent seems to work in vanilla as well :/

Idk why, but you modified stuff you shouldn't modify.

And the GoTo pulse was having a AutoObjectiveCount + QuestID, without telling the Bot, to only do it, while not having this Quest.

The TurnRightStop function is in the Vanilla API, idk why he's not doing it for you. ( gonna test it on a vanilla server )

<?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="Pulse" NameClass="GoTo" />
    <QuestsSorted Action="If" NameClass="ObjectManager.Me.Position.DistanceTo2D( new Vector3(-1313.525, 182.4907, 68.55195, &quot;None&quot;) ) &lt; 1" />
    <QuestsSorted Action="None" NameClass="We are at the boarding point, to the Thunder Bluff Elevator!" />
    <QuestsSorted Action="RunCode" NameClass="// Wait for the Elevator &#xD;&#xA;&#xD;&#xA;if (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 5) {&#xD;&#xA;  Logging.Write(&quot;[Quester] Elevator is already here - waiting for the next one, to make sure boarding will not fail&quot;);&#xD;&#xA;}&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &lt;= 5) {Thread.Sleep(500);};&#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Wait for Elevator&quot;);&#xD;&#xA;while (ObjectManager.GetWoWGameObjectByyId(4171).FirstOrDefault().GetDistance &gt; 5) {Thread.Sleep(500);};" />
    <QuestsSorted Action="RunCode" NameClass="// Enter the Elevator &#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will enter the Elevator in 1 second&quot;);&#xD;&#xA;Thread.Sleep(1000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 800); }" />
    <QuestsSorted Action="None" NameClass="We are on the Thunder Bluff Elevator!&#xD;&#xA;" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStart();" />
    <QuestsSorted Action="Wait" NameClass="350" />
    <QuestsSorted Action="RunLuaCode" NameClass="TurnRightStop();" />
    <QuestsSorted Action="RunCode" NameClass="// Leave the Elevator&#xD;&#xA;&#xD;&#xA;Logging.Write(&quot;[Quester] Will leave the Elevator in 16 seconds&quot;);&#xD;&#xA;Thread.Sleep(16000);{ wManager.Wow.Helpers.Move.Forward(Move.MoveAction.PressKey, 1200); }" />
    <QuestsSorted Action="EndIf" NameClass="" />
  </QuestsSorted>
  <NpcQuest />
  <Npc />
  <Blackspots />
  <BlackGuids />
  <EasyQuests>
    <EasyQuest>
      <Name>GoTo</Name>
      <QuestId>
        <int>99</int>
      </QuestId>
      <QuestType>FollowPath</QuestType>
      <QuestClass xsi:type="FollowPathEasyQuestClass">
        <Path>
          <Vector3 X="-1313.525" Y="182.4907" Z="68.55195" />
        </Path>
        <IsCompleteWhenAtLastPath>false</IsCompleteWhenAtLastPath>
        <ForceToStartFirstPosition>false</ForceToStartFirstPosition>
        <IsHotSpots>true</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 ObjectManager.Me.Position.DistanceTo2D(new Vector3(-1313.525, 182.4907, 68.55195, "None")) &lt; 1;</IsCompleteCondition>
      <RepeatableQuest>false</RepeatableQuest>
      <NotRequiredInQuestLog>true</NotRequiredInQuestLog>
      <PickUpQuestOnItem>false</PickUpQuestOnItem>
      <PickUpQuestOnItemID>0</PickUpQuestOnItemID>
      <Comment />
      <GossipOptionRewardItem>1</GossipOptionRewardItem>
      <RequiredQuest>0</RequiredQuest>
      <MaxLevel>100</MaxLevel>
      <MinLevel>0</MinLevel>
      <WoWClass>None</WoWClass>
    </EasyQuest>
  </EasyQuests>
</EasyQuestProfile>

 

I diden't use the quest id - just had a return ObjectManager.Me.Position.DistanceTo2D(new Vector3(xxxxxxxxxxxxx)) < 1 in it to make sure i was in the right place.

 

but thats not really the problem, then codes runs fine, it just don't have any idea when the elevation is there:

it have the exact same distance, no matter where it is top/bottom/middle

 

and i belive that have always been the problem - that the bot object.distance couden't detect the boats/zep/elevation and so on

4 minutes ago, Arcangelo said:

@Droidz is it possible for you to fix the distance counter on those objects ?

Tested on a 2.4.3 and 3.3.5a server, works perfectly.

I'll come back, when i tested it on a 1.12.1 server. ( need to find quick one and create an account :biggrin: )

2 minutes ago, Runaro said:

Tested on a 2.4.3 and 3.3.5a server, works perfectly.

I'll come back, when i tested it on a 1.12.1 server. ( need to find quick one and create an account :biggrin: )

I copyed your code with cords and stuff (you can see them in the youtube video...) and still the same problem in vanilla.

Anyway guess ill have a look at it later, when I have completed the profiles.

When trainers / Class quest and all that stuff have to be implanted.

Thanks for trying to help @Runaro 

I might have a work around for all the distance problem - i belive a code with timestamp could be made - as the boats and zeppelins and all other objects runs in a loop

2 hours ago, Arcangelo said:

Anyway guess ill have a look at it later, when I have completed the profiles.

And trainers / Class quest and all that stuff have to be implanted.

Thanks for trying to help @Runaro 

I might have a work around for all the distance problem - i belive a code with timestamp could be made - as the boats and zeppelins and all other objects runs in a loop

Okay tested the object distance check and it really doesn't work in Vanilla 1.12.1. ( TurnRight via lua doesn't work too, so just use ObjectManager.Me.Rotation  )

Works fine in 2.4.3, 3.3.5a and above.

@Droidz fix please :biggrin:

  • 2 weeks later...

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
×
×
  • Create New...