Tutorial zum Bauen einer Spielerliste mit dxElement

  • Moin
    Heute möchte ich euch mal Zeigen wie man eine Spielerliste zusammenbaut/Scriptet.
    Diese Methode ist nicht unbedingt die beste Aber sie Geht.
    Als erstes Liste ich hier den Ablauf auf :

    1. Funktionen
    2. Bau bzw Script


    1. Die Funktionen die Benötigt werden:
    dxDrawLine ( für die Spalten/Zeilen)
    dxDrawRectangle( für Das Fenster )
    dxDrawText( für den Spielernamen und Sonstige text Elemente )
    getElementsByType ( für die Spieler )
    getPlayerPing ( für den Ping )
    getPlayerName ( für den Spielernamen )
    getKeyState ( zum Öffnen und Schließen )
    guiGetScreenSize ( Bildschirm auflösung )
    2. Bau / Script
    Als erstes Finden wir die Bildschirm auflösung heraus mit

    Lua
    local x,y = guiGetScreenSize ()



    Danach Bauen wir uns eine Funktion um herauszufinden wieviele spieler Online sind.
    Dafür nutzen wir :
    getElementsByType
    eine for Schleife

    und das Wars eigentlich dies Sollte dann so aussehen :

    Lua
    getPlayersOnline = function ()
    	local playersOnline = getElementsByType ( "player" )
    	local playersO = 0
    	for count, playerOn in pairs(playersOnline) do
    		playersO = playersO + 1
    	end
    	return playersO
    end

    Dann Fangen wir mit dem Eigentlichen an :

    Lua
    dxDrawRectangle ( x/StartX,y/StartY, x/width,y/height, tocolor(red,green,blue), true )


    Damit Bauen wir das Fenster dieses habe ich so aufgebaut :

    Lua
    dxDrawRectangle ( x/4.05,y/4.1, x/1.88,y/1.86, tocolor(1,1,1,200), true )--Der Hintergrund
    dxDrawRectangle ( x/4,y/4, x/1.9,y/1.9, tocolor(50,50,50,150), true )
    --Der Vordergrund

    Dadrauf "drawen" wir dann die Spalten :

    Lua
    dxDrawLine ( x/StartX,y/StartY, x/EndX,y/EndY, tocolor(red,green,blue,alpha),Breite,true )

    Dies habe ich so aufgebaut :

    Lua
    dxDrawLine ( x/2.9,y/4.001, x/2.9,y/1.288, tocolor(1,1,1,200),2,true )
    dxDrawLine ( x/2.1,y/4.001, x/2.1,y/1.288, tocolor(1,1,1,200),2,true )


    Diese Funktion Macht die ersten 2 Spalten


    Jetzt Kommt der Text

    Lua
    dxDrawText("Text", x/Links,y/Open, x/Rechts,y/Unten, tocolor(red,green.blue,alpha), größe , "sans","center", "center",false, false,true)

    Diesen habe ich so aufgebaut :

    Lua
    dxDrawText("Name :", x/15,y/30/20, x/1.9,y/1.9, tocolor(50,200,50), 1.2 , "sans","center", "center",false, false,true,true)	
    dxDrawText("Ping : ", x/1.1,y/30/20, x/1.9,y/1.9, tocolor(50,200,50), 1.2 , "sans","center", "center",false, false,true)


    Nun Fügen wir die Spieler Hinzu
    Als Erstes kriegen wir alle Spieler Heraus :

    Lua
    local players = getElementsByType ( "player" )
    Lua
    local playas = 0

    Nun die For Schleife

    Lua
    for amt, player in pairs(players) do


    Führt für jeden Spieler die Schleife aus.
    nun Zählen wir die Spieler auf :

    Lua
    playas = playas + 1

    Für 20 Spieler wird jetzt der Name Angezeigt wenn wir dieses Hier Hinzufügen :

    Lua
    if (playas <= 20) then


    Nun Färben wir das Ping ein damit man auf den Ersten Blick Erkännen kann ob er High,Low oder Normal Ping hat.

    Lua
    local ping = getPlayerPing(player)
    			if (ping >= 250) then
    			r,g,b = 200,20,25
    			elseif (ping >= 120) then
    			r,g,b = 255,149,4
    			else		
    			r,g,b = 50,200,50		
    			end


    Nun Fügen wir die Spieler hinzu :

    Lua
    dxDrawText(amt..". "..getPlayerName ( player ), x/15,y/4*amt/5, x/1.9,y/1.9, tocolor(50,200,50), 1.2 , "sans","center", "center",false, false,true,true)

    Nun ist in einer Spalte der Spieler aber das Wars
    nun Fügen wir das Ping hinzu :


    Lua
    dxDrawText(ping, x/1.1,y/4*amt/5, x/1.9,y/1.9, tocolor(r,g,b), 1.2 , "sans","center", "center",false, false,true,true)

    Nun Sorgen wir dafür das es Erscheint wenn wir Tab Drücken :

    Lua
    addEventHandler("onClientPreRender",getRootElement(),
    function ()
    if ( getKeyState( "tab" ) == true) then
    	drawPlayerList()
    end
    end)


    Nun Müsste das script etwa so Aus Sehen :



    Ich habe die Funktion drawPlayerList genannt.

    Das Script ist eigentlich jetzt Fertig
    man Kann es Allerdings noch Verschönern
    Ich zum Beispiel habe ein Effekt hinzugefügt das die PlayerListe hoch und Runter Fährt wenn man Tab drückt als eine art funktion vom hoch und runter fahren:
    So Sieht es bei mir aus dort ist die Funktion schon drinne :

    Spoiler anzeigen


    Das Wars :D


    Beispiel :
    So kann es am Ende aus Sehen :

    Spoiler anzeigen


    Externer Inhalt pokit.org
    Inhalte von externen Seiten werden ohne Ihre Zustimmung nicht automatisch geladen und angezeigt.


    MfG

    2 Mal editiert, zuletzt von KryPtoHolYx (18. Dezember 2012 um 23:01)

  • Dieses Thema enthält 21 weitere Beiträge, die nur für registrierte Benutzer sichtbar sind, bitte registrieren Sie sich oder melden Sie sich an um diese lesen zu können.

Jetzt mitmachen!

Sie haben noch kein Benutzerkonto auf unserer Seite? Registrieren Sie sich kostenlos und nehmen Sie an unserer Community teil!