Portal SAMP
[Ajuda] ID da org não funciona - 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] ID da org não funciona (/showthread.php?tid=1857)



ID da org não funciona - jose3212 - 19/11/2021

Boa pessoal tudo beleza? Criei um sistema de organização, com o comando criar org, criou tudo certinho e carregou legal ao ligar e desligar o server, o problema é o seguinte. Quando usa o codigo /comprarbase ele fala que não está em um org mesmo estando em cima da pickup, eu vi que o problema é no id porque coloquei no loop que org = 1 ai ele estava identificando somente a org de id 1, tenteei criar sem loop mas também não deu! Ele estava com o mesmo problema quando eu criei o comando de entrar e sai da org, porém ele entrava em uma e saia em outra com id totalmente diferente. Mas isso eu resolvi comparando o virtualwold dele só que pra comprar não da certo. Se tiverem uma ideia fico agradecido.

Olha ai o código:

Código:
CMD:comprarbase(playerid)
{
    new fileorg[155];
    for(new i = 1; i < MAX_BASES; i++)
    {
        format(fileorg,sizeof(fileorg),PASTA_ORGS,i);
        if(WE_FileExists(fileorg))
        {
            if(IsPlayerInRangeOfPoint(playerid, 2.0, InfoOrg[i][ForaX],InfoOrg[i][ForaY],InfoOrg[i][ForaZ]))
            {
                if(pInfo[playerid][Preso] != 1)
                {
                    if(GetPlayerCash(playerid) > InfoOrg[i][Valor])
                    {
                        if(pInfo[playerid][LiderCla] == 0)
                        {
                            GivePlayerCash(playerid,-InfoOrg[i][Valor]);
                            format(gStr,sizeof(gStr),"| BASE | O(A) jogador %s(%d) comprou a base id %d localizada em %s",PlayerName(playerid),WE_GetInt(fileorg,"Numero"),GetPlayerLocal(playerid));
                            SendClientMessage(playerid, COR_ERRO, gStr);
                            Delete3DTextLabel(InfoOrg[i][TextVenda]);
                            WE_SetString(fileorg,"Lider",PlayerName(playerid));
                            pInfo[playerid][LiderCla] = 1;
                            WE_SaveFile();
                            format(gStr,sizeof(gStr),"{FE2E2E}[ PROPRIEDADE ADQUIRIDA ]\n{FFFFFF}Base ID {FFFF00}[ %d ] - %s\n{FFFFFF}Lider: {FFFF00}%s\n/{FFFFFF}InfoBase",WE_GetInt(fileorg,"Numero"),InfoOrg[i][OrgNome],InfoOrg[i][Lider]);
                            InfoOrg[i][TextComprada] = Create3DTextLabel(gStr, -1, WE_GetFloat(fileorg,"ForaX"),WE_GetFloat(fileorg,"ForaY"),WE_GetFloat(fileorg,"ForaZ"), 20.0,0,1);
                            break;
                        }
                        else return SendClientMessage(playerid, COR_ERRO, "| ERRO | Você já é dono desta org ou não está a venda");
                    }
                    else return SendClientMessage(playerid, COR_ERRO, "| ERRO | Você não tem dinheiro suficiente");
                }
                else return SendClientMessage(playerid, COR_ERRO, "| ERRO | Você está preso(a) e não pode usar comandos");
            }
            else return SendClientMessage(playerid, COR_ERRO, "| ERRO | Você não está próximo a uma Base");
        }
    }
    return 1;
}



RE: ID da org não funciona - Luiz - 19/11/2021

Ao criar um loop, sempre sete o valor 0 para i, uma vez que caso tenha somente uma base criada em seu servidor, ele começará a ler a partir da 2ª criada, que, por sinal, é inexistente.

Código PHP:
for(new iMAX_BASESi++)
{
    if(!
IsPlayerInRangeOfPoint(playerid2.0InfoOrg[i][ForaX], InfoOrg[i][ForaY], InfoOrg[i][ForaZ])
        return 
SendClientMessage(playerid, -1"Você não está próximo de nenhuma base.");


É importante lembrar que você precisa definir um ID pra base através do enum InfoOrg (InfoOrg[baseid][ID]). Caso ele comece automaticamente em 1, como um AUTO_INCREMENT no MySQL, vale ressaltar que o baseid será diferente do ID. Enquanto o baseid será representado por 0, o ID será representado por 1 (sempre um número a menos)


RE: ID da org não funciona - xbruno1000x - 19/11/2021

Não faz sentido esse tópico estar na área de suporte mobile visto que não é um problema especifico em celulares, portanto movi para o suporte comum.