Serverseitiges Tutorial
Moinsen zusammen,
in diesem Tutorial erkläre ich euch wie man in Multi Theft Auto mit der Accounts.xml zusammenarbeitet und wie eure
Daten abgerufen werden können.
Als allererstes möcht ich erwähnen das die Stylesheet Account Verwaltung derzeit keine besonders gute Weise ist, Accounts abzuspeichern
da sich die Accounts beim Einfügen vom Strings auflösen kann aber nicht muss.
Ein Stylesheet im Wurzelbaumformat sieht wie folgt aus...
<accounts>
<autologin>0</autologin>
<account name="Console" password="" />
<account name="Sucka" password="4237237948124289732dsawa121" />
</accounts>
Als allererstes folgt die Mta-Console und nun der erste angelegte Account der durch eine
sha1 Verschlüsselung sicher vor Eingriffen dritter ist.
Wie leg ich mir neue Accounts an ?
Dafür gibt es gute Beispiele auf der Mta Wikipedia Seite hier ein passendes...
function Registrierung( spieler, commandName, Spielerpass)
if ( Spielerpass~= "" and Spielerpass~= nil ) then
local stylesheetcheck = addAccount( getPlayerName(spieler), Spielerpass) -- Erstellt den Account
if ( stylesheetcheck) then
outputChatBox ( "Vielen Dank" .. getPlayerName(spieler) .. ", du bist nun registriert und kannst dich mit /login einlogen", spieler)
else
outputChatBox ( "Fehler während der Accounterstellung bitte an den Systemadministrator werden", spieler)
end
else
outputChatBox ( "Fehlerhafte Syntax verwendet /register <password>", spieler)
end
end
addCommandHandler ( "register", Registrierung)
Alles anzeigen
Wer bisher keine Erfahrung mit Lua hat, kann sich auf der Deutschen Wikipedia Seite Informationen dazu holen.
Wie frage ich die Daten ab ?
local spielerdaten = {} -- Eine Tabelle anlegen
spieleraccount = getPlayerAccount("Bob der Baumeister")
spielerdaten [1] = getAccountData ( spieleraccount, "Geld")
spielerdaten [2] = getAccountData ( spieleraccount, "Level")
Am besten verwendet ihr einen Timer oder eines der zahlreichen Events (zb. OnClientRender) um die
Daten regelmässig abzufragen ohne jedesmal die Funktion von neuen ausführen zu müssen.
Ich würde euch dabei empfehlen eine Serverseitige Function zu bauen.
Clientseitige Funktionen können von Spielern die sich auf dem Server befinden/befunden haben eingesehen werden,
deshalb Achtung! Deshalb ist es ratsam diese Funktionen zu triggern und so wenig wie möglich Informationen zu hinterlassen
Wie benutze ich diese Funktionen ?
Eine Abfrage in einem Event sieht wie folgt aus...
function ServerVerlassen( )
local spieleraccount= getPlayerAccount ( source )
if ( spieleraccount) then
local spielergeld = getPlayerMoney ( source )
setAccountData ( spieleraccount, "Geld", spielergeld )
end
end
function ServerBetretten( )
local spieleraccount= getPlayerAccount ( source )
if ( spieleraccount) then
local spielergeld = getAccountData ( spieleraccount, "Geld" )
if ( spielergeld ) then
setPlayerMoney ( source, spielergeld )
end
end
end
addEventHandler ( "onPlayerQuit", getRootElement ( ), ServerVerlassen)
addEventHandler ( "onPlayerJoin", getRootElement ( ), ServerBetretten)
Alles anzeigen
Hier wird beim Betretten und Verlassen des Servers jeweils einmal die Account Datei abgefragt nach dem derzeitigen Stand des Spielergeldes, während beim Verlassen
das gesamte Geld erfasst wird und ich die Datei/Stylesheet eintragen wird.
Weitere hilfreiche Account Funktionen...
* addAccount
* copyAccountData
* getAccount
* getAccountData
* getAccountName
* getAccounts
* isGuestAccount
* logIn
* logOut
* removeAccount
* setAccountData
* setAccountPassword
* getAccountPlayer
Link zum Mta-Wiki
Die beste Art Accounts abzuspeichern ist es nicht, aber die konfortabelste, da Multi Theft Auto bereits viele vorgefertigte Funktionen mitliefert
wie BanAccount usw. Wer einen großen Server aufbauen möchte der sollte auf MySQL umsteigen.
Zusätzlich gibt es noch die Möglichkeit die Accounts in SQLLite Datenbanken zu sichern, die Datenbank liegt dann direkt im Resourcen Ordner, kann aber auf dem Root
nicht geöffnet werden, da bedarf es einen Datenbank Explorer. Leider sind auch die Funktionen noch nicht ganz ausgereift, die Mta im übernächsten Update aber beheben sollte.
Mta 1.0.5
Acl.xml
In diesem Stylesheet, der Access Control List, müsst ihr anschließend eure Account Funktionen bestätigen.
Die Acl.xml dient zur sicheren Überwachung jedes Mta-Servers und limitiert den Zugriff auf den Server.
Das ist natürlich nicht alles, weitaus beteunder sind die Funktionen des HTTP Panel/Interfaces, aber das ist ein anderes Thema.
Die access, zu deutsch Berechtigung auf den Command müsst ihr euch erteilen indem ihr sie auf true setzt.
Wer statt einem /Register Befehl ein GUI Interface möchte, findet alles benötigte hierzu hier