Quantcast
Channel: SA-MP Forums
Viewing all articles
Browse latest Browse all 18226

[Pedido] Guardar e descartar armas no inventário

$
0
0
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
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);
}

FUNÇÃO QUE MOSTRA AS ARMAS E OS ITENS NO CHÃO
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;
                            }
                        }

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

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;
}

COMANDO QUE PEGA AS ARMAS, JA TA PRONTINHO
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;
}


Viewing all articles
Browse latest Browse all 18226

Trending Articles



<script src="https://jsc.adskeeper.com/r/s/rssing.com.1596347.js" async> </script>