• Visit Rebornbuddy
  • [Alpha]Full world Traveling without Teleporting

    Discussion in 'Plugins' started by dark wolf, Mar 22, 2015.

    1. dark wolf

      dark wolf New Member

      Joined:
      Mar 11, 2015
      Messages:
      95
      Likes Received:
      2
      Trophy Points:
      0
      Hi i made this Order Tag which will allow you to travel e.g. from Central shroud to AlePort wihtout using the Aethernet but using airships ferries ....
      As stated this is still alpha and the world is not expecially small. So there will be bugs and also no all Ferries or rides might already work.
      Also the code is not very readable.
      So if you find some issue do not hessitate to tell me I will try to fix and develop this further as my time allowes

      To your Orderfile you just have to add
      the Tag
      <Travel To="ZoneId" />

      .e.g. <Travel To="132"/> and if you are currently standing in Central thalanan if will bring to to the Zone 132 which is Girandia.

      Todo:
      Support all needed NPC's
      Implement a stuck routine -- Done via Stuck plugin.
      Fix a couple of bugs
      allow alternative route
      ....


      [HR][/HR]
      Here The OrderTag pleaes Put it in Plugins\OrderBotTags
      [

      ATTACH]175535[/ATTACH]
      View attachment Travel_v0.0.2.cs
      View attachment Travel.cs


      15.04: Updates:
      Fixed a bug that caused a problem with traveling form Limsa to Giranda
      Fixed some other small things.
      Known problems: The ferries inside areas. Have to think how to support them.

      30.03: Added new version:
      Supports more NPC's and using the suggested Log function.

      More to come on time
      If you like or dislike my work please let me know.
       

      Attached Files:

      Last edited: Apr 15, 2015
    2. Grimmjow

      Grimmjow New Member

      Joined:
      Nov 11, 2013
      Messages:
      118
      Likes Received:
      1
      Trophy Points:
      0
      this is actually something i've been looking for!

      Thank you!
       
    3. mastahg

      mastahg Administrator Staff Member

      Joined:
      Feb 27, 2011
      Messages:
      5,231
      Likes Received:
      364
      Trophy Points:
      83
      Looks promising, there are a few things you could improve on.


      Use the built in Log(...) function for profile behaviors.
      Inside the class AreaInfo, instead of using X Y Z as seperate variables, just define a Vector3 and when you are initalizing the values just do new Vector3(410.657715f,-10.786478f,30.619648f) when you add the f to the end of a constant itll be stored as a float.
      We have a built in graph class you may want to use instead of rolling your own, its inside the Pathfinding namespace
      Your behavior could easily be converted to a coroutine and would look much cleaner, look at the new included botbases that use coroutines.
      pathing class should be made static
       
    4. dark wolf

      dark wolf New Member

      Joined:
      Mar 11, 2015
      Messages:
      95
      Likes Received:
      2
      Trophy Points:
      0
      hi thanks.I know that there is a lot of room for improvement. I just fiddled something fast together which i missed in this bot. Problem is that i have only very limted time for coding.So if someone wants to enhance it be my guest. thats also why I did not put the whole navigation data in a encrypted binary format . Never the less i will update it an also try to integrate some of your ideas.
       
      Last edited: Mar 28, 2015
    5. WoWuser123

      WoWuser123 Member

      Joined:
      Aug 4, 2011
      Messages:
      371
      Likes Received:
      4
      Trophy Points:
      18
      Would it be horribly difficult to expand this (for someone smarter then me that knows C#)?

      Right now in questing profiles you pretty much have to do zone checks on every quest step or you get dozens of people complaining that the profile doesn't work. Most of the time they're just in the wrong zone and the profile doesn't check for that. What I'm thinking about is the following:
      Tag <Destination> with the following parameters
      - MapId (Map Id of where you need to be, your destination - Mandatory)
      - SubMapId (SubMap Id destination, optional)
      - TeleportMapId (MapId to teleport to, optional)
      - TeleportAetherId (Aetheryte Id to teleport to, optional and mutually exclusive with TeleportMapId)
      - XYZ (build-in MoveTo to where you want to be on the map, optional).

      I'm sure someone with more profile writing experience can come up with some other interesting paramenters, but this would be the general idea of what I had in mind. It would remove a lot of bloat to some of the questing profiles and make it much easier to read.

      Eg.
      Code:
      <Destination MapId="128" TeleportId="129" XYZ="-61.18506, 42.29994, -161.9528"/> <!-- Upper Limsa Lominsa - Cullinarian Guild -->
      
      This would do the same as
      Code:
                  <If Condition="not IsOnMap(128)">
                      <If Condition="not IsOnMap(129)">
                          <TeleportTo Name="Limsa Lominsa" AetheryteId="8" />
                      </If>
                      <If Condition="IsOnMap(129)">
                          <MoveTo Name="Limsa Lominsa Upper Decks" Distance="0" XYZ="-63.99969, 42.01626, -129.1435"/>
                      </If>
                  </If>
                  <If Condition="IsOnMap(128)">
                      <MoveTo Name="Charlys" Distance="1" UseMesh="True" XYZ="-61.18506, 42.29994, -161.9528"/>
                  </If>
      
      One of these days I'll really have to learn C#. I'm having more fun with creating stuff for the bot and see my character do it then actually playing the game, just missing the required C# knowledge for the more complicated stuff.
       
    6. dark wolf

      dark wolf New Member

      Joined:
      Mar 11, 2015
      Messages:
      95
      Likes Received:
      2
      Trophy Points:
      0
      I will think of it. But its nothing which can be implemented very fast.
      I put it on my todo list
       
    7. Sodimm

      Sodimm Member

      Joined:
      Nov 8, 2014
      Messages:
      383
      Likes Received:
      7
      Trophy Points:
      18
      I've been tinkering with an added ZoneCheck for existing OrderBot tags (adding a new behavior). What seems simple in theory is turning out to bring up quite a few errors. But then my C# isn't that great. I'll let you all know if I can get it functional. Which I'm hoping I can do as it's one of the biggest caveats of OrderBot, and makes AFKable profile creation a long winded process.
       
    8. Neverdyne

      Neverdyne Community Developer

      Joined:
      Sep 12, 2014
      Messages:
      644
      Likes Received:
      18
      Trophy Points:
      18
      By the way, quick question for you guys making questing profiles. Let's say in order to accept a quest you must make a few dialog choices, how are you currently handling that?
       
    9. Sodimm

      Sodimm Member

      Joined:
      Nov 8, 2014
      Messages:
      383
      Likes Received:
      7
      Trophy Points:
      18
      Usually with a code chunk with remotewindows and talknext. or via a custom behavior file (same principle, but without the need for so many lines of code). See my most recent profile (PostMoogle 1-10)
       

    Share This Page