• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Belphegor Test Release

    Discussion in 'Archives' started by Nuok, Jun 27, 2012.

    1. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      A suggestion,
      Made some changes to the Monk settings window and the Monk routine, attaching them here. Nothing fancy, just something I found useful myself. If you have the time to check it out, the primary changes are in the pull phase, sweeping wind and the most important in the mantra spam section. Mainly that falling below a set HP now lets you exit the 3 second mantra timer, and for the players that don't want this setting it can simply remain at 0. I personally use the Mantra spam for healing and in some situations 3 seconds is too long :)

      edit: fixed not resetting mantra timers on pull in monk.cs
       

      Attached Files:

      Last edited: Aug 10, 2012
    2. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      Does your fix improve base mantra handling? My bot runs with no mantra about 50% of the time :(
       
    3. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Yep it will enable the mantra as soon as it pulls the pack if it isn't already up
       
    4. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      thanks for the suggestion, I'm going to give it a shot! Any feedback/comments on my other suggestions?
       
    5. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      Awesome, I'll give it a run....now to get that pesky issue with LTK fixed.
       
    6. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Put the MonkSettings.cs in Belphegor\Settings and Monk.cs in Belphegor\Routines if you're going to try it, and make backups cos I'm a noob :p

      Your issue was that your Monk was spamming LTK in situations where the range was too far away, or you had too little spirit? Look in Monk.cs for this code snippet near the center:

      Code:
       new CastOnUnit(SNOPower.Monk_LashingTailKick,
                  ctx => ((DiaUnit)ctx).ACDGuid,
                   ctx => Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 18f) >= 4 ||
                                      (Unit.IsEliteInRange(18f))),
      
      You can change that to this:

      Code:
                                new CastOnUnit(SNOPower.Monk_LashingTailKick,
                                   ctx => ((DiaUnit)ctx).ACDGuid,
                                   ctx => ZetaDia.Me.CurrentPrimaryResource > 75 && (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= 4 || Unit.IsEliteInRange(16f))),
      
      This way it will only do LTK when your spirit is above 75 and decreases the minimum range of the mobs from 18 to 16 (I don't know the actual range of LTK so you can tweak this). It will also only cast (as before) when you are surrounded by either 4 or more mobs or 1 or more elite. I don't really use LTK so I don't know if this is an improvement or not, but I gave it a shot!

      Edit: Updated it. Try this instead, made it much cleaner (i think).
       
      Last edited: Aug 10, 2012
    7. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      Oh yeah I learned a long long long time ago, before you change anything always do backups!

      Mantra handling is working like a charm. Going in try your code replacement and see how it works!
       
    8. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      It wasn't working so well I think. I posted a cleaner more appropriate version, try that instead and see how that works :)
       
    9. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      LTK fix is working like a charm! Personally I changed the setting to min 65 spirit (cost of breath of heaven +serenity) 10 yard range and 6 min monsters.
       
    10. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Awesome! Glad to hear that :)
       
    11. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      yeah man this makes my day, now to get the dev to put in a slide rule for count and range! I'd do it myself and upload it if i could figure out how to do it.
       
    12. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Don't mind if I do... :D I don't know at all how the range handling works, so I'm not going to touch that, but pop this in your Monk.cs in place of the LTK-code

      Code:
      new CastOnUnit(SNOPower.Monk_LashingTailKick,
             ctx => ((DiaUnit)ctx).ACDGuid,
             ctx => ZetaDia.Me.CurrentPrimaryResource > 65 && (Clusters.GetClusterCount(ZetaDia.Me, CombatTargeting.Instance.LastObjects, ClusterType.Radius, 16f) >= BelphegorSettings.Instance.Monk.LTKAoECount || Unit.IsEliteInRange(16f))),
      
      (then make the appropriate range adjustments as you desire)

      And drop the attached MonkSettings.cs in the Settings folder, and that will give you an AoE-count slider at least :)
       

      Attached Files:

    13. Nuok

      Nuok Community Developer

      Joined:
      Jan 15, 2010
      Messages:
      975
      Likes Received:
      28
      Trophy Points:
      28
      Moved matra's up in the tree
      Mantra now has a setting to wait unit a certain resource level
      Added LashingTailKickAoECount

      Version 221:
      Avoidance:
      Added a check for MovementFlags to avoidance behavior.
      Monk:
      Wait For Sweeping Wind added, lets you wait until you have sweeping winds with mantra's.
      Moved matra's up in the tree.
      Mantra now has a setting to wait unit a certain resource level

      SweepingWinds Logic improved.

      Added Lashing Tail Kick AoE Count
       
      Last edited: Aug 10, 2012
    14. Bulzap

      Bulzap Member

      Joined:
      May 2, 2012
      Messages:
      188
      Likes Received:
      0
      Trophy Points:
      16
      I have seen that the bot uses blinding flash while the serenity is still up(might be because of the rune). Thats not really the way you want to use it unless you only want max dps and can surrive anything. Actually you don't even want to use them totaly next to each other since they normally generate a breathing room where you can regenerate your hp with loh.

      Also maybe add a check atleast as a monk like : If all defensive spells + health potion is on coldown and your life is below 30 % and your fighting a elite pack it would be cool if it could walk away from it until it had something ready.
       
      Last edited: Aug 10, 2012
    15. Hajkfas

      Hajkfas New Member

      Joined:
      Jun 26, 2012
      Messages:
      326
      Likes Received:
      1
      Trophy Points:
      0
      Is it possible to fix the "delay" when surrounded by mobs and getting dodge or block to happen before the bot could attack again?
       
    16. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Love the changes in the update, avoidance feels smoother now. One question: Currently avoidance behavior takes priority over all skills, so no heals or immunities are used while avoiding. Can these be overriden so that for example serenity and breath of havens has priority over avoidance?
       
    17. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      OK running the update, and so far avoidance seems much smoother. There is still a problem with it not moving out of range of the molten explosion from when a molten mob dies. Good job on the LTK aoe count, it's working nicely, however the routine that I was given earlier in the thread does work better due to it adding a minimum spirit count. Without the minimum spirit count it will use all of your spirit up not keeping a reserve for serenity and breath of heaven :(
       
    18. superreeen

      superreeen Member

      Joined:
      Jan 28, 2011
      Messages:
      307
      Likes Received:
      2
      Trophy Points:
      18
      Please be more specific with the molten explosion. For me it's working fine as long as combat is active.
       
    19. Scrubbish

      Scrubbish New Member

      Joined:
      Feb 26, 2012
      Messages:
      167
      Likes Received:
      1
      Trophy Points:
      0
      Well when a mob dies that has molten it does that explosion. It seems about 50% on moving out of range of that explosion if it is still fighting other mobs. However once all mobs are down it completely ignores it.
       
    20. secretbear

      secretbear New Member

      Joined:
      Aug 2, 2012
      Messages:
      50
      Likes Received:
      0
      Trophy Points:
      0
      Replying to myself here but I think this is a possible method to implement this and it was a nice improvement overall to the avoidance imo.

      Create a new BehaviorType such as BehaviorType.Defensive. Do not let this invoked by !u.Position.IsCollidingWithAoe()

      :)

      Currently I've modified my Composite MonkBuff() section as this is ideally not the ideal solution
      Code:
       [Class(ActorClass.Monk)]
          [Behavior(BehaviorType.Buff)]
              public static Composite MonkBuff()
              {
                  return
                  new PrioritySelector(
                      Common.CreateWaitForAttack(),
                      Common.CreateWaitForCast(),
                      Common.CreateUsePotion(),
                      Common.CreateGetHealthGlobe(),
                      new SelfCast(SNOPower.Monk_MysticAlly, extra => _allyTimer.IsFinished && !Minion.HasPet(Pet.MysticAlly), s => _allyTimer.Reset()),
                      new SelfCast(SNOPower.Monk_BreathOfHeaven, ret => !ZetaDia.Me.HasBuff(SNOPower.Monk_BreathOfHeaven) && BelphegorSettings.Instance.Monk.BoHBlazingWrath),
                      new SelfCast(SNOPower.Monk_Serenity,
                      extra => ZetaDia.Me.HitpointsCurrentPct <= BelphegorSettings.Instance.Monk.SerenityHp || Unit.IsMeIncapacited),
      
                      etc. ,
      I think in this case the heals are not excluded if u.Position.IsCollidingWithAoe is false and execute during avoidance, and meanwhile the attacking routines are excluded.

      I noticed that you defined the BehaviorTypes this way:

      Code:
      public enum BehaviorType
      {
          Buff = 0x1,
          Movement = 0x2,
          Pull = 0x8,
          Combat = 0x40,
      
          All = Buff | Pull | Combat
      }
      How is this derived? What is 0x40, 0x8 etc.?
       

    Share This Page