Jump to content
  • 0

Cum fac /giveitem si /sellitem la acest inventar


Question

Posted

Salut,am si eu acest inventar(l-am cautat vreo 3 zile) am rezolvat la el mici errori si nu pre stiu cum sa fac comenzile "/giveitem playerid slot" si "/sellitem playerid slot amount".Ma poate ajuta cineva va multumesc.

[pawn]

#include <a_samp>

#include <Dini>

#define YELLOW 0xFFFF00FF

//============ Defines of Bag IDS

#define MAX_ITEMS 10

#define BAGCOUNT 5

#define EMPTY_BAGSPACE -1

#define ecard 1

#define smedal 2

#define gmedal 3

#define mayorsig 4

#define swatsig 5

#define sdoc1 6

#define sdoc2 7

#define sdoc3 8

#define sdoc4 9

#define sdocfull 10

new Bags[MAX_PLAYERS][bAGCOUNT];

new ItemNames[MAX_ITEMS][32] =

{

{"Electronic Card"},

{"S Medal"},

{"G Medal"},

{"Mayor Sig"},

{"Swat Sig"},

{"S Document 1"},

{"S Document 2"},

{"S Document 3"},

{"S Document 4"},

{"S Full Document"}

};

main();

public OnGameModeInit()

{

    SetGameModeText("test");

    AddPlayerClass(0, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);

    return 1;

}

public OnPlayerConnect(playerid)

{

// Resets

for(new s; s < BAGCOUNT; s++)

  {

    Bags[playerid] = EMPTY_BAGSPACE;

  }

 

// Loads

  LoadPlayerBagFromFile(playerid);

}

public OnPlayerDisconnect(playerid)

{

// Save

SavePlayerBagToFile(playerid);

}

public OnPlayerRequestClass(playerid, classid)

{

    SetPlayerPos(playerid, 1958.3783, 1343.1572, 15.3746);

    SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);

    SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);

    return 1;

}

public OnPlayerCommandText(playerid, cmdtext[])

{

    if(strcmp(cmdtext, "/mybag", true) == 0)

    {

        new bagitem[128];

        SendClientMessage(playerid, YELLOW, "-----------------------------------------------");

        SendClientMessage(playerid, YELLOW, "      Your Bag");

        SendClientMessage(playerid, YELLOW, "-----------------------------------------------");

        for (new i = 0; i < BAGCOUNT; i++)

        {

            if (Bags[playerid] == EMPTY_BAGSPACE) format(bagitem, sizeof(bagitem), "Item %d: ", i + 1);

            else format(bagitem, sizeof(bagitem), "Item %d: %s", i + 1, ItemNames[bags[playerid] - 1]);

            SendClientMessage(playerid, 0xffffffff, bagitem);

        }

        SendClientMessage(playerid, YELLOW, "-----------------------------------------------");

        return 1;

    }

    if(strcmp(cmdtext, "/killbag", true) == 0)

    {

        for(new s; s < BAGCOUNT; s++)

        {

            Bags[playerid] = EMPTY_BAGSPACE;

        }

        SendClientMessage(playerid, YELLOW, "[ ! ] Your bag is now empty!");

        return 1;

    }

    if(strcmp(cmdtext, "/putecard", true) == 0)

    {

        new space = FindPlayerBagSpace(playerid);

        if (space == EMPTY_BAGSPACE) return SendClientMessage(playerid, YELLOW, "[ ! ] Your bag is full!");

        Bags[playerid][space] = ecard;

        SendClientMessage(playerid, YELLOW, "[ ! ] You have got an electing card !");

        return 1;

    }

    return 0;

}

stock FindPlayerBagSpace(playerid)

{

    for(new s; s < BAGCOUNT; s++)

    {

        if (Bags[playerid] == EMPTY_BAGSPACE) return s;

    }

    return EMPTY_BAGSPACE;

}

stock Player(playerid)

{

new player[MAX_PLAYER_NAME];

GetPlayerName(playerid, player, sizeof(player));

return player;

}

stock i_path(playerid)

{

  new a[256];

  format(a, sizeof(a), "%s's_Bag.ini",Player(playerid));

  return a;

}

stock SavePlayerBagToFile(playerid){

if(!dini_Exists(i_path(playerid))) dini_Create(i_path(playerid));

new bagdinikey[256], bagitemline[256];

for(new i = 0; i < BAGCOUNT; i++){

format(bagdinikey, 256, "slot:%d", i+1);

format(bagitemline, 256, "%d", Bags[playerid]);

dini_Set(i_path(playerid), bagdinikey, bagitemline);

}

return 1;

}

stock LoadPlayerBagFromFile(playerid)

{

  new filename[256];

format(filename, sizeof(filename), "%s's_Bag.ini", Player(playerid));

if (fexist(filename))

{

new File: BagFile;

BagFile = fopen(filename, io_read);

if(BagFile)

{

  new key[128];

  new Data[128];

  while(fread(BagFile, Data, sizeof(Data)))

{

key = ini_GetKey(Data);

  if(strcmp(key, "slot:1", true)==0)

{

Bags[playerid][0]=strval(ini_GetValue(Data));

}

  if(strcmp(key, "slot:2", true)==0)

{

Bags[playerid][1]=strval(ini_GetValue(Data));

}

  if(strcmp(key, "slot:3", true)==0)

{

Bags[playerid][2]=strval(ini_GetValue(Data));

}

  if(strcmp(key, "slot:4", true)==0)

{

Bags[playerid][3]=strval(ini_GetValue(Data));

}

  if(strcmp(key, "slot:5", true)==0)

{

Bags[playerid][4]=strval(ini_GetValue(Data));

}

}

}

  fclose(BagFile);

}

return 1;

}

stock ini_GetKey(line[])

{

new keyRes[128];

keyRes[0] = 0;

if(strfind(line, "=", true) == -1) return keyRes;

strmid(keyRes, line, 0, strfind(line, "=", true), sizeof(keyRes));

return keyRes;

}

stock ini_GetValue(line[])

{

new valRes[128];

valRes[0] = 0;

if(strfind(line, "=", true) == -1) return valRes;

strmid(valRes, line, strfind(line, "=", true)+1, strlen(line), sizeof(valRes));

return valRes;

}

[/pawn]

3 answers to this question

Recommended Posts

Posted

CMD:giveitem(playerid, params[])

{

    new giveplayerid,slot;

    if(unformat(params, "ui", giveplayerid,slot))  return SendClientMessage(playerid, -1, "Foloseste: /giveitem [playerid] [slot]");

 

    return 1;

}

Atata iti dau de acolo de descurci. Citeste Tutorialul nu astepta modele

 

1859311972_BANNER-GIREADAcopy-min.thumb.png.48e5e420ae2185dce5b244965a1d2601.png

 

Guest
This topic is now closed to further replies.
×
×
  • Create New...

Important Information

We have placed cookies on your device to help make this website better. You can adjust your cookie settings, otherwise we'll assume you're okay to continue. For more details you can also review our Terms of Use and Privacy Policy.