[PHP] Inventar System v1.0.1

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
  • Hallo liebe PHP Scripter,


    bisher benutzen nicht viele von euch das Plugin das man SA:MP Gamemodes mit PHP Entwickeln kann.
    Aus meiner Sicht kann ich euch das ganze Empfehlen, ich weiß nicht wer noch so denkt aber es ist eine erhebliche Erleichterung!


    Nun zum eigentlichen Thema, ich habe hier für euch ein kleines Inventar System Entwickelt, das ganze kann selbstverständlich durch
    Vorschläge verbessert werden. Da ich leider noch nicht soviel Ahnung mit den Dialogen in PHP habe, lasse ich das ganze erstmal in einer Text Nachricht.
    Es ist noch nicht sehr viel, durch eure Vorschläge kann ich das ganze gerne Erweitern.


    Aktuelle Befehle:

    • /inventar - Um das Inventar abzurufen. (Anpassbar)
    • /use - Um ein Item zu Verwenden. (Anpassbar)
    • /unuse - Legt das Item wieder in dein Inventar. (Anpassbar)


    Installation:
    Die "inventory.php" Datei einfach in den selben Ordner wie eurer PHP Gamemode ist reinkopieren.
    Im PHP Script einfach require 'inventory.php', somit ist die Klasse im eigentlichen Gamemode eingebunden.
    Damit das ganze geht müssen nun zwei Befehle Erstellt werden.


    PHP
    CommandText::register(['/inventar'], function($player, $params) { 	Inventory::inventory($player, $player->getName());});  CommandText::register(['/use'], function($player, $params) { 	Inventory::useItem($player, $params);});  CommandText::register(['/unuse'], function($player, $params) { 	Inventory::itemBack($player, $params);});



    Download:


    Bei Fragen könnt ihr euch selbstverständlich an mich wenden.
    xGreekz7x: Danke für deine Hilfe mit dem Item Problem.


    Mit freundlichen Grüßen,
    m4a_X



    /edit
    Datenbank vergessen und es wird MySQL Benötigt.
    /edit#2
    Pastebin Update.
    /edit#3
    UPDATE 1.0.1


    • Changelog 1.0.1

      Es werden nun beim Auswählen die Namen der Gegenstände ausgegeben anstatt der ID.

    • Changelog 1.0.1

      Man kann sein gewählten Gegenstand wieder in sein Inventar zurückgelegen. (Vorsicht das ganze kann durch die SQL Spalte "Benutzung" etwas buggen)

    • Changelog 1.0.1

      Beim Zurücklegen von einem Gegenstand wird nun auch der Name angezeigt.

    • Changelog 1.0.1

      Gegenstände mit der Anzahl "0" werden nicht mehr aus der Liste Entfernt.


  • Sieht nicht schlecht aus. Für Leute die PHP gut können und Pawn nicht ist das bestimmt eine gute Lösung ! :thumbup:

    Danke für deine Antwort, ich kann Pawn und PHP beides ist seine eigene Welt.
    Aber es gibt Leute (wie mich) die finden Pawn eine schrecklich Langweilig, und mit PHP wirkt das ganze schon wieder nicht so Langweilig.


    Aber jeder hat seine eigene Meinung, wie gesagt danke für deine Bewertung.

  • m4a_X warum zwei mal der gleiche Query???

    PHP
    $sql = mysql_query("SELECT * FROM `inventory` WHERE ID = '{$params}'");
    			$row = mysql_fetch_array($sql);
    			if($row['Name'] == $player->getName()) {
    				$sql1 = mysql_query("SELECT * FROM `inventory` WHERE ID = {$params}'");
    				$row1 = mysql_fetch_array($sql);
  • Nabend,


    Kann m4a_X zu stimmen, jedenfalls was das Anbelangt.

    Zitat

    bisher benutzen nicht viele von euch das Plugin das man SA:MP Gamemodes mit PHP Entwickeln kann.

    Da ich beruflich damit Zutun habe, kann ich eigentlich nur staunen. Pawn, ist für mich, eine Sehr (Nicht Komplizierte) aber etwas verwirrende Sprache. Da ich das, was ich mache Schon Jahre lang mache, Krieg ich nur Kopfschmerzen. Beispiel aus dem Thread;


    new gIsCheater[MAX_PLAYERS];


    PHP
    gIsCheater[playerid] = true;


    Richtig, ergibt meines erwägend's mehr Sinn.



    Wobei ich bei diesen Funktionen, ohne einen getrennten string, das Kotzen bekomme Schaut es für mich vermeintlich Logischer aus als


    public OnPlayerConnect(playerid)
    {
    //Get the name of the player that connected and display a join message to other players


    new name[MAX_PLAYER_NAME+1], string[24+MAX_PLAYER_NAME+1];
    GetPlayerName(playerid, name, sizeof(name));


    format(string, sizeof(string), "%s has joined the server.", name);
    SendClientMessageToAll(0xC4C4C4FF, string);


    return 1;
    }


    In wie fern, vor und Nachteile vorhanden sind kann ich nicht Beurteilen. Zum jetzigen Zeitpunkt. Aber ich fände es viel Interessanter.
    Jedenfalls zu Empfehlen!


    Grüße