• 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
      It seems that logic is a little buggy now under certain scenarios. It's being rewritten and I'm working on making some more changes for some things that now seem different (they might not be though) in 1.2 with area changing.

      How it should work, at least when I did my testing in various A1 areas before the patch last night, it keeps track of area transitions, and then after the exploration % is reached, it'll take an area transition out, and then create a new instance back in. That way, it only goes to town on inventory full, which is useful for avoiding extra time in towns (more susceptible to observation).

      To answer your question, the basic setup is to grind one area, but it will travel though levels as needed (unless blocked by a quest) to get there. If you wanted to grind Lunaris 3, and didn't have Lunaris 2 WP, it would take Barracks WP, then find Lunaris 1, then make its way though 2, until it got to 3.
       
    2. jordi1104

      jordi1104 New Member

      Joined:
      Jun 4, 2012
      Messages:
      778
      Likes Received:
      4
      Trophy Points:
      0
      Any idea when town will be added?
       
    3. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Hopefully before the weekend is over. I need to make sure the movements and interactions in town look as natural as possible and the bots aren't all doing the same exact thing in terms of movement, because I feel towns are one of the most vulnerable areas for catching bots since there's other people around, and they are small enough that there's not much room to randomize things like out of town. Hideouts will help in this manner, but it will be some time before they are fully supported.

      Since the new API has brand new stuff for everything related to inventory, it's most likely town logic will start out with simple stashing, and then leaving town to go back to the grind area. Seeing how the area transition logic turned out (not so good atm), it's a bad idea to try and rush out a ton of logic for town stuff and not be able to incrementally test it. Today was spent fixing a few design issues with the bot setup, and changing some core API stuff to address some of the main issues at the moment with 1.2. The next version should hopefully create the pathfinding data faster, and will have a design that helps avoid backtracking, but still ensure nothing is missed.

      That is, having a bot implementation that can do a bunch of things based on what's on screen, then make its way around to the off screen things without forgetting about them (which has admittedly always been an issue with our previous implementations).
       
    4. thunder

      thunder Member Legendary

      Joined:
      Jul 8, 2012
      Messages:
      143
      Likes Received:
      2
      Trophy Points:
      18
      Is there any interact with item api now? I didn't see it in the new beta
       
    5. alter5

      alter5 Member

      Joined:
      Jul 15, 2014
      Messages:
      78
      Likes Received:
      0
      Trophy Points:
      6
      im doing something wrong then, using the bot from the 1st page and i get the error about not being supported :/ now im not sure if i downloaded the right beta xD
       
    6. sfrattini

      sfrattini Member

      Joined:
      Oct 4, 2012
      Messages:
      220
      Likes Received:
      4
      Trophy Points:
      18
      I had the same problem. Reinstall and restart POE
       
    7. thenotorious

      thenotorious Member

      Joined:
      Aug 23, 2014
      Messages:
      85
      Likes Received:
      0
      Trophy Points:
      6
      when we talk about town run... is it like in demonbuddy stash and sell items ?
       
    8. IeU

      IeU Member

      Joined:
      Jul 20, 2010
      Messages:
      830
      Likes Received:
      11
      Trophy Points:
      18
      Yes and hopefully buy too :D
       
    9. thenotorious

      thenotorious Member

      Joined:
      Aug 23, 2014
      Messages:
      85
      Likes Received:
      0
      Trophy Points:
      6
      nice.... can't wait to have that feature activated hopefully in next build
       
    10. jordi1104

      jordi1104 New Member

      Joined:
      Jun 4, 2012
      Messages:
      778
      Likes Received:
      4
      Trophy Points:
      0
      Sounds good :p
      Really great to see things are coming along.
       
    11. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      You can't interact with an item directly anymore with the API. Instead, you can perform the actions required to trigger client interaction (as a normal player does).

      That involves highlighting the item, and then clicking left mouse button to trigger the interact action.

      If all things were perfect, that code would just literally be:
      Code:
      if (LokiPoe.Input.HighlightObject(worlditem))
      {
         LokiPoe.Input.ClickLMB();
      }
      
      However, a lot more logic is actually needed to handle interaction correctly due to how the game works. I can't get into the entire process of what we do right now, but pseudocode would be something like:
      Code:
      PickupItem:
      if item pathdistance < interaction range || cant see item position
         move towards item
         return
      
      if !item can fit in inventory
         trigger town run
          return
      
      wait for current client action to complete
      
      if highlight item
         small sleep to let the client have the item highligted for a few frames
         click lmb
         small sleep to let the client start the action
         wait for current action to complete
         sleep for latency in letting the server pickup the item and send to the client the item is gone
         clear key states since key pickup is needed
      
      Key thing, is to keep track of time spent on trying to loot an item, and how many times you're actually clicking, otherwise you get cases where an item simply can't be picked up by thte client, and your logic would just get stuck trying to do it over and over, and trigger bot like activity server sided most likely if it ran for hours.

      LokiPoe.Me.HasCurrentAction will tell you if the player currently has an action (check out LocalPlayer / Actor for more goodies as well), and you can use LokiPoe.ProcessHookManager.Reset(); to clear the key/mouse states after doing the itneraction since your key pickup key will be set by HighlightObject.
       
      Last edited: Aug 30, 2014
    12. strikedogg

      strikedogg New Member

      Joined:
      Dec 4, 2013
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      soooo heres a bug

      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.
      [Logic] Using Raise Zombie on Seething Brine.



      cant raise the zombie on that corpse but gets stuck trying
       
    13. alter5

      alter5 Member

      Joined:
      Jul 15, 2014
      Messages:
      78
      Likes Received:
      0
      Trophy Points:
      6
      having the same issue, any eta on the next little update? :D
       
    14. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      I'll check into that now, and see if I can get it squeezed into the next build.

      The next build is later today. A lot of changes have been made, and I'm trying to get as much added as possible for users before building it.

      Edit: This should be fixed in the next version, but you guys can test with a simple CR change.

      Code:
      private Monster BestDeadTarget
              {
                  get
                  {
                      var myPos = LokiPoe.Me.Position;
                      return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                          .Where(m => m.Distance < 30 && m.IsActiveDead && ExilePather.PathDistance(myPos, m.Position) < 30)
                          .OrderBy(m => m.Distance).FirstOrDefault();
                  }
              }
      
      should instead be:

      Code:
      private Monster BestDeadTarget
              {
                  get
                  {
                      var myPos = LokiPoe.Me.Position;
                      return LokiPoe.ObjectManager.GetObjectsByType<Monster>()
                          .Where(m => m.Distance < 30 && m.IsActiveDead && m.CorpseUsable && ExilePather.PathDistance(myPos, m.Position) < 30)
                          .OrderBy(m => m.Distance).FirstOrDefault();
                  }
              }
      
      The check for CorpseUsable is needed.
       
      Last edited: Aug 30, 2014
    15. ccvcc

      ccvcc New Member

      Joined:
      Sep 7, 2012
      Messages:
      92
      Likes Received:
      0
      Trophy Points:
      0
      Is there a possibility to turn Arctic Armour off while running?
       
    16. strikedogg

      strikedogg New Member

      Joined:
      Dec 4, 2013
      Messages:
      48
      Likes Received:
      0
      Trophy Points:
      0
      the new code works perfectly! thank you for this

      is there any chance of implementing a chicken script to the bot as well?

      also i noticed that the bot prioritizes the raising of zombies over anything else. this almost got me killed because while surrounded by enemies all the bot wanted to do was raise zombies more and more

      lastly i noticed that lately when the bot is going for barrels close to chests it doesn't always click the barrel but assumes it did.

      very minor things im reporting im sure when your main goal is town runs right now i assume

      I want to say thank you for your extreme hard work and dedication to this project as well as keeping us informed as often as you do

      i know this isnt a question probably to be asked here but are there any plans to make a bot for archeage from this company? I have a feeling there is a ton of money to be made from that game
       
    17. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      The CR has some example code of turning it on when you enter combat, and then it can turn off when you leave combat. That setting is the ArcticArmourCastMode. When set to 1, it always casts, and when set to 2, it only casts in combat.

      For specialized logic of casting it, starting combat and never moving, then uncasting when you did, you'd have to code that into your own little custom CR.

      A chicken plugin will be added back soonish. There just hasn't been time yet for it (there's no real obstacles in making a new one, just time). I'll try to get that worked back in for the next version after tonight's.

      The CR code is where that priority comes from. If you need different logic for it, you'd have to change it. The CR we provide is just one big example of doing a bunch of generic stuff. There's certain things in there that work good for the average case, and others that would be better of going in a different direction. There's no way we could make a CR that is able to handle everything in a specialized form, so that's why most of the responses when it comes to CR stuff is "the user has to change it". I do show some rate limiting logic for Skeletons / Raging Spirits you could work from, but your best bet would be to make a custom CR for your build that does only the things you need it to (it'd also perform a lot better than ours did!)

      Various issues with barrels are from the game itself. This game has a really weird hitbox system in place for chest clusters. You can easily test this yourself in a place like Chamber of Sins or Church Dungeon. Find some of the pot clusters, and try to highlight each one of them. Sometimes, you'll see the wrong one gets highlighted, and other times, it's actually impossible to highlight one. I don't know if this is some sort of anti-bot thing, or just something really weird they do. The next version has some changes to loot and item interaction, and I think it'll work a lot more smoothly than before.

      As for AA, I can't really comment; I'm only in the know with PoE/EB. :) Check out the General forums though, as there might be a thread or two about general discussion.
       
    18. ccvcc

      ccvcc New Member

      Joined:
      Sep 7, 2012
      Messages:
      92
      Likes Received:
      0
      Trophy Points:
      0
      since the update today the boot keeps in some longer fights items behind, the last 3 items was superior blood magic a chaos and a alchi...
      Kombat distance 150 but i use as well a script to zoom more away

      And the bot wont use anymatet weapon anylonger...

      Arctical amor works fine now, an other question: dosnt the bot support double spelltotem?
      The one for the skeletons works fine bot the other one is set on the range skill and just get spammed.
       
      Last edited: Aug 31, 2014
    19. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      We can't support clients that make use of any hacks, as they are not allowed here. Changing the zoom in the client will affect the bot, because it affects how this game works with target highlighting.

      If the bot combat chains away from an item, it will go back and pick it up, so make sure you watch the entire run. The only exception is if it's not in the grind zone, in which case it might leave something behind as it's moving towards the grind zone itself. The priority of actions is combat -> items -> chests within 50 units, and then all previously know locations).

      The CR does not support double spell totem, and I say CR, because combat is not handled by the bot itself. The default CR, ExampleRoutine, contains the logic that the bot executes for combat. :)

      I'll double check animate weapon, but make sure you understand how the skill works in terms of the items required and your current skill level! It's an easy mistake to make, as I saw when I first tested it.
       
    20. buddyfu

      buddyfu New Member

      Joined:
      Aug 27, 2014
      Messages:
      24
      Likes Received:
      0
      Trophy Points:
      0
      Is there a list of the constant strings that are used by the bot?

      I want to detect if monsters that are attacking me have the elemental reflect aura with
      monsters.Any(m => m.HasAura("") && m.IsTargetingMe);
      but i do not know the correct aura string.

      Or is there a better way of achieving what I'm trying to do with m.HasAura("") without the hardcoded use of strings?

      Edit: I found this file. Is it up to date?
       
      Last edited: Aug 31, 2014
    Thread Status:
    Not open for further replies.

    Share This Page