--wird beim laden ausgeführt function wowon_OnLoad() --slash command SLASH_WoWonid1 = "/wowon" SLASH_WoWonid2 = "/wowonid" SlashCmdList["WoWonid"] = function(msg) wowon_cmd(msg) end wowon = {} wowon.debug = true wowon.ui_created = false -- tempräre datenbank des aktuellen spiels wowon.game = {}; wowon.game.ingame = false; wowon.game.ballfrei = {} wowon.game.balle = {} wowon.game.feldfrei = {} wowon.game.felder = {} wowon.game.gfx = {} end --eventhandler function wowon_OnEvent() end --slashcommand function wowon_cmd(msg) if (wowon.ui_created == false) then wowon_new_game () wowon_hf:Show() else if (wowon_hf:IsShown()) then wowon_exit_game () wowon_hf:Hide() else wowon_new_game () wowon_hf:Show() end end end function wowon_debug (x) --x = debug text if (wowon.debug) then Sea.IO.banner(x) end end function wowon_UI_setup () local x = wowon.game.feld.x local y = wowon.game.feld.y -- offset unten (bereich des balken) / ballfreiheit ist demnach x*(y-o) wowon.game.feld.o = 50 -- offset des sf und pf zu hf local r = 10 local o = 25 local u = r/2 local m = 10 -- höhe von pf local hpf = 50 -- grösse des hf_titel local h = 40 local b = 150 if (wowon.ui_created == false) then -- hauptframe (titel) CreateFrame("Frame", "wowon_hf") wowon_hf:EnableMouse(true) wowon_hf:SetMovable(true) wowon_hf:SetScript("OnMouseDown", function() if (arg1 == "LeftButton") then this:StartMoving() end end) wowon_hf:SetScript("OnMouseUp", function() if (arg1 == "LeftButton") then this:StopMovingOrSizing() end end) wowon_hf:CreateTexture("wowon_hf_textur", "BACKGROUND") wowon_hf_textur:SetTexture(0, 0, 0, 1) wowon_hf:SetBackdrop({edgeFile = "Interface/Tooltips/UI-Tooltip-Border", tile = false, tileSize = 0, edgeSize = 25, insets = { left = 6, right = 6, top = 6, bottom = 6 }}); wowon_hf:CreateFontString("wowon_hf_text") wowon_hf_text:SetFontObject(GameFontNormal) --wowon_hf_text:SetText("hf_text") wowon_hf_text:SetText("WoWonid") CreateFrame("Frame", "wowon_hf_rf") wowon_hf_rf:SetBackdrop({bgFile = "Interface/DialogFrame/UI-DialogBox-Background", edgeFile = "Interface/Tooltips/UI-Tooltip-Border", tile = false, tileSize = 0, edgeSize = 25, insets = { left = 6, right = 6, top = 6, bottom = 6 }}); CreateFrame("Frame", "wowon_sf") wowon_sf:EnableMouse(true) wowon_sf:SetScript("OnEnter", function() wowon_sf_maus_OnEnter() end) wowon_sf:SetScript("OnLeave", function() wowon_sf_maus_OnLeave() end) wowon_sf:SetScript("OnMouseDown", function() if (arg1 == "LeftButton") then wowon_sf_maus_OnClick() end end) wowon_sf:CreateTexture("wowon_sf_textur", "BACKGROUND") wowon_sf_textur:SetAllPoints(wowon_sf) wowon_sf_textur:SetTexture(0.2, 0.5, 1, 0.5) -- muss noch besser bestimmt werden wowon_sf:CreateTexture("wowon_sf_balken", "ARTWORK") wowon_sf:CreateFontString("wowon_sf_text", "OVERLAY") wowon_sf_text:SetFont("Fonts\\FRIZQT__.TTF", 46); wowon_sf_text:SetText("sf_text") wowon_sf_text:SetShadowColor(0,0,0,1) wowon_sf_text:SetShadowOffset(4,-4) --struktur und frame-level wowon_hf:SetParent("UIParent") wowon_hf_rf:SetParent("wowon_hf") wowon_sf:SetParent("wowon_hf_rf") wowon_hf:SetFrameLevel(2) wowon_hf_rf:SetFrameLevel(1) wowon_sf:SetFrameLevel(3) wowon_pf:SetFrameLevel(4) wowon.ui_created = true end -- hf setup wowon_hf:SetHeight(h) wowon_hf:SetWidth(b) wowon_hf:SetPoint("CENTER", 0, y/2) wowon_hf_text:SetPoint("CENTER", 0, 0) wowon_hf_textur:SetHeight(h-12) wowon_hf_textur:SetWidth(b-12) wowon_hf_textur:SetPoint("CENTER", 0, 0) wowon_hf_rf:SetHeight(y+o+hpf+u+m) wowon_hf_rf:SetWidth(x+2*r) wowon_hf_rf:SetPoint("TOP", "wowon_hf", 0, -15); wowon_sf:SetHeight(y) wowon_sf:SetWidth(x) wowon_sf:SetPoint("TOP", "wowon_hf_rf", "TOP", 0, -o) wowon_sf_text:SetPoint("CENTER", 0, 0) wowon_sf_text:Hide() wowon_pf:SetHeight(hpf) wowon_pf:SetWidth(x+r) wowon_pf:SetParent("wowon_hf") wowon_pf:SetPoint("TOP", "wowon_hf_rf", "TOP", 0, -m-o-y) end function wowon_new_game () if (wowon.game.ingame == true) then wowon_exit_game () end -- neuest game wowonid_set_lvl (999) wowon.game.ingame = true end -- spiel beenden, timer stoppen, felder/bälle wieder freigeben function wowon_exit_game () for i = 1, table.getn(wowon.game.balle) do if (wowon.game.ball[wowon.game.balle[i]].ss == 2) or (wowon.game.ball[wowon.game.balle[i]].ss == 4) then wowon_timer_ball (false, wowon.game.balle[i]) end table.insert(wowon.game.ballfrei, wowon.game.balle[i]) end wowon.game.balle = {} -- gxf effekte beenden table.foreach(wowon.game.gfx, wowon_UI_GXF_sf_stop_all) wowon.game.gfx = {} for i = 1, table.getn(wowon.game.felder) do table.insert(wowon.game.feldfrei, wowon.game.felder[i]) end wowon.game.felder = {} -- balken timer wowon_timer_balken (false) wowon.game.ingame = false end