• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • [Plugin] MapRunner

    Discussion in 'Archives' started by ExVault, Oct 27, 2014.

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

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      We don't, because the loot has a location, it's location will not change, unlike mobs moving around. The bot adds the item to be looted into an array probably and goes and gets it, I'm sure pushedx has some optimization for items closer but, loot range will most likely cause it to run back and forth in one spot.
      It does loot items, I'm very sure as I have a logger for items. Things that drop and should be picked up gets logged, when it gets picked up it gets logged. I compare the 2 logs and they match exactly, this is on over 40~ bots so far. What I think is happening is that the person sees the bot run past the loot to do something and assumes it skips the loot. Watch the whole run, it shouldn't skip any loot.
       
    2. powerpc

      powerpc New Member

      Joined:
      Nov 4, 2012
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0

      I just used ExVault's plugin in a map that I was watching, and i had picking rares off so it was just picking currency+map drops

      It went past two 73 maps while running, and left the area without an even nearly full pack to start the next run. This is when i stopped it to get the maps myself.

      I have since told it to pick rares, which makes it exit and enter the map multiple times, since then I dont see it missing things really since its doing more sweeps of the map without mobs around. --I feel this is kind of a workaround, i wish the bot would log and item that matches the pickup filter and go back for it 100% of the time, the bot used to do this, but the newest bot doesnt because people didnt like the backtracking it caused (same with having it full explore the map, causes backtracking)

      BTW i am playing a ranged character.
       
      Last edited: Oct 29, 2014
    3. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      Ok that's weird, I'll prob publish a log item so I can see what's happening. Do you mind PMing me the log of that session? Thanks.
       
    4. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      darkbluefirefly
      I have an arcer with "Max Range Range" = 65 (I am using zoomhack so no worries about UI overlapping) and "Combat Range" = 70.
      I usually watch my bot and I can with 100% sure tell you that bot skips loot from very distant mob kills. Bot needs to move closer (via explore or combat task) to detect the items.
      But this is only for range characters, while botting melee I hardly remember that bot skipped anything.
       
      Last edited: Oct 29, 2014
    5. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      Ah I see what's going on now. I you lowered your combat range it doesn't skip right? Hum.. let me get back to you on this.
       
    6. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Ye, but thats the purpose of the range character. Why would I level one if it needs to be played with low combat range? :)
      I'll better play melee then.
       
    7. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      With that combat range, are you shooting things off screen.
       
    8. seankim

      seankim Member

      Joined:
      Dec 20, 2013
      Messages:
      115
      Likes Received:
      1
      Trophy Points:
      18
      thanks for Map Plugin.

      1 question, My bot is Not full inventory space but return town.

      How to setting?

      inventory.jpg
       
      Last edited: Oct 30, 2014
    9. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      I'll still need a full log from a run where it missed an item that you thought it should have looted. The new design works better, and more reliably than the old one did.

      If there is an obscure bug with looting, then I'll be able to track it down with enough logs. What you are describing is what the bot does already. It keeps track of all items it needs to loot, via AreaStateCache.ItemLocations. There are two LootItemsTasks registered. One to try and loot nearby things before trying to open nearby by chests, and then a second one that literally moves to every stored location to loot the item.

      If the bot is missing an item, and never goes back for it, only three things are possible under normal scenarios (non-boss areas):
      1. There was a looting error, which would be logged, so the item was blacklisted since the bot was physically unable to loot it.
      2. The bot misses the item because it no longer knows about it. There's some very obscure scenarios where this could happen with how the client works, but it's not something that should be noticeable unless there's a new case to code around.
      3. 3rd party code is being used that interferes with the looting processing, preventing the bot from going back to loot.

      For #1, there's not much else that can be done if this is actually happening. Between desync, or items dropping in places where the player can't pick them up, or any number of other client oddities that may happen, all the logic can do is try so many times and then give up to prevent getting stuck. If you see your bot standing over an item for a short period of time, then this would be why it's not looting the item. You should be able to watch for this.

      For #3, if BasicGrindBotSettings.Instance.NeedsTownRun is ever set to 2 when there's items still to loot, then the bot will go to town, and complete the run, without looting anything else. If user task code is executing before the looting tasks, this would be something they need to check for. If they are executing task code after the looting tasks, then they would not be able to trigger this scenario, since looting has to be finished in the first place before their code would execute. If they ever set the value in a Tick function, then they would be bypassing the system, and certainly would trigger the issue.

      For #2, there's two possible cases where I could see there being an issue with the current design.

      The first is something specifically coded around, and is most likely not what you are seeing, but I'll still mention it. Ids in PoE are not unique. If an item drops with id X, and you pickup the item, another item could drop with the same id. In order to avoid performance overhead from trying to re-match every item to the current set of item filters each update, which would result in massive slow downs the more items on screen, I have a system that keeps track of an id and a position. If an item drops with a specific id at some position, and then another item drops with the same id at the same position, then the bot would miss that second item. However, that is very unlikely to trigger, as you'd have to loot an item, and then have another item drop exactly where the last item was, with the same id. It's technically possible, but unlikely.

      The second issue is the item is being removed from the tracking system prematurely. I can add a bunch of debugging to identify this issue, if it's indeed the problem. In the current design, rather than having to move towards an item location and then trying to loot it, it will eliminate the location if the player is within 100 units and there is no item with the specified id. Under certain scenarios, such as your character having a really fast run speed, higher latency, or any server issues where the object in question is sent to the client slower than expected, it would be technically possible for it to be removed even though it does exist. I can change this distance to be much smaller, and the trade-off is you'll be randomly moving towards a location longer than before, since it'll still think the item is there.

      It is possible the entity sync range is a lot more volatile depending on the area you are in, as well as the direction you are travelling, or even be tied to the number of entities currently in the area. The current distance might be too far now, but there's no real way to determine a good distance other than just making it something a lot smaller. This would be the new case to code around I mentioned before, and is very possibly the issue if the issue is happening with the normal bot without any extra 3rd party code in non-boss areas.

      Taking all that into account, here are the changes that will be in the next Beta to try and track down the issue:
      • TownRunTask will now log all items that will be abandoned due to the bot going to town and not returning.
      • AreaStateCache will now log all item adds and removes, so we'll know exactly what is happening with an item that is being ignored.
      • The distance to eliminate out of view items has been lowered from 100 to 30.

      After the next version is made in a day or so, I'll need you to run the new Beta and provide a full log for any run that it misses an item, if it continues to do so.


      As for the other looting issue where the bot does go back for an item as expected, but doesn't pick it up right away when you think it could have, there's no solution to that using our bot design. You'd have to code your own bot implementation that had fixed combat logic, and couple looting logic with combat logic to handle all the cases for more human-like looting based on the current game state.
       
    10. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      It triggers town run on 70%
       
      Last edited: Oct 30, 2014
    11. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Update:
      Bot can now upgrade map levels via selling 3 identical maps.
      Please report any bugs.
       
    12. naut

      naut Community Developer

      Joined:
      Feb 9, 2012
      Messages:
      277
      Likes Received:
      21
      Trophy Points:
      18
      Great work bro!
       
    13. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      Does anyone know how to set up the item filter to filter maps with certain map levels? The map level is not the same as the item level.

      By the way, if you have not noticed already, ExVault has got a donation link in his signature!
       
    14. Nepthys

      Nepthys Community Developer

      Joined:
      Oct 13, 2014
      Messages:
      89
      Likes Received:
      1
      Trophy Points:
      0

      i'd make a filter based on the map names for the level range I want. Cumbersome, but should work
       
    15. powerpc

      powerpc New Member

      Joined:
      Nov 4, 2012
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      Sometimes I notice that I come back to my computer and the bot is no longer doing maps but in my default grind zone. Any fixes for this?
       
    16. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      This is because bot has crashed and fail to properly load plugin afterwards.
      Due to rare nature of that bug I can only suspect that source is LokiPoe.CurrentWorldArea.IsMap in 37 line of MapRunner.cs
      I will release small update with probable fix soon.
       
    17. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      How does the new plugin

      "an OverwordAreaTweaks plugin that can be used to (typically) full clear most areas. The side effect of this plugin example is more bot backtracking, as monster positions are not eliminated until the bot travels really close to the detected position to ensure the monster is dead."

      work with mapping using the default exploration?

      It seems that the default explorer has a better speed/smoothness than the one being used in the map plugin.
       
      Last edited: Nov 2, 2014
    18. darkbluefirefly

      darkbluefirefly Community Developer

      Joined:
      Nov 8, 2013
      Messages:
      1,927
      Likes Received:
      18
      Trophy Points:
      38
      I Believe it was meant to cater to someone who asked for it as he/she wanted 100% completion or kill all mobs, and did not care about the backtracking.
       
    19. powerpc

      powerpc New Member

      Joined:
      Nov 4, 2012
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      He made it for me! :) Now we can use the bot in maps for full clears and expect to get all map drops

      Here comes high level mapping :cool:
       
    20. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      The mapplugin uses a different explorer. My question is how the new OverwordAreaTweaks plugin will work with the maprunner's own explorer? do we have to disable it and use the standard explorer instead?

      I haven't had time to test this. How is this OverwordAreaTweaks working for you guys with the maprunner?
       
    Thread Status:
    Not open for further replies.

    Share This Page