/*
Derma test stuff
*/
/*------------------------------
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 + 100, 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
/*------------------------------
Ein Button/Knopf welcher mit der Hauptebene verknüpft ist
------------------------------*/
local DermaButton = vgui.Create( "DButton" )// Erstellt unseren Button/Knopf
DermaButton:SetParent( DermaPanel ) // Hiermit haften wir den Button an die Hauptebene ran, so dass er sich mit ihr bewegt
DermaButton:SetPos( 50, 50 ) // Postition des Buttons auf dem Bildschirm
DermaButton:SetSize( 100, 50 ) // Die größe des Buttons/Knopfs
DermaButton:SetText( "Hai guyz!" ) // Was auf dem Button drauf stehen soll
DermaButton.DoClick = function() // Wass soll beim Links-Klick geschehen?
LocalPlayer():ChatPrint( "YOU JUST PUSHED THE BUTTTOOOONNN!" )
end
/*------------------------------
Ein weiterer Button/Knopf,
er macht genau das selbe wie der DButton,
nur das man hier noch die Möglichkeit hat
zwischen 3 vorgefertigten Skins
für den Button wählen kann
------------------------------*/
local types = { "close", "up", "down" }
for i=1, 3 do
local DermaSysButton = vgui.Create( "DSysButton" ) // Erstellt unseren erweiteren Button
DermaSysButton:SetParent( DermaPanel ) // Hiermit haften wir den Button an die Hauptebene ran, so dass er sich mit ihr bewegt
DermaSysButton:SetPos( 50, 100 + ( 100 * i/2 ) )// Postition des Buttons auf dem Bildschirm
DermaSysButton:SetSize( 100, 50 ) // Die größe des Buttons/Knopfs
DermaSysButton:SetType( types[i] ) // Typ/Skin des Buttons ( close, up, down )
DermaSysButton.DoClick = function() // Was passieren soll wenn man mit Linksklick draufklickt
LocalPlayer():ChatPrint( "YOU PRESSED "..string.upper( types[i] ).." !" )
end
DermaSysButton.DoRightClick = function() // Was passieren soll wenn man mit Rechtsklick draufklickt
LocalPlayer():ChatPrint( "You lam0r just rightclicked on: "..string.upper( types[i] ).." !" )
end
end
/*------------------------------
Sehr nützlich für die Übersicht: Eine Listenbox, seht selbst ;)
------------------------------*/
/*
local DermaList = vgui.Create( "DPanelList" ) // Erstellt unsere Listenbox
DermaList:SetParent( DermaPanel ) // Hiermit haften wir die Listenbox an die Hauptebene ran, so dass sie sich mit ihr bewegt
DermaList:SetPos( 200, 50 ) // Position der Listenbox
DermaList:SetSize( 150, 100 ) // Größe der Lisetnbox
DermaList:SetSpacing( 10 ) // Abstand zwischen den einzelnen Einträgen
DermaList:EnableHorizontal( false ) // Nur Vertikale Einträge
DermaList:EnableVerticalScrollbar( true ) // Erstellt eine Scrollleiste, wenn der Inhalt die angegebene Y-Achsengröße überschreitet
*/
/*------------------------------
Sehr nützlich für die Übersicht: Eine Listenbox, diese hier wird für die Ausklappliste genutzt!
------------------------------*/
local DermaListSimple = vgui.Create( "DPanelList" )
DermaListSimple:SetAutoSize( true )
DermaListSimple:SetSpacing( 5 )
DermaListSimple:EnableHorizontal( false )
DermaListSimple:EnableVerticalScrollbar( true )
/*------------------------------
Sehr nützlich für die Übersicht: Eine Ausklappliste
------------------------------*/
local DermaColList = vgui.Create( "DCollapsibleCategory" ) // Erstellt unsere Kategorie
DermaColList:SetParent( DermaPanel ) // Hiermit haften wir die Ausklappliste an die Hauptebene ran, so dass sie sich mit ihr bewegt
DermaColList:SetPos( 200, 50 ) // Hiermit setzen wir die Position
DermaColList:SetSize( 200, 50 ) // Hiermit setzen wir die Größe
DermaColList:SetExpanded( 0 ) //
DermaColList:SetLabel( "Click me!" ) // Hier kommt das hin was auf der Ausklappliste drauf stehen soll
DermaColList:SetContents( DermaListSimple ) // Hiermit geben wir an was in die Liste rein soll ( der Inhalt der DermaListSimple in diesem Fall )
/*------------------------------
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 )
DermaListSimple:AddItem( DermaCheckBox ) // Fügt die CheckBox zur Listenbox hinzu
end
/*------------------------------
Ein weiteres interessantes Element im Derma Bereich: Der Slider!
------------------------------*/
local DermaSlider = vgui.Create( "DNumSlider" ) // Erstellt unseren Slider
DermaSlider:SetParent( DermaPanel ) // Hiermit haften wir den Slider an die Hauptebene ran, so dass er sich mit ihr bewegt
DermaSlider:SetPos( 200, 100 ) // Postition des Sliders auf dem Bildschirm
DermaSlider:SetSize( 150, 50 ) // Die größe des Sliders ( Der 2. Wert sollte immer 50 betragen! )
DermaSlider:SetText( "Maximum of Props!" ) // Name welcher über dem Slider angezeigt werden soll
DermaSlider:SetMin( 0 ) // Der kleinste Wert den man mit dem Slider einstellen kann
DermaSlider:SetMax( 256 ) // Der gräßte Wert den man mit dem Slider einstellen kann
DermaSlider:SetDecimals( 0 ) // Kommazahlen oder ganze Zahlen ?
DermaSlider:SetConVar( "sbox_maxprops" ) // Der Concommand der ausgeführt werden soll wenn der Slider betätigt wird
DermaListSimple:AddItem( DermaSlider ) // Fügt den Slider zur Listenbox hinzu
/*------------------------------
Eine Eingabezeiel :D
------------------------------*/
local DermaText = vgui.Create( "DTextEntry" )
DermaText:SetParent( DermaPanel )
DermaText:SetPos( 200, 200 )
DermaText:SetTall( 20 ) // Wie hoch soll die Eingabezeile sein
DermaText:SetWide( 200 ) // Wie lang soll die Eingabezeile sein
DermaText:SetEnterAllowed( true ) // Ist es dem Benutzer erlaubt die ENTER Taste zu drücken ?
DermaText.OnEnter = function() // Was soll passieren wenn enter gedrückt wurde ( funktioniert nur wenn SetEnterAllowed auf true ist )
LocalPlayer():ChatPrint( "You just typed: "..DermaText:GetValue().." !" )
DermaPanel:SetVisible( false )
end
/*------------------------------
Ein Button mit Menü
------------------------------*/
local DermaMenuButton = vgui.Create( "DButton" )
DermaMenuButton:SetParent( DermaPanel )
DermaMenuButton:SetPos( 200, 250 )
DermaMenuButton:SetSize( 75, 25 )
DermaMenuButton:SetText( "Menu>>" )
DermaMenuButton.DoClick = function()
local DButtonOptions = DermaMenu()
DButtonOptions:AddOption( "HAIIII", function() LocalPlayer():ChatPrint( "HAI IN SICHT!" ) end )
DButtonOptions:AddOption( "KILL", function() LocalPlayer():ConCommand( "kill" ) end )
DButtonOptions:AddOption( "Feign", function() LocalPlayer():ConCommand( "Feign_Death" ) end )
DButtonOptions:Open()
end
/*------------------------------
Eine Lisetnansicht
------------------------------*/
local DermaListe = vgui.Create( "DListView" )
DermaListe:SetParent( DermaPanel )
DermaListe:SetPos( 425, 50 )
DermaListe:SetSize( 300, 300 )
DermaListe:SetMultiSelect( false )
DermaListe:AddColumn( "Name" )
DermaListe:AddColumn( "Amount of Kills" )
DermaListe:AddColumn( "Amount of Health" )
for k, v in pairs ( player.GetAll() ) do
DermaListe:AddLine( v:Nick(), v:Frags(), v:Health() )
end