19/11/2021 01:48
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:
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;
}