Beiträge von Grex

    Hallo, kann mir mal einer erklären, wie man in der Download-Database ein Programm hinzufügen kann?, ich habe das heute Mittag gemacht, aber es steht nicht da...
    Muss das durch einen Mod erst freigeschaltet werden?

    Es war nur ein Rat, gerne kannst du es verwenden.
    Such nach Webserver für Windows, aber es ist nich hier nicht Sinn der Sache, dir zu erklären wie man hier einen Webserver aufsetzt.
    Sorry, aber du musst es halt verstehen, wenn ich oben Schreibe, es ist nur für Entwickler gedacht, dass du hier keinen anständigen Support bekommst, wie man einen Webserver installiert.

    -.-
    Ich schrieb hier das es ne API ist, und wenn du dich 0 auskennst und diese Anleitung nicht bevolgst kann ich nix machen. Ich meinte welchen Usernamen hast du in der index.php drinnen stehe, der Überprüft ob der User existiert?

    Hey Leute :)
    Da ich bald ein Control Panel mit Mesut veröffentlich will, was so einigen die Augen aushauen soll, möchte ich hier mal die derzeitige Arbeit realeasen. Es handelt sich hier um eine API (Schnitstelle) womit Userdaten ausgelesen werden können. Was man noch mehr kann, siehe unten weiter. Es ist noch nicht zu 100% fertig, aber die wichtigsten Funktionen sind drinnen :)
    Wie gesagt, hierbei handelt sich um eine API und ist desshalb nur für Entwickler gedacht. Also bitte nicht Posten, wie Zeige ich das und das in einer Tabelle an etc.


    Funktionenbeschreibung

    • Benutzerdaten schnell und einfach von der *.ini Datei auslesen und ändern
    • Häuserdaten von Benutzer auslesen (property.cfg)
    • Bizzdaten von Benutzer auslesen (bizz.cfg)
    • SBizzdaten von Benutzer auslesen (sbizz.cfg)
    • Zugriff wird geloggt
    • Passwortabfrage

    Dateibeschreibungen

    • index.php <- Es sind von allen Funktionen ein Beispiel dabei
    • functions.php <- Die API
    • config.php <- Einstellungen für die API (Pfadangabe für Spieleverzeichnis und Logverzeichnis)

    Die Funktionen
    Ich habe es sehr "Godfatherlike" gemacht, das heißt, wer Pawno kann, kann mit dieser Anleitung auch gut damit umgehen.
    Um eine Funktion überhaupt nutzen zu können, muss das in der Datei oben stehen:

    PHP
    $functions = new functions();


    Das Einlesen der Spielerdaten:

    PHP
    $PlayerInfo = $functions->GetPlayerInfo($user);

    <-- lest die Spielerdaten des angegeben Spielers ($user) ein. Im Beispielscript ist der User Grex
    Das Einlesen der Bizzdaten:

    PHP
    $PlayerBizzInfo = $functions->GetPlayerBizzInfo($user);

    <-- lest die Bizzdaten des angegeben Spielers ($user) ein. Im
    Beispielscript ist der User Grex
    Das einlesen der SBizzdaten:

    PHP
    $PlayerBizzInfo = $functions->GetPlayerSBizzInfo($user);

    <-- lest die SBizzdaten des angegeben Spielers ($user) ein. Im
    Beispielscript ist der User Grex
    Das einlesen Häuserdaten:

    PHP
    $PlayerHouseInfo = $functions->GetPlayerHouseInfo($user);

    <-- lest die Häuserdaten des angegeben Spielers ($user) ein. Im
    Beispielscript ist der User Grex



    Der Umgang mit den Daten:
    Wie schon oben genannt, ist es sehr ähnlich wie beim GF in PAWN. Um z.B. das Geld abzufragen, verwendet man

    PHP
    $PlayerInfo['Money'];


    Alle Namen sind die in der *.ini Datei, (Level=1,Bank=5000,Money=1000,...)


    Will man abfragen, ob der User überhaupt existiert, prüft man einfach ab, wenn die Funktion False zurück gibt, dann existiert der User nicht, daher:

    PHP
    if(!$PlayerInfo) die('User nicht gefunden')

    die bedeutet, dass das Script abbricht und nicht weiter läuft.


    Will man das gesamte Vermögen des Users anzeigen (exkl. Hauskasse, Bizkasse,...) geht man wie folgt vor:

    PHP
    echo $PlayerInfo['Money'] + $PlayerInfo['Bank'];


    Will man den Mitteilinhaber von dem Benutzer seines Bizzes anzeigen, dann:

    PHP
    echo $PlayerBizzInfo['Extortion'];

    Aber bitte zuerst die Daten einlesen, es gibt nur PlayerBizzInfo (bei GF ist von 0 bis 99 Bizz, von 100 bis 254 SBizz), im Beispielscript wird entweder Bizz oder SBizz daten ausgelesen.


    Will man von dem Benutzer seine Hauskasse anzeigen, dann:

    PHP
    echo $PlayerHouseInfo['Takings'];

    Bitte aber zuvor prüfen, ob der Benutzer auch ein Haus hat, bzw. die Daten eingelesen worden sind



    Daten speichern:
    Derzeit kann man nur die Spielerdaten wieder speichern, diese muss man zuerst ändern und dann UpdatePlayerInfo($user) aufrufen. Kleines Beispiel:

    PHP
    $PlayerInfo['AdminLevel'] = $PlayerInfo['Level'];
    $PlayerInfo['Level'] = -999;


    Das ändern mal die Daten, nichts anderes, hier werden sie dann in die *.ini eingetrangen:

    PHP
    $functions->UpdatePlayerInfo($PlayerInfo,$user);

    Hier ist $PlayerInfo was gespeichert werden soll, dies ist eigentlich Konstant, doch muss bei der Funktion mit übergeben werden, also daher nie $PlayerInfo darin ändern, ausser man weiß, was man macht.



    Nebenfunktionen:
    In die Log schreiben:

    PHP
    $functions->accesslog($user,true);

    Hier werden zwei Parameter übergeben, der erste Parameter, also $user ist der Benutzer und true bedeutet ein erfolgreicher Login, für einen fehgeschlagenen Login verwendet man anstatt true eben false.


    Passwortvergleich:
    Hierbei müssen logscherweise die Benutzerdaten schon eingelesen werden, ansonst funktioniert es nicht:

    PHP
    $functions->cryptpw($password) != $PlayerInfo['Key'])

    Hier wird das Passwort (sa-rl.de) mit dem Passwort in der *.ini Datei überprüft. cryptpw($password) liefert das Verschlüsselte Passwort zurück.


    Verwendung

    • Falls diese API nicht für die Weiterentwicklung bzw. zur Veröffentlichung anderer Control Panels oder APIs gedacht sind, darf diese geändert werden, anderen Falles, darf diese API nicht bearbeitet werden.
    • Eine Erwähung meines Namens (Grex) MUSS im footer (falls nicht vorhanden, im Credits bereich(PUBLIC!) veröffentlicht werden). Ich würde mich freuen, falls der Link http://sa-rl.de dabei stehen würde
    • Logischerweise darf auf keinem Fall diese API als sein eigenes Produkt ausgeben und/oder es verkaufen.

    Downloads

    Tipps

    • Fragt bevor der ini Speicherung ab, ob der User auch wirklich nicht online ist ($PlayerInfo['Adjustable'], falls dieser 1 ist, ist er offline), ansonst wird es nicht (lange) funktionieren.
    • Unter Linux so als auch Windows (Server), beachtet, dass Lese- und Schreibrechte vorhanden sind


    Viel Spaß und Vergnügen damit :)
    Freue mich auf jeden Lob als auch Anregungen und Kritik!

    OnPlayerUpdate(playerid) ist in den Includes definiert. Aber wenn es bei dir nicht einmal vorhanden ist, dann kann es an dem nicht liegen,. oder meintest du etwas anderes?

    Hmm,naja, wenn es sich um einen Windows Server handelt, sehe ich keine Probleme, dass ein Benutzer sich per RDP verbinden kann und den SAMP Server starten kann.

    Dann hast du im Sctipt i.wo eine sehr große bzw. lange Schleife (do-while,while,for,loop,..)
    Such mal nach solche und checke diese. Kannst ja auch mal mi einem "nackten" gamemode testen.

    Finde ich auch, 21 Leute sind schon etwas, mach weiter so und du bekommst bestimmt mehr :)

    47 am ersten Tag, 70 User beim zweiten Tag :) und unser Rekord liegt bei 102 User am 21. Feburar 2010 :)


    Das ist schon ziemlich viel, das ganze war auch aber schon 1-2 Wochen angekündigt, und eine freuten sich wie auf ein Keks :D