[PHP]Grex's Godfather API

Wichtiger Hinweis: Bitte ändert nicht manuell die Schriftfarbe auf schwarz sondern belasst es bei der Standardeinstellung. Somit tragt ihr dazu bei dass euer Text auch bei Verwendung unseren dunklen Forenstils noch lesbar ist!

Tipp: Ihr wollt längere Codeausschnitte oder Logfiles bereitstellen? Benutzt unseren eigenen PasteBin-Dienst Link
  • 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!


    San Andreas [Fun]RealLife
    [ TOOL ] Grex's RCON Tool
    "Zwei Dinge sind unendlich, das Universum und die menschliche Dummheit, aber bei dem Universum bin ich mir noch nicht ganz sicher" - Albert Einstein

    2 Mal editiert, zuletzt von Grex ()

  • wüüül nicht funzen bei mir nicht : Error reading userfile Verzeichnis is angegehben

  • Beim mir geht das auch nicht ganz hier der fehler.

    Zitat

    Error reading userfile

    Und hier die config

  • Noch immer den gleichen fehler "Error reading userfile"
    hier die config
    <?php
    // Set the directory of the SAMP folder // Geben Sie den Pfad des Servers an
    $GameDir = "/home/samp1";
    // Set the directory where the logfiles from the UCP will be save // Geben Sie den Pfad wo die Logfiles vom UCP gespeichert werden sollen an
    $LogDir = "/home/samp1";
    //
    ?>

  • do.de - Domain-Offensive - Domains für alle und zu super Preisen
  • Mhh verstehe nicht ganz was du damit meinst hier muss man doch nur den pfad eingeben ?

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

  • Beim der index.php habe ich das drin stehen

    Zitat

    <?php
    /* Examplescript for Grex's Godfather API was made by Grex http://sa-rl.de */
    require "functions.php";
    $user = 'test'; // The username will defined here // Hier wird der Username gesetzt
    $password = 'test'; // The password will defined here // Hier wird das Passwort gesetzt
    $functions = new functions();