[Pedido] Guardar e descartar armas no inventбrio por textdraw
#1

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
Код:
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);
}
FUNЗГO QUE MOSTRA AS ARMAS E OS ITENS NO CHГO
Код:
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;
			    }
			}
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

Код:
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;
}
COMANDO QUE PEGA AS ARMAS, JA TA PRONTINHO
Код:
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;
    }
Код:
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;
}
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.
Reply
#2

Mano PARA de criar topicos pedindo isso!

jae o 3°, nгo iremos ajudar, vai estudar de vez de editar GF
Reply
#3

Amigo vocк quer cуdigo pronto, nй isso ? especifique melhor o seu problema...
Use o meu inventario, tem armas & comida nele(@usar @dropar @excluir)

https://sampforum.blast.hk/showthread.php?tid=632482
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)