• Visit Rebornbuddy
  • [Plugin] MapRunner

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

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

      Aazaroth New Member

      Joined:
      May 3, 2014
      Messages:
      407
      Likes Received:
      2
      Trophy Points:
      0
      [​IMG]

      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: Aug 16, 2015
    2. Laugh

      Laugh New Member

      Joined:
      Apr 26, 2014
      Messages:
      46
      Likes Received:
      0
      Trophy Points:
      0
      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: Aug 16, 2015
    3. Aazaroth

      Aazaroth New Member

      Joined:
      May 3, 2014
      Messages:
      407
      Likes Received:
      2
      Trophy Points:
      0
      villa is easy boss , just residence rip me hard :D
       
    4. Laugh

      Laugh New Member

      Joined:
      Apr 26, 2014
      Messages:
      46
      Likes Received:
      0
      Trophy Points:
      0
      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: Aug 16, 2015
    5. Aazaroth

      Aazaroth New Member

      Joined:
      May 3, 2014
      Messages:
      407
      Likes Received:
      2
      Trophy Points:
      0
      hmm i threehit the boss, so np for me there :D
       
    6. Laugh

      Laugh New Member

      Joined:
      Apr 26, 2014
      Messages:
      46
      Likes Received:
      0
      Trophy Points:
      0
      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: Aug 17, 2015
    7. austinpower

      austinpower Member

      Joined:
      Sep 15, 2014
      Messages:
      82
      Likes Received:
      0
      Trophy Points:
      6
      the desert anyone? That map killed my bot instantly.
       
    8. Sebozz

      Sebozz Banned

      Joined:
      Aug 19, 2015
      Messages:
      398
      Likes Received:
      0
      Trophy Points:
      0
      nah im overleveling these maps to hard for dying there
       
    9. buddyfu2

      buddyfu2 Member

      Joined:
      Aug 18, 2015
      Messages:
      47
      Likes Received:
      2
      Trophy Points:
      8
      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.
       
    10. OneStopMMO

      OneStopMMO New Member

      Joined:
      Jul 29, 2013
      Messages:
      123
      Likes Received:
      0
      Trophy Points:
      0
      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
       
    11. jimtehownage

      jimtehownage Member Legendary

      Joined:
      Jun 22, 2012
      Messages:
      125
      Likes Received:
      0
      Trophy Points:
      16
      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!
       
    12. buddyfu2

      buddyfu2 Member

      Joined:
      Aug 18, 2015
      Messages:
      47
      Likes Received:
      2
      Trophy Points:
      8
      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: Aug 19, 2015
    13. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      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.
       
    14. expedia

      expedia Member

      Joined:
      Feb 21, 2010
      Messages:
      37
      Likes Received:
      0
      Trophy Points:
      6
      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.
       
    15. jgBlack

      jgBlack New Member

      Joined:
      Oct 10, 2014
      Messages:
      23
      Likes Received:
      0
      Trophy Points:
      1
      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: Aug 20, 2015
    16. krzys

      krzys Member

      Joined:
      Jul 23, 2012
      Messages:
      124
      Likes Received:
      1
      Trophy Points:
      18
    17. Lay

      Lay Member

      Joined:
      Jul 6, 2015
      Messages:
      173
      Likes Received:
      6
      Trophy Points:
      18
      Correct, errors with new patch, yay! :D
       
    18. bertrand01

      bertrand01 New Member

      Joined:
      Sep 7, 2014
      Messages:
      10
      Likes Received:
      0
      Trophy Points:
      0
      map runner not working atm
       
    19. ExVault

      ExVault Moderator Moderator Buddy Core Dev

      Joined:
      Oct 23, 2013
      Messages:
      748
      Likes Received:
      57
      Trophy Points:
      28
      That was the bot API issue. Pushedx fixed it. Plugin is working as before.
       
    20. Barik34

      Barik34 Member

      Joined:
      Jun 7, 2015
      Messages:
      113
      Likes Received:
      0
      Trophy Points:
      16
      bot is not taking the scrolls from the stash
       
    Thread Status:
    Not open for further replies.

    Share This Page