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
OS COMANDOS NECESSÁRIOS PARA CRIAÇÃO ESTÃO TODOS AI.
ANTES DE FALAR ALGO, ANTES DE PEDIR AJUDA EU JA TENTEI CRIAR PEGANDO COMANDO DE OUTRA GM E TENTANDO COLOCAR, MAS A LÓGICA N DEU MUITO CERTO.
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;
}
ANTES DE FALAR ALGO, ANTES DE PEDIR AJUDA EU JA TENTEI CRIAR PEGANDO COMANDO DE OUTRA GM E TENTANDO COLOCAR, MAS A LÓGICA N DEU MUITO CERTO.