Beiträge von Jason_Gregory

    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...


    Code
    <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...



    Wer bisher keine Erfahrung mit Lua hat, kann sich auf der Deutschen Wikipedia Seite Informationen dazu holen.




    Wie frage ich die Daten ab ?


    Code
    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...



    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.


    Code
    <right name="command.addaccount" access="false"/>


    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

    Du kannst mit dem Area51 Script anfangen, pures Deathmatching, 2 Teams, keine allzu schwierigen Funktionen.


    Was muss das Dm Script den haben.


    Login/Register ?
    Teams ?
    Rundenbassiert usw... ?

    public Payday()
    {
    for(new i = 0; i < MAX_PLAYERS; i++)
    {
    GivePlayerMoney(i, 1000);
    SetPlayerScore(i, GetPlayerScore(playerid)+1);
    GameTextForAll("Zahltag",5000,6);
    }
    return 1;
    }


    Du musst um einem bestehenden Score etwas anrechnen zu können erstmal wissen welchen Wert der hat.

    GivePlayerWeapon(playerid,dini_Int(Spielerdatei,"Waffen"), muni); //so ist es richtig


    Speicherst du den nicht die Munition in deiner Spielerini ?
    Wäre ja ansonsten sinnlos ihm ne Waffe zu geben mit keiner Definierten Munition


    GivePlayerWeapon(playerid,dini_Int(Spielerdatei,"Waffen"), dini_Int(Spielerdatei,"Munition")); //so könnte es aussehen wenn du es definiert hast

    GivePlayerWeapon(playerid,dini_Int(Spielerdatei,"Waffen")); // Warning 1


    Du hast vergessen ihm die Munition hinzuzufügen, heißt im Klartext dir fehlt ein Komma mit der Zahl der Patronen.


    dini_IntSet(Spielerdatei,"Waffen",GivePlayerWeapon(playerid)); //warnung 2 u. 3


    Sollte wohl eher GetPlayerWeapon heißen :sleeping:
    Ansonsten macht das oben keinen Sinn.

    Joar, ich kenn nicht wirklich alle durchgehenden Notebooks die bei Aldi auf den Tressen knallen/knallen werden, hab aber von Seiten
    anderer noch keine Böses Wort drüber gehört und die Computerbild zeichnet die Notebooks aus, weil sie´n gutes Preis/Leistungsverhältnis haben.


    Musst halt damit leben das du dort keine Kaufberatung bekommst wie bei Mediamarkt & Saturn CoKG.
    weil sich die höchstens mit den Gurken aus Regelreihe 2 auskennen^.
    Am besten bei Medion/Computerbild nachforschen ob der Pc das aushält damit nicht das gleiche passiert
    wie bei Drake :P

    Du weißt schon das der aktuelle Mtasa Editor, wenn du den Script Editor meinst, zurzeit nicht nutzbar ist.
    Da 50p auch kein Admin helfen kann/möchte, musst du wohl oder übel auf Alternativen zurückgreifen :).


    Highlight Editoren gibt es genug.



    Wenn du den Map Editor meinst, dann empfehl ich dir Mta neu zu instalieren.
    Du hast die Server-Resourcen bei der Instalation nicht angekreuzt, falls du mal selber gucken willst...


    Mta Main Folder/server/mods/resources -> falls hier keine zip Datein liegen, musst du es neu instalieren

    Bei neueren Prozessoren/Mainboards kann da eigentlich nur recht wenig passieren in Sachen Stromschlag/Brand.
    Kann aber sein das du spätere Garantieanforderungen nich mehr in Anspruch nehmen kannst, weil die beim Overclocking erlischt
    (Sollte eigentlich klar sein).


    Trotzdem würd ich aufpassen, Übertakten = mehr Leistung = höherer Anspruch des Kühlers und des Netzteils.
    Und ein Prozessor der andauernd übertaktet wird, lebt nicht lange. :sleeping:
    Hab meinen Intel Prozessor selber über den Multiplikator übertaktet, die Sperre ist da auch kein Hindernis.


    No Risc, no Fun.



    Gibt sogar ganze Workshops

    Ist möglich mit einigen Timern, was natürlich besser wäre wenn du Trailer, also Anhänger verwenden würdest anstatt von Fahrzeugen,
    da es keine AttachVehicleToVehicle Funktion gibt.


    http://wiki.sa-mp.com/wiki/AttachTrailerToVehicle


    Du müsstest eigentlich nur eine Funktion bauen, die Position des Cargoflugzeugs hernehmen und das zu befördernde Fahrzeuge -4 Z-Coord an das
    Flugzeug binden, ein 500 er Interval Timer sollte hinhauen, falls du dann willst das dass Fahrzeug "real" am Flugzeug klebbt müsstest du den Interval verkleinern
    was wiederrum mehr CPU-Leistung saugt.


    Der Cargobob bzw. desen Leine (Single Player Mission) gibts in Sa-mp leider nicht.

    Ich versteh nicht ganz was du hiermit bezwecken willst...


    if(sscanf(params,"ddffffs",aID,x,y,z,angle,vID)) {


    Wieso verwendest du nicht direkt Floatwerte für alle Coords, statt nur für y und z.
    Außerdem hast du mehr Parameter definiert als du in der if Schleife abfragst.


    if(sscanf(params,"dffffs",aID,x,y,z,angle,vID)) {


    Einrücken kannst du mit der Tab Taste oder mit Dracos Tidy Pawn.

    Code
    if sauschwer ==  unmoglich then
        return false
    end


    Ist bei Mta besser machbar als in Samp
    Ich wuerde am besten mit einfachen Funktionen anfangen wie der Ped reagiert wenn er bsp. angezielt wird.
    Danach seine Reaktion und was passiert sobald sich der Spieler ausserhalb eines Radius befindet.
    Aber plag dich damit mal nicht ab, das hat Rockstar auch seine Zeit gekostet.