1. Hey all, im new to add-on programming and im trying to make an add-on to help me and my arena partner. The currently problem i have is, i want to use UNIT_SPELLCAST_SUCCEEDED event which can have 3 arguments:

    Signature: ("unitID", "spell", "rank")

    Arguments: unitID - The unit that's casting. (string) spell - The name of the spell that's being casted. (string) rank - The rank of the spell that's being casted. (string)

    I tried this as a test which works for every completed cast:

     function Frame1_OnLoad()
        this:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED"); 
     end
    
     function Frame1_OnEvent()
        if(event == "UNIT_SPELLCAST_SUCCEEDED") then
            print("Hello world!");
        end
     end
    

    But now i want to use the arguments to pick the correct spell, how could i implement this?

    Hey all, im new to add-on programming and im trying to make an add-on to help me and my arena partner. The currently problem i have is, i want to use UNIT_SPELLCAST_SUCCEEDED event which can have 3 arguments:

    Signature: ("unitID", "spell", "rank")

    Arguments: unitID - The unit that's casting. (string) spell - The name of the spell that's being casted. (string) rank - The rank of the spell that's being casted. (string)

    I tried this as a test which works for every completed cast:

     function Frame1_OnLoad()
      this:RegisterEvent("UNIT_SPELLCAST_SUCCEEDED"); 
     end
     
     function Frame1_OnEvent()
      if(event == "UNIT_SPELLCAST_SUCCEEDED") then
          print("Hello world!");
      end
     end
    

    But now i want to use the arguments to pick the correct spell, how could i implement this?

    This is all covered quite heavily in the book, and there is a lot going on here that is just wrong for the way we write addons today.

    1. You shouldn't be using this. It was deprecated years ago and may have even been removed since. You should instead be using the first argument to your OnLoad function, which will be the frame being loaded.
    2. Your OnEvent function, similarly needs to take the frame, the event, and a list of arguments.

    Then you'd be able to examine everything and I see no other issues with the code.