• 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. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      OverwordAreaTweaks adds a new task, TrackMoreMobs, which executes before exploration. The task's Tick function will keep track of all mob positions that come into range on a throttled timer to reduce performance overhead. When the task executes, it simply moves to the closest position of where a mob was last detected. Upon reaching 15 units of that location, an entity check is made to see if the mob has moved, or is no longer alive or exists. From there, it is up to the CR to kill the mob or blacklist it, and it'll be ignored the next time though.

      In essence, it supplements any explorer by moving the bot to more precise locations where mobs are. You could change the logic, as mentioned in one of my previous replies, to also reduce the number of positions to just mob packs by detecting a pack of mobs, and adding that location to visit instead, rather than just adding all mobs.

      I'll mention it again, but the reason the new Explorer doesn't do anything with game entity locations anymore, is so users can control that, to get the desired results they want without being forced into using an explorer that did everything under the hood. By using the current explorer, GridExplorer, you'll have area coverage taken care of for you, and then you can just supplement additional locations to go to via plugins. This also avoids the problems introduced in the last explorer where entities that move and changed the explore status of a map node would trigger negative side effects by marking and re-clearing exploration nodes over and over, causing all sorts of problems.

      The actual code for OverwordAreaTweaks is pretty straightforward as well. It literally just checks for mobs, stores their id/position into a dictionary and then moves to them when the task executes. If you guys have any other questions about the design or implementation, feel free to ask!

      Edit: Also, I should note, that plugin won't work in map areas by default.

      You'll want to change:
      Code:
      if (!LokiPoe.CurrentWorldArea.IsOverworldArea)
                          return false;
      
      to
      Code:
      if (!LokiPoe.CurrentWorldArea.IsOverworldArea && !LokiPoe.CurrentWorldArea.IsMap)
                          return false;
      
      This plugin example was always on the todo list, but it makes more sense to have included now with user contributions to mapping being done, since he idea is simple enough but the implementation can changed based on what you want your logic to do and where (e.g., corrupted area bosses, strongbox mobs, only magics/rares, etc...).
       
      Last edited: Nov 2, 2014
    2. powerpc

      powerpc New Member

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

      Cool Ill try it out, :)
       
    3. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Update:

      - Now bot uses modified task from OverwordAreaTweaks plugin instead of old monster exploration. That task runs more smoother and guarantees better exploration depth. I don't know why, but standard OverwordAreaTweaks task clears all cached monsters positions on area change (i.e you will loose everything on town run). I've changed it, so it clears only upon entering new map. Do not use MapRunner and OverwordAreaTweaks simultaneously!

      - Bug that prevented plugin from loading after crash is probably fixed. Please report if you still find bot running regular zones instead of maps.
       
    4. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      It is definitely running better.

      Here is a bug report. For the map upgrade function, it keeps trying to take maps from the stash even though the inventory is full.
       
    5. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Inventory cleaning is handled by standard BasicGrindBot tasks. They run before map-taking tasks. I don't know how you got that bug.
       
    6. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Update:
      - Now bot can take area transitions i.e. go to boss rooms and do multilevel maps.
      To reduce overhead bot will search area transitions only in maps that can actually have them. You can find full list in AreaTransitionMaps.txt
      You can also use that file to make bot ignore certain boss rooms. Just change desired map name by adding // or ! before it.

      I've test it on most maps except high level ones. The only problematic map is Shrine Map. Area transition there activates only after Piety kill. This can be adjusted too, but I don't think thats a big need because not so many bots run 77+ maps (and I don't have Shrine Maps for a test).

      - You can now start bot with MapRunner plugin on login screen or character selection screen.

      p.s bot will not do RemainingCheck on area transition maps (to ensure that boss will be killed).
       
      Last edited: Nov 8, 2014
    7. powerpc

      powerpc New Member

      Joined:
      Nov 4, 2012
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      Nice! I had a bunch of residence maps lying around :)

      btw theres some bug with corrupted white maps the plugin loops trying to make them magic/rare, i got a bunch from a corrupted carto box. Im wondering if the bot has the same issue with white mirrored maps too
       
    8. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Thanks for reporting that! I kept in mind mirrored maps, but completely forgot about corrupted.
      I've released small update with fix.
       
    9. powerpc

      powerpc New Member

      Joined:
      Nov 4, 2012
      Messages:
      38
      Likes Received:
      0
      Trophy Points:
      0
      also im getting this error on lvl 76 crematorium: [AreaTransitionTask] We have recently taken area transition but can't detect back transition. Now finishing map run.

      In crematiroum no back transition exists for this map, so i guess thats why. It ports to town prematurely here

      Thanks for the continued updates, this plugin is great! :)
       
    10. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      This is fixed in 1.3.1 :)
      But crematorium is still a bitch. Sometimes bot detects area transitions in distant room before you actually move to it. I recommend you ban that map, especially considering that boss = rip.
       
    11. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Jeez, recently found that Dungeon Map does not have back transition too (it activates only after Brutus kill, same as Shrine Map).
      I should rework area transition logic so it will distinguish between boss room maps (where bot should scan only for one area transition) and multilevel maps (where bot should do constant scan).
      Expect an update tomorrow.
       
    12. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      In your Start function, you can replace:

      if (!LokiPoe.IsInLoginScreen && !LokiPoe.IsInCharacterSelectionScreen)

      with

      if (LokiPoe.IsInGame)

      That should be used instead, because it's possible for the game to be in a loading state where it's not stopped rendering, so if the bot is started (due to an exception before the loading screen, and then auto-restart logic running) an exception would be thrown. If the code weren't in your Start function, you definitely want to use IsInGame instead, as it'll check important structures for null.
       
    13. roneo1

      roneo1 Member

      Joined:
      Mar 21, 2014
      Messages:
      480
      Likes Received:
      20
      Trophy Points:
      18
      Great work with the plugin, this is the future! =)

      Exvault is it possible in the next version to implement some simple logic for it to explore % of map based on what we define?

      With an option of "keep going until boss is dead even if explore % threshold has been reached, and after boss is dead, then end map"

      Do you think you can add that? If so then it would be perfect =)

      In my eyes that's the only thing this plugin is missing, and for the moment its np to ban maps that generate issues while you work through the issues in due time, no rush rly, but this feature would be totally awesome!
       
    14. hansmeier

      hansmeier Member

      Joined:
      Jul 12, 2014
      Messages:
      158
      Likes Received:
      0
      Trophy Points:
      16
      Second reneo1s opinion.
      Right now it just walks through an empty map.
      Could the Plugin maybe do like:
      When Boss is dead, look for remaining, When remaining < 10 -> Next map?
       
    15. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      pushedx
      Thanks for pointing that out. I will change that.
      roneo1
      hansmeier
      I can't really understand what issue are you talking about. Now bot just leaves the map after boss kill (in the room). He will not do exploration again.
      If you are talking about bot exploring map from scratch after town run - its an old issue, on standard map bot will check /remaining and leave, but not on the boss room map, to ensure that boss will be killed.
       
      Last edited: Nov 9, 2014
    16. hansmeier

      hansmeier Member

      Joined:
      Jul 12, 2014
      Messages:
      158
      Likes Received:
      0
      Trophy Points:
      16
      Which maps don't have a Bossroom btw? :x
      Kinda put every Map into the Bossroom list ^^
      Code:
      Crypt Map
      Dried Lake Map
      Dunes Map
      Dungeon Map
      Grotto Map
      Orchard Map
      Overgrown Ruin Map
      Tropical Island Map
      Untainted Paradise
      Arcade Map
      Arsenal Map
      Cemetery Map
      Mountain Ledge Map
      Sewer Map
      Thicket Map
      Wharf Map
      Ghetto Map
      Mud Geyser Map
      Museum Map
      Reef Map
      Spider Lair Map
      Springs Map
      Vaal Pyramid Map
      Catacomb Map
      Overgrown Shrine Map
      Promenade Map
      Shore Map
      Spider Forest Map
      Tunnel Map
      Bog Map
      Coves Map
      Graveyard Map
      Pier Map
      Underground Sea Map
      Villa Map
      Arachnid Nest Map
      Colonnade Map
      Dry Woods Map
      Strand Map
      Temple Map
      Jungle Valley Map
      Labyrinth Map
      Mine Map
      Torture Chamber Map
      Waste Pool Map
      Canyon Map
      Cells Map
      Dark Forest Map
      Dry Peninsula Map
      Gorge Map
      Maze Map
      Residence Map
      Underground River Map
      Bazaar Map
      Necropolis Map
      Plateau Map
      Academy Map
      Crematorium Map
      Precinct Map
      Shipyard Map
      Shrine Map
      Courtyard Map
      Palace Map
      Vaal Temple Map
       
    17. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      hansmeier

       
    18. Tuela

      Tuela New Member

      Joined:
      Oct 13, 2014
      Messages:
      5
      Likes Received:
      0
      Trophy Points:
      0
      Hi ExVault, great job with this plugin!! Thanks a lot. I have a little issue with the plugin. (sorry for my english I'm not native english speaker). When goes to town to sell in the middle of a map, and return to the map, the % of explored map starts again and have to check all the map until have enough % explored. I think this issue happened with normal bot too, but there is anything to make the bot save the % explored when he returns to map from selling?? Thanks and keep up this great job!
       
      Last edited: Nov 9, 2014
    19. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      Currently plugin will check /remaining after town run. If monsters remaining are less than 20 - bot will leave the map. Its not the case for boss room maps (for obvious reasons).
      This is not an issue I can fix. I've asked Pushedx (developer of the bot) to change standard Explorer behavior. I hope he will fix it soon.

      All this stuff is already stated in the first post of this thread under "Current problems with plugin".
       
      Last edited: Nov 9, 2014
    20. Tuela

      Tuela New Member

      Joined:
      Oct 13, 2014
      Messages:
      5
      Likes Received:
      0
      Trophy Points:
      0
      Hi ExVault, but I'm not saying to return map when X monsters are remaining, I mean when the bot is doing a map, and have to go to town to sell or put items in stash because it's full, and returns to the map, it have a % of map explored and starts again because the bot thinks that it's in new map or something, and have to check all the map again to get the % explored had before (I think this issue it's only with maps that have many areas). And I'm asking if there's anything that can be do to say the bot when returns from selling/stashing that he has already explored % of that map.
       
    Thread Status:
    Not open for further replies.

    Share This Page