• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • Simcraft Implemented, a Raidbot Derivate with Integrated Combat

    Discussion in 'Botbases' started by Kane49_2, Feb 15, 2015.

    1. Kane49_2

      Kane49_2 New Member

      Joined:
      Jun 13, 2012
      Messages:
      450
      Likes Received:
      22
      Trophy Points:
      0
      Im at work now, ill available in chat in like 7 hours
       
    2. rimdab

      rimdab New Member

      Joined:
      Oct 2, 2011
      Messages:
      66
      Likes Received:
      0
      Trophy Points:
      0
      How you doin mate? :) I've managed to convert all actions from old to new profile and everything seems to be working fine. Only thing I'm missing is if=combat_enabled or if=aoe_enabled. Cheers
       
    3. eway

      eway New Member

      Joined:
      Dec 31, 2014
      Messages:
      4
      Likes Received:
      0
      Trophy Points:
      0
      svn version still has error, but download master zip works perfect
       
    4. Kane49_2

      Kane49_2 New Member

      Joined:
      Jun 13, 2012
      Messages:
      450
      Likes Received:
      22
      Trophy Points:
      0
      Its not an SVN its a Git, its the SVN Client People are using thats screwy
       
    5. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18

      Hey rimdab I tried that file you sent me and I couldn't get it to work it just didn't show up under profile selector, I am still in the IRC so either hit me back up on here or in there (it disconnected last night so I missed all messages).

      Also @kane I don't know what's causing this and I will have to send you a log when it does it again, but last night quite a few times, I would have to stop and restart it almost like it bugs out here and there.
       
    6. Nashal

      Nashal New Member

      Joined:
      Feb 1, 2012
      Messages:
      112
      Likes Received:
      0
      Trophy Points:
      0
      when trying to load a profile for WL I'll getting this error:

      Code:
      ************** Exception Text **************
      System.Reflection.TargetInvocationException: Exception has been thrown by the target of an invocation. ---> System.MissingMemberException: Member 'Simcraft.SimcraftImpl+SpellProxy.service_pet' not found.
         at Simcraft.SimcraftImpl.Proxy.ResolveName(String name) in d:\hb\Bots\simpl-master\SimcraftProxies.cs:line 2073
         at Simcraft.SimcraftImpl.Cast(String spell, CanRunDecoratorDelegate del, WoWUnit _target, String Reason) in d:\hb\Bots\simpl-master\SimcraftImpl.cs:line 706
         at Simcraft.SimcraftImpl.Cast(String spell, CanRunDecoratorDelegate del, String r) in d:\hb\Bots\simpl-master\SimcraftImpl.cs:line 775
         at Simcraft.UHESUTYIAG.GenerateWarlockDestructionPvEBehavior()
         --- End of inner exception stack trace ---
         at System.RuntimeMethodHandle.InvokeMethod(Object target, Object[] arguments, Signature sig, Boolean constructor)
         at System.Reflection.RuntimeMethodInfo.UnsafeInvokeInternal(Object obj, Object[] parameters, Object[] arguments)
         at System.Reflection.RuntimeMethodInfo.Invoke(Object obj, BindingFlags invokeAttr, Binder binder, Object[] parameters, CultureInfo culture)
         at System.RuntimeType.InvokeMember(String name, BindingFlags bindingFlags, Binder binder, Object target, Object[] providedArgs, ParameterModifier[] modifiers, CultureInfo culture, String[] namedParams)
         at System.Type.InvokeMember(String name, BindingFlags invokeAttr, Binder binder, Object target, Object[] args)
         at Simcraft.ActionPrioriyList.CreateBehavior() in d:\hb\Bots\simpl-master\APL\ActionPrioriyList.cs:line 92
         at Simcraft.ProfileSelector.button2_Click(Object sender, EventArgs e) in d:\hb\Bots\simpl-master\ProfileSelector.cs:line 63
         at System.Windows.Forms.Control.OnClick(EventArgs e)
         at System.Windows.Forms.Button.OnClick(EventArgs e)
         at System.Windows.Forms.Button.OnMouseUp(MouseEventArgs mevent)
         at System.Windows.Forms.Control.WmMouseUp(Message& m, MouseButtons button, Int32 clicks)
         at System.Windows.Forms.Control.WndProc(Message& m)
         at System.Windows.Forms.ButtonBase.WndProc(Message& m)
         at System.Windows.Forms.Button.WndProc(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.OnMessage(Message& m)
         at System.Windows.Forms.Control.ControlNativeWindow.WndProc(Message& m)
         at System.Windows.Forms.NativeWindow.Callback(IntPtr hWnd, Int32 msg, IntPtr wparam, IntPtr lparam)
      any suggestion how to fix it?
       
    7. Kane49_2

      Kane49_2 New Member

      Joined:
      Jun 13, 2012
      Messages:
      450
      Likes Received:
      22
      Trophy Points:
      0
      Unfortunately you cant fix that, i will check out what Service_pet does ^^ maybe you can tell me what Service_pet is supposed to do ?
       
    8. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18
      also I noticed the hotkeys don't seem to be working... what exactly is execution and cooldowns do. How would I use them with a hunter? Can I single target if I pick execution?
       
    9. oly182

      oly182 New Member

      Joined:
      Jul 8, 2014
      Messages:
      79
      Likes Received:
      1
      Trophy Points:
      0
      Is the arms profile fixed yet?

      Thanks
       
    10. Jerf

      Jerf New Member

      Joined:
      Nov 24, 2012
      Messages:
      138
      Likes Received:
      0
      Trophy Points:
      0
      Welcome :) And it is happily given even if the follow-ups below aren't incorporated. I'll just swap bot bases when needed. But if these 2 things (configuration profiles and interrupt logic) were added I think I'd be able to use this base for 95% of my raiding time.

      ...

      Regarding most of my other needs, I think the multiple configurations attached to hotkeys would fix it. I have no problem editing the text file configs to build mine (in fact I absolutely love this ability).

      That would allow us to build profiles that truly turned off ALL AOE, or have single target routines that include AOE (like Divine Storm), or go full AOE depending on the profile.

      ...

      The only major API addition needed at that point would be an auto-interrupt routine that allows us to interrupt on specific casts. And that is something I'm currently doing manually anyway. If you do build a way to have logic around interrupts then having a random delay in it like Tuanha to avoid bot detection would be very welcome.

      I rarely use Tuanha for interrupts these days, since Blizzard got wise to this and bosses (and ugly trash) needing interrupts tend to have multiple interruptible casts but only 1 that matters. So if you found a good way to build interrupt logic (something we'd need to append manually to our profiles) that would put this a huge step ABOVE any profile I currently use for that. ESPECIALLY if we can assign it to only interrupt every Nth cast (example being Oregorger where we assign 3 interrupters only for Blackrock Barrage, I could be first, second or third).

      If you included something along the lines of the following in the bot (pseudocode follows, I'm a Perl guy but should be legible for getting the basic idea, I'm aware the logic can be optimized but I'm a hack), we could then build out our interrupt logic pretty easily by adding a chunk to the configuration file. Hope you don't mind this super-verbose suggestion. Not expecting your implementation would match identically, I'm just using my example below to try and illustrate what would be useful for Interrupt configuration if you're willing to pursue it.

      Note: I'm assuming your bot base doesn't bother tracking ALL mobs nearby (Tuanha will allow you to interrupt any mob with aggro, targetted or not, or just target, or target + focus). That's actually fine with me as being way too good at interrupts is a huge bot flag (though players with good nameplates and mouseover macros make it feasible). It would be useful to be able to do interrupt on focus as well as target. If we can do interrupts on all targets then I've included a configuration on how the user can set that option below.

      ...

      ... in Bot

      Code:
      [I]### During Configuration loading[/I]
      
      # inform the bot which Interrupt abilities are available per class, which should also remove
      # these spells from the DPS rotation if they are included in the configuration file
      if ($spec eq "retribution") { $interrupt_spells_off_GCD = ("Rebuke"); }
      else if ($spec =~ /[combat|subtlety|assassination]/) { ( $interrupt_spells_off_GCD = "Kick"); }
      else if (<etc>) { <etc> } );
      
      # Slurp in the list of spells we want to interrupt. 
      # Raiders can configure this and add their own, but I also can see us sharing a list
      # on the forums for easy pasting as new content comes out
      @interrupt_SPELLIDs = <read in each interrupt.configure.SPELLID line from the configuration file>;
      
      # Who do we want to interrupt? If the bot is able to track more than 1 mob
      # Default: target only
      # Options: Target Only, Target+Focus, Focus Only, Bosses Only, All
      $interrupt_candidate = <read value from configuration file>; 
      
      # How many casts to track for Nth counting? Default = 1 so that if not specified we try to interrupt ALL
      $interrupt_SPELLID_Nth_max = <read value from configuration file>;  
      
      # WHICH iteration of N casts are we interrupting? Default = 1 so that we aren't worrying about 
      # interrupt rotations unless told
      $interrupt_SPELLID_Nth = <read value from configuration file>;  
      
      # default 500ms, no more than 950ms
      $interrupt_max_delay = <read value from configuration file>;
      if (! $interrupt_max_delay || $interrupt_max_delay > 950) { 
        $interrupt_max_delay = 950; 
      }
      
      # default 50ms, no less than 10ms
      $interrupt_min_delay = <read value from configuration file>; 
      if (! $interrupt_min_delay || $interrupt_min_delay < 10ms || $interrupt_min_delay >= $interrupt_max_delay) { 
        $interrupt_min_delay = 50; 
      }
      
      
      [I]### During rotation logic in the bot, checked each time the bot is ticked ... [/I]
      # since these are true interrupts off the GCD, they can run during the same tick as the DPS rotation 
      # and shouldn't end the tick if they go off
      
      if ($boss_action eq "casting") { 
      
      # Next 2 lines not optimal, would generate new random intervals each tick unless the delay_random were 
      # calculated outside of the tick loop and stored until the cast was done then redo the delay_random next cast
      # just doing this for simplicity of idea explanation
        $interrupt_delay_range = $interrupt_max_delay - $interrupt_min_delay;
        $interrupt_delay_random = int(rand($interrupt_delay_range)) + $interrupt_delay_min;
      
        if ($boss_cast) { 
          $boss_cast_SPELLID = $boss_cast;
          $boss_cast_SPELLID_Nth++;
          if ($boss_cast_SPELLID_Nth > $interrupt_SPELLID_Nth_max) {
            $boss_cast_SPELLID_Nth = 1;
          }
          if ($boss_cast_SPELLID = $interrupt_SPELLID && $bost_cast_SPELLID_Nth = $interrupt_SPELLID_Nth) { 
            if (isAvailable($interrupt_spell_off_GCD) && $boss_cast_timer > $interrupt_delay_random) { 
              cast $BOSS, $interrupt_spell_off_GCD; 
            }
          }
        }
      
      }
      
      
      ... in Configuration file

      Code:
      # configures our randomized delay
      interrupt.configure.min_delay=100
      interrupt.configure.max_delay=700
      
      # configures who we are wanting to interrupt
      interrupt.configure.target=target+focus
      
      #example configuration to interrupt EVERY cast that we can of Revitalizing Water 
      #(used by Life Warden Gola in Everbloom as well as some elites in Gorgrond, just for example)
      # no value after the SPELLID means Nth max is set to 1 and Nth is set to 1, interrupting any cast
      interrupt.configure.SPELLID=176280
      
      #example configuration to interrupt every 2nd cast of Oregorger's Blackrock Barrage, which casts 3 times
      interrupt.configure.SPELLID=156879,2,3
       
      Last edited: Feb 27, 2015
    11. Jerf

      Jerf New Member

      Joined:
      Nov 24, 2012
      Messages:
      138
      Likes Received:
      0
      Trophy Points:
      0
      Also related to the Interrupt idea, rather than adding it to our Simc export, perhaps it is in a separate file that can be specified as part of the profile? Helps keep the basic idea of "just export from Simulationcraft" on track.
       
    12. VenGFuL

      VenGFuL New Member

      Joined:
      Jan 26, 2012
      Messages:
      6
      Likes Received:
      0
      Trophy Points:
      0
      Having an issue which stops the bot from showing up in the dropdown menu where you can select which botbase to run. Not sure what's causing it but this is the only relevant information I could get from the log file:

       
    13. paperc07

      paperc07 Member

      Joined:
      Dec 16, 2011
      Messages:
      829
      Likes Received:
      9
      Trophy Points:
      18
      hunter's if you want to have deterrence pop if you are about to die at 20% add this to your file

      actions+=/deterrence,if=health.pct<=20 (at the top)


      if you want to have it auto mend your pet at 70% use this

      actions+=/mend_pet,if=pethealth.pct<=70&buff.mend_pet.down (at the top)

      EDIT: nvm it doesnt work when you do that, must need an update or something
       
      Last edited: Feb 27, 2015
    14. JondalarX

      JondalarX New Member

      Joined:
      Sep 7, 2014
      Messages:
      18
      Likes Received:
      0
      Trophy Points:
      0
      Put that debuff in there

      actions+=/tranquilizing_shot,if=debuff.reactive_earth_shield.up
       
    15. Jerf

      Jerf New Member

      Joined:
      Nov 24, 2012
      Messages:
      138
      Likes Received:
      0
      Trophy Points:
      0
      Retribution Bug: decided to try out Empowered Seals instead of Final Verdict tonight since it sims slightly higher.

      Code:
      <21:13>: Seal of Righteousness Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'Simcraft.SimcraftImpl.CooldownProxy.CooldownInternal' does not contain a definition for 'duration'
         at CallSite.Target(Closure , CallSite , Object )
         at Simcraft.IGBNXOWUMM.<GeneratePaladinRetributionPvEBehavior>b__490(Object _if)
         at Simcraft.SimcraftImpl.<>c__DisplayClass8b.<Cast>b__88(Object _ret) in c:\Honorbuddy\Bots\Simcraft\SimcraftImpl.cs:line 723
      
      This is with a fresh install of both Honorbuddy and Simcraft tonight due to new patch. Happened both in the default Ret profile as well as my customized profile.
       
    16. yello

      yello New Member

      Joined:
      May 25, 2013
      Messages:
      6
      Likes Received:
      0
      Trophy Points:
      0
      Great Botbase!

      bug report:

      Code:
      [01:26:19.093 D] System.Collections.Generic.KeyNotFoundException: The given key was not present in the dictionary.
         at System.Collections.Generic.Dictionary`2.get_Item(TKey key)
         at Simcraft.SimcraftImpl.DBGetClassSpell(String name) in d:\Honor\HonorbuddyDE 2.5.13042.771\Bots\Simcraft\SimcraftImpl.cs:line 197
         at Simcraft.SimcraftImpl.UNIT_SPELLCAST_SUCCEEDED(Object sender, LuaEventArgs args) in d:\Honor\Honorbuddy 2.5.13042.771\Bots\Simcraft\SimcraftTop.cs:line 423
         at Styx.WoWInternals.LuaEvents.( , UInt32 , UInt32 , Object[] )
      [01:26:19.349 D] Exception in lua event handler UNIT_SPELLCAST_SUCCEEDED
      [01:26:19.350 D] Microsoft.CSharp.RuntimeBinder.RuntimeBinderException: 'Simcraft.SimcraftImpl.PrevGcdProxy' does not contain a definition for 'id'
         at CallSite.Target(Closure , CallSite , Object , Int32 )
         at System.Dynamic.UpdateDelegates.UpdateAndExecute2[T0,T1,TRet](CallSite site, T0 arg0, T1 arg1)
         at Simcraft.SimcraftImpl.UNIT_SPELLCAST_SUCCEEDED(Object sender, LuaEventArgs args) in d:\Honor\Honorbuddy 2.5.13042.771\Bots\Simcraft\SimcraftTop.cs:line 434
       
    17. oly182

      oly182 New Member

      Joined:
      Jul 8, 2014
      Messages:
      79
      Likes Received:
      1
      Trophy Points:
      0
      how do i get the bot to stop using potions on trash?
       
    18. rimdab

      rimdab New Member

      Joined:
      Oct 2, 2011
      Messages:
      66
      Likes Received:
      0
      Trophy Points:
      0
      Remove actions+=/xxx_potion.. From profile
       
    19. dvbbs

      dvbbs New Member

      Joined:
      Feb 23, 2015
      Messages:
      5
      Likes Received:
      0
      Trophy Points:
      0
      My BM bot is spamming Agi pot over and over when in combat. Possible to fix?
       
    20. rimdab

      rimdab New Member

      Joined:
      Oct 2, 2011
      Messages:
      66
      Likes Received:
      0
      Trophy Points:
      0
      Remove all precombat actions and all actions that start with "actions+=/potion,name=draenic_agility,"
       

    Share This Page