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.
ZjkMHHx.png


godlike :D:D

Ye the thing with sell is a problem, but the map running works like a charm

Laugh which maps you recommend?^^
 
Last edited:
you ask, I give.

I haven't gotten around to trying out the really higher level maps for the bot, but up to 75 maps are relatively safe for the bot given proper defenses (shock and horror a bit scary w/o res flasks and the orchard boss wasn't too bad with aa+pof). Villa/Residence is near 100% rip given a couple runs through it, due to those pillars getting the bot confused. Of the harder high level maps, Malformation and Residence bosses and 78+ maps were not tested. Necropolis was not too bad, but the bot had trouble targeting her due to the ledge she starts on. Her damage is manageable with a sapphire flask and the only thing that gave the bot trouble was the animate weapon for whatever reason. (too fast while chilled and no Movement skill)


TLDR res flasks and your gucci. Mind you those rare invincible shock totem guys can still oneshot you if the bot cant figure out how to get to the mob spawning them in due time.
 
Last edited:
its not the bosses that make villa hard. its the how badly the bot navigates around pillars (I.E. GET STUCK) that make it hard
 
Last edited:
Tried fiddling with the maprunner to see if I could get it to scour or chaos the rare map it makes.
Adding that part in was relatively simple, but got stuck at the MapRunnerGui file(s).

What I tried to change was the TakeMapTask to change

Code:
          //upgrade to rare if needed
            if (map.Rarity == Rarity.Normal && Settings.UpgradeTo == Rarity.Rare)
            {
                Log.Info("Now upgrading map to Rare.");
                try
                {
                    map = await StashHelper.UseOrbOnMap(map, "Orb of Alchemy");
                }
                catch (StashHelper.OrbNotFoundException ex)
                {
                    Settings.UpgradeTo = Rarity.Magic;
                    Log.Error(ex.Message);
                    Log.Error("There are no required orbs. From now bot will use Magic maps.");
                    return true;
                }
                catch (StashHelper.StashException ex)
                {
                    Log.Error(ex.Message);
                    return true;
                }

                if (StashHelper.HasBannedAffix(map))
                {
                    Log.WarnFormat("[TakeMapTask] Banned affix spawned on rare map. Lets try another one.");
                    return true;
                }

                Log.Info("Map has been successfully upgraded to Rare.");
            }

to something like

Code:
            //upgrade to rare if needed
            if (map.Rarity == Rarity.Normal && Settings.UpgradeTo == Rarity.Rare)
            {
                Log.Info("Now upgrading map to Rare.");
                try
                {
                    map = await StashHelper.UseOrbOnMap(map, "Orb of Alchemy");
                    [B]map = await StashHelper.RerollRareMap(map);[/B]
                }
                catch (StashHelper.OrbNotFoundException ex)
                {
                    Settings.UpgradeTo = Rarity.Magic;
                    Log.Error(ex.Message);
                    Log.Error("There are no required orbs. From now bot will use Magic maps.");
                    return true;
                }
                catch (StashHelper.StashException ex)
                {
                    Log.Error(ex.Message);
                    return true;
                }

                Log.Info("Map has been successfully upgraded to Rare.");
            }

As well as change StashHelper to include

Code:
        public static async Task<Map> RerollRareMap(Map map)
        {
            bool isGood = false;
            Map goodMap = map;
            while (!isGood)
            {
                if (HasBannedAffix(goodMap))
                {
                    goodMap = await UseOrbOnMap(goodMap, "Orb of Scouring");
                    continue;
                }
                isGood = true;
            }
            return goodMap;
        }

Thought I was done after that, but Maprunner.gui file(s) wouldn't cooperate after I made those changes.
Have no idea what to do with those, but something is missing.
It throws errors at me left and right. Guess basic c++ isn't enough to fiddle with this one
 
Last edited:
Is there a way to change the behavior of TPing inside a boss room to TPing outside a boss room? With my DeathLogger, I found that most of my deaths happen when TPing back into a boss room. Somehow, while initializing itself, the bot triggers the in-game immunity off while still performing no actions. The monsters of the boss room then have a free second to try to kill you, which is often enough.
 
Is there a way to change the behavior of TPing inside a boss room to TPing outside a boss room? With my DeathLogger, I found that most of my deaths happen when TPing back into a boss room. Somehow, while initializing itself, the bot triggers the in-game immunity off while still performing no actions. The monsters of the boss room then have a free second to try to kill you, which is often enough.
i watched a bot and realized when they come back in they try to use enduring cry which takes off immunity, they do this before leaping/lightning warping away or before attacking :P
 
hey guys which maps do you think melee cyclone should stay away from? I've seen a few where he can't leap slam to the targert because not in range or something?

any quick fix for this or what thanks!
 
Is there a way to change the behavior of TPing inside a boss room to TPing outside a boss room? With my DeathLogger, I found that most of my deaths happen when TPing back into a boss room. Somehow, while initializing itself, the bot triggers the in-game immunity off while still performing no actions. The monsters of the boss room then have a free second to try to kill you, which is often enough.

I think I found where the portals are created. Is the the TakeTransition() method from the AreaTransitionTask class? I never noticed that portals were opened after every transitions.

Can I just change the method to this? Or am I completely mistaken and lost in the code?

Code:
private static async Task<bool> TakeTransition(NetworkObject transitionObject)
        {
            if (transitionObject == null)
            {
                Log.Error("[AreaTransitionTask] Fail to detect area transition.");
                return false;
            }

            await Coroutine.Sleep(1000);
            await Coroutines.CreatePortalToTown();
            await Coroutine.Sleep(1000);

            const int maxAttempts = 5;
            int attempts = 0;
            while (true)
            {
                ++attempts;
                var isTaken = await Coroutines.TakeAreaTransition(transitionObject, false, int.MaxValue, true);
                if (isTaken == Coroutines.TakeAreaTransitionError.None) break;
                Log.ErrorFormat("[AreaTransitionTask] Fail to take area transition. Error: \"{0}\". Attempt {1}/{2}",
                    isTaken, attempts, maxAttempts);
                if (attempts >= maxAttempts) return false;
            }

            FlushTransitions();
            AreaStateCache.Current.ClearBlacklist();
            AreaStateCache.Current.Explorer.Reset();
            MapRunner.EventInvocators.RaiseAreaTransitionEnteredEvent();
            return true;
        }

The only thing i changed is the position of
Code:
await Coroutine.Sleep(1000);
await Coroutines.CreatePortalToTown();
await Coroutine.Sleep(1000);

Edit: I just tested this in the Graveyard Map (lvl 72) and it didn't work. The portal spawned outside the transition area, which is good, but it spawned right on top of the transition. The bot was not able to click the transition to go into the boss room anymore. I need to find a way to spawn the portals a few steps away from the transition.

Edit 2: I found where the character is set to move towards the transition, it's at line 71 of AreaTransitionTask.cs. I will try adding the portal logic there, before the character moves. I can't test this right now since PoE is under maintenance tho :X.
 
Last edited:
buddyfu2
The whole point of creating portals after taking transition is making a return point for the bot. If you die or disconnect, your map progress will not be lost.
Thats how I've written the area transition task, bot takes transitions only once, then creates a portal to be sure that he never ever appear in the previous room.
 
Is it just me that MapRunner is not working with newest EB for patch 2.0.1?

Error while trying to retrieve a map from stash.
 
Same here

Code:
Found 137 maps in current stash tab
Found 108 maps with proper level range
Found 108 maps with proper name.
Map of choice is "Dunes Map" (68).
[FastMoveFromStash] Fast moving Dunes Map from {2, 9}.
[Tick] Exception during execution:Buddy.Coroutines.CoroutineUnhandledException: Exception was thrown by coroutine ---> System.Exception: Nur ein Teil der ReadProcessMemory- oder WriteProcessMemory-Anforderung wurde abgeschlossen, at addr: C0E00000, Size: 16
   bei GreyMagic.ExternalProcessMemory.ReadByteBuffer(IntPtr addr, Void* buffer, Int32 count)
   bei GreyMagic.MemoryBase.Read[T](IntPtr addr)
   bei Loki.Game.Std.Containers.StdList[TValue](NativeList nativeList, ExternalProcessMemory m)
   bei Loki.Game.Std.Containers.StdHashMap[TKey,TValue](NativeHashMap nativeHashMap, ExternalProcessMemory m)
   bei Loki.Game.LokiPoe.InGameState.StashPanel.get_CurrentTabsVisibleItemControls()
   bei Loki.Game.LokiPoe.‎‫‏*‫‎*​*‏*‏*‪*​*‪‬‪‎*‎*​‪*(IntPtr )
   bei Loki.Game.LokiPoe.InGameState.StashPanel.FastMove(Item item)
   bei MapRunner.StashHelper.<FastMoveFromStash>d__26.MoveNext() in g:\Users\XXX\Desktop\xxxXXXxxx3\Plugins\MapRunner\StashHelper.cs:Zeile 243.
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter`1.GetResult()
   bei MapRunner.TakeMapTask.<Logic>d__0.MoveNext() in g:\Users\XXX\Desktop\xxxXXXxxx3\Plugins\MapRunner\TakeMapTask.cs:Zeile 52.
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei Loki.Bot.TaskManager._Q:\,\\kl@PV\&vQ{}`Iw)(qPn`.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.ValidateEnd(Task task)
   bei Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.GDCw)@3tWW1^ZG/%J)\[s |6l>.MoveNext()
--- Ende der Stapelüberwachung vom vorhergehenden Ort, an dem die Ausnahme ausgelöst wurde ---
   bei System.Runtime.CompilerServices.TaskAwaiter.ThrowForNonSuccess(Task task)
   bei System.Runtime.CompilerServices.TaskAwaiter.HandleNonSuccessAndDebuggerNotification(Task task)
   bei Buddy.Coroutines.Coroutine.e\*5p8)V4)\]AB!\\2W%SnBMe$E'.nCBI65V\]\[|'ma`}<zW>SqxZ^!.MoveNext()
   --- Ende der internen Ausnahmestapelüberwachung ---
   bei Buddy.Coroutines.Coroutine.​‎​‎*​‫**‫‬**‎‪*‫‏‬‏*‎***‎**(Boolean )
   bei Buddy.Coroutines.Coroutine.‎‫‏‫‎‬‫‎‫‬****‪*‫‬​**(Boolean )
   bei Buddy.Coroutines.Coroutine.Resume()
   bei Loki.Bot.Logic.Bots.OldGrindBot.OldGrindBot.Tick()
   bei Loki.Bot.BotManager.‪​‪‫*​‫‫​‏‎**‪****‫​‫‏***(IBot )
 
Last edited:
Status
Not open for further replies.
Back
Top