• Visit Rebornbuddy
  • Visit Panda Profiles
  • Visit LLamamMagic
  • FelMaster - static PVE destruction CC based on SimCraft's script

    Discussion in 'Archives' started by cowdude, Jul 5, 2011.

    1. cowdude

      cowdude Active Member

      Joined:
      Feb 17, 2010
      Messages:
      337
      Likes Received:
      27
      Trophy Points:
      28
      Nope, all 3 talents specs are supported. The previous version was actually a showcase for destro locks only.

      About PvP: I need to work on a new Helper class to manage people on battlegrounds (think about multi dotting in affliction and fearing people like crazy, keeping silence/death coil for healers => detect nearby ennemy healers, etc.). Stay tuned, as always...
       
    2. boofoo

      boofoo New Member

      Joined:
      May 19, 2010
      Messages:
      51
      Likes Received:
      0
      Trophy Points:
      0
      Anyway we could get an option to disable casting Doomguard on CD? and AoE support would be amazing :)
       
    3. cowdude

      cowdude Active Member

      Joined:
      Feb 17, 2010
      Messages:
      337
      Likes Received:
      27
      Trophy Points:
      28
      Yeah, AoE stuff is on my todo list.

      I've recently added the concept of 'burst levels' on the core. This will be available on next release. The idea is that you first define in the CC settings if you want to manage your cooldowns yourself or let the CC do it. Then when you start the bot, it will create two temp in-game macros you can display on your UI:

      1. Increase burst level by 1
      2. Reset burst level to 0

      Giving a small example about this:

      When burst=0, the bot will only focus on the main rotation (felhunter, no meta, no trinket, no doomroflguard).
      Press the macro button once and you'll switch to burst=1, causing the rotation to implement felguard, trinket and meta.
      Press it again and you'll move to burst=2, causing the rotation to still include metamorphis & co, but also pop doomguard.

      This could also work for a tanking CC, assuming that the 'burst macro' would become a panic button.
       
    4. boofoo

      boofoo New Member

      Joined:
      May 19, 2010
      Messages:
      51
      Likes Received:
      0
      Trophy Points:
      0
      So excited about your continued work on this CC. I got tired of being on my rogue and seeing the massive aoe damage demo puts out.
       
    5. cowdude

      cowdude Active Member

      Joined:
      Feb 17, 2010
      Messages:
      337
      Likes Received:
      27
      Trophy Points:
      28
      Updated to 1.2.1 and added some new rotations (thanks everyone!)

      SC.PlayerCountBuff(name): returns player buff stack count (like shadow priest's orbs)
      Added bursting logic
      Added some more settings
      Settings are now saved per character instead of one single file
      SC.TargetCountDebuff(name): returns player debuff stack count on target
      SC.BurstLevel: returns current burst level (default 0)
      SC.CombatTimeElapsed: returns time elapsed since combat started
      SC.UseBagItem(name): uses item in player's bags if not on cooldown
      SC.UseEngineerGloves: uses engineer's gloves enchant (1min cooldown pseudo trinket)
      Fixed SC.PlayerHasBuff when buff has no duration
      Fixed facing math bug

      AOE behaviors and helpers:
      SC.CountEnnemiesInRange(WoWPoint fromLocation, double maxRange): returns number of hostile units in range of given location
      SC.GetSpellRadius(name): returns spell's area radius
      SC.CastSpellAtLocation: casts a spell at a given location (like hunter's trap throwing)
      SC.CastSpellAtTargetLocation: exactly the same as the previous one, but on your current target location.
      SC.CastAreaSpell: automatically find packed units and cast an area spell on them. Does nothing if not enough targets
      SC.ChannelAreaSpell: same as the previous one, but channels an area spell (like rain of fire)

      About burst levels:
      - The idea is to split your common rotation and your burst one. It allows the user to pop every cooldown needed on burst phases.
      - You can manage burst phases by yourself or let the bot handle your cooldowns on the class settings panel
      - If managing them by yourself, you'll find two general in-game macros once you started the bot.
      - Macro 'burst more': increase burst level by one
      - Macro 'reset burst': reset burst level to 0
      - Burst level is automatically reset to 0 after you leave combat
      - If the bot is managing your burst level, it will wait 10 seconds after entering combat before bursting.

      Example:
      I've added the demonology warlock burst sequence in two levels:
      burst=1: pop trinkets and short/medium cooldowns
      burst=2: pop doomguard (10min cooldown)

      Code example:
      Code:
      return new Sequence(
      	//this is the burst phase pre-rotation. Called if and only if SC.BurstLevel > 0
      	SC.BurstSequence(
      		SC.CastSpell("Doomguard", a => true, "Doomguard - burst!"),
      	),
      
      	//and here's our normal rotation, which is always called, even while bursting
      	new PrioritySelector(
      		SC.CastSpell("Shadow Bolt", a => true, "Shadow Bolt"),
      		SC.CastSpell("Fel Flame", a => Me.IsMoving, "Fel flame while moving")
      	)
      );
      
      Please switch to this thread for comments/questions/etc: http://www.thebuddyforum.com/honorb...ing-cc-lazyraider-combat-bots.html#post344038

      The current thread is no more related to this CC.
       
      Ruinit likes this.
    6. Ruinit

      Ruinit Member

      Joined:
      Nov 1, 2010
      Messages:
      992
      Likes Received:
      4
      Trophy Points:
      18
      Awesome! Did I read a post that you were going to set up a SVN so we can keep updated easily?
       
    7. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Just checking, but you do know that HB has supported the spell queue system for a few releases now yes?

      SpellManager.CanCast(WoWSpell spell, WoWUnit target, bool checkRange, bool checkMoving, bool accountForLagTolerance)

      By default CanCast will account for lag tolerance (the spell queue system). If its not "responsive" enough, please let me know. It increased my ele shaman DPS from 16k back up to 22-24k (what I can do manually) using Singular's ele shaman code.
       
    8. cowdude

      cowdude Active Member

      Joined:
      Feb 17, 2010
      Messages:
      337
      Likes Received:
      27
      Trophy Points:
      28
      Yeah Apoc, I saw that. I may be implementing stuff already existing, but at least I know exactly how each of my core functions are working. I can remember some temp bugs related to cooldowns, player items and unit auras in the HB API.

      Nothing against your work, I truly admire it... I just want something reliable through HB updates without having to guess how some getter actually works, or how could I design a temp workaround.

      I wanted to do a similar project using pure lua rotations (nothing new here) but I guess I'm loving that ObjectManager too much to get rid of it.

      I also know that memory reading would be more efficient than talking to the lua engine. I'm fine with the idea of having a greedy CC. I'm aiming at responsiveness, not hardware performance.

      Last point, it's a quite fun experiment.
       
    9. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      As far as how it works;

      Code:
                  if (accountForLagTolerance && StyxWoW.Me.ChanneledCastingSpellId == 0)
                  {
                      if (StyxWoW.Me.IsCasting && StyxWoW.Me.CurrentCastTimeLeft.TotalMilliseconds > 500)
                          return false;
                  }
                  else
                  {
                      if (StyxWoW.Me.IsCasting)
                          return false;
                  }
      Basically; if the spell queue is to be used, just make sure there's nothing being channeled, and the time left on the cast is < 500ms (yes, we wrap the API, no, it won't break).

      After that check, are movement and CD checks.

      Code:
                  // This calls a Lua func that checks for all 'required' conditionals. Mana, runes, reactive conditions, etc.
                  return !spell.Cooldown && spell.CanCast;
      Lastly; WoWSpell already implements your Lua calls, in a much "safer" manner.

      Code:
              // BUGFIX: This was using the 'name' of the spell, which is in english. Which causes it to break on non-english clients
              public bool CanCast { get { return Lua.GetReturnVal<bool>("return IsUsableSpell(select(1, GetSpellInfo("+Id+")))", 0); } }
      
      public bool Cooldown { get { return Lua.GetReturnVal<float>(string.Format("return GetSpellCooldown({0})", Id), 1) != 0; } }
      As for the aura bugs, its actually next on my todo list of things to fix. That one has some "odd" bugs. (We read the aura tables manually, so we have the exact same info the Lua funcs do, not entirely sure why ours don't update properly.)
       
    10. cowdude

      cowdude Active Member

      Joined:
      Feb 17, 2010
      Messages:
      337
      Likes Received:
      27
      Trophy Points:
      28
      Thanks for the snippets.

      I'm localizing spell/aura names as much as possible (tested on french client with accents). I also fully escape (char to \xxx code) every single localized string before calling them through LUA. The result is really as nice as relying on id's, even though lua strings are getting quite big.
       
    11. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      Well, do keep in mind that HB has a localized DB for spells. (Any WoWSpell.Name is automatically localized to English, so you really don't need to mess around with it)

      Edit; that includes aura/buff/etc names, as they're just spells as well.
       
    12. Ruinit

      Ruinit Member

      Joined:
      Nov 1, 2010
      Messages:
      992
      Likes Received:
      4
      Trophy Points:
      18
      I must be missing something cause for me singular ele doesn't do any rotation at all in it's current state.... just sets there
       
    13. Cracktomte

      Cracktomte Member

      Joined:
      Mar 7, 2010
      Messages:
      430
      Likes Received:
      13
      Trophy Points:
      18
      Off topic, but I can confirm it's failing. Tries to use gloves.
       
    14. Apoc

      Apoc Moderator Staff Member Moderator

      Joined:
      Jan 16, 2010
      Messages:
      2,790
      Likes Received:
      94
      Trophy Points:
      48
      I'll have to commit the working version. (I only wrote enough to test the spell queue system, but yea, I'll get around to finishing it today at some point)

      Also; please stay on topic. Not trying to hijack cowdude's thread here.
       
      Last edited: Aug 26, 2011
    15. darex11

      darex11 New Member

      Joined:
      Aug 27, 2010
      Messages:
      47
      Likes Received:
      1
      Trophy Points:
      0
      Great CC, but need update. U must add shadowflame in melee range and add options for manualy use cooldown (doomguard)
       
    16. Jvidia

      Jvidia Member

      Joined:
      Jan 7, 2011
      Messages:
      594
      Likes Received:
      13
      Trophy Points:
      18
      Is this still being updated?
       
    17. barga

      barga New Member

      Joined:
      Dec 4, 2011
      Messages:
      1
      Likes Received:
      0
      Trophy Points:
      1
      hello Cowdude ,

      i think u can help me , i realy like ur job on rotations , but i have a little problem on Simple Demonology rotation i just tried get off the pet summon but if i delete it dont work, can u make this, no pets, i want to chose one for diferent fights please.
      Thanks and congratulations.

      Cya
       
    18. imdasandman

      imdasandman Active Member

      Joined:
      Feb 2, 2011
      Messages:
      1,207
      Likes Received:
      6
      Trophy Points:
      38
      hey Barga I have not seen Cowdude around in a very long time... maybe someone has a more updated profile for you to use I have no idea. Gl to ya.
       
    19. 15outland

      15outland New Member

      Joined:
      Mar 27, 2011
      Messages:
      1,056
      Likes Received:
      0
      Trophy Points:
      0
      I'm having massive issues using this on the latest REV, keeps freezing bot and and not attacking, tries to summon pet, even though I have him out.
       

      Attached Files:

    20. bennyquest

      bennyquest Community Developer

      Joined:
      Dec 6, 2010
      Messages:
      2,644
      Likes Received:
      22
      Trophy Points:
      38
      I have a question, I have not really dived into CC coding at all so I was wondering. Where would i add in (and how) when my Destro lock casts demon soul he also casts the orc racial and life blood? Thanks in advance.
       

    Share This Page