• Visit Rebornbuddy
  • ExilebuddyBeta Developers Testing/Feedback Thread

    Discussion in 'Archives' started by pushedx, May 22, 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
      #842 was just built. This version adds back the GemLeveler plugin using the new setup. Using it should be pretty straight forward. Here's a simple guide

      0. Enable the plugin if you want to use it.

      1. If you to globally ignore any skillgem by name from leveling, simply type in the name, case matters, into the GlobalNameIgnore edit box, and click Add. To remove one, type in the name into that same box and click Remove.

      2. Click "Refresh Skill" while in game or after you change skill gems to force a refresh of listed skill gems to level. Under the AllSkillGems combobox, you can select an entry and click Add. To remove an entry, select it from the same combobox and click Remove.

      If you change skillgems or characters, you should refresh skills and set it back up. A general guide to using the new setup in terms of configuration and characters will be made later, as you don't want to have to reset your plugin/CR settings each time you switch a character.

      Some basic minion logic will be added soon as well.
       
    2. cyberbot

      cyberbot Member

      Joined:
      Mar 15, 2014
      Messages:
      220
      Likes Received:
      2
      Trophy Points:
      18
      I was playing with Beta and having trouble with the auras. It is complaining that I don't have enough mana for the third aura, but in reality, all the three auras are already running.

      Please see logs.
       

      Attached Files:

    3. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Should be a quick fix. When SmartCastAuraCoroutine was made, I moved out the conditions that used to be there checking, so it just needs to be re-added.

      In the "aura" logic, if you add this before the CanCast check, I think that should take care of the issue:
      Code:
      // If we already have the aura, don't cast it again.
      if (LokiPoe.Me.HasAura(spellName))
      {
          continue;
      }
      
      So the CR code should look like this:
      Code:
                  // Handle aura logic.
                  if (type == "aura")
                  {
                      if (!_needsToAura)
                          return false;
      
                      var auras = ExilebuddyRoutineSettings.Instance.UserAuras;
                      foreach (var aura in auras)
                      {
                          // Make sure the id is still valid (it should be!)
                          var spell = LokiPoe.SpellManager.GetSpellById(aura);
                          if (spell == null)
                              continue;
      
                          // We need to cache this since objects might invalidate during coroutine continuation.
                          var spellId = spell.Id;
                          var spellName = spell.Name;
      
                          // If we already have the aura, don't cast it again.
                          if (LokiPoe.Me.HasAura(spellName))
                          {
                              continue;
                          }
      
                          if (!spell.CanCast(true, true))
                              return true;
      
                          var res = await Coroutines.SmartCastAuraCoroutine(spellId);
                          if (res != Coroutines.SmartCastCoroutineError.None)
                              Log.DebugFormat("[Logic] SmartCastCoroutine returned {0} when casting {1}.", res, spellName);
      
                          if (res == Coroutines.SmartCastCoroutineError.None)
                              return true;
                      }
      
                      _needsToAura = false;
      
                      return false;
                  }
      
       
    4. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Beta #843 was just built. This version adds the Inventory Explorer window back to Tools and incorporates some basic minion logic for the ExilebuddyRoutine. The ExampleRoutine now contains some simple code examples of using the new API and setting up a custom CR to cast the skills you want under the conditions. Some more examples will be added over time.
       
    5. maths

      maths New Member

      Joined:
      Jan 11, 2014
      Messages:
      162
      Likes Received:
      0
      Trophy Points:
      0
      tried beta, all work fine, but in corrupted area it try to open vessel befor killing boss. and can it run map at default?
       
    6. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      I'll double check the Vaal vessel issue you mentioned.

      Map logic is not added to the Beta yet. It will most likely be added via a different bot rather than into ExilebuddyBot, but we'll have to see.
       
    7. thunder

      thunder Member Legendary

      Joined:
      Jul 8, 2012
      Messages:
      143
      Likes Received:
      2
      Trophy Points:
      18
      the beta will blacklists the mobs too soon if your damage evaded by mobs for once or twice.
       
    8. IeU

      IeU Member

      Joined:
      Jul 20, 2010
      Messages:
      830
      Likes Received:
      11
      Trophy Points:
      18
      Indeed.
       
    9. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      Yea, that system needs some tweaking and it'll be fine tuned some more as testing goes on. You guys can see the issue though, right? Before, the bot wouldn't try to detect if it was desynced or not doing any damage, and it would get stuck. Now, it won't get stuck but it'll ignore the mobs too soon. There'll always be some errors, as trying to find a good middle ground will be tricky.

      Beta #844 was just built. This version adds a new bot example, PickitBot. There are two main reasons why this bot example was added, over some other pending stuff. First, we used to have a pickit bot example with the bot last year, but it was outdated and never re-added due to changes with client input stuff. Second, the whole point of this Beta rewrite is to make sure everything is setup in a way where devs can create the things they want, and not be hindered by our design. By making this bot and seeing what the issues are along the way, changes can be made to improve the current setup, so that's why this version has a lot of the changes it does.

      Maps, questing, and a bunch of other stuff is still being worked on and will slowly make its way into Beta, so don't worry! Please continue testing Beta and leave any feedback or improvements you'd like to see with what's there. The goal is to try and have everything as solid as possible before the big 1.2 patch, as that undoubtedly will bring a big set of changes for us to deal with.
       
    10. Emmitt

      Emmitt Member

      Joined:
      Jul 24, 2011
      Messages:
      79
      Likes Received:
      1
      Trophy Points:
      8
      Spectral Throw is really not doing well in the current beta. Seems that the bot is capped at attack per second? Also it tries to stay at a range but gets stuck and won't attack at all
       
    11. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      The bot will no longer attack as fast as it did in Release due to the new design change. Based on similar changes in the past, I know a lot of people are not going to like this, but it's the way it has to be now. There's two main reasons for this.

      The first is that Beta attempts to fix a lot of stuck issues that result in the client under normal situations, but players do not notice normally when playing because their input is not precise like a bots is. As you move the cursor around as you play, you end up making sure the character doesn't get stuck because the game is constantly updating and performing actions based on where your mouse is. Conversely, the bot is pretty fixed when it calculates where it needs to click or move the cursor to perform an action. In Release, the input method works in a way where the client can perform many actions before the next bot tick, because the client input state was setup as such. To users, it just looks like the bot is really smooth, and attacking at full speed, but it's actually the client doing that work. The downside to that setup is the bot has no idea if the client went on to actually perform the action or not. This creates issues in combat when you want to cast a skill, and then try casting another if it's not actually cast. This is not possible in Release, but it is in Beta. In Beta, you can try to cast a skill and know right away if the client did it or not. This allows CRs to follow through logic and use other skills, and finally exit combat if no skills are able to be cast on the target. This also allows for things like trying to open a Strongbox, and then moving away to escape the open range, which Beta currently has a feature for.

      The downside to this new approach is there is now a limit on how fast the bot can make the character perform actions, because it's waiting on the client to finish the current action before starting the next. That means between bot ticks, the client is not spamming an action like it used to, so it now feels a lot slower. The reason why you can attack faster in game, is that you are just spamming the action to be used, like Release did, and not caring what the current client state is. There's no way to do both, but that leads into the next reason why this method is being used.

      The second reason is to try and help make the bot look less like a bot. We all know GGG is using server sided detection for bots, so certain changes have to be made time to try and make sure the bot isn't doing things that really stand out. I don't think the continued method being used in Release is viable long term due to this, so the bot needs to not operate as fast as it currently does. I'm not going to get into a lot of detail about this, but I believe it's for the best to switch to the new system because the pros outweigh the cons. We're really limited with the things we can do to interact with the client in this game, so I think this is the best option.

      As for the Spectral Throw issue, a lot of my test characters use it, so I think the issue is your other skill setups. I have ST and Heavy Strike, for example. My CR setup would list ST as a Projectile, and HS as a single target melee. I now have a ranged skill and a melee skill for the bot to use. You want to then check "OnlyUseSkillsInRange" to make those skills trigger based on your distance settings. You do not want to enable TryToKeepDistance when you are using melee, since you'll see a lot of back and forth. If the bot does not attack, it simply means your current skill setup is such in a way where there are no skills to use, so if you have others, just let me know the type and order and I''ll suggest some settings if they need to be tweaked.

      The new CR is more limited logic wise, because it's meant to be easier to configure the skills and use. For more complicated builds, it will not suffice, but Exile never did either really. Some users might want to just make their own routine that works like the old Exile did, in which case you can checkout the code of ExampleRoutine. The emphasis of the new Beta is that the overall setup is now more fitting for customization and user driven development, so a lot of changes have been made to make this easier and more fluid. However, it does still require some coding experience, but that's the nature of the Buddy products!

      So, that's a bit to read, but just let me know how your stuff goes and if you need more help, feel free to ask. :)
       
    12. krone6

      krone6 Member

      Joined:
      Jun 11, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
      When you learn what beta means come back to us. This isn't release software.
       
    13. krone6

      krone6 Member

      Joined:
      Jun 11, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
      You posted this in a beta thread, so when you say "new version" it makes everyone here think version 844 (currently) of the beta. If you have questions on release do it in the appropriate section that's related to that part of the program. Again, what I said before holds relevance.
       
    14. OneStopMMO

      OneStopMMO New Member

      Joined:
      Jul 29, 2013
      Messages:
      123
      Likes Received:
      0
      Trophy Points:
      0
      there's a relevant section? please show me :) Let me know when you find this section

      I will delete the QQ post though because I was upset and realized I was gonna rip anyway now or later. It doesn't matter just because I am not to blame, am I ever tho?
       
    15. krone6

      krone6 Member

      Joined:
      Jun 11, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
    16. Emmitt

      Emmitt Member

      Joined:
      Jul 24, 2011
      Messages:
      79
      Likes Received:
      1
      Trophy Points:
      8
      @pushedx: thanks for that wall of text ;) I actually only use ST as a skill so maybe that's why the bot doesn't like it. From that wall of text it seems best to not use a fast attacking skill or spell because it won't look natural. I currently have 3+aps so it not attacking full speed would seem like it would raise flags since a user doesn't normally have that much control over their character unless they were very focused.
       
    17. krone6

      krone6 Member

      Joined:
      Jun 11, 2012
      Messages:
      441
      Likes Received:
      0
      Trophy Points:
      16
      Since we can't attack fast with the bot what builds could work? Generally attack or cast speed is important and it's not uncommon to see 3+ cast or attack speed. Maybe summoner but that's about all I can think of.
       
    18. Emmitt

      Emmitt Member

      Joined:
      Jul 24, 2011
      Messages:
      79
      Likes Received:
      1
      Trophy Points:
      8
      The builds could work but something might look off when someone is attacking at x rate for 8hrs
       
    19. IeU

      IeU Member

      Joined:
      Jul 20, 2010
      Messages:
      830
      Likes Received:
      11
      Trophy Points:
      18
      Good work Pushed.

      - We need some kind of randomness, like logout/login every x-y hours; random town afk runs (aka between x-y minutes do a x-y minutes afk town run); multiple farm areas and switch btw them (like farm docks, catacombs and library, switch btw them every x-y runs and/or switch btw every x-y minutes) . . . (This could be added to the Main Tab (Settings))

      - lets us load a pickit file too (and save as too), I've multiple pickit files (like one for the low level; mid level and high level).(need to copy over every char i start and/or i want to switch btw pickit profiles/files)

      - you told me that issues in upper prison would be fixed in this release, thou i am still having the issues (map has some unreachable areas)

      - don't forget our beloved boss runs (at least brutus/merveil for the start :D)
       
      Last edited: Jul 16, 2014
    20. pushedx

      pushedx Moderator Moderator Buddy Core Dev

      Joined:
      Sep 24, 2013
      Messages:
      4,252
      Likes Received:
      290
      Trophy Points:
      83
      This thread is fine for reporting Beta issues, it's what I want. Sorry to hear about your HC character loss, but it happens. :( For future reference, botting in HC should be taken really carefully, and with caution no matter what bot version you use. Things happen in this game that most people don't expect, and as a result, character losses from botting can happen under a number of cases if you're not watching it.

      For Chicken, you need to make sure your "EnableChickenLogout" checkbox is checked. You can either use the default CharacterSelection or if you want something faster, use TitleScreenSelection. If you use TitleScreenSelection, you'll need to fill out the Login settings so the bot will auto-login again, so that's why it's not the default. CharacterSelection is a slower logout method, but you don't have to login again.

      As for what happened in your case, I'll need a log and know what your specific settings are. If you were watching the bot when it happened, I'll need you to describe what the character was doing when it didn't chicken, or if it did chicken and you still died, as that is a different scenario. You have to keep in mind, any sort of desync the client has will interfere with the bot, and especially things like chicken. It can happen really fast, and you might notice it, as all of a sudden, your health might drop faster than the bot can update.

      As for the overall chicken design, it's being switched to a plugin design which should run at a much faster pace than the current Poi setup. Chicken logic is the first thing to run, and the only case where it wouldn't click in right now is desync or another Poi is taking a really long time to complete, which shouldn't happen, but it's possible. With a plugin design, the chicken should always execute, but chickening doesn't mean you'll always live. There's a lot of issues in this game when it comes to chickening and latency, client performance if you use character selection, and overall just from using a 3rd party program that interacts with the client, so there' a lot of margin of error to deal with.

      The looking natural aspect doesn't matter for non-move stuff out of town unless you are playing with other people or someone from GGG is observing you play. In that case, there's a lot of other things the bot does that would give it away. From a metric based analysis standpoint, you can't really classify "natural looking", because it's extremely complicated and highly subjective. Having played the game a lot, you can make certain assumptions how the average player plays, but if you have the data or looked at the general population, I'm confident it'd not match your expectations when it comes to how the average person plays PoE. High attack/cast builds are an edge case where letting the client attack as fast as possible makes sense, but the majority of people playing the game cannot sustain the efficiency a bot does when it comes to attacking really fast and switching targets almost instantly. If GGG was actually targeting some of the tings Release does, I'm sure we'd see more bans, but there's no telling what they can or can't identify based on normal player data.

      If you take a look at this Reddit thread, it illustrates one of the advantages of server sided metric tracking (the author just used publicly available data, though). There's certain things you can't easily hide when botting, such as actions per minute, tracking target switching, and various things like sustained area clear time. People want a fast efficient bot, but they also want to be able to bot without getting banned for bot like behavior. You can't have both, and in a game like this, where the devs care and are actively trying new things to detect bots, our job is to try and stay ahead and make changes so that users using the bot don't stick out. We can only assume GGG is going to stay aggressive when it comes to bots.

      With that being said, that doesn't mean we're removing the ability for users to interact with the client how they want. The difference with the old cast function was that it sets the key being held to cast, and then didn't process what happens afterwards in the client. It's still possible to set the key behind held to cast a skill, and change how the logic works so it's not single-action driven logic. In that case, you'd be designing around casting functions that cast over time, so for example, CastFor() and it'd take some millisecond param. In that case, the bot would simply start casting the skill, and wait a certain amount of time before returning in the coroutine. This is pretty much what has to happen to get Flameblast compatibility, so it's already planned.

      You can actually make the current design run faster by going to Settings -> Main -> MsBetweenTicks and changing it to something lower, like 1 at the extreme case. You should definitely notice it going faster (change input focus for the text box so it's saved), because the bot is now running 1 tick every ms between frames. The downside to setting this value that much lower, is that the bot is executing logic faster, and there's more performance overhead for code that is updating faster than it really has to. If you were to make your own bot/routine implementation, you can certainly code around all these things, but there's always going to be the overhead of getting info from the client each tick.

      Stuff like that will be added via a plugin, so users can customize it how they need or add their own stuff. If users want to make really advanced versions of the logic, they'll be free to then, and it won't be hidden away in the bot. The new beta has been setup specifically to support things like this.

      This is actually supported, but there was never a gui way to switch between them. I'll check into it soon, but not it's not a top priority for now.

      Static filters are useful, but are also really limited. It's not easy to express runtime logic in them, because you then have to code a system that pretty much does the things you can accomplish with a little C#. For example, let's say you have a new character and want it to loot and auto-equip items that you don't already have. It doesn't make much sense to try and handle that in a static filter, but a plugin that implements filtering logic could easily do it. It just uses the API to check the current inventory and makes its decision. It can also do gear upgrades the same way, although that's a little more complicated.

      Lower Prison! Upper Prison is a boss area, and the old explorer has not been replaced yet to support them. The current explorer does have other bugs that need to be fixed as well, but the plan is to rewrite it to make it faster and not based on the same concepts it currently is, but I explained in a previous reply why it's not done yet. I just came across a weird explore issues in The Coast, so I know for sure the TspExplorer has issues (once again, it's what Release uses, which has bugs).

      It'll most likely be in a new IBot implementation specifically for it. It's still planned soon though, even though I think it's a bad idea to boss farm in the manner most people want. :)
       
    Thread Status:
    Not open for further replies.

    Share This Page