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.
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
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.
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.
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.
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?
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)