[Tutorial] Spielerdaten laden und speichern

  • //Edit: Download wurde gefixt


    So, es geht darum, wie man die Waffen, den Skin, das Geld und die Position des Spielers speichert, und wenn der Spieler sich wieder einloggt, lädt.
    So, als erstes weisen wir einem Event eine Funktion zu. Das Event ist Serverseitig und heist: "onPlayerLogin".

    Lua
    addEventHandler("onPlayerLogin", root,
                function()


    Nun laden wir den Account des spielers und prüfen mit einer if-Abfrage, ob dieser gefunden wurde:

    Lua
    local playeraccount = getPlayerAccount ( source )
                  if ( playeraccount ) then


    Jetzt prüfen wir, ob bereits Daten des Spielers gespeichert worden sind:

    Lua
    local dataexists = getAccountData( playeraccount, "s.dataexists")
    		if (dataexists) then


    Jetzt laden wir das Geld des Spielers und prüfen, ob es gefunden wurde:

    Lua
    local playermoney = getAccountData ( playeraccount, "s.HandMoney" )
                if ( playermoney ) then
                      setPlayerMoney ( source, playermoney )
                end


    Jetzt laden wir den Skin, den Interrior und die Position des Spielers und spawnen ihn:

    Lua
    local playerInt = getAccountData (playeraccount, "s.int")
          		local playerDim = getAccountData (playeraccount, "s.dim")  
    	        local playerSkin = getAccountData (playeraccount, "s.skin")
         		local playerX = getAccountData (playeraccount, "s.x")
          		local playerY = getAccountData (playeraccount, "s.y")
          		local playerZ = getAccountData (playeraccount, "s.z")
    		local playerRot = getAccountData (playeraccount, "s.rot")
          		spawnPlayer(source, playerX, playerY, playerZ+1, playerRot, playerSkin, playerInt, playerDim)
    		fadeCamera (source, true)
    		setCameraTarget (source, source)


    Jetzt laden wir die ganzen Waffen des Spielers und geben sie ihm:


    Jetzt kommt die Funktion, wenn die Spielerdaten nicht gefunden wurden:

    Lua
    else
    		spawnPlayer(source, 2139, 1459, 12 ,0,0,0,0)
    		fadeCamera (source, true)
    		setCameraTarget (source, source)


    Jetzt wird noch die Funktion und die IF-Abfragen geschlossen:

    Lua
    end
    	  end	  
      end
    )


    So, jetzt kommt das Event, wenn der Spieler den Server verlässt:

    Lua
    addEventHandler ( "onPlayerQuit", getRootElement ( ), 
                 function ( )


    Jetzt wird wieder der Spieleraccount geladen und geprüft ob er gefunden wurde:

    Lua
    local playeraccount = getPlayerAccount ( source )
          if ( playeraccount ) then


    Jetzt speichern wir die Position des Spielers in drei Variablen:

    Lua
    local x,y,z = getElementPosition (source)


    Jetzt speichern wir die Position, den Skin und das Geld des Spielers in den Account Daten:

    Lua
    setAccountData ( playeraccount, "s.HandMoney", getPlayerMoney ( source ) )
        	  	setAccountData (playeraccount, "s.skin", tostring (getPedSkin (source)))
        		setAccountData (playeraccount, "s.x", x)
        		setAccountData (playeraccount, "s.y", y)
         		setAccountData (playeraccount, "s.z", z)
         	        setAccountData (playeraccount, "s.int", getElementInterior (source))
         		setAccountData (playeraccount, "s.dim", getElementDimension (source))
    		setAccountData (playeraccount, "s.rot", getPedRotation (source))


    Jetzt werden noch die ganzen Waffen des Spielers gespeichert:


    Und jetzt wird noch gespeichert, dass die Daten erstellt wurden, bzw. existieren:

    Lua
    setAccountData (playeraccount, "s.dataexists", true)


    Zum Schluss wird die Funktion noch geschlossen:

    Lua
    end
            end)

    Das komplette Script ist Serverside.
    Ich wünsche euch viel Spass mit diesem Tutorial und dem Script.

  • Dieses Thema enthält 40 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!