BackPack system ? Aber wie [Für SAMP DayZ Server]

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


    ich brauche mal hilfe



    ich hab bisjetz 30 % des server fertig ... mysql etc.. alles dabei


    Nur jetz kommt das dumme :D



    Wie mache ich ein Backpack system



    Wie zb :


    if(IsItem == 100)//ZB Eine map oder etc...


    Geht so etwas?

  • Das hat damit nichts zu tun.


    Das ist nur das BackPack der einzelnen Spieler.



    Würdest du jetzt Items machen wollen die rumliegen, könntest du das nach ähnlichem Prinzip machen:



    #define MAX_ITEMS 5000
    enum GI
    {
    Float:GIx,
    Float:GIy,
    Float:GIz,
    GITyp,
    GIObject
    }
    new GroundItem[MAX_ITEMS][GI];




    Befehl zum aufsammeln von Items.

    if(strcmp(cmd, "/GetItem",true)==0)
    {
    for(new i; i < MAX_ITEMS; i++)
    {
    if(IsPlayerInRangeOfPoint(playerid, 3, GroundItem[i][GIx], GroundItem[i][GIx], GroundItem[i][GIx]))
    {
    BackPack[playerid][GroundItem[i][GITyp]]++;
    return 1;
    }
    }
    }


    Die Methode ist aber Resourcenfressend, da die Schleife die Positionen von allen Items mit deiner Position abgleicht.

  • Ahh Danke



    frage wie mache ich jetz das wenn mann z (onplayerkeychange) ....



    Naja das mit "z" hab ich schon aber wie mache ich das das dann der Backpack angezeigt wird was alles drin ist ;)



    und wie kann ich das in MySQL Speichern also die items ;) ?

    • Offizieller Beitrag

    Ungetestet, gerade erst geschrieben, aber so könnte es aussehen, das gleiche mit dem Mysql speichern.
    Einfach die Anzahl von Brot in die Tabelle speichern und beim Login abrufen und setzen.//=====| Enum/ Variable |=====//
    enum Backpackitems {
    Wasser,
    Saft,
    Brot,
    Benzin
    };
    new Backpack[MAX_PLAYERS][Backpackitems];


    //=====| Befehle |=====//
    ocmd:showbackpack(playerid, params[])
    {
    new Backpackstr[180];
    if(Backpack[playerid][Wasser] > 0)
    format(Backpackstr, sizeof Backpackstr, "%sWasser %d\n", Backpackstr, Backpack[playerid][Wasser]);
    if(Backpack[playerid][Saft] > 0)
    format(Backpackstr, sizeof Backpackstr, "%sSaft %d\n", Backpackstr, Backpack[playerid][Saft]);
    if(Backpack[playerid][Brot] > 0)
    format(Backpackstr, sizeof Backpackstr, "%sBrot %d\n", Backpackstr, Backpack[playerid][Brot]);
    if(Backpack[playerid][Benzin] > 0)
    format(Backpackstr, sizeof Backpackstr, "%sBenzin %d\n", Backpackstr, Backpack[playerid][Benzin]);
    ShowPlayerDialog(playerid, diaBackpackItems, DIALOG_STYLE_LIST, "Backpack Inhalt", Backpackstr, "Okay", "Danke");
    return 1;
    }


    ocmd:trinken(playerid, params[])
    {
    if(Backpack[playerid][Wasser] > 0) {
    Backpack[playerid][Wasser]--;
    new Float:hp;
    GetPlayerHealth(playerid, hp);
    SetPlayerHealth(playerid, hp+20.0);
    SendClientMessage(playerid, cRed, "Du trinkst was...");
    }
    return 1;
    }

  • Sorry das ich erst heute früh schreibe ;D



    Das Funktioniert nicht !



    Es zeigt mir nicht den Dialog an



    public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
    {
    if(newkeys == KEY_YES)
    {
    new Backpackstr[500];
    if(Backpack[playerid][Wasser] > 0)
    {
    format(Backpackstr, sizeof Backpackstr, "%sWasser %i\n", Backpackstr, Backpack[playerid][Wasser]);
    }
    if(Backpack[playerid][Saft] > 0)
    {
    format(Backpackstr, sizeof Backpackstr, "%sSaft %i\n", Backpackstr, Backpack[playerid][Saft]);
    }
    if(Backpack[playerid][Brot] > 0)
    {
    format(Backpackstr, sizeof Backpackstr, "%sBrot %i\n", Backpackstr, Backpack[playerid][Brot]);
    }
    if(Backpack[playerid][Benzin] > 0)
    {
    format(Backpackstr, sizeof Backpackstr, "%sBenzin %i\n", Backpackstr, Backpack[playerid][Benzin]);
    }
    ShowPlayerDialog(playerid, diaBackpackItems, DIALOG_STYLE_LIST, "Backpack Inhalt", Backpackstr, "Okay", "Danke");
    }
    return 1;
    }