//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".
Nun laden wir den Account des spielers und prüfen mit einer if-Abfrage, ob dieser gefunden wurde:
Jetzt prüfen wir, ob bereits Daten des Spielers gespeichert worden sind:
Jetzt laden wir das Geld des Spielers und prüfen, ob es gefunden wurde:
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:
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:
local weap0 = getAccountData(playeraccount, "s.weap0")
local weap1 = getAccountData(playeraccount, "s.weap1")
local weap2 = getAccountData(playeraccount, "s.weap2")
local ammo2 = getAccountData(playeraccount, "s.ammo2")
local weap3 = getAccountData(playeraccount, "s.weap3")
local ammo3 = getAccountData(playeraccount, "s.ammo3")
local weap4 = getAccountData(playeraccount, "s.weap4")
local ammo4 = getAccountData(playeraccount, "s.ammo4")
local weap5 = getAccountData(playeraccount, "s.weap5")
local ammo5 = getAccountData(playeraccount, "s.ammo5")
local weap6 = getAccountData(playeraccount, "s.weap6")
local ammo6 = getAccountData(playeraccount, "s.ammo6")
local weap7 = getAccountData(playeraccount, "s.weap7")
local ammo7 = getAccountData(playeraccount, "s.ammo7")
local weap8 = getAccountData(playeraccount, "s.weap8")
local ammo8 = getAccountData(playeraccount, "s.ammo8")
local weap9 = getAccountData(playeraccount, "s.weap9")
local ammo9 = getAccountData(playeraccount, "s.ammo9")
local weap10 = getAccountData(playeraccount, "s.weap10")
local weap11 = getAccountData(playeraccount, "s.weap11")
local weap12 = getAccountData(playeraccount, "s.weap12")
giveWeapon ( source, weap0, 1 )
giveWeapon ( source, weap1, 1 )
giveWeapon ( source, weap2, ammo2 )
giveWeapon ( source, weap3, ammo3 )
giveWeapon ( source, weap4, ammo4 )
giveWeapon ( source, weap5, ammo5 )
giveWeapon ( source, weap6, ammo6 )
giveWeapon ( source, weap7, ammo7 )
giveWeapon ( source, weap8, ammo8 )
giveWeapon ( source, weap9, ammo9 )
giveWeapon ( source, weap10, 1 )
giveWeapon ( source, weap11, 1 )
giveWeapon ( source, weap12, 1 )
Alles anzeigen
Jetzt kommt die Funktion, wenn die Spielerdaten nicht gefunden wurden:
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:
So, jetzt kommt das Event, wenn der Spieler den Server verlässt:
Jetzt wird wieder der Spieleraccount geladen und geprüft ob er gefunden wurde:
Jetzt speichern wir die Position des Spielers in drei Variablen:
Jetzt speichern wir die Position, den Skin und das Geld des Spielers in den Account Daten:
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:
setAccountData (playeraccount, "s.weap0", getPedWeapon ( source, 0 ))
setAccountData (playeraccount, "s.weap1", getPedWeapon ( source, 1 ))
setAccountData (playeraccount, "s.weap2", getPedWeapon ( source, 2 ))
setAccountData (playeraccount, "s.ammo2", getPedTotalAmmo ( source, 2 ))
setAccountData (playeraccount, "s.weap3", getPedWeapon ( source, 3 ))
setAccountData (playeraccount, "s.ammo3", getPedTotalAmmo ( source, 3 ))
setAccountData (playeraccount, "s.weap4", getPedWeapon ( source, 4 ))
setAccountData (playeraccount, "s.ammo4", getPedTotalAmmo ( source, 4 ))
setAccountData (playeraccount, "s.weap5", getPedWeapon ( source, 5 ))
setAccountData (playeraccount, "s.ammo5", getPedTotalAmmo ( source, 5 ))
setAccountData (playeraccount, "s.weap6", getPedWeapon ( source, 6 ))
setAccountData (playeraccount, "s.ammo6", getPedTotalAmmo ( source, 6 ))
setAccountData (playeraccount, "s.weap7", getPedWeapon ( source, 7 ))
setAccountData (playeraccount, "s.ammo7", getPedTotalAmmo ( source, 7 ))
setAccountData (playeraccount, "s.weap8", getPedWeapon ( source, 8 ))
setAccountData (playeraccount, "s.ammo8", getPedTotalAmmo ( source, 8 ))
setAccountData (playeraccount, "s.weap9", getPedWeapon ( source, 9 ))
setAccountData (playeraccount, "s.ammo9", getPedTotalAmmo ( source, 9 ))
setAccountData (playeraccount, "s.weap10", getPedWeapon ( source, 10 ))
setAccountData (playeraccount, "s.weap11", getPedWeapon ( source, 11 ))
setAccountData (playeraccount, "s.weap12", getPedWeapon ( source, 12 ))
Alles anzeigen
Und jetzt wird noch gespeichert, dass die Daten erstellt wurden, bzw. existieren:
Zum Schluss wird die Funktion noch geschlossen:
Das komplette Script ist Serverside.
Ich wünsche euch viel Spass mit diesem Tutorial und dem Script.