*Bump*
Weiß keiner wie ich das mit den CheckBoxen machen kann? Ich bekomm das einfach nicht hin![]()
*Bump*
Weiß keiner wie ich das mit den CheckBoxen machen kann? Ich bekomm das einfach nicht hin![]()
http://wiki.garrysmod.com/wiki/?titl...nel.AddControl
Code:CheckBox string Label, string Description, string Command
Klick here -> Bløg :D
Haben bei mir zuerst auch nicht gefunkt, doch dann ging es auf einmal...
Hier ist mal mein Code:
Lua Code:
/*------------------------------
Hauptebene wo der Rest drauf aufgebaut wird
------------------------------*/
local DermaPanel = vgui.Create( "DFrame" ) // Erstellt unsere Ebene DermaPanel:SetPos( 50, 50 ) // Position auf dem Bildschirm des Spielers DermaPanel:SetSize( ScrW()/2, ScrH()/2 )// Größe der Ebene DermaPanel:SetTitle( "Test Ebene!" ) // Überschrift der Ebene DermaPanel:SetVisible( true ) // Soll die Ebene ein- oder ausgeblendet werden? DermaPanel:SetDraggable( true ) // Erlaubt es dem Spieler das Fenster zu verschieben DermaPanel:ShowCloseButton( true ) // Soll der Spieler das "X" ( den Schließen-Knopf ) sehen? DermaPanel:MakePopup() // Zeigt die Ebene auf dem Bildschirm an/*------------------------------
Nun kommen wir zu einer sogenannten "Checkbox"!
------------------------------*/
local texts = { "GOD MODE!", "NOCLIP!" } local convars = { "sbox_godmode", "sbox_noclip" } for i=1, table.Count( texts ) do local DermaCheckBox = vgui.Create( "DCheckBoxLabel" ) // Erstellt unsere Checkbox DermaCheckBox:SetParent( DermaPanel ) // Hiermit haften wir die Checkbox an die Hauptebene ran, so dass sie sich mit ihr bewegt DermaCheckBox:SetPos( 200, 50 + ( 50 * i/2 ) ) // Postition der Checkbox auf dem Bildschirm DermaCheckBox:SetText( texts[i] ) // Was neben der Checkbox stehen soll DermaCheckBox:SetConVar( convars[i] ) // Der Command der "getoggeld" werden soll ( der command muss durch 1 [an] und 0[ aus] geschaltet werden können ) DermaCheckBox:SetValue( 1 ) // Soll der Command zu Anfang an oder aus sein? DermaCheckBox:SizeToContents() // Pass es dem Rest der Frames an ( so das SetText ausgeschrieben da steht )end
ACHTUNG! Der Lua-Highlighter hier im Forum scheint bischen zu spinnen!
Zeile 27: DermaCheckBox:SetText( texts[i] )
Zeile 28: DermaCheckBox:SetConVar( convars[i] )
-----
Dieses "for i=1, table.Count( texts ) do" macht es so das du gleich
mehrere Checkboxes auf einmal erstellen kannst.
Ähemchen... Wenn ich mal anmerken dürfte dass ich kein Problem mit dem Erstellen von Checkboxen habe, sondern die Abfrage der Werte
Also zum Beispiel
Lua Code:
if CheckBox:GetValue() == 1 then blablablaend
funktioniert nicht. Wie soll ich es dann machen?
Das war meine Frage(steht aber auch in meinem vorletzten Post drin)
€dit: Ach ja, mir ist klar dass man nicht GetValue verwenden kann, ich hab das schon ausprobiert.
Geändert von don-banane (25.05.2008 um 15:25 Uhr)
Ich wenn man auf Afk drückt, wird man Afk gesetzt, es erscheint eine Chatnachricht, und man soll auswählen können ob noch ein Grund dastehen soll oder nicht (Grund kann man im Derma eingeben)
Wie gesagt, es dient nur zur Übung![]()
Also, erstmal erstellst du dir einen Consolencommand:
http://wiki.garrysmod.com/wiki/?titl...onsole_command
Code könnte wie folgernder aussehen:
Lua Code:
local afk = false function afkcommand( ply, command, args ) if args[1] == 1 then afk = true elseif args[1] == 0 then afk = falseelse
Msg( "Only 1 or 0 is allowed!" )end
end
concommand.Add( "Set_AFK", afkcommand )
args<komische Zeigenfolge> mit args[1] ersetzen...
Dann kannst deine Zeileneingabe mit Checkbox machen ( im gleiche Script ):
Lua Code:
/*------------------------------
Hauptebene wo der Rest drauf aufgebaut wird
------------------------------*/
local DermaPanel = vgui.Create( "DFrame" ) // Erstellt unsere Ebene DermaPanel:SetPos( 50, 50 ) // Position auf dem Bildschirm des Spielers DermaPanel:SetSize( ScrW()/2, ScrH()/2 )// Größe der Ebene DermaPanel:SetTitle( "Test Ebene!" ) // Überschrift der Ebene DermaPanel:SetVisible( true ) // Soll die Ebene ein- oder ausgeblendet werden? DermaPanel:SetDraggable( true ) // Erlaubt es dem Spieler das Fenster zu verschieben DermaPanel:ShowCloseButton( true ) // Soll der Spieler das "X" ( den Schließen-Knopf ) sehen? DermaPanel:MakePopup() // Zeigt die Ebene auf dem Bildschirm an/*------------------------------
Nun kommen wir zu einer sogenannten "Checkbox"!
------------------------------*/
local DermaCheckBox = vgui.Create( "DCheckBoxLabel" ) // Erstellt unsere Checkbox DermaCheckBox:SetParent( DermaPanel ) // Hiermit haften wir die Checkbox an die Hauptebene ran, so dass sie sich mit ihr bewegt DermaCheckBox:SetPos( 200, 50 + ( 50 * i/2 ) ) // Postition der Checkbox auf dem Bildschirm DermaCheckBox:SetText( "AFK" ) // Was neben der Checkbox stehen soll DermaCheckBox:SetConVar( "Set_AFK" ) // Der Command der "getoggeld" werden soll ( der command muss durch 1 [an] und 0[ aus] geschaltet werden können ) DermaCheckBox:SetValue( 0 ) // Soll der Command zu Anfang an oder aus sein? DermaCheckBox:SizeToContents() // Pass es dem Rest der Frames an ( so das SetText ausgeschrieben da steht )/*------------------------------
Eine Eingabezeiel :D
------------------------------*/
local DermaText = vgui.Create( "DTextEntry" ) DermaText:SetParent( DermaPanel ) DermaText:SetPos( 200, 200 ) DermaText:SetTall( 20 ) DermaText:SetWide( 250 ) DermaText:SetEnterAllowed( false )
Jetzt bastelst du dir nur noch eine Think-Funktion welche den Valu aus DermaText abfragt und guckt ob "afk" = true ist.
Wenn es true ist dann kannst ja 'n Text alle 3min reingschreiben lassen...