LibFail-1.0

A library with reusable code to detect failure at certain raid tasks. At last count there are 100 different "fails" that are tracked (updated for ToC/Icecrown courtesy of Maat/sztanpet/MysticalOS). Please note, this list is not always up-to-date.

The Icecrown Citadel list includes:

  • Fail_Rotface_OozeExplosion
  • Fail_Rotface_StickyOoze
  • Fail_Marrowgar_Whirlwind
  • Fail_Marrowgar_Coldflame
  • Fail_Marrowgar_SaberLash
  • Fail_Festergut_VileGas
  • Fail_Festergut_PungentBlight
  • Fail_Deathwhisper_DeathNDecay
  • Fail_Sindragosa_TailSmash
  • Fail_Sindragosa_FrostBreath
  • Fail_Sindragosa_BlisteringCold

The Onyxia's Lair list includes:

  • Fail_Onyxia_DeepBreath
  • Fail_Onyxia_FlameBreath
  • Fail_Onyxia_TailSweep
  • Fail_Onyxia_WarderCleave
  • Fail_Onyxia_WarderNova
  • Fail_Onyxia_Cleave

The Trial of The Crusader list includes:

  • Fail_Acidmaw_AcidicSpew
  • Fail_Acidmaw_ParalyticToxin
  • Fail_Acidmaw_SlimePool
  • Fail_Anubarak_Impale
  • Fail_Dreadscale_MoltenSpew
  • Fail_FactionChampions_Hellfire
  • Fail_Gorehowl_FireBomb
  • Fail_Icehowl_Trample
  • Fail_Jaraxxus_FelInferno
  • Fail_Jaraxxus_LegionFlame
  • Fail_Valkyr_Orb
  • Fail_Valkyr_Vortex

The Ulduar list includes:

  • Fail_Algalon_BigBang
  • Fail_Algalon_CosmicSmash
  • Fail_Auriaya_SonicScreech
  • Fail_Auriaya_Voidzone
  • Fail_Council_Overload
  • Fail_Council_RuneOfDeath
  • Fail_Deconstructor_Light
  • Fail_Deconstructor_Void
  • Fail_Freya_NatureBomb
  • Fail_Freya_Sunbeam
  • Fail_Freya_UnstableEnergy
  • Fail_Hodir_BitingCold
  • Fail_Hodir_FlashFreeze
  • Fail_Hodir_Icicle
  • Fail_Kologarn_Eyebeam
  • Fail_Mimiron_BombBots
  • Fail_Mimiron_Flames
  • Fail_Mimiron_FrostBomb
  • Fail_Mimiron_LaserBarrage
  • Fail_Mimiron_NapalmShell
  • Fail_Mimiron_ProximityMine
  • Fail_Mimiron_Rocket
  • Fail_Mimiron_Shock
  • Fail_Mimiron_Siren
  • Fail_Mimiron_WaterSpray
  • Fail_Racorscale_Flame
  • Fail_Thorim_Blizzard
  • Fail_Thorim_LightningChain
  • Fail_Thorim_LightningCharge
  • Fail_Thorim_Smash
  • Fail_Vezax_Leech
  • Fail_Vezax_Saronite
  • Fail_Vezax_ShadowCrash
  • Fail_Yogg_DeathRay
  • Fail_Yogg_LunaticGaze
  • Fail_Yogg_OminousCloud
  • Fail_Yogg_Sanity

The Vault of Archavon list includes:

  • Fail_Koralon_MeteorFist
  • Fail_Archavon_ChokingCloud
  • Fail_Emalon_LightningNova
  • Fail_Emalon_ChainLightning
  • Fail_Koralon_FlameCinder

The Obsidian Sanctum list includes:

  • Sartherion's Lava Waves
  • Sartherion's Void Zones
  • Sartherion's Flame Breath
  • Sartherion's Tail Lash

The Eye of Eternity list includes:

  • Fail_Malygos_Dot
  • Fail_Malygos_ArcaneBreath

The Naxxramas list includes:

  • Heigan Dance
  • Kel'Thuzad's Void Zones
  • Sapphiron's Breath
  • Sapphiron's Cleave
  • Sapphiron's Tail Sweep
  • Frogger
  • Thaddius Left/Right
  • Thaddius Jump
  • Grobbulus - Dispelling Mutating Injection
  • Grobbulus - Standing in the poison cloud

Rewrite of FailBot logic to perform these detections.

This is an open repository. Feel free to add to it, and make fixes yourself.

API: http://www.wowace.com/projects/libfail-1-0/pages/api/lib-fail-1-0/

Sample Code

local fail = LibStub("LibFail-1.0")
local fail_events = fail:GetSupportedEvents()

local function onFail(event, who, failtype)
   -- Use the spellid as a default localized string for the fail event
   local spell = GetSpellInfo(fail:GetEventSpellId(event)) or ""

   -- Use the "failtype" argument to print appropriate messages based on it.
   local failmsg
   if failtype == fail.FAIL_TYPE_NOTMOVING then
       failmsg = "%s fails at moving (%s)"
   end

   print( failmsg:format(who, spell) )
end
for _, event in ipairs(fail_events) do
	fail.RegisterCallback("SampleAddon", event, onFail)
end

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of mysticalos mysticalos Fri, 30 Oct 2009 05:06:48

    Icecrown is shaping up ;)

  • Avatar of sztanpet sztanpet Fri, 23 Oct 2009 10:22:23

    are you using the appropriate repo url (the development url not the public url), have you set your svn password or your ssh public key, whichever is more appropriate, etc

  • Avatar of mysticalos mysticalos Fri, 23 Oct 2009 09:14:11

    I know anyone with a curse account and svn and good code base could add their own fails in past, it even says above "This is an open repository. Feel free to add to it, and make fixes yourself"

    Has this changed? cause i had tried fixing a the missing spelids and adding malygos arcanebreath myself but i got permission denied after i had made all the changes and tried to commit :(. I helped with all the ony fails and like half the toc fails for ensidiafails, fixed all the spellids on ones maat did too :P I think he's used to waking up to new tickets from me every couple days or so. One bad raid night, or bad pug on an alt and I have ideas for new fails hehe.

    The change to breath I only suggested cause i figured there was a reason maat didn't use spellid method. It was used at first but it was changed when during last code cleanup I'm assuming for some reason. Wow devs were pretty bad coders back then anyways, 93 spell ids, and 6 (maybe 7 or 8 i don't remember count) scripted events determining which set is used based on her location was a pretty ugly.

    Last edited on 23 Oct 2009 by mysticalos
  • Avatar of sztanpet sztanpet Fri, 23 Oct 2009 08:12:29

    IRC(#wowace @ freenode) is a good place to talk about the addon, looking at comments or tickets is very sporadic, you have a bigger chance of alerting the devs on there, freenode has a nice webchat too making things much simplre, but if you do come around please remember that we are not always present so you might not get a response instantly

    also, where is auriaya voidzone listed twice? edit: yea i see it now, its on the main page, fixed

    edit2: regarding the onyxia deep breath fail, yes that could be nicer way to do it, but the existing method being a resource hog is not really relevant, this is not the thing that will slow your addons down

    Last edited on 23 Oct 2009 by sztanpet
  • Avatar of mysticalos mysticalos Fri, 23 Oct 2009 05:37:28

    tried to submit changes to repository but it's no longer open? :\

    Was gonna fix the long standing ticket #1. :P

        -- Malygos - Arcane Breath
        if (spellId == 56272 or spellId == 60072) and is_playerevent then -- not a fail for tanks, but we dont care about that here
            self:FailEvent("Fail_Malygos_Breath", destName, self.FAIL_TYPE_WRONGPLACE)
    
            return
        end
    

    This is of course assuming the event is registered in all the appropriate areas, locals, fail_events,zones_with_fails,event_spellids,fails_where_tanks_dont_fail

    Btw, should really look at tickets more often. Light/gravity bomb is STILL broken on 10 man and bug was reported last June. the 10 man spellids for light/gravity bomb are missing.

    searing light missing ID: http://www.wowhead.com/?spell=63023

    Gravity Bomb missing id: http://www.wowhead.com/?spell=63025

    Last edited on 23 Oct 2009 by mysticalos
  • Avatar of mysticalos mysticalos Thu, 22 Oct 2009 21:51:23

    http://www.wowhead.com/?spell=68868

    is used by onyxia ONLY, there is no reason to use if self:GetMobId(sourceGUID) = 10184 then return end

    The function is used on add cleave because that spellid is shared, with 104 creatures.

    also you listed void zone twice for auriaya ;)

    The deep breath method is crued and probably a resource hog for 2432534635r spellids. That's what I used at first when i originally gave fail to maat. But he made up a new method that used spellname and spellzone instead I think. I'd have to look at code again to see what he used. But something like "if spellname="breath" and zone="onyxia's Lair" :) Plus it ruled out posiblity of any missing spellids causing a missed fail.

    Last edited on 23 Oct 2009 by mysticalos
  • Avatar of wxx011 wxx011 Sun, 14 Jun 2009 02:44:11

    sorry,when I into Mimiron Stage 2,I got this error message

    LibFail-1.0-65 (Skada):320: Usage: UnitDebuff(\"unit\", [index] or [\"name\", \"rank\"][, \"filter\"])\nLibFail-1.0-65 (Skada):320: in function <...terface
    AddOns
    Skada
    lib
    LibFail-1.0
    LibFail-1.0.lua:307>\nLibFail-1.0-65 (Skada):250: in function <...terface
    AddOns
    Skada
    lib
    LibFail-1.0
    LibFail-1.0.lua:244>\n\n -

  • Avatar of sylvanaar sylvanaar Mon, 01 Jun 2009 14:32:47

    We have a special channel for fails, just like we do for damage meters

  • Avatar of mysticalos mysticalos Sun, 31 May 2009 07:05:30

    Now just add that hodir biting cold, the code should be in ensidiafail to look at.

  • Avatar of mysticalos mysticalos Sat, 30 May 2009 18:29:59

    9 times out of 10, it's not the tank being hit by it. so it's a good fail to have. a raid can safely ignore a tank if they choose to but it's still good to see who else is standing in it. I don't use failboat anyways i use recountfail so libfail is only sending it's data to recount for after battle tracking not in battle spamming. :)

Should We Put Default Localization Strings In This Project

  1. Choice:

  1. Results
  2. 0 comments

Facts

Date created
19 Dec 2008
Categories
Last update
22 Nov 2009
Development stage
Release
License
Public Domain
Curse link
LibFail-1.0
Reverse relationships
3
Recent files
  • A: r166 for 3.2.0 on 22 Nov 2009
  • A: r165 for 3.2.0 on 22 Nov 2009
  • A: r164 for 3.2.0 on 19 Nov 2009
  • A: r163 for 3.2.0 on 18 Nov 2009
  • A: r162 for 3.2.0 on 16 Nov 2009

Authors

Relationships

Embedded library
CallbackHandler-1.0
LibStub