The Gate Project
Gate is a combination of a Clientaddon and a Serverscript. With this strong combination, we can create our own Frames in Serverscripts without change something in your Client (especially the Gate Addon you have to "install" one time).
What Does Gate Allow You To Do?
Build Frames, Buttons, Checkboxes, Radioboxes, Editboxes, Textboxes, StatusBars
Call Ok-Frames, Yes-No-Frames, Input-Frames, and over 150 Blizzard StaticPopups
The Commands for all these Objects are easy:
and so on.Code:YourFrame = CreateFrame("Name") YourButton = YourFrame:CreateButton("ButtonName")
Frames should be Parents of Objects. If you call Create-Functions from an Object, the Object become Parent otherwise, the UIParent would be the Parent.
All Objects created with standard settings, if you want to change something, you can easily do it like this:Code:CreateFrame("Name") CreateButton("Name") CreateCheckBox("Name") CreateCheckButton("Name") CreateRadioButton("Name") CreateStatusBar("Name") CreateEditBox("Name") CreateInputBox("Name") CreateTextBox("Name") CreateInputFrame("Name") CreateEditFrame("Name") CreateOkFrame("Name")
All Arguments you can set are:Code:YourButton:SetText("ButtonText") YourButton:SetYOffset(50) YourFrame:SetWidth(400)
After, you done all this, you have something like that:Code:SetText("Text") SetWidth(Width) SetHeight(Height) SetParent("Name") SetAlpha(Alpha) SetXOffset(XOffset) SetYOffset(YOffset) SetStatusLink("Name") SetEvents("Event", Func) -- Only for Frames SetCantClose(true/false) SetCantMove(ture/false) -- Only for Check/Radiobuttons SetChecked(true/false) --Only for Yes/No-Frame SetYes("Text") SetNo("Text") -- Only for Statusbar MinValue(value) MaxValue(value) Value(value) Countdown(time in sec)
And by Frame:Send(Player), we trigger the Player. It would look like that:Code:local Frame = CreateFrame("TestFrame") local Button = Frame:CreateButton("TestButton") local Edit = Frame:CreateEditBox("TextEdit") local CB = Frame:CreateCheckBox("TestCB") Button:SetText("TestButtonText") Button:SetEvent("OnClick", function() print("Event coming") end) Edit:SetText("TestText") Edit:SetYOffset(20) Edit:SetStatusLink("TestButton") CB:SetYOffset(-20) CB:SetStatusLink("TestButton") CB:SetText("TestCB") Frame:SetText("TestFrame") Frame:Send(Player)
After all, the Player has the Frame, and we e.g. want to hide the frame:
Button:Hide(Player)
All Changecommands are all Settings, we can set with Set-Commands + Show, Hide and ChangeOffset.
So, I hope, I explain all things, you need.
Download:
Client Addon (required by all players): http://luapparc.kilu.de/Gate_Client.zip
Server Script: http://luapparc.kilu.de/Gate_Server.zip
Credits:
-Kenuvis