Rotation framework design menu

User Tag List

Page 2 of 2 FirstFirst 12
Results 16 to 21 of 21
  1. #16
    Bananenbrot's Avatar Contributor
    Reputation
    153
    Join Date
    Nov 2009
    Posts
    384
    Thanks G/R
    1/3
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Not really that on topic, but I'm wondering for some time now how a reinforcement learner would play out for WoW. You could either enrich it with some hierarchy (e.g. options http://www.cs.cmu.edu/~mstoll/pubs/s...02learning.pdf) and then train combat situations in a simulator, or just do combat within a RL setting and do the other stuff (navigating, high level tasks) the old-fashioned way. Of course you need appropriate sensoring capabilities in your bot (e.g. query health values, cast times, debuffs, etc.) for a better-than-mediocre performance, but given enough training time in the simulator, I would suspect that such a learner would outperform every player and bot in DPS.

    I'm not really doing bots anymore (would love, but got stuff to do), but that would actually be very interesting. Also I'm wondering if there are some more modern deep learning concepts which might perform even better.

    Rotation framework design
  2. #17
    aeo's Avatar Contributor
    Reputation
    127
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Interesting read banana. Thanks.

    To expand the topic a bit how do you guys do healing priority ? Basic for me I developed a weight scale type system. It's very basic right now lower health is more weight , if you have a flag, are a tank, have taken x dmg in the last x seconds all these give you a score and I sort the table based on score to get the best target.

    Anyone have a different or more effective solution? Or maybe stuff to include in the scoring system?

  3. #18
    lolp1's Avatar Site Donator CoreCoins Purchaser
    Reputation
    190
    Join Date
    Feb 2013
    Posts
    210
    Thanks G/R
    43/77
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    Originally Posted by aeo View Post
    Interesting read banana. Thanks.

    To expand the topic a bit how do you guys do healing priority ? Basic for me I developed a weight scale type system. It's very basic right now lower health is more weight , if you have a flag, are a tank, have taken x dmg in the last x seconds all these give you a score and I sort the table based on score to get the best target.

    Anyone have a different or more effective solution? Or maybe stuff to include in the scoring system?
    When you have several people with similar health percentages who need heals, you could prioritize those with any kind of effects that increase healing taken by a decent percent. In some situations, this can lead to really giant increases in efficiency.

  4. #19
    aeo's Avatar Contributor
    Reputation
    127
    Join Date
    Apr 2007
    Posts
    270
    Thanks G/R
    84/62
    Trade Feedback
    7 (100%)
    Mentioned
    2 Post(s)
    Tagged
    0 Thread(s)
    Yeah great idea . Make use of others buffs will add it thanks

  5. #20
    lolp1's Avatar Site Donator CoreCoins Purchaser
    Reputation
    190
    Join Date
    Feb 2013
    Posts
    210
    Thanks G/R
    43/77
    Trade Feedback
    3 (100%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    The list of things that make a person take increased healing is fairly small, but make sure to include checks for things like Glyph of Recovery - WoWWiki - Your guide to the World of Warcraft and its universe - Wikia on rogues and things like that if you can too.

  6. #21
    ioctl's Avatar Active Member
    Reputation
    23
    Join Date
    Jan 2013
    Posts
    35
    Thanks G/R
    2/4
    Trade Feedback
    0 (0%)
    Mentioned
    0 Post(s)
    Tagged
    0 Thread(s)
    I use a decision tree with some nice glue to make the code simple to understand, and not clogged full of super-common predicates. Here's one rotation implementation:

    Code:
    class EnhancementShamanBrain(BasicCombatBrain):
      def __init__(self):
        super(EnhancementShamanBrain, self).__init__()
        self.LightningShield = Buff("Lightning Shield")
    
        self.UnleashElements = Spell("Unleash Elements")
        self.FlameShock = Debuff("Flame Shock")
        self.FeralSpirit = Spell("Feral Spirit")
        self.HealingSurge = Spell("Healing Surge")
        self.LavaLash = Attack("Lava Lash")
        self.LightningBolt = Attack("Lightning Bolt")
        self.Stormstrike = Attack("Stormstrike")
        self.WindShear = Attack("Wind Shear")
    
        self._healTimer = TrueEvery(7)
    
      def GetSpell(self):
        B = self
    
        yield B.LightningShield
    
        target = self.game_state.GetTarget()
        if target and target.GetSpellCasting():
          if target.GetSpellCasting() in FLAGS.interruptible_spells:
            yield B.WindShear
    
        if self.game_state.GetPlayerHealth() < 0.50:
          yield B.FeralSpirit
          if B.HealingSurge.CanUse() and self._healTimer.get():
            yield B.HealingSurge
    
        if self.game_state.GetPlayerBuff("Maelstrom Weapon") == 5:
          if self.game_state.GetPlayerHealth() < 0.90:
            yield B.HealingSurge
          yield B.LightningBolt
    
        yield B.FlameShock
    
        yield B.UnleashElements
        yield B.Stormstrike
        yield B.LavaLash
    GetSpell() is a generator for brevity -- you could get a similar effect by returning a list of actions in order of preference. "Attack", "Buff", etc. all internally manage basic decisions like "is this ability on cooldown?" "Do I have enough mana?", and "Do I already have this buff?". The calling code looks like this:

    Code:
        for spell in self.GetSpell():
          if spell.CanUse():
            target = self.game_state.GetTarget()
            print("Casting %s->%s" % (spell.name(), target.name if target else "None"))
            spell.use()
            break

  7. Thanks aeo (1 members gave Thanks to ioctl for this useful post)
Page 2 of 2 FirstFirst 12

Similar Threads

  1. Looking for Addon Maker/Designer
    By The Ronin in forum World of Warcraft General
    Replies: 3
    Last Post: 12-24-2006, 10:45 PM
  2. Web Designing
    By Grelkamah in forum Community Chat
    Replies: 14
    Last Post: 11-23-2006, 07:50 AM
  3. Designer island?
    By krazy12766 in forum WoW ME Questions and Requests
    Replies: 2
    Last Post: 09-04-2006, 06:12 AM
  4. Designer island?
    By krazy12766 in forum World of Warcraft Model Editing
    Replies: 1
    Last Post: 09-03-2006, 10:08 PM
  5. A Design for a band
    By Tenche in forum Community Chat
    Replies: 14
    Last Post: 08-02-2006, 02:37 AM
All times are GMT -5. The time now is 04:47 PM. Powered by vBulletin® Version 4.2.3
Copyright © 2024 vBulletin Solutions, Inc. All rights reserved. User Alert System provided by Advanced User Tagging (Pro) - vBulletin Mods & Addons Copyright © 2024 DragonByte Technologies Ltd.
Digital Point modules: Sphinx-based search