Portal SAMP
[Ajuda] verificação - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] verificação (/showthread.php?tid=1228)



verificação - Smith - 28/05/2021

Galera estou adaptando um sistema de inventario  a minha gm eu consigo salvar os itens em dof2 mas estou com dificuldade para criar o item quando o player connecta, na call OnPlayerConnect eu uso o codico abaixo para criar o item do player
Código:
AddItem(playerid, 1, pItens[playerid][Capacete]);

pItens[playerid][Capacete] ea quantidade eo item salvo, o numero 1 e o id do item
porem quando o player conecta mesmo ele estando com a variavel zerada "0" ele cria o item.
ai tentei fazer a verificação só que não cria o item usando o codigo abaixo

Código:
if(pItens[playerid][Capacete] > 0)
{
AddItem(playerid, 1, pItens[playerid][Capacete]);
}

com o codigo a cima não cria o item salvo 
se eu deixo sem a verificação ele cria porem cria mesmo o player não tendo o item e se eu faço a verificação não cria nada no inventario espero que tenha dado pra entender oque quis dizer kkk



RE: verificação - Smith - 30/05/2021

(28/05/2021 20:58)Smith Escreveu: Galera estou adaptando um sistema de inventario  a minha gm eu consigo salvar os itens em dof2 mas estou com dificuldade para criar o item quando o player connecta, na call OnPlayerConnect eu uso o codico abaixo para criar o item do player
Código:
AddItem(playerid, 1, pItens[playerid][Capacete]);

pItens[playerid][Capacete] ea quantidade eo item salvo, o numero 1 e o id do item
porem quando o player conecta mesmo ele estando com a variavel zerada "0" ele cria o item.
ai tentei fazer a verificação só que não cria o item usando o codigo abaixo

Código:
if(pItens[playerid][Capacete] > 0)
{
AddItem(playerid, 1, pItens[playerid][Capacete]);
}

com o codigo a cima não cria o item salvo 
se eu deixo sem a verificação ele cria porem cria mesmo o player não tendo o item e se eu faço a verificação não cria nada no inventario espero que tenha dado pra entender oque quis dizer kkk
auguem sabe como posso resolver isso?

como criar o item se o valor da variavel for mair que 0?


RE: verificação - ProKillerPa - 30/05/2021

Se não está adicionando quando voce faz a verificação, provavelmente pItens[playerid][Capacete] não está sendo carregada. Manda aqui o carregamento de pItens[playerid][Capacete] e tambem a function AddItem.


RE: verificação - Smith - 31/05/2021

(30/05/2021 17:37)ProKillerPa Escreveu: Se não está adicionando quando voce faz a verificação, provavelmente pItens[playerid][Capacete] não está sendo carregada. Manda aqui o carregamento de pItens[playerid][Capacete] e tambem a function AddItem.

Código:
stock AddItem(playerid, itemid, amount, Float:armorstatus = 100.0)
{
    new bool:sucess = false;

    for(new i = 0; i < MAX_INVENTORY_SLOTS; i ++)
    {
        if(pInventory[playerid][invSlot][i] == itemid && Itens[pInventory[playerid][invSlot][i]][item_limite] > 1 && pInventory[playerid][invSlotAmount][i] != Itens[pInventory[playerid][invSlot][i]][item_limite])
        {
            new check = amount + pInventory[playerid][invSlotAmount][i];

            if(check > Itens[pInventory[playerid][invSlot][i]][item_limite])
            {
                pInventory[playerid][invSlotAmount][i] = Itens[itemid][item_limite];

                for(new a = 0; a < MAX_INVENTORY_SLOTS; a ++)
                {
                    if(pInventory[playerid][invSlot][a] == 0)
                    {
                        pInventory[playerid][invSlot][a] = itemid;
                        new resto = Itens[itemid][item_limite] - check;
                        pInventory[playerid][invSlotAmount][a] = resto*-1;

                        if(Player[playerid][inInventory])
                        {
                            PlayerTextDrawSetPreviewModel(playerid, inventario_index[playerid][a], Itens[itemid][item_modelo]);
                             PlayerTextDrawSetPreviewRot(playerid, inventario_index[playerid][a], Itens[itemid][item_previewrot][0], Itens[itemid][item_previewrot][1], Itens[itemid][item_previewrot][2], Itens[itemid][item_previewrot][3]);

                            PlayerTextDrawHide(playerid, inventario_index[playerid][a]);
                            PlayerTextDrawShow(playerid, inventario_index[playerid][a]);
                        }

                        break;
                    }
                }
            }
            else
            {
                pInventory[playerid][invSlotAmount][i] += amount;

                if(Player[playerid][inInventory])
                {
                    if(pInventory[playerid][invSelectedSlot] == i)
                    {
                        if(pInventory[playerid][invSlotAmount][i] > 1)
                            format(String, sizeof(String), "Quantidade: %d", pInventory[playerid][invSlotAmount][i]);
                        else
                            String = " ";

                        PlayerTextDrawSetString(playerid, inventario_description[playerid][3], String);

                        PlayerTextDrawHide(playerid, inventario_description[playerid][3]);
                        PlayerTextDrawShow(playerid, inventario_description[playerid][3]);
                    }
                }
            }

            sucess = true;
             break;
        }
    }

    if(sucess)
        return true;

    for(new i = 0; i < MAX_INVENTORY_SLOTS; i ++)
    {
        if(pInventory[playerid][invSlot][i] == 0)
        {
            pInventory[playerid][invSlot][i] = itemid;
            pInventory[playerid][invSlotAmount][i] = amount;

            if(itemid == 6)
                pInventory[playerid][invArmourStatus][i] = armorstatus;

            if(Player[playerid][inInventory])
            {
                PlayerTextDrawSetPreviewModel(playerid, inventario_index[playerid][i], Itens[itemid][item_modelo]);
                PlayerTextDrawSetPreviewRot(playerid, inventario_index[playerid][i], Itens[itemid][item_previewrot][0], Itens[itemid][item_previewrot][1], Itens[itemid][item_previewrot][2], Itens[itemid][item_previewrot][3]);

                PlayerTextDrawHide(playerid, inventario_index[playerid][i]);
                PlayerTextDrawShow(playerid, inventario_index[playerid][i]);
            }

            break;
        }
    }

    return true;
}
Código:
stock pNome(playerid)
{
static Nome[MAX_PLAYER_NAME];
GetPlayerName(playerid, Nome, MAX_PLAYER_NAME);
return Nome;
}

stock GetarItens(playerid)
{
new PlayerItens[30];
format(PlayerItens, sizeof(PlayerItens), PASTA_ITENS, pNome(playerid));
return PlayerItens;
}


stock SalvarItens(playerid)
{

if(DOF2_FileExists(GetarItens(playerid)))
{
DOF2_SetInt(GetarItens(playerid), "MochilaGrande", pItens[playerid][MochilaGrande]);
DOF2_SetInt(GetarItens(playerid), "MochilaMedia", pItens[playerid][MochilaMedia]);
DOF2_SetInt(GetarItens(playerid), "Mochila", pItens[playerid][Mochila]);
DOF2_SetInt(GetarItens(playerid), "Capacete", pItens[playerid][Capacete]);
DOF2_SetInt(GetarItens(playerid), "KitMedico", pItens[playerid][KitMedico]);
DOF2_SetInt(GetarItens(playerid), "Faca", pItens[playerid][Faca]);
DOF2_SetInt(GetarItens(playerid), "Deagle", pItens[playerid][Deagle]);
DOF2_SetInt(GetarItens(playerid), "M4", pItens[playerid][M4]);
DOF2_SetInt(GetarItens(playerid), "Municao", pItens[playerid][Municao]);
DOF2_SetInt(GetarItens(playerid), "Molotov", pItens[playerid][Molotov]);
DOF2_SetInt(GetarItens(playerid), "Colete", pItens[playerid][Colete]);
DOF2_SetInt(GetarItens(playerid), "Ak47", pItens[playerid][Ak47]);
DOF2_SetInt(GetarItens(playerid), "ShotGun", pItens[playerid][ShotGun]);
DOF2_SetInt(GetarItens(playerid), "Cacetete", pItens[playerid][Cacetete]);
DOF2_SetInt(GetarItens(playerid), "Uzi", pItens[playerid][Uzi]);
DOF2_SetInt(GetarItens(playerid), "Usp", pItens[playerid][Usp]);
DOF2_SetInt(GetarItens(playerid), "Mp5", pItens[playerid][Mp5]);
DOF2_SetInt(GetarItens(playerid), "Sniper", pItens[playerid][Sniper]);
DOF2_SetInt(GetarItens(playerid), "Granada", pItens[playerid][Granada]);

DOF2_SaveFile();
}

}

stock CarregarItens(playerid)
{

if(DOF2_FileExists(GetarItens(playerid)))
{
pItens[playerid][MochilaGrande] = DOF2_GetInt(GetarItens(playerid), "MochilaGrande");
pItens[playerid][MochilaMedia] = DOF2_GetInt(GetarItens(playerid), "MochilaMedia");
pItens[playerid][Mochila] = DOF2_GetInt(GetarItens(playerid), "Mochila");
pItens[playerid][Capacete] = DOF2_GetInt(GetarItens(playerid), "Capacete");
pItens[playerid][KitMedico] = DOF2_GetInt(GetarItens(playerid), "KitMedico");
pItens[playerid][Faca] = DOF2_GetInt(GetarItens(playerid), "Faca");
pItens[playerid][Deagle] = DOF2_GetInt(GetarItens(playerid), "Deagle");
pItens[playerid][M4] = DOF2_GetInt(GetarItens(playerid), "M4");
pItens[playerid][Municao] = DOF2_GetInt(GetarItens(playerid), "Municao");
pItens[playerid][Molotov] = DOF2_GetInt(GetarItens(playerid), "Molotov");
pItens[playerid][Colete] = DOF2_GetInt(GetarItens(playerid), "Colete");
pItens[playerid][Ak47] = DOF2_GetInt(GetarItens(playerid), "Ak47");
pItens[playerid][ShotGun] = DOF2_GetInt(GetarItens(playerid), "ShotGun");
pItens[playerid][Cacetete] = DOF2_GetInt(GetarItens(playerid), "Cacetete");
pItens[playerid][Uzi] = DOF2_GetInt(GetarItens(playerid), "Uzi");
pItens[playerid][Usp] = DOF2_GetInt(GetarItens(playerid), "Usp");
pItens[playerid][Mp5] = DOF2_GetInt(GetarItens(playerid), "Mp5");
pItens[playerid][Sniper] = DOF2_GetInt(GetarItens(playerid), "Sniper");
pItens[playerid][Granada] = DOF2_GetInt(GetarItens(playerid), "Granada");
}

}
ai esta


RE: verificação - ProKillerPa - 31/05/2021

Verifique se na sua pasta, a linha 'Capacete' está diferente de zero, e me retorna.