Error on Load in WoW 4.0.1 #49


  • New
  • Defect
Open
Assigned to ardentvark
  • _ForgeUser64105 created this issue Oct 13, 2010

    BugSack is catching the following error from SexyCooldown whenever I login to WoW 4.0.1.

    ---

    1x SexyCooldown-0.6.16\Modules\Spells.lua:15: attempt to index a nil value
    SexyCooldown-0.6.16\Modules\Spells.lua:156: in function `CacheSpells'
    SexyCooldown-0.6.16\Modules\Spells.lua:57: in function <SexyCooldown\Modules\Spells.lua:56>
    (tail call): ?:
    <in C code>: ?
    <string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
    (tail call): ?:
    AceAddon-3.0-5 (Aloft):539: in function `EnableAddon'
    AceAddon-3.0-5 (Aloft):551: in function `EnableAddon'
    AceAddon-3.0-5 (Aloft):629: in function <...face\AddOns\Aloft\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
    <in C code>: in function `LoadAddOn'
    PitBull4-v4.0.0-beta12-1-gef7174e\Main.lua:1136: in function `LoadModules'
    PitBull4-v4.0.0-beta12-1-gef7174e\Main.lua:1248: in function `OnProfileChanged'
    PitBull4-v4.0.0-beta12-1-gef7174e\Main.lua:1315: in function <PitBull4\Main.lua:1285>
    (tail call): ?:
    <in C code>: ?
    <string>:"safecall Dispatcher[1]":9: in function <[string "safecall Dispatcher[1]"]:5>
    (tail call): ?:
    AceAddon-3.0-5 (Aloft):539: in function `EnableAddon'
    AceAddon-3.0-5 (Aloft):629: in function <...face\AddOns\Aloft\Libs\AceAddon-3.0\AceAddon-3.0.lua:615>
    <in C code>: in function `LoadAddOn'
    Interface\FrameXML\UIParent.lua:242: in function `UIParentLoadAddOn':
    Interface\FrameXML\UIParent.lua:265: in function `CombatLog_LoadUI':
    Interface\FrameXML\UIParent.lua:519: in function <Interface\FrameXML\UIParent.lua:492>:

      ---

  • _ForgeUser64105 added the tags New Defect Oct 13, 2010
  • MarkParish posted a comment Oct 14, 2010

    Same error more or less as mine:

    Message: ..\AddOns\SexyCooldown\Modules\Spells.lua line 15:
       attempt to index a nil value

    Debug:
       (tail call): ?
       SexyCooldown\Modules\Spells.lua:15
          SexyCooldown\Modules\Spells.lua:9
       SexyCooldown\Modules\Spells.lua:156 CacheSpells()
       SexyCooldown\Modules\Spells.lua:57
          SexyCooldown\Modules\Spells.lua:56
       (tail call): ?
       [C]: ?
       [string "safecall Dispatcher[1]"]:9:
          [string "safecall Dispatcher[1]"]:5
       (tail call): ?
       Ace3\AceAddon-3.0\AceAddon-3.0.lua:539 EnableAddon()
       Ace3\AceAddon-3.0\AceAddon-3.0.lua:551 EnableAddon()
       Ace3\AceAddon-3.0\AceAddon-3.0.lua:629
          Ace3\AceAddon-3.0\AceAddon-3.0.lua:615
       [C]: LoadAddOn()
       ..\FrameXML\UIParent.lua:242 UIParentLoadAddOn()
       ..\FrameXML\UIParent.lua:316 TimeManager_LoadUI()
       ..\FrameXML\UIParent.lua:517
          ..\FrameXML\UIParent.lua:492

  • _ForgeUser199568 posted a comment Oct 14, 2010

    Getting similar (I think?):

    1x SexyCooldown-0.6.16\Modules\Spells.lua:15: attempt to index a nil value SexyCooldown-0.6.16\Modules\Spells.lua:157: in function `?' CallbackHandler-1.0-6:147: in function <...non\libs\CallbackHandler-1.0\CallbackHandler-1.0.lua:147> <string>:"safecall Dispatcher[1]":4: in function <[string "safecall Dispatcher[1]"]:4> <in C code>: ? <string>:"safecall Dispatcher[1]":13: in function `?' CallbackHandler-1.0-6:92: in function `Fire' AceEvent-3.0-3 (Bagnon):120: in function <...ace\AddOns\Bagnon\libs\AceEvent-3.0\AceEvent-3.0.lua:119>

    -

  • roncli posted a comment Oct 14, 2010

    The problem is GetSpellLink(i, book) can now return nil. The solution is to check for nil before using the value. Here's a replacement for the function cacheSpellsForBook:

    local function cacheSpellsForBook(t, book)
    	wipe(t)
    	for i = 1, 500 do
    		local name = GetSpellBookItemName(i, book)
    		if not name then break end
    		
    		local spellLink = GetSpellLink(i, book)
    		if spellLink ~= nil then
    			local id = tonumber(spellLink:match("spell:(%d+)"))
    			if id and id > 0 then
    				t[name] = id
    			end
    		end
    	end
    end
    
  • MarkParish posted a comment Oct 15, 2010

    Roncli,

    When is this going to be corrected and is this code located?

  • MarkParish posted a comment Oct 15, 2010

    I'll learn to type one of these days, I mean where is the code located?

  • rokiyo posted a comment Oct 19, 2010

    I was only getting this error on my Mage when my Frost Elemental was out, as GetSpellLink() was returning nil for the pet's "Attack" ability.

    Roncil's fix works perfectly, except that

    if spellLink ~= nil then
    

    and

    if spellLink then
    

    do exactly the same thing. There's no need to explicitly make a boolean comparison.

    MarkParish: In your ..\World of Warcraft\Interface\AddOns\SexyCooldown\Modules folder you will find Spells.lua

    The function cacheSpellsForBook(t, book) starts on line 9.

  • _ForgeUser1178503 posted a comment Oct 19, 2010

    I'm getting this error when logging in, together with the spellbook error whenever I log-in: Getting really annoying as I really love this addon.

    Message: ...nterface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:61: attempt to concatenate local 'icon' (a nil value)
    Time: 10/19/10 12:10:16
    Count: 1
    Stack: ...nterface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:61: in function <...nterface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:44>
    (tail call): ?
    [C]: ?
    [string "safecall Dispatcher[1]"]:9: in function <[string "safecall Dispatcher[1]"]:5>
    (tail call): ?
    Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:510: in function `InitializeAddon'
    Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:622: in function <Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:615>
    
    Locals: self = <table> {
     SetDefaultModuleLibraries = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:381
     Enable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:313
     UnregisterAllEvents = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
     EnableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:346
     modules = <table> {
     }
     GetModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:230
     IterateEmbeds = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:456
     defaultModuleLibraries = <table> {
     }
     GetName = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:298
     name = "SexyCooldown_Raid Debuffs"
     IsEnabled = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:465
     DisableModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:364
     UpdateUnit = <function> defined @Interface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:93
     RegisterMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
     UnregisterBucket = <function> defined @Interface\AddOns\Ace3\AceBucket-3.0\AceBucket-3.0.lua:235
     RegisterBucketEvent = <function> defined @Interface\AddOns\Ace3\AceBucket-3.0\AceBucket-3.0.lua:213
     baseName = "SexyCooldown"
     IsModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:237
     Refresh = <function> defined @Interface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:72
     SendMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:87
     UNIT_AURA = <function> defined @Interface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:81
     OnEnable = <function> defined @Interface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:66
     SetEnabledState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:438
     UnregisterAllBuckets = <function> defined @Interface\AddOns\Ace3\AceBucket-3.0\AceBucket-3.0.lua:258
     enabledState = true
     OnInitialize = <function> defined @Interface\AddOns\SexyCooldown\Modules\RaidDebuffs.lua:44
     RegisterEvent = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:118
     UnregisterAllMessages = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:202
     UnregisterMessage = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
     RegisterBucketMessage = <function> defined @Interface\AddOns\Ace3\AceBucket-3.0\AceBucket-3.0.lua:229
     NewModule = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:255
     IterateModules = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:451
     SetDefaultModuleState = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:401
     SetDefaultModulePrototype = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:423
     defaultModuleState = true
     moduleName = "Raid Debuffs"
     UnregisterEvent = <function> defined @Interface\AddOns\Ace3\CallbackHandler-1.0\CallbackHandler-1.0.lua:181
     Disable = <function> defined @Interface\AddOns\Ace3\AceAddon-3.0\AceAddon-3.0.lua:328
    }
    (for generator) = <function> defined =[C]:-1
    (for state) = <table> {
     RAID_DEBUFF_BLEED = <table> {
     }
     RAID_DEBUFF_SPELL_H
    
  • Talimity posted a comment Oct 20, 2010

    I posted this over at the Curse download site. Following the instructions below exactly as written should get the addon working again. This is of course a temporary hack/patch to get it working again while we wait for an official update. You will still need to check Load Out of Date addons.

    Please do this with a fresh copy downloaded from Curse or WoWAce. If you've already made modifications to the code, revert to a fresh copy before applying these changes.

    ~~~~~~

    Was able to fix spell cooldowns, however in doing so I had to neuter the debuff display functionality by ripping out a bunch of spell IDs that no longer exist.

    Here's how you can fix it yourself:

    1) Extract SexyCooldown onto your desktop. Do not extract it to the WoW\Interface\Addons folder yet because we cannot easily edit them from there on Vista/Windows 7.

    2) Open up Spells.lua (it's in the Modules folder) in Notepad. You will have to click on the drop down that says Text Documents (*.txt) and select All Files first to get Notepad to display .lua files.

    3) Look for GetSpellName, it's around 10 lines from the top. Change that to GetSpellBookItemName. (Renaming such a frequently used function... nice one Blizzard).

    4) The line right after that is "if not name then break end". After THAT line, paste the following.

    if (GetSpellLink(i, book)) then
    

    5) A few lines after that is an "end". Stick another one right after that so you have "end end".

    6) Open up the file Modules\RaidDebuffs.lua. Remove everything between the brackets for RAID_DEBUFF_BLEED, RAID_DEBUFF_MAJOR_ARMOR, RAID_DEBUFF_SPELL_HIT, RAID_DEBUFF_MORTAL_STRIKE. Don't remove the actual headers or the brackets, just the list of numbers inside of them. This will kill SexyCooldown's ability to monitor those debuffs.

    7) Save those two files. Move the SexyCooldown folder you extracted on your desktop to its usual location in the Addons folder.

    After doing this, SexyCooldowns should work fine. I haven't tested it much but it seemed to recognize the few spells I tried, including new spells. Don't know yet about items or other non-spell cooldowns.


    Edited Oct 20, 2010
  • _ForgeUser4210825 posted a comment Dec 3, 2010

    I do hope I have this right, I have been trying to cross-reference effects, but I cannot guarantee this will work.  For the RaidDebuffs.lua file this *should* be able to be copy-pasted.  Back up your stuff before you do anything I suggest.

        RAID_DEBUFF_BLEED = {
            94009,        -- Rend
            12867,        -- Deep Wounds
            703,            -- Garrote
            1943,        -- Rupture
            33745,        -- Lacerate
            9005,        -- Pounce
            1079,        -- Rip
            1822,        -- Rake
        },
        RAID_DEBUFF_MAJOR_ARMOR = {
            7386,        -- Sunder Armor
            8647,        -- Expose Armor
            770,            -- Faerie Fire
            50498,        -- Tear Armor
            35387,        -- Corrosive Spit
        },
        RAID_DEBUFF_SPELL_HIT = {
        },
        RAID_DEBUFF_MORTAL_STRIKE = {
            80390,        -- Mortal Strike
            10918,        -- Wound Poison
            12569,        -- Permafrost
            15313,        -- Improved Mind Blast
            54680,        -- Monstrous Bite
            30213,        -- Legion Strike
            46910,        -- Furious Attacks
            82654,        -- Widow Venom
        }

    If I'm wrong, let me know.  Posting after 28 hours without sleep can get ugly.


To post a comment, please login or register a new account.