Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //==============================================================================
- // Sistema de inventário criado por: Artista
- // Usem como quiser ¯\_(ツ)_/¯
- //==============================================================================
- #include <a_samp>
- #include <DOF2>
- #include <zcmd>
- #define DialogInv 200
- #define DialogOpc 201
- new InventarioArma[8][MAX_PLAYERS];
- new InventarioAmmo[8][MAX_PLAYERS];
- new ItemOpcao[MAX_PLAYERS];
- public OnFilterScriptInit()
- {
- print("\n-----------------------------------------");
- print(" Sistema de inventario carregado com sucesso");
- print("-----------------------------------------\n");
- return 1;
- }
- public OnFilterScriptExit()
- {
- DOF2_Exit();
- return 1;
- }
- CMD:inventario(playerid)
- {
- new Inv[160];
- new Nome[20];
- for(new i = 0; i != 8; i++)
- {
- GetWeaponName(InventarioArma[i][playerid], Nome, 20);
- strcat(Inv, InventarioArma[i][playerid] > 0 ? (InventarioArma[i][playerid] == 18 ? ("Cocktail Molotov") : (Nome)) : ("(Vazio)"));
- strcat(Inv, "\n");
- }
- strcat(Inv, "Guardar equipamento atual");
- ShowPlayerDialog(playerid, DialogInv, DIALOG_STYLE_LIST, "Itens", Inv, "Selecionar", "Fechar");
- return 1;
- }
- public OnPlayerConnect(playerid)
- {
- CarregarIventario(playerid);
- return 1;
- }
- public OnPlayerDisconnect(playerid, reason)
- {
- SalvarIventario(playerid);
- return 1;
- }
- public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
- {
- if(dialogid == DialogInv)
- {
- if(!response) return 1;
- if(response)
- {
- switch(listitem)
- {
- case 0: ItemOpcoes(playerid, 0);
- case 1: ItemOpcoes(playerid, 1);
- case 2: ItemOpcoes(playerid, 2);
- case 3: ItemOpcoes(playerid, 3);
- case 4: ItemOpcoes(playerid, 4);
- case 5: ItemOpcoes(playerid, 5);
- case 6: ItemOpcoes(playerid, 6);
- case 7: ItemOpcoes(playerid, 7);
- case 8: GuardarItem(playerid);
- }
- return 1;
- }
- }
- if(dialogid == DialogOpc)
- {
- if(!response) return 1;
- if(response)
- {
- switch(listitem)
- {
- case 0:
- {
- GivePlayerWeapon(playerid, InventarioArma[ItemOpcao[playerid]][playerid], InventarioAmmo[ItemOpcao[playerid]][playerid]);
- InventarioArma[ItemOpcao[playerid]][playerid]=0;
- InventarioAmmo[ItemOpcao[playerid]][playerid]=0;
- }
- case 1:
- {
- InventarioArma[ItemOpcao[playerid]][playerid]=0;
- InventarioAmmo[ItemOpcao[playerid]][playerid]=0;
- SendClientMessage(playerid, -1, "Item destruído!");
- }
- }
- return 1;
- }
- }
- return 0;
- }
- stock GanharItem(playerid, Item, Ammo)
- {
- new Nome[20];
- new i;
- while(i != 8)
- {
- if(InventarioArma[i][playerid] == Item)
- {
- InventarioAmmo[i][playerid]=InventarioAmmo[i][playerid]+Ammo;
- break;
- }
- if(InventarioArma[i][playerid] == 0)
- {
- InventarioArma[i][playerid]=Item;
- InventarioAmmo[i][playerid]=Ammo;
- break;
- }
- i++;
- }
- GetWeaponName(Item, Nome, 20);
- new string[35]=" Adquirido!";
- strins(string, Item == 18 ? ("Cocktail Molotov") : (Nome), 0, 20);
- return SendClientMessage(playerid, -1, i == 8 ? ("Inventário cheio!") : (string));
- }
- stock GuardarItem(playerid)
- {
- new Item = GetPlayerWeapon(playerid);
- new Ammo = GetPlayerAmmo(playerid);
- if(Item == 0) return SendClientMessage(playerid, -1, "Item inválido!");
- new i;
- while(i != 8)
- {
- if(InventarioArma[i][playerid] == Item)
- {
- InventarioAmmo[i][playerid]=InventarioAmmo[i][playerid]+Ammo;
- RemoverItem(playerid, Item);
- break;
- }
- if(InventarioArma[i][playerid] == 0)
- {
- InventarioArma[i][playerid]=Item;
- InventarioAmmo[i][playerid]=Ammo;
- RemoverItem(playerid, Item);
- break;
- }
- i++;
- }
- return i == 8 ? SendClientMessage(playerid, -1, "Inventário cheio!") : 1;
- }
- stock RemoverItem(playerid, item)
- {
- new Arma[13][2];
- for(new i = 1; i < 13; ++i) GetPlayerWeaponData(playerid, i, Arma[i][0], Arma[i][1]);
- ResetPlayerWeapons(playerid);
- for(new i = 1; i < 13; ++i)
- {
- if(item != Arma[i][0]) GivePlayerWeapon(playerid, Arma[i][0], Arma[i][1]);
- }
- }
- stock ItemOpcoes(playerid, Item)
- {
- if(InventarioArma[Item][playerid] == 0) return PlayerPlaySound(playerid, 1053, 0.0, 0.0, 0.0);
- ItemOpcao[playerid]=Item;
- return ShowPlayerDialog(playerid,DialogOpc,DIALOG_STYLE_LIST,"Opções:","Usar\nDestruir","OK","Fechar");
- }
- stock SalvarIventario(playerid)
- {
- new Nome[25];
- GetPlayerName(playerid,Nome,sizeof(Nome));
- new Arquivo[41]="Inventarios/.ini";
- strins(Arquivo, Nome, 12, 25);
- if(!DOF2_FileExists(Arquivo))
- {
- DOF2_CreateFile(Arquivo);
- }
- new str[12];
- for(new i = 0; i != 8; ++i)
- {
- format(str, sizeof(str), "Arma inv %d", i);
- DOF2_SetInt(Arquivo, str, InventarioArma[i][playerid]);
- format(str, sizeof(str), "Ammo inv %d", i);
- DOF2_SetInt(Arquivo, str, InventarioAmmo[i][playerid]);
- }
- DOF2_SaveFile();
- return 1;
- }
- stock CarregarIventario(playerid)
- {
- new Nome[25];
- GetPlayerName(playerid,Nome,sizeof(Nome));
- new Arquivo[41]="Inventarios/.ini";
- strins(Arquivo, Nome, 12, 25);
- if(DOF2_FileExists(Arquivo))
- {
- new str[12];
- for(new i = 0; i != 8; ++i)
- {
- format(str, sizeof(str), "Arma inv %d", i);
- InventarioArma[i][playerid]=DOF2_GetInt(Arquivo, str);
- format(str, sizeof(str), "Ammo inv %d", i);
- InventarioAmmo[i][playerid]=DOF2_GetInt(Arquivo, str);
- }
- }
- return 1;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement