Code:
--grandpappy helped me make my first addon, took me a long time with his help. --Glad you enjoyed writing it. I too remember my first program in COBAL. //Grandpappy Joe local frame = CreateFrame("Frame"); local infoVersion = GetAddOnMetadata("Iconjumbler", "Version") local raidhash = {0x0340B0010,0x0340B0011,0x0340B0014,0x0340B0018,0x0340B0024,0x0340B0032,0x0340B0064,0x0340B0128}; local partyhash = {0x0340A0010,0x0340A0011,0x0340A0014,0x0340A0018,0x0340A0024,0x0340A0032,0x0340A0064,0x0340A0128}; --Some data controllers for my boy, should retain everything he wants to do. --Now Icons the player sets should not be visable (to you), however icons other people set will be. //Grandpappy Joe local WoWSystemMemoryController_RaidIcon_Visability = { { ID = 1, name = "star", memory_value = 0x88e0c4b2, visable = false, }, { ID = 2, name = "circle", memory_value = 0x86f08e4c, visable = false, }, { ID = 3, name = "diamond", memory_value = 0x22c17971, visable = false, }, { ID = 4, name = "triangle", memory_value = 0x3b4bead6, visable = false, }, { ID = 5, name = "moon", memory_value = 0x98992104, visable = false, }, { ID = 6, name = "square", memory_value = 0x5c39749e, visable = false, }, { ID = 7, name = "cross", memory_value = 0x3ff4848e, visable = false, }, { ID = 8, name = "skull", memory_value = 0xf6fc8246, visable = false, }, }; local isActive = 0; --I don't know how to order this, but my grandpappy taught me to do it this way local IconJumblerList = {1, 2, 3, 4, 5, 6 ,7 ,8, 0}; function Iconjumbler_OnEvent(event) --Boy, clean up your code. //Grandpappy Joe if event == "ZONE_CHANGED_NEW_AREA" and isActive == 1 then isActive = 0; DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Area Change Stopping Fun!"); elseif event == "PARTY_MEMBERS_CHANGED" then isActive = 0; DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Uh Oh Somebody Left, Stopping Fun!"); end end --This made my head hurt. :( --No boy, lemme show you how to do this. //Grandpappy Joe function IJSlash(msg) local command = string.lower(msg); if command == "help" then --Boy, I had to fill this out so people know whats going on. //Grandpappy Joe --sorry grandpappy :( DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler v" ..infoVersion.. ": Happy Icon Time!"); DEFAULT_CHAT_FRAME:AddMessage("To use type /ij with one of these commands!"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Everywhere'| Icons go everywhere"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Space' | Icons move like that screensaver"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Rocker' | Icons Rock back and forth"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Bouncy' | Icons Bounce around"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Twins' | Two Icons go around randomly in the party"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Snake' | A single line if icons move around"); DEFAULT_CHAT_FRAME:AddMessage("'/ij Target #' | Randomly chosen Icon on Targets, or on chosen Target's Target."); DEFAULT_CHAT_FRAME:AddMessage("'/ij Pets' | Randomly Chosen Icon on Pets"); elseif command == "debug" then if isDebug == 0 then isDebug = 1; DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Debug Mode!"); else isDebug = 0; DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Debug Mode!"); end elseif command ~= "debug" and command ~= "help" then if(GetNumRaidMembers() > 0) then isActive = 1; if command == "space" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[0], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Space Time!"); elseif command == "rocker" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[1], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Rocker Time!"); elseif command == "bouncy" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[2], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Bouncy Time!"); elseif command == "twins" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[3], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Twins Time!"); elseif command == "snake" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[4], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Snake Time!"); elseif command == (string.match(command, "target")) == "target" then SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[5], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Target Time!"); elseif command == "pets" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[6], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Pets Time!"); elseif command == "everywhere" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..raidhash[7], "RAID" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Everywhere Time!"); end end if(GetNumPartyMembers() > 0 and not UnitInRaid("player")) then isActive = 1; if command == "space" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[0], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Space Time!"); elseif command == "rocker" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[1], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Rocker Time!"); elseif command == "bouncy" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[2], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Bouncy Time!"); elseif command == "twins" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[3], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Twins Time!"); elseif command == "snake" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[4], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Snake Time!"); elseif command == (string.match(command, "target")) == "target" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[5], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Target Time!"); elseif command == "pets" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[6], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Pets Time!"); elseif command == "everywhere" then IconJumbler_Controller() SendAddonMessage( "ICNJ", "ICON JUMBLER ENABLED: HASHCODE," ..partyhash[7], "PARTY" ); DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Everywhere Time!"); end end elseif command == nil and isActive == 1 then isActive = 0; DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler: Fun Time Over! :("); end end --i wrote this by myself function IconJumbler_Controller(raid) local Iconsz, playerdude, cat, fat local Raidsize = GetNumRaidMembers(); local Partysize = GetNumPartyMembers(); if iconsz == 12345 then if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end if Playerdudez == 0 then if cat == fat then SetRaidTarget("player", 5); else SetRaidTarget("party" ..fat, 7); end if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end elseif PlayerDudez == 1 then if cat == fat then SetRaidTarget("player", 2); else if Playerdudez == 0 then if cat == fat then if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end else SetRaidTarget("party" ..fat, 7); end elseif PlayerDudez == 1 then if cat == fat then SetRaidTarget("player", 2); else if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end end end end end if Playerdudez == 0 then if cat == fat then if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end else SetRaidTarget("party" ..fat, 7); end elseif PlayerDudez == 1 then if cat == fat then SetRaidTarget("player", 2); else if Iconsz < (2 - playerdude) then Iconsz = Iconsz + 1 elseif intIcn >= (4 - Iconz) then Iconsz = 1; if intCounter == PartyStrobeNum and isTarget == 0 then playerdude = "player"; cat = (math.random(1, Iconz)); elseif isTarget == 0 then playerdude = ("party"..(fat - 4)); cat = (math.random(1, Iconz)); end end end end end end function OnLoad() DEFAULT_CHAT_FRAME:AddMessage("Icon Jumbler v" ..infoVersion.. ": Happy Icon Time!"); frame:SetScript("OnEvent", Iconjumbler_OnEvent); frame:RegisterEvent("ZONE_CHANGED_NEW_AREA"); SlashCmdList["Iconjumbler"] = IJSlash --LOLGUILTYGEAR SLASH! SLASH_Iconjumbler1 = "/iconjumbler" SLASH_Iconjumbler2 = "/ij" end