Page 1 of 7 123 ... LastLast
Results 1 to 10 of 63
Like Tree4Likes

Thread: [Plugin] Gift Of Flight - TEST - Uses flying mount in quest or grind profiles

  1. #1
    Buddy
    Join Date
    15.01.2010
    Posts
    288

    Default [Plugin] Gift Of Flight - TEST - Uses flying mount in quest or grind profiles

    DO NOT USE AFK

    What does it do ?

    To begin with, the idea behind this plugin was to save time when repairing or selling junk by flying to and from the repair/sell NPC. But then I thought, why stop there? It will fly you to and from quest giving NPCs, to and from repair/sell/buy NPCs, to your grind and quest areas (both Grind and Quest profiles) etc.

    What doesn't it do ?

    It (at present) will not interfere with Custom Quest Behaviours used in questing profiles. RunTo, FlyTo, InteractWith, Escort, Vehicle transport and some of the UseItem type CBs.

    What is it for ?

    I've been using it to gain the quest achievements for each zone and continent as I instance boosted my toons to 60 before I started questing. But it should work fine for simple quest levelling or grinding profiles. (Bad landings in packs of mobs is on my todo list)

    What do I need ?

    You need a toon above level 60 with flying skill and a flying mount (with HB flying mount support). You will also need to have some spare time as I don't recommend using this plugin AFK yet.

    What do I need to know ?

    So far I have only tested it with Horde characters so I have no idea how it will perform for Alliance. It has only been tested by a limited number of people with varying levels of HB experience (so only use at your own risk). There are instructions as to how it works and what to do to get out of a “failed landing” situation etc at the end of the post.

    How does it work ?

    It works by saving “hotspots” which I refer to as “safe landing spots”. When you want to travel to a place the plugin has not yet “seen”, it will scan the area for places (in theory) HB's ground mounted navigation can handle to get you to the target NPC/Objective. It “scans” 100 locations and attempts to find a navigable path to the target for each spot. Any that are successful are stored for later use as “un-tested/possible” saved spots. The landing spot found to have the shortest ground mounted travel distance is chosen to be the preferred path. If it lands successfully within a time limit, the landing spot is saved and will used every time the bot needs to return to that area. If it fails to land because the target is inside a building, underground or in a generally difficult place to land it should choose the next closest landing spot and repeat until either a “safe landing spot” is found or if no safe landing spots are found it will return to either a previously saved landing spot somewhere else, or the place from which you attempted to fly from (which ever is closer), and then it will use a ground mount to continue. In addition to this, every 10 seconds it will do a small scan of the area around the character looking for viable landing spots for future use. This way the scans will become quicker after using it for a while. Every now and then it will purge tightly grouped “untested” saved landing spots, so you don't end up with 1000's of landing spots in a small area. It will automatically blackspot any area in which it has failed to land and if it exhausts all available options the target is “temporarily” blacklisted. (the blacklist is not saved to file, stopping the bot will reset the blacklist. Blackspots are saved to file)

    Why have I released this when it isn't 100% perfect ?

    To test every eventuality would take a lifetime even though there are a few of us testing it. So I've released this to first gauge whether it is a plugin that will be worth while to the community and secondly, every safe landing spot recorded can be amalgamated into a set of distributable file to go with the plugin. So any feedback/logs/saved spots will be gratefully received.

    Instructions

    Anywhere within 100 yards is considered a safe/good landing distance. If the target is closer than 100 yards the plugin won't do anything. If the current point of interest (POI) is a “Hotspot” used in grind or quest profiles, 300 yards is considered a safe landing distance (to avoid flying over quest objective mobs).

    Hotspot = Safe landing spot = X Y Z
    Blackspot = Not safe landing spot = X Y Z Radius

    Both are stored in .xml files in the GiftOfFlight folder. They are continent specific, so be careful not to mix them up if you are adding/removing manually. If it fails to land and you want to fix it, the best option is to stop the bot, find a good landing location near to the target with little or nothing above to obstruct the flight and landing. Take a hotspot from HB for the location and add it to the end of the appropriate .xml file (be sure to pick the correct continent). The same applies to blackspots, if you find a place you know it won't be able to land (ie cleft of shadows in Orgrimmar, underground, or all of Undercity). You can record a blackspot with HB as you normally would and add this to the appropriate blackspot file. X Y Z and RADIUS are required. Any manually added/removed “spots” must remain EXACTLY as they come from HB, one “ “ space in the wrong place break it.

    *Edit* If it needs to generate 'new' safe landing spots, it can take anything from 0.2 to 120 second if it takes more than 5 mins, something is wrong. Stop the bot wait a few second for the "background thread" to finish and save to file. Then restart. If all else fails, complete the objective and try again.

    Simple Setup

    Install the zip file to your \plugins folder, unzip so that you have \HB\plugins\GiftOfFlight\Blah Blah. Find a ground mount (or flying if you want) profile, quest profiles are more interesting if you are watching it. I find the 1-60 profiles give a good example of what it can do, as these aren't designed to use flying mounts. Enable plugin and press start.

    Side note

    I am not an experienced C# programmer and I know my code isn't pretty! I've left a lot of “commented” code in there for my own reference. If you don't like it, don't use it. But if you do have any suggestions or improvements I'd be happy to hear them.

    Good luck and DONT AFK (yet)

    EDIT Attachment removed - Latest version(s) is available later in the thread
    Last edited by thephoenix25; 14.10.2011 at 20:51.
    ZoOoOoM, cpy and Stark.Jr like this.

  2. #2
    Lifetimer
    Join Date
    17.06.2010
    Posts
    1,253

    Default

    Sounds interesting

    Just to clarify one thing: The safe spots you are mentioning, does this mean that it, in theory, will work like Ezfly or the other plugins the will make the bot fly a bit up and then to a hotspot? (though with adding safe zones, which sounds awesome)?
    Protect & Serve + all LazyRaider DPS CCs located on the Protect & Serve SVN (found HERE)
    I advice all to read the "Read Me"

    Remember, if you are having problems - attach a log
    Tried LazyRaider yet?

  3. #3
    Lifetimer
    Join Date
    28.02.2010
    Location
    United States
    Posts
    3,229
    Blog Entries
    1

    Default

    Looks promising. I'll test tomorrow.

  4. #4
    Buddy
    Join Date
    15.01.2010
    Posts
    288

    Default

    Quote Originally Posted by Venus112 View Post
    Sounds interesting

    Just to clarify one thing: The safe spots you are mentioning, does this mean that it, in theory, will work like Ezfly or the other plugins the will make the bot fly a bit up and then to a hotspot? (though with adding safe zones, which sounds awesome)?
    No, whilst in a "grind area" it will use a ground mount most/all the time. The same as normal, but it will use Flightor to fly to and from quests/repair/sell etc. It will take the most direct route possible (as long as the "target" is on the same continent). I've not seen Ezfly, but I have used LetMeFly. This does not work in the same way, hotspots in grind areas will/should not be affected. It should only affect travelling to and from objectives.

    For example set a grind profile in Uldum running, with your toon in Orgrimmar.

    It will scan Uldum for the best landing spot near your first hotspot
    Fly to the landing location in Uldum
    continue grind profile as normal

    *One note though* If your hotspots are more than 300 yards apart (grind or quest profiles) it may bug

  5. #5
    Buddy
    Join Date
    15.01.2010
    Posts
    288

    Default

    New update added to the first post with bugfix

  6. #6
    Buddy
    Join Date
    27.09.2010
    Posts
    5

    Default

    I like the idea of this plugin.

    I didn't have time to look at your main logic but I looked at your helper files.
    Like you mentioned this code was a bit messy.

    I did a bit of cleaning on that code.

    This piece of code will create a slightly different xml file though which is more xml-comformant.

    This means it will create xml files like:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Blackspots>
      <Blackspot X="1" Y="2" Z="3" Radius="12" Height="0" />
      <Blackspot X="4" Y="5" Z="2" Radius="13" Height="12" />
    </Blackspots>
    or

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Hotspots>
      <Hotspot X="1" Y="2" Z="3" />
      <Hotspot X="4" Y="1" Z="2" />
    </Hotspots>
    This means, you cannot load your xml files untill you change them to be xml-comformant.

    However you can use these files if you want to.
    Attached Files Attached Files

  7. #7
    Lifetimer
    Join Date
    24.02.2011
    Location
    What is Wohnort?
    Posts
    842

    Default

    Sounds good.

    Question, i for one have a leather farming profile that i can not get to while on ground mount, result i must change the profile to a PB profile or use your plugin, now but there is a problem, ground nav can not get a route the the vendor from here, would it be possible to make the plugin fly anyway?

  8. #8
    Buddy
    Join Date
    15.01.2010
    Posts
    288

    Default

    Quote Originally Posted by Bengan12 View Post
    Sounds good.

    Question, i for one have a leather farming profile that i can not get to while on ground mount, result i must change the profile to a PB profile or use your plugin, now but there is a problem, ground nav can not get a route the the vendor from here, would it be possible to make the plugin fly anyway?
    I have been working on a solution to this, and I think this next version may now be able to handle that scenario. It doesn't require a ground mount path back from the target. I've not tested much with grind profiles, so I'd be interested to see how it works out.

    Quote Originally Posted by Weyoun View Post
    I like the idea of this plugin.

    I didn't have time to look at your main logic but I looked at your helper files.
    Like you mentioned this code was a bit messy.

    I did a bit of cleaning on that code.

    This piece of code will create a slightly different xml file though which is more xml-comformant.

    This means it will create xml files like:

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Blackspots>
    <Blackspot X="1" Y="2" Z="3" Radius="12" Height="0" />
    <Blackspot X="4" Y="5" Z="2" Radius="13" Height="12" />
    </Blackspots>
    or

    Code:
    <?xml version="1.0" encoding="utf-8"?>
    <Hotspots>
    <Hotspot X="1" Y="2" Z="3" />
    <Hotspot X="4" Y="1" Z="2" />
    </Hotspots>
    This means, you cannot load your xml files untill you change them to be xml-comformant.

    However you can use these files if you want to.
    Hi Weyoun,
    Thanks for the xml code, I'm self taught so I've got some "holes" in my knowledge. I'll try to standardise the format, with help from your code, when I've got the core working smoothly.


    New release following in few mins

  9. #9
    Buddy
    Join Date
    15.01.2010
    Posts
    288

    Default

    Hi,

    Version 2

    Features

    Will fly to :

    Pick up quests
    Hand in quests
    Repair/sell NPCs
    Quest objectives
    Use Item tasks
    "Forced MoveTo" tasks

    Generates new landing spots for areas it's not been to
    Learns and remembers landing spots as it progresses
    Failed landing attempt recovery with alternative landing sites
    Automatic blacklisting and blackspots of target landing sites

    Info
    I have included a HORDE (ALLI read further down) quest profile, which you can use to try it out. For those out that know questing profiles, here is the quest order section :
    PHP Code:
    <QuestOrder>
     
      <!-- 
    Azshara quest pickup -->
      <
    PickUp QuestName="Venison for the Troops" QuestId="14118" GiverName="Ag'tor Bloodfist" GiverId="8576" />
     
      <!--
    Valley of Strength -->
      <
    RunTo QuestId="14118" X="1583.697" Y="-4388.918" Z="17.5777" /> 
     
      <!-- 
    Valley of Honor -->
      <
    RunTo QuestId="14118" X="2006.488" Y="-4697.69" Z="28.82214" /> 
     
      <!-- 
    Hunter trainer -->
      <
    RunTo QuestId="14118" X="2106.94" Y="-4616.56" Z="49.2539" /> 
     
      <!-- 
    Valley of Honor -->
      <!--<
    RunTo QuestId="14118" X="2055.385" Y="-4787.111" Z="27.84274" /> -->
     
      <!--
    Remove brackets to complete quest objective-->
      <!--<
    Objective QuestName="Venison for the Troops" QuestId="14118" Type="CollectItem" ItemId="47038" CollectCount="15" />-->
     
     
     
      <!-- 
      *****************************************************
      
    This is how it deals with NPCs indoors or underground 
      
    -->
      <!-- 
    Warrior trainer -->
      <
    RunTo QuestId="14118" X="1960.88" Y="-4788.98" Z="39.11325" /> 
     
      <!-- 
    Repair -->
      <If 
    Condition="((HasQuest(14118)) &amp;&amp; (!IsQuestCompleted(14118)))" >
       <
    CustomBehavior File="ForceSetVendor" DoRepair="True" /> 
      </If>
     
      <!-- 
    WarLord XXXX -->
      <
    RunTo QuestId="14118" X="1667.021" Y="-4344.587" Z="27.36131" /> 
     
      <!-- 
    Turn in quest (WONT TURN IN IF OBJECTIVE IS NULL) -->
      <
    TurnIn QuestName="Venison for the Troops" QuestId="14118" TurnInName="Ag'tor Bloodfist" TurnInId="8576" />
     
     </
    QuestOrder
    The profile picks up a low level quest from just outside Org "Venison for the Troops" and completes it during the profile. If you have already done this quest you will need to edit the profile and add another quest and QuestId s, or remove it completely. The QuestId of a valid quest available to you is essential for most quest profiles to work correctly.

    If you don't know how to edit quest profiles, you can use a low level quest profile, but it sometimes take a while to see what it is doing.

    How to use it (Alliance & Horde)
    I will be uploading this without and of the settings files...... Which means it'll have to fend for it's self until it's learnt some of the better places to land. So in theory, there is no reason this wont work for Alliance, but I've never tested it. (It will deffinatly go wrong if you use it on both Horde and Alliance as the safe landing spots are not yet seperated by faction!)

    Sometimes up to 120 seconds is required to generate a landing spot, but once it's learnt it, it will remember it.
    Attached Files Attached Files

  10. #10
    Lifetimer
    Join Date
    28.02.2010
    Location
    United States
    Posts
    3,229
    Blog Entries
    1

    Default

    You have integrated my most recent project into your plugin. The fly to repair/mail.
    Thank you.

    I don't mean this in a richard cranium way. I mean you saved me some work.

 

 
Page 1 of 7 123 ... LastLast

Bookmarks

Posting Permissions

  • You may not post new threads
  • You may post replies
  • You may not post attachments
  • You may not edit your posts
  •