What's new
  • Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Visit Resources
  • Visit Downloads
  • Visit Portal
RebornBuddy Forums

Register a free account today to become a member! Once signed in, you'll be able to participate on this site by adding your own topics and posts, as well as connect with other members through your own private inbox!

[Plugin] MapRunner

Status
Not open for further replies.
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:
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...).


Cool Ill try it out, :)
 
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.
 
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.

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.
 
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.
Inventory cleaning is handled by standard BasicGrindBot tasks. They run before map-taking tasks. I don't know how you got that bug.
 
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:
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
 
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
Thanks for reporting that! I kept in mind mirrored maps, but completely forgot about corrupted.
I've released small update with fix.
 
Thanks for reporting that! I kept in mind mirrored maps, but completely forgot about corrupted.
I've released small update with fix.

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! :)
 
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! :)
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.
 
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.
 
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.
 
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!
 
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?
 
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:
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
 
hansmeier

● AreaTransitionMaps.txt in MapRunner folder. Bot will look for area transitions only in maps listed in that file. So if you want to ignore certain boss room you can delete or mangle that particular map name. For example add exclamation mark "!Jungle Valley" and bot will ignore boss room in Jungle Valley map.
 
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:
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!
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:
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".

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.
 
Status
Not open for further replies.
Back
Top