Olá eu não sei como fazer para guardar além dos itens (que da pra guardar), fazer para guardar e descartar armas no inventário.
FUNÇÃO QUE DESCARTA OS ITENS
FUNÇÃO QUE MOSTRA AS ARMAS E OS ITENS NO CHÃO
stock DA LISTA DE ITENS DO INVENTÁRIO E TEM ali uma linha que diz, se for arma
//if(idx >= 331 && idx < 372) format( nomedoitem, 50, GunNames(idx)); // se for arma
COMANDO QUE PEGA AS ARMAS, JA TA PRONTINHO
FUNÇÃO QUE DESCARTA OS ITENS
Code:
if(playertextid == invText[playerid][14])
{
new str[180];
if(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] == 19382){
SendClientMessage(playerid, 0xFF6347AA, "* Não há itens suficientes para ser descartado!");
for(new i = 7; i < 16; i++){
PlayerTextDrawHide(playerid, invText[playerid][i]);
}
BoxAberto[playerid] = 0;
return 1;
}
format(str, 280, "* Você largou um item: %s, com %d unidade(s)",
NomeItemInv(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot]), InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades]);
SendClientMessage(playerid, 0x00ccccFF, str);
new Float:pos[3];//cria uma array para armazenar a posição X, Y e Z do jogador
GetPlayerPos(playerid, pos[0], pos[1], pos[2]);//armazena na variável pos a posição do jogador
CreateDroppedItem(InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot], InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades], pos[0], pos[1], pos[2] - 0.9);
for(new i = 0; i != 16; i++)
{
PlayerTextDrawHide(playerid, invText[playerid][i]);
}
for(new i; i != 75; i++)
{
PlayerTextDrawHide(playerid, invPreview[playerid][i]);
PlayerTextDrawHide(playerid, invName[playerid][i]);
}
BoxAberto[playerid] = 0;
InventarioInfo[playerid][ItemSelecionado[playerid]][iSlot] = 19382;
InventarioInfo[playerid][ItemSelecionado[playerid]][iUnidades] = 0;
AbrirInventario(playerid);
}
Code:
for(new a = 0; a < MAX_OBJ; a++)
{
if(IsPlayerInRangeOfPoint(i, 1.8, dGunData[a][ObjPos][0], dGunData[a][ObjPos][1], dGunData[a][ObjPos][2]) && dGunData[a][ObjPos][0] != 0)
{
new Str[73];
format(Str, sizeof Str, "Uma %s com %d balas", GunNames[dGunData[a][ObjData][0]], dGunData[a][ObjData][1]);
PlayerTextDrawSetString(i, DropTextdraw5[i], Str);
TextDrawShowForPlayer(i, DropTextdraw0);
TextDrawShowForPlayer(i, DropTextdraw1);
TextDrawShowForPlayer(i, DropTextdraw2);
TextDrawShowForPlayer(i, DropTextdraw3);
TextDrawShowForPlayer(i, DropTextdraw4);
PlayerTextDrawShow(i, DropTextdraw5[i]);
break;
}
if(IsPlayerInRangeOfPoint(i, 1.8, dItemData[a][ObjtPos][0], dItemData[a][ObjtPos][1], dItemData[a][ObjtPos][2]) && dItemData[a][ObjtPos][0] != 0)
{
new Str[73];
format(Str, sizeof Str, "%s com %d unidade(s)", NomeItemInv(dItemData[a][ObjtData][0]), dItemData[a][ObjtData][1]);
PlayerTextDrawSetString(i, DropTextdraw5[i], Str);
TextDrawShowForPlayer(i, DropTextdraw0);
TextDrawShowForPlayer(i, DropTextdraw1);
TextDrawShowForPlayer(i, DropTextdraw2);
TextDrawShowForPlayer(i, DropTextdraw3);
TextDrawShowForPlayer(i, DropTextdraw4);
PlayerTextDrawShow(i, DropTextdraw5[i]);
break;
}
}
//if(idx >= 331 && idx < 372) format( nomedoitem, 50, GunNames(idx)); // se for arma
Code:
stock NomeItemInv(idx)
{
new nomedoitem[100];
//format( nomedoitem, 100, "Desconhecido");
//if(idx >= 331 && idx < 372) format( nomedoitem, 50, GunNames(idx)); // se for arma
//if(idx == 0) format( nomedoitem, 50, "Desconhecido");
if(idx == 19941) format( nomedoitem, 50, "Respeito");
if(idx == 1212) format( nomedoitem, 50, "Dinheiro");
if(idx == 1650) format( nomedoitem, 50, "Gasolina");
if(idx == 2226) format( nomedoitem, 50, "Radio Portatil");
if(idx == 18976) format( nomedoitem, 50, "Capacete");
if(idx == 980) format( nomedoitem, 50, "Portao");
if(idx == 11738) format( nomedoitem, 50, "Remedio pequeno");
if(idx == 11739) format( nomedoitem, 50, "Remedio Normal");
if(idx == 11736) format( nomedoitem, 50, "MedKit");
if(idx == 1271) format( nomedoitem, 50, "Caixa de Itens");
if(idx == 19570) format( nomedoitem, 50, "Garrafa d'Agua");
if(idx == 1581) format( nomedoitem, 50, "Titulo Personalizado");
if(idx == 2881) format( nomedoitem, 50, "Pizza");
if(idx == 2768) format( nomedoitem, 50, "Hamburguer");
if(idx == 19562) format( nomedoitem, 50, "Cereal");
if(idx == 19054) format( nomedoitem, 50, "Caixa Supresa Pequena");
if(idx == 19055) format( nomedoitem, 50, "Caixa Supresa Media");
if(idx == 19056) format( nomedoitem, 50, "Caixa Supresa Grande");
if(idx == 19057) format( nomedoitem, 50, "Caixa Supresa Platina");
if(idx == 370) format( nomedoitem, 50, "JetPack");
if(idx == 1609) format( nomedoitem, 50, "Tartaruga");
//itens
if(idx == 19317) format( nomedoitem, 50, "Guitarra");
if(idx == 19319) format( nomedoitem, 50, "Guitarra");
if(idx == 19094) format( nomedoitem, 50, "Item Raro");
if(idx == 18974) format( nomedoitem, 50, "Item Raro");
if(idx == 19142) format( nomedoitem, 50, "Colete");
if(idx == 19555) format( nomedoitem, 50, "Luva esquerda");
if(idx == 19556) format( nomedoitem, 50, "Luva direita");
if(idx == 1736) format( nomedoitem, 50, "Cabeca de touro");
if(idx == 2052) format( nomedoitem, 50, "CJ Tommy Hat");
if(idx == 2053) format( nomedoitem, 50, "CJ Jerry Hat");
if(idx == 2114) format( nomedoitem, 50, "Bola de Basquete");
if(idx == 6865) format( nomedoitem, 50, "Cabeça de cervo");
if(idx == 3528) format( nomedoitem, 50, "Cabeca de dragao");
if(idx == 1262) format( nomedoitem, 50, "Cabeca de semaforo");
if(idx == 19067) format( nomedoitem, 50, "Bandana gangster");
if(idx == 19136) format( nomedoitem, 50, "Oculos e cabelo");
if(idx == 19320) format( nomedoitem, 50, "Cabeca de abobora");
if(idx == 19348) format( nomedoitem, 50, "Bengala");
if(idx == 19042) format( nomedoitem, 50, "Relogio de ouro");
if(idx == 19528) format( nomedoitem, 50, "Chapeu de bruxa");
if(idx == 19527) format( nomedoitem, 50, "Caldeirao");
if(idx == 19557) format( nomedoitem, 50, "Mascara Stripp");
if(idx == 11704) format( nomedoitem, 50, "Mascara DEMON");
if(idx == 954) format( nomedoitem, 50, "Ferradura");
if(idx == 1247) format( nomedoitem, 50, "Estrela");
if(idx == 1274) format( nomedoitem, 50, "Sifrao");
if(idx == 2918) format( nomedoitem, 50, "Bola aquatica");
if(idx == 19121) format( nomedoitem, 50, "Luz Branca");
if(idx == 19122) format( nomedoitem, 50, "Luz Azul");
if(idx == 19123) format( nomedoitem, 50, "Luz Verde");
if(idx == 19124) format( nomedoitem, 50, "Luz Vermelha");
if(idx == 19125) format( nomedoitem, 50, "Luz Amarela");
if(idx == 19126) format( nomedoitem, 50, "Luz Azul Bebe");
if(idx == 19127) format( nomedoitem, 50, "Luz Roxa");
if(idx == 2894) format( nomedoitem, 50, "Contrato Hospitalar");
if(idx == 19382) format( nomedoitem, 50, "Nenhum Item");
if(idx >= 0 && idx < 312 ) format( nomedoitem, 50, "Skin %d",idx); // se for skin
//if(idx > 399 && idx < 612 ) format( nomedoitem, 50, "%s",VehicleNames[idx - 400]); // se for veiculo
return nomedoitem;
}
Code:
CMD:parma(playerid)
{
if(GetPlayerState(playerid) != PLAYER_STATE_ONFOOT) return 1;
new f = MAX_OBJ+1;
for(new a = 0; a < MAX_OBJ; a++)
{
if(IsPlayerInRangeOfPoint(playerid, 1.8, dGunData[a][ObjPos][0], dGunData[a][ObjPos][1], dGunData[a][ObjPos][2]))
{
f = a;
break;
}
}
if(f > MAX_OBJ) return 1;
if(gettime() < GetPVarInt(playerid, #VarFlood8))
return 1;
SetPVarInt(playerid, #VarFlood8, gettime()+2);
GivePlayerWeapon(playerid, dGunData[f][ObjData][0], dGunData[f][ObjData][1]);
DestroyDroppedObject(f);
ApplyAnimation(playerid,"BOMBER","BOM_Plant_2Idle",4.1,0,1,1,0,0);
new buffer[85];
format(buffer, sizeof(buffer), "Você pegou um(a) %s.", GunNames[dGunData[f][ObjData][0]]);
SendClientMessage(playerid, 0x33AA3300, buffer);
format(buffer, sizeof(buffer), "*%s pegou um(a) %s do chão.", NomePlayer(playerid), GunNames[dGunData[f][ObjData][0]]);
SendClientMessageInRange(30.0, playerid, buffer, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
printf("%s", buffer);
return 1;
}
Code:
stock CreateDroppedGun(GunID, GunAmmo, Float:gPosX, Float:gPosY, Float:gPosZ)
{
new f = MAX_OBJ+1;
for(new a = 0; a < MAX_OBJ; a++)
{
if(dGunData[a][ObjPos][0] == 0.0)
{
f = a;
break;
}
}
if(f > MAX_OBJ) return;
dGunData[f][dropTimer] = gettime() + (30*60);//30 minutos para a arma desaparecer
dGunData[f][ObjData][0] = GunID;
dGunData[f][ObjData][1] = GunAmmo;
dGunData[f][ObjPos][0] = gPosX;
dGunData[f][ObjPos][1] = gPosY;
dGunData[f][ObjPos][2] = gPosZ;
dGunData[f][ObjID] = CreateDynamicObject(GunObjects[GunID], dGunData[f][ObjPos][0], dGunData[f][ObjPos][1], dGunData[f][ObjPos][2]-1, 93.7, 120.0, random(360), -1, -1, -1, 80.0);
new buffer[128];
format(buffer, sizeof buffer, "%s",GunNames[dGunData[f][ObjData][0]]);
dGunData[f][text3d] = CreateDynamic3DTextLabel(buffer, 0xAAAAAAAA, dGunData[f][ObjPos][0], dGunData[f][ObjPos][1], dGunData[f][ObjPos][2]-1, 15.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 0, -1, -1, -1, 80.0);
return;
}