1. #1

    Is there a rotation addon?

    Hello brand new to warlocks and I was curious if there was an addon for locks rotation to help you learn it faster and etc.

    Kinda like clc ret. I thought they had a lock one but not for mop.

    Only thing I could find was a spell flash.

    Ty in advance

  2. #2
    Deleted
    I don't know about any addon like that. There are just too many variables to take into consideration. I do think the guides provide a fairly basic playstyle for new players that you should check out.
    Addon-wise: The most fundamental to me are just affdots(for aff) TMW and WA.

  3. #3
    Ovale.

    Use this code.

    Code:
    Define(agony 980)
      SpellInfo(agony duration=24 tick=2)
      SpellAddTargetDebuff(agony agony=1)
    Define(aura_of_the_elements 116202)
      SpellInfo(aura_of_the_elements duration=300 )
      SpellAddTargetDebuff(aura_of_the_elements aura_of_the_elements=1)
    Define(backdraft 117828)
    Define(blood_fury 33702)
      SpellInfo(blood_fury duration=15 cd=120 )
      SpellAddBuff(blood_fury blood_fury=1)
    Define(chaos_bolt 116858)
      SpellInfo(chaos_bolt burningembers=10)
    Define(conflagrate 17962)
      SpellInfo(conflagrate duration=5 )
      SpellAddBuff(conflagrate backdraft=1)
    Define(corruption 172)
      SpellAddTargetDebuff(corruption corruption=1)
    Define(create_soulwell 29893)
    Define(create_healthstone 6201)
    Define(curse_of_the_elements 1490)
      SpellInfo(curse_of_the_elements duration=300 )
      SpellAddTargetDebuff(curse_of_the_elements curse_of_the_elements=1)
    Define(dark_intent 109773)
      SpellInfo(dark_intent duration=3600 )
      SpellAddBuff(dark_intent dark_intent=1)
    Define(dark_soul_instability 113858)
      SpellInfo(dark_soul_instability cd=120)
    Define(dark_soul_knowledge 113861)
      SpellInfo(dark_soul_knowledge cd=120)
    Define(dark_soul_misery 113860)
      SpellInfo(dark_soul_misery cd=120 resetcounter=soul)
    Define(doom 603)
      SpellInfo(doom duration=60 demonicfury=60 tick=15 stance=1)
      SpellAddTargetDebuff(doom doom=1)
    Define(drain_soul 1120)
      SpellInfo(drain_soul tick=2 canStopChannelling=3 )
      SpellAddTargetDebuff(drain_soul drain_soul=1)
    Define(fel_flame 77799)
    Define(felstorm 89751)
      SpellInfo(felstorm duration=6 energy=60 cd=45 )
      SpellAddBuff(felstorm felstorm=1)
    Define(fire_and_brimstone 108683)
      SpellInfo(fire_and_brimstone burningembers=1 cd=1)
      SpellAddBuff(fire_and_brimstone fire_and_brimstone=1)
    Define(fire_and_brimstone_immolate 108686)
      SpellInfo(fire_and_brimstone_immolate duration=15 tick=3 )
      SpellAddTargetDebuff(fire_and_brimstone_immolate fire_and_brimstone_immolate=1)
      SpellAddBuff(fire_and_brimstone_immolate fire_and_brimstone=-1)
    Define(fire_and_brimstone_conflagrate 108685)
      SpellInfo(fire_and_brimstone_conflagrate duration=5 cd=12)
      SpellAddBuff(fire_and_brimstone_conflagrate fire_and_brimstone=-1)
    Define(fire_and_brimstone_incinerate 114654)
      SpellAddBuff(fire_and_brimstone_incinerate fire_and_brimstone=-1)
    Define(flames_of_xeroth 120451)
    Define(grimoire_felguard 111898)
      SpellInfo(grimoire_felguard cd=120)
    Define(grimoire_of_sacrifice 108503)
      SpellInfo(grimoire_of_sacrifice duration=1200 cd=120 )
      SpellAddBuff(grimoire_of_sacrifice grimoire_of_sacrifice=1)
    Define(grimoire_succubus 111896)
    Define(hand_of_guldan 105174)
    Define(harvest_life 108371)
      SpellInfo(harvest_life duration=6 tick=1 )
      SpellAddTargetDebuff(harvest_life harvest_life=1)
    Define(haunt 48181)
      SpellInfo(haunt duration=8 shards=1)
      SpellAddTargetDebuff(haunt haunt=1)
    Define(havoc 80240)
      SpellInfo(havoc duration=15 cd=25 )
      SpellAddBuff(havoc havoc=1)
    Define(hellfire 1949)
      SpellInfo(hellfire canStopChannelling=14)
    Define(immolate 348)
      SpellInfo(immolate duration=15 tick=3 )
      SpellAddTargetDebuff(immolate immolate=1)
    Define(immolation_aura 129476)
    Define(incinerate 29722)
      SpellAddBuff(incinerate fire_and_brimstone=-1)
    Define(life_tap 1454)
      SpellInfo(life_tap mana=-15 )
    Define(legion_strike 30213)
    Define(malefic_grasp 103103)
      SpellInfo(malefic_grasp)
      SpellAddTargetDebuff(malefic_grasp malefic_grasp=1)
    Define(melee 103988)
      SpellInfo(melee stance=1)
    Define(metamorphosis 103958)
      SpellInfo(metamorphosis demonicfury=0 cd=10 )
      SpellAddBuff(metamorphosis metamorphosis=1)
    Define(molten_core 122355)
    Define(rain_of_fire 104232)
      SpellInfo(rain_of_fire duration=8 tick=2)
      SpellAddTargetDebuff(rain_of_fire rain_of_fire=1)
      SpellAddBuff(rain_of_fire rain_of_fire=1)
    Define(seed_of_corruption 27243)
      SpellInfo(seed_of_corruption duration=18)
      SpellAddTargetDebuff(seed_of_corruption seed_of_corruption=1)
    Define(seed_of_corruption_corruption 87389)
      SpellInfo(seed_of_corruption_corruption duration=18 tick=2 )
      SpellAddTargetDebuff(seed_of_corruption_corruption seed_of_corruption_corruption=1)
    Define(shadow_bolt 686)
    Define(shadowburn 17877)
      SpellInfo(shadowburn burningembers=1 )
    Define(shadowflame 47960)
      SpellInfo(shadowflame duration=6 tick=1 )
      SpellAddTargetDebuff(shadowflame shadowflame=1)
    Define(soul_fire 6353)
      SpellAddBuff(soul_fire molten_core=-1)
    Define(soul_fire_meta 104027)
      SpellInfo(soul_fire_meta demonicfury=80 stance=1)
      SpellAddBuff(soul_fire_meta molten_core=-1)
    Define(soul_swap 86121)
    Define(soulburn 74434)
      SpellInfo(soulburn duration=30 shards=1 inccounter=soul)
      SpellAddBuff(soulburn soulburn=1)
    Define(soulburn_seed_of_corruption 114790)
      SpellAddBuff(soulburn_seed_of_corruption soulburn=-1)
    Define(soulburn_seed_of_corruption_corruption 87389)
    Define(soulburn_soul_swap 119678)
      SpellAddTargetDebuff(soulburn_soul_swap agony_aura=1)
      SpellAddTargetDebuff(soulburn_soul_swap corruption_aura=1)
      SpellAddTargetDebuff(unstable_affliction unstable_affliction_aura=1)
    Define(spell_lock 103135)
    Define(summon_doomguard 18540)
      SpellInfo(summon_doomguard cd=600 )
    Define(summon_felguard 30146)
      SpellInfo(summon_felguard)
    Define(summon_felhunter 691)
      SpellInfo(summon_felhunter)
    Define(summon_infernal 1122)
      SpellInfo(summon_infernal cd=600 )
    Define(summon_observer 112869)
    Define(summon_succubus 712)
      SpellInfo(summon_succubus)
    Define(summon_terrorguard 112927)
      SpellInfo(summon_doomguard cd=600 )
    Define(summon_voidwalker 697)
      SpellInfo(summon_voidwalker)
    Define(touch_of_chaos 103964)
      SpellInfo(touch_of_chaos demonicfury=40 stance=1)
    Define(unstable_affliction 30108)
      SpellAddTargetDebuff(unstable_affliction unstable_affliction_aura=1)
    Define(unstable_affliction_aura 30108)
      SpellInfo(unstable_affliction_aura duration=14 tick=2)
    Define(void_ray 115422)
      SpellInfo(void_ray demonicfury=40 )
    Define(wrathstorm 115831)
      SpellInfo(wrathstorm duration=6 energy=60 cd=45 )
      SpellAddBuff(wrathstorm wrathstorm=1)
    
    Define(grimoire_of_sacrifice_talent 15)
    Define(grimoire_of_service_talent 14)
    Define(grimoire_of_supremacy_talent 13)
    Define(harvest_life_talent 3)
    
    Define(flask_of_the_warm_sun 76085)
    Define(flask_of_the_warm_sun_buff 105691)
    Define(healthstone 5512)
    Define(jade_serpent_potion 76093)
    Define(gladiator_s_badge_of_dominance 84940)
    Define(skull_banner 114207)
    Define(perfect_aim 138963)
    
    AddListItem(curse elements SpellName(curse_of_the_elements))
    AddListItem(curse none L(None) default)
    
    AddIcon mastery=1 help=buff size=small
    {
    #0     0.00     flask,type=warm_sun
        if target.Classification(worldboss) and BuffExpires(flask_of_the_warm_sun_buff) Spell(flask_of_the_warm_sun)
    
    #1     0.00     food,type=mogu_fish_stew
    
    #2     0.00     dark_intent,if=!aura.spell_power_multiplier.up
        if BuffExpires(spell_power_multiplier any=1) Spell(dark_intent)
    
    #3     0.00     summon_pet
        if PetPresent(no)
        {
            if TalentPoints(grimoire_of_sacrifice_talent)
            { 
                if InCombat(yes) and BuffExpires(grimoire_of_sacrifice) and Spell(summon_voidwalker usable=1) and at least 1s Spell(summon_voidwalker) and BuffExpires(soulburn) Spell(soulburn usable=1)
                if {InCombat(no) and BuffExpires(grimoire_of_sacrifice 400)} or BuffExpires(grimoire_of_sacrifice) Spell(summon_voidwalker)
            }
            if TalentPoints(grimoire_of_supremacy_talent)
            {
                if InCombat(yes) and Spell(summon_observer usable=1) and at least 1s Spell(summon_observer) and BuffExpires(soulburn) Spell(soulburn usable=1)
                Spell(summon_observer)
            }
            if TalentPoints(grimoire_of_service_talent)
            {
                if InCombat(yes) and Spell(summon_felhunter usable=1) and at least 1s Spell(summon_felhunter) and BuffExpires(soulburn) Spell(soulburn usable=1)
                Spell(summon_felhunter)
            }
        }
    
    #C     1.00     grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled
        if PetPresent(yes) and TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
    
    #4     0.00     snapshot_stats
        if ItemCount(healthstone less 1) Spell(create_healthstone)
    
    #5     0.00     jade_serpent_potion
        if target.Classification(worldboss) and ItemCount(healthstone more 0) and InCombat(no) Item(jade_serpent_potion usable=1)
    }
    
    AddIcon mastery=1 help=cd
    {
    #7     7.81     use_item,name=shaskin_gloves
    
    #8     1.00     jade_serpent_potion,if=buff.bloodlust.react|target.health.pct<=20
        if target.Classification(worldboss) and {BuffPresent(burst_haste any=1) or target.LifePercent() <=20} Item(jade_serpent_potion usable=1)
    
    #A     6.04     dark_soul
        Spell(dark_soul_misery)
    
    #9     4.27     blood_fury
        Spell(blood_fury)
    
    #B     0.00     service_pet,if=talent.grimoire_of_service.enabled
        Spell(grimoire_succubus)
    
    #D     0.00     summon_pet,if=talent.grimoire_of_sacrifice.enabled&buff.grimoire_of_sacrifice.down
    #this is handled by summon_pet line
    
    #E     0.00     run_action_list,name=aoe,if=num_targets>3
    #this section will have its own icon
    
    #F     1.00     summon_doomguard
        if TalentPoints(grimoire_of_service_talent) or TalentPoints(grimoire_of_sacrifice_talent) Spell(summon_doomguard)
        if TalentPoints(grimoire_of_supremacy_talent) Spell(summon_terrorguard)
    }
    
    AddIcon mastery=1 help=main
    {
    #6     0.00     curse_of_the_elements,if=debuff.magic_vulnerability.down
        if List(curse elements) and TargetClassification(worldboss) and target.DebuffExpires(magic_vulnerability any=1) and target.TimeToDie() >=8 Spell(curse_of_the_elements)
    
    #G     7.22     soul_swap,if=buff.soulburn.up
        if not InFlightToTarget(soulburn_soul_swap) and BuffPresent(soulburn) and not InFlightToTarget(soulburn_seed_of_corruption) Spell(soulburn_soul_swap usable=1)
    
    #H     43.32     haunt,if=!in_flight_to_target&remains<tick_time+travel_time+cast_time&shard_react
        if not InFlightToTarget(haunt) and SoulShards() > 1 and target.DebuffRemains(haunt) < 3 Spell(haunt)
    
    #K     3.73     soulburn,line_cd=20,if=buff.dark_soul.up&shard_react
    #    if Counter(soul equal 0) and BuffExpires(soulburn) and Spell(soul_swap usable=1) and BuffPresent(dark_soul_misery) and {Casting(haunt) or InFlightToTarget(haunt) or target.DebuffRemains(haunt) > 3} Spell(soulburn usable=1)
    
    #L     3.58   soulburn,if=(dot.unstable_affliction.ticks_remain<action.unstable_affliction.add_ticks%2|dot.corruption.ticks_remain<action.corruption.add_ticks%2|dot.agony.ticks_remain<action.agony.add_ticks%2)&target.health.pct<=20&shard_react
        if BuffExpires(soulburn) and target.HealthPercent() <=20 and Spell(soul_swap usable=1) and target.TimeToDie() >=5 
        {
            if target.DebuffExpires(agony 11) Spell(soulburn usable=1)
            if target.DebuffExpires(corruption 8) and target.DebuffExpires(seed_of_corruption_corruption 8) Spell(soulburn usable=1)
            if target.DebuffExpires(unstable_affliction 8) Spell(soulburn usable=1)
        }
    
    #M     14.00     agony,cycle_targets=1,if=ticks_remain<add_ticks%2&target.time_to_die>=8&miss_react
        if target.DebuffExpires(agony 11) and target.TimeToDie() >=8 and {not target.DebuffPresent(corruption) and not target.DebuffPresent(soulburn_seed_of_corruption_corruption) or {target.DebuffRemains(corruption) > target.DebuffRemains(agony) or target.DebuffRemains(soulburn_seed_of_corruption_corruption) > target.DebuffRemains(agony)}} Spell(agony)
    
    #N     18.62     corruption,cycle_targets=1,if=ticks_remain<add_ticks%2&target.time_to_die>=6&miss_react
    #    if target.DebuffExpires(corruption 8) and target.DebuffExpires(soulburn_seed_of_corruption_corruption 8) and target.TimeToDie() >=6 and {not target.DebuffPresent(unstable_affliction) or {at least 1.5s from target.DebuffExpires(corruption) until target.DebuffExpires(unstable_affliction) and at least 1.5s from target.DebuffExpires(soulburn_seed_of_corruption_corruption) until target.DebuffExpires(unstable_affliction)}} Spell(corruption)
        if target.DebuffExpires(corruption 8) and target.DebuffExpires(soulburn_seed_of_corruption_corruption 8) and target.TimeToDie() >=6 and {not target.DebuffPresent(unstable_affliction) or {target.DebuffRemains(unstable_affliction) > target.DebuffRemains(corruption) + 1.5 and target.DebuffRemains(unstable_affliction) > target.DebuffRemains(soulburn_seed_of_corruption_corruption) + 1.5}} Spell(corruption)
    
    #O     25.42     unstable_affliction,cycle_targets=1,if=ticks_remain<add_ticks%2+1&target.time_to_die>=5&miss_react
        if target.DebuffExpires(unstable_affliction 8) and target.TimeToDie() >=5 Spell(unstable_affliction) 
    
    #P     16.87     drain_soul,interrupt=1,chain=1,if=target.health.pct<=20
        if target.HealthPercent() <=20 Spell(drain_soul)
    
    #Q     10.46     life_tap,if=mana.pct<35
        if ManaPercent() <35 and HealthPercent() >=50 and BuffExpires(dark_soul_misery) Spell(life_tap)
    
    #R     56.72     malefic_grasp,chain=1
        Spell(malefic_grasp)
    
    #U     0.00     life_tap
        Spell(life_tap)
    }
    
    
    AddIcon mastery=1 help=Moving size=small
    {
    #6     0.00     curse_of_the_elements,if=debuff.magic_vulnerability.down
        if List(curse elements) and TargetClassification(worldboss) and target.DebuffExpires(magic_vulnerability any=1) and target.TimeToDie() >=8 Spell(curse_of_the_elements)
    
    #G     7.22     soul_swap,if=buff.soulburn.up
        if not InFlightToTarget(soulburn_soul_swap) and BuffPresent(soulburn) Spell(soulburn_soul_swap usable=1)
    
    #K     3.73     soulburn,line_cd=20,if=buff.dark_soul.up&shard_react
        if Counter(soul equal 0) and BuffExpires(soulburn) and Spell(soul_swap usable=1) and BuffPresent(dark_soul_misery) and {Casting(haunt) or InFlightToTarget(haunt) or target.DebuffRemains(haunt) > 3} Spell(soulburn usable=1)
    
    #L     3.58   soulburn,if=(dot.unstable_affliction.ticks_remain<action.unstable_affliction.add_ticks%2|dot.corruption.ticks_remain<action.corruption.add_ticks%2|dot.agony.ticks_remain<action.agony.add_ticks%2)&target.health.pct<=20&shard_react
        if {Casting(haunt) or InFlightToTarget(haunt) or target.DebuffRemains(haunt) > 3} and BuffExpires(soulburn) and target.HealthPercent() <=20 and Spell(soul_swap usable=1)
        {
            if target.DebuffExpires(agony 11) Spell(soulburn usable=1)
            if target.DebuffExpires(corruption 8) and target.DebuffExpires(seed_of_corruption_corruption 8) Spell(soulburn usable=1)
            if target.DebuffExpires(unstable_affliction 8) Spell(soulburn usable=1)
        }
    
    #M     14.00     agony,cycle_targets=1,if=ticks_remain<add_ticks%2&target.time_to_die>=8&miss_react
        if target.DebuffExpires(agony 11) and target.TimeToDie() >=8 Spell(agony)
    
    #N     18.62     corruption,cycle_targets=1,if=ticks_remain<add_ticks%2&target.time_to_die>=6&miss_react
        if target.DebuffExpires(corruption 8) and target.DebuffExpires(seed_of_corruption_corruption 8) and target.TimeToDie() >=6 Spell(corruption)
    
    #Q     10.46     life_tap,if=mana.pct<35
        if ManaPercent() <35 and HealthPercent() >=50 Spell(life_tap)
    
    #S     0.00     life_tap,moving=1,if=mana.pct<80&mana.pct<target.health.pct
        if ManaPercent() <80 and ManaPercent() <target.HealthPercent() and HealthPercent() >=50 Spell(life_tap)
    
    #T     0.00     fel_flame,moving=1
        Spell(fel_flame)
    
    #U     0.00     life_tap
        Spell(life_tap)
    }
    
    AddIcon mastery=2 help=buff size=small
    {
    #0     0.00     flask,type=warm_sun
        if target.Classification(worldboss) and BuffExpires(flask_of_the_warm_sun_buff) Spell(flask_of_the_warm_sun)
    
    #1     0.00     food,type=mogu_fish_stew
    
    #2     0.00     dark_intent,if=!aura.spell_power_multiplier.up
        if BuffExpires(spell_power_multiplier any=1) Spell(dark_intent)
    
    #3     0.00     summon_pet
         if PetPresent(no) Spell(summon_felguard)
    
    #4     0.00     snapshot_stats
        if ItemCount(healthstone less 1) Spell(create_healthstone)
    
    #5     0.00     jade_serpent_potion
        if target.Classification(worldboss) and PetPresent(yes) and ItemCount(healthstone more 0) and InCombat(no) Item(jade_serpent_potion usable=1)
    }
    
    AddIcon mastery=2 help=cd
    {
    #8     1.00     jade_serpent_potion,if=buff.bloodlust.react|target.health.pct<=20
        if target.Classification(worldboss) and {BuffPresent(burst_haste any=1) or target.LifePercent() <=20} Item(jade_serpent_potion usable=1)
    
    #A     dark_soul
        Spell(dark_soul_knowledge)
    
    #9     blood_fury
        Spell(blood_fury)
    
    #B     0.00     service_pet,if=talent.grimoire_of_service.enabled
        Spell(grimoire_felguard)
    
    #F     10.29     felguard:felstorm
       if TargetInRange(legion_strike yes) Spell(felstorm usable=1)
    
    #F     1.00     summon_doomguard
        Spell(summon_doomguard)
    }
    
    AddIcon mastery=2 help=main
    {
    #6     0.00     curse_of_the_elements,if=debuff.magic_vulnerability.down
        if List(curse elements) and TargetClassification(worldboss) and target.DebuffExpires(magic_vulnerability any=1) and target.TimeToDie() >=8 Spell(curse_of_the_elements)
    
    #J     1.00     corruption,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>=6&miss_react
        if target.DebuffRemains(corruption) <= 2 and BuffExpires(metamorphosis) Spell(corruption)
    
    #K     doom,cycle_targets=1,if=(!ticking|remains<tick_time|(ticks_remain+1<n_ticks&buff.dark_soul.up))&target.time_to_die>=30&miss_react
        if BuffPresent(metamorphosis) and {target.DebuffExpires(doom 25) or {BuffPresent(dark_soul_knowledge) and target.DebuffExpires(doom 55)}} Texture(spell_shadow_auraofdarkness)
    
    #L     19.52     metamorphosis,if=buff.dark_soul.up|dot.corruption.remains<5|demonic_fury>=900|demonic_fury>=target.time_to_die*30
        if {BuffPresent(dark_soul_knowledge) or target.DebuffRemains(corruption) <= 5 or {target.DebuffRemains(doom) <= 5 and target.Life(more 200000)} or DemonicFury() >=900} and BuffExpires(metamorphosis) and target.DebuffPresent(corruption) and DemonicFury() >=50 Spell(metamorphosis usable=1)
    
    #M     14.09     cancel_metamorphosis,if=dot.corruption.remains>20&buff.dark_soul.down&demonic_fury<=750&target.time_to_die>30
        if target.DebuffRemains(corruption) >= 20 and BuffExpires(dark_soul_knowledge) and DemonicFury() <=750 and BuffPresent(metamorphosis) Texture(ability_rogue_envelopingshadows)
    
    #N     hand_of_guldan,if=!in_flight&dot.shadowflame.remains<travel_time+action.shadow_bolt.cast_time
        if not InFlightToTarget(hand_of_guldan) and target.DebuffRemains(shadowflame) <1 +CastTime(shadow_bolt) and BuffExpires(metamorphosis) Spell(hand_of_guldan)
    
    #O     touch_of_chaos,if=dot.corruption.remains<20
        if target.DebuffRemains(corruption) <= 20 and BuffPresent(metamorphosis) Spell(touch_of_chaos)
    
    #P     soul_fire,if=buff.molten_core.react
        if target.DebuffRemains(corruption) > 20 and BuffPresent(molten_core) and BuffPresent(metamorphosis) Spell(soul_fire_meta)
    
    #P     soul_fire,if=buff.molten_core.react
        if BuffPresent(molten_core) and not BuffPresent(metamorphosis) Spell(soul_fire)
    
    #Q     touch_of_chaos
        Spell(touch_of_chaos)
    
    #R     life_tap,if=mana.pct<50
        if ManaPercent() <50 and HealthPercent() >=50 Spell(life_tap)
    
    #S     shadow_bolt
        Spell(shadow_bolt)
    
    #U     life_tap
        Spell(life_tap)
    }
    
    AddIcon mastery=2 help=Moving size=small
    {
    #6     0.00     curse_of_the_elements,if=debuff.magic_vulnerability.down
        if List(curse elements) and TargetClassification(worldboss) and target.DebuffExpires(magic_vulnerability any=1) and target.TimeToDie() >=8 Spell(curse_of_the_elements)
    
    #J     1.00     corruption,cycle_targets=1,if=(!ticking|remains<tick_time)&target.time_to_die>=6&miss_react
        if {target.DebuffRemains(corruption) <= 2} and BuffExpires(metamorphosis) Spell(corruption)
    
    #K     8.73     doom,cycle_targets=1,if=(!ticking|remains<tick_time|(ticks_remain+1<n_ticks&buff.dark_soul.up))&target.time_to_die>=30&miss_react
        if BuffPresent(metamorphosis) and target.DebuffRemains(doom) <= 3 or {BuffPresent(dark_soul_knowledge) and TargetDebuffExpires(doom 54 mine=1)} Spell(doom)
    
    #L     19.52     metamorphosis,if=buff.dark_soul.up|dot.corruption.remains<5|demonic_fury>=900|demonic_fury>=target.time_to_die*30
        if {BuffPresent(dark_soul_knowledge) or target.DebuffRemains(corruption) <= 5 or target.DebuffRemains(doom) <= 5 or DemonicFury() >=900} and BuffExpires(metamorphosis) and target.DebuffPresent(corruption) and DemonicFury() >=50 Spell(metamorphosis)
    
    #M     14.09     cancel_metamorphosis,if=dot.corruption.remains>20&buff.dark_soul.down&demonic_fury<=750&target.time_to_die>30
        if target.DebuffRemains(corruption) >= 20 and BuffExpires(dark_soul_knowledge) and DemonicFury() <=750 and BuffPresent(metamorphosis) Texture(ability_rogue_envelopingshadows)
    
    #N     29.36     hand_of_guldan,if=!in_flight&dot.shadowflame.remains<travel_time+action.shadow_bolt.cast_time
        if not InFlightToTarget(hand_of_guldan) and target.DebuffRemains(shadowflame) <1 +CastTime(shadow_bolt) and BuffExpires(metamorphosis) Spell(hand_of_guldan)
    
    #O     53.26     touch_of_chaos,if=dot.corruption.remains<20
        if target.DebuffRemains(corruption) <20 Spell(touch_of_chaos)
    
    #Q     77.16     touch_of_chaos
        Spell(touch_of_chaos)
    
    #R     13.62     life_tap,if=mana.pct<50
        if ManaPercent() <50 and HealthPercent() >=50 Spell(life_tap)
    
    #T     0.00     fel_flame,moving=1
        Spell(fel_flame)
    
    #U     0.00     life_tap
        Spell(life_tap)
    }
    
    
    AddIcon mastery=3 help=buff size=small
    {
    #0     0.00     flask,type=warm_sun
    
    #1     0.00     food,type=mogu_fish_stew
    
    #2     0.00     dark_intent,if=!aura.spell_power_multiplier.up
        if BuffExpires(spell_power_multiplier any=1) Spell(dark_intent)
    
    #3     0.00     summon_pet
        if PetPresent(no)
        {
            if InCombat(yes) and BuffExpires(grimoire_of_sacrifice) Spell(flames_of_xeroth usable=1)
            if TalentPoints(grimoire_of_sacrifice_talent) and BuffExpires(grimoire_of_sacrifice 400) Spell(summon_voidwalker)
            if TalentPoints(grimoire_of_supremacy_talent) Spell(summon_observer)
            if TalentPoints(grimoire_of_service_talent) Spell(summon_succubus)
        }
    
    #C     1.00     grimoire_of_sacrifice,if=talent.grimoire_of_sacrifice.enabled
        if PetPresent(yes) and TalentPoints(grimoire_of_sacrifice_talent) Spell(grimoire_of_sacrifice)
    
    
    #4     0.00     snapshot_stats
        if ItemCount(healthstone less 1) Spell(create_healthstone)
    
    #5     0.00     jade_serpent_potion
        if target.Classification(worldboss) and ItemCount(healthstone more 0) and InCombat(no) Item(jade_serpent_potion usable=1)
    
        if BurningEmbers() >=10 Spell(havoc usable=1)
    }
    
    AddIcon mastery=3 help=cd
    {
    #7     7.81     use_item,name=shaskin_gloves
    
    #8     1.00     jade_serpent_potion,if=buff.bloodlust.react|target.health.pct<=20
        if target.Classification(worldboss) and {BuffPresent(burst_haste any=1) or target.LifePercent() <=20} Item(jade_serpent_potion usable=1)
    
    #C     4.32     dark_soul
        Spell(dark_soul_instability)
    
    #B     4.32     blood_fury
        Spell(blood_fury)
    
    #D     0.00     service_pet,if=talent.grimoire_of_service.enabled
        Spell(grimoire_succubus)
    
    #F     1.00     summon_doomguard
        if TalentPoints(grimoire_of_service_talent) or TalentPoints(grimoire_of_sacrifice_talent) Spell(summon_doomguard)
        if TalentPoints(grimoire_of_supremacy_talent) Spell(summon_terrorguard)
    
    }
    
    AddIcon mastery=3 help=main
    {
    #8     0.00     curse_of_the_elements,if=debuff.magic_vulnerability.down
        if List(curse elements) and TargetClassification(worldboss) and target.DebuffExpires(magic_vulnerability any=1) and target.TimeToDie() >=8 Spell(curse_of_the_elements)
    
    #I     12.49     shadowburn,if=ember_react
        if BurningEmbers() >=10 and target.HealthPercent(less 20) Spell(shadowburn usable=1)
    
    #J     27.95     immolate,cycle_targets=1,if=ticks_remain<add_ticks%2&target.time_to_die>=5&miss_react
        if target.DebuffExpires(immolate 8) and target.DebuffExpires(fire_and_brimstone_immolate 8) and target.DeadIn() >=5 Spell(immolate)
    
    #K     1.94     conflagrate,if=charges=2
        if Charges(conflagrate) ==2 Spell(conflagrate)
    
    #L     59.55     rain_of_fire,if=!ticking&!in_flight
        if BuffExpires(rain_of_fire) and target.DeadIn() >=5 Spell(rain_of_fire)
    
    #M     40.40     chaos_bolt,if=ember_react&(buff.backdraft.stack<3|level<86)&(burning_ember>3.5|buff.dark_soul.remains>cast_time|buff.skull_banner.remains>cast_time|(buff.perfect_aim.react&buff.perfect_aim.remains>cast_time))
        if BurningEmbers() >=10 and {BuffStacks(backdraft) <3 or Level() <86} and {BurningEmbers() >=35 or BuffRemains(dark_soul_instability) > CastTime(chaos_bolt) or BuffRemains(skull_banner) > CastTime(chaos_bolt) or BuffRemains(perfect_aim) > CastTime(chaos_bolt)} Spell(chaos_bolt)
    
    #N     36.70     conflagrate
        Spell(conflagrate)
    
    #O     162.21     incinerate
        Spell(incinerate)
    }
    
    
    AddIcon mastery=3 help=aoe
    {
    #P     21.97     rain_of_fire,if=!ticking&!in_flight
        if BuffExpires(rain_of_fire) Spell(rain_of_fire)
    
    #R     1.59     havoc,target=2,if=burning_ember>=3.5&ember_react&target.health.pct<=20
        if BurningEmbers() >=35 and target.HealthPercent() <=20 Spell(havoc)
    
    #S     3.75     shadowburn,if=burning_ember>=3.5&ember_react&buff.havoc.stack>=1
        if BurningEmbers() >=35 and BuffStacks(havoc) >=1 and target.HealthPercent() <=20 Spell(shadowburn)
    
    #T     98.12     fire_and_brimstone,if=ember_react&buff.fire_and_brimstone.down
    #    if BurningEmbers() >=10 and {not BuffPresent(fire_and_brimstone) or {BuffPresent(fire_and_brimstone) and {Casting(fire_and_brimstone_immolate) or Casting(fire_and_brimstone_incinerate)}}} and BuffPresent(rain_of_fire) Spell(fire_and_brimstone)   
    
    #U     8.98     immolate,if=buff.fire_and_brimstone.up&!ticking
    #    if BuffPresent(fire_and_brimstone) and target.DebuffExpires(fire_and_brimstone_immolate 8) and target.DebuffExpires(immolate 8) and target.TimeToDie() >=8 Spell(fire_and_brimstone_immolate)
        if BurningEmbers() >=10 and target.DebuffExpires(fire_and_brimstone_immolate 8) and target.DebuffExpires(immolate 8) and target.TimeToDie() >=8 Spell(fire_and_brimstone_immolate)
    
    #V     13.46     conflagrate,if=buff.fire_and_brimstone.up
    #    if BuffPresent(fire_and_brimstone) Spell(fire_and_brimstone_conflagrate usable=1)
        if BurningEmbers() >=10 Spell(fire_and_brimstone_conflagrate usable=1)
        
    #W     75.68     incinerate,if=buff.fire_and_brimstone.up
    #    if {1s after target.DebuffPresent(immolate) or 1s after target.DebuffPresent(fire_and_brimstone_immolate)} and BuffPresent(fire_and_brimstone) Spell(fire_and_brimstone_incinerate)
        if BurningEmbers() >=10 Spell(fire_and_brimstone_incinerate)
    
        Spell(incinerate)
    
    }
    
    AddIcon mastery=3 help=Moving size=small
    {
    
    #H     8.44     shadowburn,if=ember_react
        Spell(shadowburn usable=1)
    
    #K     38.70     conflagrate
        Spell(conflagrate)
    
    #N     0.00     fel_flame,moving=1
        Spell(fel_flame)
    }
    mod edit: use code tags next time please
    Last edited by Nicola; 2013-04-21 at 06:21 PM.

  4. #4
    The Lightbringer Zethras's Avatar
    10+ Year Old Account
    Join Date
    Jul 2010
    Location
    Acherus is my home.
    Posts
    3,192
    ^

    Holy Mother of Coding batman.
    Walking with a friend in the dark is better than walking alone in the light.
    So I chose the path of the Ebon Blade, and not a day passes where i've regretted it.
    I am eternal, I am unyielding, I am UNDYING.
    I am Zethras, and my blood will be the end of you.

  5. #5
    Haven't downloaded this yet but where do I input this code?

    ---------- Post added 2013-04-19 at 02:20 PM ----------

    Found where. Thx will use it to learn.

  6. #6

  7. #7
    http://www.curse.com/addons/wow/bitt...lflash-warlock


    Bitten's SpellFlash modules replace Blizzard's default proc highlighting to flash the button you should press next to achieve maximum dps on a boss fight. Or if you are a tank, to maximize your survivability. For healers, they are just slightly smarter proc highlighters. Dps modules follow or are similar to priority schemes found in SimulationCraft, Icy Veins, and/or Elitist Jerks. Sometimes you have to be smarter than SpellFlash, e.g. when saving a cooldown for a specific boss mechanic, but in general following the recommendations will improve most people's performance.





    That should help you to get comfortable with the basic rotation

  8. #8
    Quote Originally Posted by Sumatran View Post
    Will this stop it from trying to make me only cast RoF?
    This code tells you to use RoF in rotation, but not to only use it. It efficiently keeps track of Conflag, but not backdraft.

  9. #9
    Honestly, having played a Ret Paladin and a DK at various times, I didn't like using CLC (or Enraged for my Warrior) because I found it started to make me stupid. I mean that I would end up watching the addon to see what ability to use next, and not actually paying attention to WHAT was going on. I found it promoted lazy play, but I can't deny it was at least a bit useful in knowing what to do and when.

    I really don't use them anymore. I use AffDots to track durations and such (still working on timing of keeping Immolate up) but other than that I don't use a rotation addon since I want to train myself to learn it properly and using a rotation helper makes you dependent on that addon.

    SpellFlash is nice though since it doesn't have a big box that says "Use X, Y is next" that you look for.

  10. #10
    That is somewhat old code for ovale addon, that you have posted here, it had been updated for affliction and destruction. Destruction one is really nice. Link is in my signature.
    Custom warlock script for Ovale Spell Priority addon
    http://wow.curseforge.com/addons/ova...script-wip/#p1

  11. #11
    *heavy sigh*

    Rotation for warlocks? Rotation...

  12. #12
    Pit Lord Odina's Avatar
    15+ Year Old Account
    Join Date
    Sep 2008
    Location
    Montreal, Quebec, Canada
    Posts
    2,259
    I prefer using Raven and then setting up a priority list. I found as a tank I would be focused on timers, positioning etc etc that I at times would loose track of a prock like sword and board and as such wsa not min maxing.

    Thus I set up a basic priority list of what is the most important and pluged it into a custom bar. You can see how it works here...

    Everythign from debuff refreshing , to ultimatum proc, to basical priority rotation pops up constantly under my toons feet

    You can see it here in action..if you like that I would sugest downloading Raven and then setting it up to your needs I know its not a lock POV but it gets the overall idea of how it works out there!

    http://www.youtube.com/watch?v=llbaIAwasm4

  13. #13
    Quote Originally Posted by randa View Post
    That is somewhat old code for ovale addon, that you have posted here, it had been updated for affliction and destruction. Destruction one is really nice. Link is in my signature.
    If by somewhat old you mean the previous release, then I guess.

  14. #14
    Quote Originally Posted by Design1685 View Post
    *heavy sigh*

    Rotation for warlocks? Rotation...
    Exactly what I was thinking. You can use mods like AffDots and WeakAuras to aid you, but there is no "rotation." I mean whats the point of even playing if you have something telling you what to cast every second?

  15. #15
    Quote Originally Posted by Gravityx View Post
    Exactly what I was thinking. You can use mods like AffDots and WeakAuras to aid you, but there is no "rotation." I mean whats the point of even playing if you have something telling you what to cast every second?
    Gotta top dem meters bro! I agree, for warlocks at least, rotations and BiS lists are becoming a thing of the past.

  16. #16
    Deleted
    Quote Originally Posted by MordorFires View Post
    Gotta top dem meters bro! I agree, for warlocks at least, rotations and BiS lists are becoming a thing of the past.
    Tell that to all of the guilds demanding you to have a BIS list, and being able to play all specs and reforges for all fights. Let's see, that makes 6 BIS lists and just as many "rotations"
    I love being a pure-class, especially when hybrid noobs ask me why I play spec#1 instead of spec#2 (no but srsly, it's mega annoying).

  17. #17
    There is no "rotation".
    That term assumes a fixed unchanging sequence of events.
    It has been a long time since warlocks have used what you could describe as a rotation.

    Such an addon is oversimplified and trying to take into account only selected conditions.
    As soon as it hits conditions that were not planned for, it fails.

    It is teaching you NOTHING being told what to press.
    You need to know WHY you press a button instead.

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •