• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • ExilebuddyBeta Forsaken Masters Guide

    Discussion in 'Archives' started by pushedx, Aug 26, 2014.

    Thread Status:
    Not open for further replies.
    1. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      ExilebuddyBeta

      There's a ton of information to cover, so in an attempt to avoid a massive unreadable thread, here's a summarization of everything users need to know.

      0. Please use the Support forum to post all the new bugs and issues you run into. I expect there to be a lot of feedback and stuff to look though, so you might not get a reply right away. However, I will read though all poses and comments. As per regular Buddy product rules, please attach a log when making a report, as it helps us identify potential problems that users might not be aware of.

      1. Exilebuddy is currently going though a complete project restructuring. Please bear with us as we get the project reorganized, and brought back up to date for PoE 1.2+. In short, EB has been rewritten to work properly with 1.2+, and all previous logic and API stuff has been removed/changed. This was unavoidable, and while a lot of preparations were made for it, the actual amount of changes necessary for 1.2 was more than expected.

      2. Users will be compensated for the downtime the past week since the update, as well as some additional time over the next week as everything is retested and updated. More details about this will come when we reach that point.

      3. This Beta release has a very specific purpose: test portions of the new API, and the basic grind bot logic created for 1.2. This is not the final version of Exilebuddy. It lacks a lot of basic features and logic, as there was simply not enough time to add old things back without making users wait another week without anything to test.

      4. The current state of Beta is as follows: There will most likely be bugs and possibly crashes to work though. Please do not test on a character that you cannot afford to have die.
      You need to register and have one post to see spoilers! 5. A stable "Release" version of Exilebuddy will not be available for some time. As mentioned in #1, the old bot/API is gone. It would be very helpful if everyone tried out Beta and reported issues with the new setup to help speed up development, but we understand a lot of users are looking for something that Beta is currently not.

      Download: ExilebuddyBeta (Please read this entire thread first though.)
      Additional Requirements

      API
      • Steam offsets are not uploaded yet. A few Steam specific changes need to be made and tested first.
      • The login Gateway cannot be set though the API anymore. This has been temporarily disabled as a new method to change it is needed.
      Previous versions offered a lot of reusable coroutines and functions to do various things. These have all been removed as they were no longer compatible with the new API. As time goes on, some of them will make their way back, but some will not due to the way logic has to work with this game. For example, a general "move to and interact with" is too generic to be useful now. Depending on what you are going to interact with, the logic has to change, and how you handle failures varies case to case.

      BasicGrindBot

      Path of Exile's "Key Pickup" setting needs to be enabled (Options -> Ui)
      The "Move only" skill needs to be on your skill bar, and not in Slot 1 or bound to left mouse button.
      Make sure your camera is zoomed out to the client max.

      This bot implementation is coded to follow a very specific set of logic. All bot logic is implemented though the GrindTask. While users can add their own tasks to this bot implementation by design, it's not recommended due to the incompleteness of this bot implementation. There are a few known issues that users might come across. Due to terrain changes, it is possible for the bot to hug the walls too closely and get stuck. Pathfinding will have to be tweaked some to avoid this. In addition, it's possible for certain blocking objects, such as Strongboxes, to be placed in a way where the bot gets stuck trying to travel near them, Please remember that the current implementation requires user interactions, and do not leave the bot unattended.

      First, the GrindTask only executes logic when it's not in town, a hideout, and the map room. If the character is dead, it will execute standard resurrect logic (as before) and choose the checkpoint if possible, and then the town. If neither appears to work, the bot will logout to the character selection screen. The GrindTask does not track deaths in its current implementation, but that feature will be re-added in the future.

      The next thing the GrindTask does is clear any level skill gem icons from the main HUD. This is a new feature, and it's done using the new APII as the level skill gem API now uses the Inventory panel. The current GrindTask implementation does not offer skill gem leveling yet, but will in the future.

      In the past, there were cases where certain chest clusters would trap the bot, and it would get stuck. GrindTask contains some basic logic to identify this scenario and try to avoid it. It will try to break any destroyable chests within close range before doing anything else.

      The GrindTask will then attempt to open any close by doors. Additional logic has been added to try and identify any cases where the bot gets stuck behind a door, and it will logout if it gets trapped for too long and cannot make progress. All varities of doors have been tested, so there should not be any side effects of this logic.

      At this point, the GrindTask will now call into the current CRs combat logic. This is a big change compared to how previous versions work, because the bot attempted to dictate when it was in combat. Now, it's the CR's job to handle this. This change was made to allow various long term issues to be properly solved. For example, Shrine logic is now handled though CRs. This allows a CR to try and grab a shrine when it feels is best, based on the current client state. ExampleRoutine does not handle Shrines yet though, but it has placeholder code. This new design, allows the CR to do things that had to be coded around before, such as raising minions when there were no enemies on the screen. The CR can also do things like stop moving if the user is punctured or trigger a town run if flasks are gone before any mobs get close.

      When the CR returns false, to signal no combat logic executed, the GrindTask then moves into looting items and chests. The new design for looting is to cache locations of things the bot needs sto pick up or open, and then simply visit those locations one by one. As a result, BasicGrindBot will have a lot of backtracking, but it does it by design. This new design is in place to solve the long time issue of the bot running back and forth between a chest or an item and doing something else. However, as mentioned before, the current implementation is just something basic that should work. If the inventory is full, the bot will create a portal and go to town and then stop to wait for user intervention.

      After all chest / item looting is completed, the GrindTask falls back into explore mode. Explore logic has finally been updated to fix a lot of performance issues and other design flaws with the previous systems. It now supports completion %, and is sorely used for visiting the entire area. Users cannot change the completion percent yet, because the current GrindTask is setup specifically to full explore and grind an entire area. However, in other implementations, this can be changed.

      Finally, when the GrindTask has nothing left to do, it will create a portal to town and take it. If no portals are in the inventory, it will simply logout to the character selection screen. This behavior is not configurable currently, but it's just for testing short term.

      ExampleRoutine

      Path of Exile's "Always Highlight" setting will be toggled as needed, far less frequently than it used to. There might be some cases where it doesn't keep the state, but those can be fixed soon.

      The new default routine for Exilebuddy is setup in a different way than the previous Release and Beta versions were. The goal with this routine, is to design around what's on the skillbar, rather than trying to handle every skill in the game. Numerous API improvements have been made to make this possible, but there will never be a way for the CR to use your skills as you'd like them to. As a result, CRs can be designed and used anyway devs want them to, but the one we will provide will be setup in the manner described.

      At the top of ExampleRoutine.cs are user settings:
      Code:
              private int _meleeSlot = -1;  // The slot that has your main melee skill. When set to -1, CR does not use melee skill
              private int _rangedSlot = -1; // The slot that has your main ranged skill. When set to -1, CR does not use ranged skill
      
              private int _combatRange = 35; // Only attack mobs within this range. Do not set too high, as the cursor will overlap the GUI.
      
              private int _rangedAttackDistance = 10; // The distance to use a ranged skill. I.e., use melee under this value.
      
              private bool _alwaysAttackInPlace = false; // Should the CR always attack in place.
      
              private const int FlameblastCharges = 5; // How many flameblast charges we want to reach before casting.
      
      These need to be adjusted as needed to test this routine.

      This routine will auto-detect and use a specific set of skills as well: Raise Zombie, Raise Spectre, Animate Weapon, Animate Guardian, and Flameblast. The code has to be changed to adjust how they are used, but example logic is there. Flameblast will be used when the character is surround by 4 or more mobs, and the animate skills are used on items that typically wouldn't match item filters, but the item filters are not checked. Zombies and Spectres will be raised as bodies are encountered if needed.

      One of the changes from previous versions, is there is no longer a targeting class. Routines are responsible for handling targeting, because the combat responsibility lies with the CR as the bot no longer handles any aspect of it. This doesn't really change much, as specialized CRs would need their own targeting system in the past anyways. The targeting in ExampleRoutine is simply based on distance and the ability to attack. It does not check allies cannot die or other auras, or prioritize things like necros. It will in the future, but for this release, please make sure to watch what the routine does. Support for the new totem is included though, so the bot will not try to target or attack the invincible damaging totems found in some mission areas.

      Lastly, the ExampleRoutine implements a system to help avoid getting stuck in back and forth cases. It will store a location it needs to move to, and then move to it. It will only stop if there are mobs close by that it should kill instead. That is necessary for cases where a leaping monster is on the low ground, and the bot is on the high ground and moves towards the low ground, and then the monster jumps up on the high ground. This system might need some more tweaking, but the logic is necessary to avoid that long time bot issue.

      One mechanic not implemented in ExampleRoutine which is very useful, is trying to verify a skill was cast. In the previous Beta, the SmartCastCoroutine did this, but it resulted in slower skill casting because it would wait some for the client. While checking to see if the client performed a cast or not is helpful, there was a lot of feedback that the bot was attacking too slow. As a result, that system is not currently in place, and it might be added again in a more limited way to avoid slowing down the bot too much.

      Just as a reminder, the logic we provide will always be pretty basic and generic. There will be no planned support for Rampage or Beyond, but users can customize their CRs to make them work better for each league as needed. Beyond Portals are exposed though the object manager, but Rampage hud information is not available though the API. Unless there is a really good reason for Rampage information to be provided, it most likely remain a low priority thing.

      Current Plans and Timeline

      I cannot stress enough, Exilebuddy is not currently finished. This Beta release is just a step forward in being able to bot in 1.2+ using our new setup. The immediate goal is to start working on more logic and features to test the new API. Town stuff will be worked in as well as things like area looping, doing corrupted areas, and other stuff the previous bot implementation had. More information and progress will be talked about as it happens over this upcoming week.
       
      Last edited: Aug 27, 2014
    2. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Version History:

      #882 [29 Aug 14 15:07] [Poe 1.2.1.2]
      • Updates for 1.2.1.2.
      • ObjectExplorerWindow now shows stat types for the main PoE version (as opposed to just ints).
      • AreaStateCache.DisableDefaultExplorer added for users to disable the default GridExplorer created for each area. Users can assign their own Explorer to each instance otherwise.

      #881 [29 Aug 14 04:48] [Poe 1.2.1.1]
      • Updates for 1.2.1.1.
      • Steam updates for 1.2.
      • Settings added to BasicGrindBot / GrindTask.
      • MoveTowards handles a client issue with TimeSinceLastMove that could result in it never moving.
      • ExampleRoutine now blacklists and handles the blacklist for mobs, and allies cannot die.
      • Logic fixes for exploration complete in GrindTask.
      • Updated logic to handle Upper Prison's local area transitions.
      • Removed the Explorer static class instance, because it hurt the design. AreaStateCache now has an IExplorer for the current area.
      • Terrain data now has a separate cache for town/non town areas to avoid the case of having to regenerate terrain data for a town run.
      • DatWorldAreaWrapper.IsMapRoom added to replace the LocalPlayer.IsInMapRoom implementation of checking area id.
      • Backtracking reduced though CR changes. The CR will now only consider monsters within a certain configurable range.
      • Waypoint API updated to fix a client issue; waypoint areas are now correct.
      • GridExplorer now only resets on an area change if the new area is not a town. This is to help keep consistency with town runs during grinding.
      • AreaPather updates for excluding the new 1.2 areas.
      • Fixed a few issues when starting the bot out of game.

      #880 [28 Aug 14 01:50] (PoE 1.2.0.3)
      • ExampleRoutine now uses settings so users do not have to edit the CS file unless they want to make logic changes. Please hover over the label to see a description of what a setting is for if it is not clear.
      • ExampleRoutine logic expanded to cover more of the API / skill types. It should now cover most things in the game, but does not have specialized logic for everything (as that is not its purpose)
      • For aura support, users need to have one aura on their skill bar, and the CR will use that slot to cast the others. All other non-attack skills are handled automatically if they are on the skill bar.
      • Some additional computations in MoveTowards moved outside the frame lock.
      • Actor.HasAuraFrom changed to HasBuffFrom. Actor.HasCurseFrom added to handle curses, as shown in the CR. Removed Critical Weakness, as it is now Assassin's Mark, and added Poacher's Mark.

      #879 [27 Aug 14 03:29] (PoE 1.2.0.3)
      • Exilebuddy rewrite for Forsaken Masters.
       
      Last edited: Aug 29, 2014
    3. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      Nice, Get some sleep!
       
    4. hemza

      hemza New Member

      Joined:
      Jun 6, 2014
      Messages:
      9
      Likes Received:
      0
      Trophy Points:
      0
      nice job? non working bot and 100s posts of useless shit since 1.2
      stop writing poems in all ur forum posts and get some work done plz

      guess its time to move on to other bots
       
    5. strikedogg

      strikedogg New Member

      Joined:
      Dec 4, 2013
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      thanks for this! testing with my HC character ;)
       
    6. Nexic

      Nexic Member

      Joined:
      Aug 30, 2013
      Messages:
      67
      Likes Received:
      1
      Trophy Points:
      8
      Look, there's no need to be a dick. If you can find a better bot, then go for it. Shouldn't flame pushedx for his hard work.

      testing out the bot now in beyond
       
      Last edited: Aug 27, 2014
    7. strikedogg

      strikedogg New Member

      Joined:
      Dec 4, 2013
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0

      agreed.

      first bug ive found is it doesnt pick up scrolls of wisdom. not sure if im not setting up the loot filter right but its def not picking anything up

      edit: changing settings in the item filter editor didnt work, changing them in the json file itself did
       
      Last edited: Aug 27, 2014
    8. Nexic

      Nexic Member

      Joined:
      Aug 30, 2013
      Messages:
      67
      Likes Received:
      1
      Trophy Points:
      8
      Pushedx,

      The bot is running great. It honestly feels a lot smoother than the previous version so that's good.

      I have noticed some problems:

      -It does everything in order. Example: while I was farming catacombs with it, it first killed all the mobs (leaving all loot/chests behind). Then came back and looted all the items dropped in the instance (this is probably what guy above me was talking about). After, the bot then opened chests(weirdly enough, it immediately destroys pots/urns).

      -Doesn't run auras
      -Runs towards a chest, runs a little past it, turns around and opens it

      Will test longer tomorrow.
       
    9. Jalockin

      Jalockin Member

      Joined:
      Aug 29, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
      Great with progress.

      But am I correct in assuming that the BETA is not for the botter with absolutely no programming skills -> (us that needs just to click a button and download some stuff) ;)
       
    10. strikedogg

      strikedogg New Member

      Joined:
      Dec 4, 2013
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0

      pretty much this ^ you can do some things without any programming skills such as botting while playing another game beside it or watching a movie. but you will need to start each area manually

      the bot is configured to complete an entire area then go to town and stop the bot.
       
    11. kuskner

      kuskner Member

      Joined:
      Oct 12, 2013
      Messages:
      521
      Likes Received:
      2
      Trophy Points:
      18
      I can get the bot to run in eg. The ledge. But it don't know how to handle town runs.

      And the pickup logic is kinda bad. It keeps fighting mobs, therefor it will run far away from loot, and then all the waay back
       
    12. Jalockin

      Jalockin Member

      Joined:
      Aug 29, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
      Guess it will be a while before it is fully afk'able again :(
       
    13. IeU

      IeU Member

      Joined:
      Jul 20, 2010
      Messages:
      830
      Likes Received:
      11
      Trophy Points:
      18
      - i can confirm the already reported huge backtracking EB does to get loot that dropped like at the start of the run, this needs to be fixed asap.

      - very smooth and seems very light to run EB.

      - i get like 0,5 secs client freezes, i believe it happens when EB calculates the path from char to monster to attack. Will further watch for this to track even further down what could be causing this.
       
    14. frankbaozhu

      frankbaozhu New Member

      Joined:
      Jun 10, 2014
      Messages:
      31
      Likes Received:
      0
      Trophy Points:
      0
      Can anyone please let me know how to setup the bots? I am still confused after reading the guide. My 2 chars using dominating blow and infernal blow. Thanks!
       
    15. sfrattini

      sfrattini Member

      Joined:
      Oct 4, 2012
      Messages:
      220
      Likes Received:
      4
      Trophy Points:
      18
      bot is very smooth yes, but the current status of development is a bit disappointing....if I cannot loop areas it is not a bot!
      Regarding the loot: in my case it is good to walk back to pickup items as I run a minion timed build. So is it possible to have the choice? pickup at location or pickup at the end.
       
      Last edited: Aug 27, 2014
      bcain1787 likes this.
    16. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      Do you need a hug? Cry me a river, do better then ta;k please. I really would like it if you moved on, makes the community a better place.
       
    17. sfrattini

      sfrattini Member

      Joined:
      Oct 4, 2012
      Messages:
      220
      Likes Received:
      4
      Trophy Points:
      18
      well, he expressed himself in a not very educated manner, true.. but he is fundamentally right. What if he paid for 20 of them?
      I am more patient but the current beta release is quite behind (considering all the beta process it went trought in the last months).
      At least my opinion, don't flame pls...
       
    18. bcain1787

      bcain1787 Member

      Joined:
      Aug 13, 2013
      Messages:
      131
      Likes Received:
      0
      Trophy Points:
      16
      Ok so I get this error when trying to run the bot... I have tried to configure the example plugin but when i do a white box just comes up nothing else when i go to example routine its just a green box under it no config nothing...
      What am I doing wrong here?

      [ExampleRoutine] Start
      [Start] Please configure the ExampleRoutine.cs file before starting!
      [Stop] Now requesting the BotThread to stop.
      [BasicGrindBot] OnStop
      [Stop] GridExplorer
      [AutoFlask] Stop
      [ExampleRoutine] Stop
       
    19. sfrattini

      sfrattini Member

      Joined:
      Oct 4, 2012
      Messages:
      220
      Likes Received:
      4
      Trophy Points:
      18
      so 2 important things:
      - make sure the walk is not in the first skill or left mouse button (mystery why not).
      then go to \Routines\ExampleRoutine
      open ExampleRoutine.cs with notepad

      go to this line

      private int _meleeSlot = -1; // The slot that has your main melee skill. When set to -1, CR does not use melee skill

      change the value from -1 to the value correspondent of where u have ur main skill:

      left mouse = 1
      centre mouse = 2
      right mouse = 3
      Q key = 4
      .....
      T key = 8

      That's what I did to make it work, let me know if helps.
       
    20. bcain1787

      bcain1787 Member

      Joined:
      Aug 13, 2013
      Messages:
      131
      Likes Received:
      0
      Trophy Points:
      16
      Thanks this got mine working too didn't think to manual edit it.

      What I don't understand is why is there no looping areas.. if the new bot is in this bad of shape why not release the old stable version with minor updates to allow it to run on patch 1.2+ and also the NEW BETA just for testing... I don't mind testing its fun sure but I would love something that I could actually call a functioning bot. This as of now is bare bones. I'll be honest I was expecting a little more.

      Though I will say that the overall movement seems a lot smoother but the no area looping and the looting issues need to be resolved asap. Then work on a better routine and skills etc. Just my opinion. I do think you do a good job though pushedx as it seems you are the only one working on this bot and it has the potential to be great.
       
      Last edited: Aug 27, 2014
    Thread Status:
    Not open for further replies.

    Share This Page