[Ajuda]Checar Sistema
#1

tou com um probleminha....
meu gm tem a funcao de comprar so um carro, eu arrumei isso e pus pra comprar infinitos
O problema й que o comando que voce pode executar quando voce esta em seu carro,ta vendendo todos os carros em ves de o carro q estas dentro

Comando que o player tem acesso se tiver em seu carro:
pawn Код:
if(strcmp(cmdtext, "/meucarro", true) == 0) {
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
new resultados;
new string2[256];
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
if(dini_Exists(string)){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
format(string2, sizeof(string2), "Meu Carro(Id:%d)", carro);
ShowPlayerDialog(playerid, 4501, DIALOG_STYLE_LIST, string, "Salvar Posiзгo \nAlterar cor 1 \nAlterar cor 2 \nRespawnar Carro \nVender Carro", "OK", "Cancelar");
resultados = 0;
} else {
resultados = 1;
}
}
}
if(resultados == 1){
SendClientMessage(playerid, Vermelho, "Vocк nгo estб no seu carro.");
}
return 1;
}
Dialog do /meucarro :
pawn Код:
if(dialogid == 4501) // Menu
            {
            if(response)
            {
            if(listitem == 0) //Salvar posiзгo
            {
            if(IsPlayerInAnyVehicle(playerid)){
            new aname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
            new Float:carroX,Float:carroY,Float:carroZ,Float:carroA;
            new vid;
            vid = GetPlayerVehicleID(playerid);
            GetVehiclePos(vid, carroX, carroY, carroZ);
            GetVehicleZAngle(vid, carroA);
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for(new carro = 0; carro < MAX_CARROS; carro++)
            {
            format(string, sizeof(string), "carro%d.ini", carro);
            if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
            dini_FloatSet(string, "CordX", Float:carroX);
            dini_FloatSet(string, "CordY", Float:carroY);
            dini_FloatSet(string, "CordZ", Float:carroZ);
            dini_FloatSet(string, "Angulo", Float:carroA);
            //SendClientMessage(playerid, Verde, "Seu carro foi salvo na sua posiзгo.");
            }
            }
            SendClientMessage(playerid, Verde, "Seu carro foi salvo na sua posiзгo.");
            } else {
            SendClientMessage(playerid, Vermelho, "Para salvar a posiзгo vocк presisa estar em um carro.");
            }
            }
            if(listitem == 1)    //Alterar cor 1
            {
            format(STRX, sizeof(STRX), "Alterar Cor 1\n\nDigite o nъmero da cor desejada e aperte \"Alterar\".\n\n ~ Sanchez!");
            ShowPlayerDialog(playerid, 4502, DIALOG_STYLE_INPUT, "Meu Carro", STRX, "Alterar", "Cancelar");
            }
            if(listitem == 2)  //Alterar cor 2
            {
            format(STRX, sizeof(STRX), "Alterar Cor 2\n\nDigite o nъmero da cor desejada e aperte \"Alterar\".\n\n ~ Sanchez!");
            ShowPlayerDialog(playerid, 4503, DIALOG_STYLE_INPUT, "Meu Carro", STRX, "Alterar", "Cancelar");
            }
            if(listitem == 3) // Respawnar carro
            {
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for(new carro = 0; carro < MAX_CARROS; carro++)
            {
            format(string, sizeof(string), "carro%d.ini", carro);
            if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
            DestroyVehicle(dini_Int(string, "Id"));
            new carroid;
            carroid = AddStaticVehicle(dini_Int(string, "Modelo"), dini_Float(string, "CordX"), dini_Float(string, "CordY"), dini_Float(string, "CordZ"), dini_Float(string, "Angulo"), dini_Int(string, "Cor1"), dini_Int(string, "Cor2"));
            dini_IntSet(string, "Id", carroid);
            }
            }
            SendClientMessage(playerid, Amarelo, "Carro respawnado !");
            }
            if(listitem == 4) // Vender carro
            {
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for(new carro = 0; carro < MAX_CARROS; carro++)
            {
            format(string, sizeof(string), "carro%d.ini", carro);
            if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
            dini_Set(string, "Dono", "Nenhum");
            dini_IntSet(string, "TDono", 0);
            GivePlayerGrana(playerid, dini_Int(string, "Preco"));
            }
            }
            }
            }
            }
Comando que o adm criar o carro a venda:
pawn Код:
if(strcmp(cmd, "/ccar", true) == 0) {
        new pname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, pname, sizeof(pname));
        if(IsPlayerAdmin(playerid)|| pAdmin[playerid] == 5){
        new tmp[256];
        new carid, Float:ang, preco, cor1, cor2;
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)){
        SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
        return 1;
        }
        carid = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {
        SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
        return 1;
        }
        preco = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {
        SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
        return 1;
        }
        cor1 = strval(tmp);
        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp)) {
        SendClientMessage(playerid, Cinza, "(ERRO): /ccar [id] [preзo] [cor1] [cor2]");
        return 1;
        }
        cor2 = strval(tmp);
        if(carid >= 400 && carid <= 611){
        if(IsPlayerInAnyVehicle(playerid)){
        new Float:X, Float:Y, Float:Z;
        GetPlayerPos(playerid, X, Y, Z);
        GetVehicleZAngle(GetPlayerVehicleID(playerid),ang);
        format(string, sizeof(string), "carro%d.ini", proximocarro);
        if(!dini_Exists(string)){
        dini_Create(string);
        dini_IntSet(string, "Modelo", carid);
        dini_FloatSet(string, "CordX", Float:X);
        dini_FloatSet(string, "CordY", Float:Y);
        dini_FloatSet(string, "CordZ", Float:Z);
        dini_FloatSet(string, "Angulo", Float:ang);
        dini_IntSet(string, "Cor1", cor1);
        dini_IntSet(string, "Cor2", cor2);
        dini_IntSet(string, "TDono", 0);
        dini_Set(string, "Dono", "Ninguem");
        dini_IntSet(string, "Preco", preco);
        }
        SetTimerEx("CriarVeiculo2",5000,false,"dffffdd",carid,X,Y,Z,ang,cor1,cor2);
        format(string, sizeof(string), "(INFO) Veiculo criado com sucesso!");
        SendClientMessage(playerid, Azul, string);
        return 1;
        } else {
        SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo estб em um veiculo!");
        }
        }
        else{
        SendClientMessage(playerid, Cinza, "(ERRO) Veiculo invбlido.");
        return 1;
        }
        } else {
        SendClientMessage(playerid, Cinza, "(ERRO) Vocк nгo tem permissгo para isso");
        return 1;
        }
        }
Parte DO CODE que chama a dialog de comprar se o carro tiver a venda
pawn Код:
if(newstate == PLAYER_STATE_DRIVER)
{
new string[256];
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
for(new carro = 0; carro < MAX_CARROS; carro++)
{
new vid;
vid = GetPlayerVehicleID(playerid);
format(string, sizeof(string), "carro%d.ini", carro);
if(dini_Exists(string)){
if(vid == dini_Int(string, "Id")){
if(dini_Int(string, "TDono") == 1){
if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
SendClientMessage(playerid, Azul, "Brasil Games RPG - Este carro й seu, seja bem vindo !");
} else {
format(string, sizeof(string), "Brasil Games RPG - Este carro nгo й seu, й de: %s", dini_Get(string, "Dono"));
SendClientMessage(playerid, Azul, string);
for(new i=0; i<MAX_PLAYERS; i++){
if(IsPlayerConnected(i)){
new nome[MAX_PLAYER_NAME];
GetPlayerName(i, nome, sizeof(nome));
if(strcmp(dini_Get(string, "Dono"), nome, true) == 0 && GetPlayerVehicleID(playerid) == dini_Int(string, "Id")){
format(string, sizeof(string), "Brasil Games RPG - ALARME: %s(Id:%d) tentou roubar seu carro.", pname, playerid);
SendClientMessage(i, tcadm, string);
}
}
}
RemovePlayerFromVehicle(playerid);
}
} else {
//format(string, sizeof(string), "Brasil Games RPG - Este carro estб a venda ! Preзo: %d reais, use /comprarcarro", dini_Int(string, "Preco"));
//SendClientMessage(playerid, Amarelo, string);
//SendClientMessage(playerid, Vermelho, "Para sair do carro aperte F.");
format(string, sizeof(string), "Comprar carro: R$%d",dini_Int(string, "Preco"));
ShowPlayerDialog(playerid, comprarcarromenu, DIALOG_STYLE_LIST, "Menu Comprar carro", string, "Comprar", "Cancelar");
incar[playerid] = 1;
TogglePlayerControllable(playerid, 0);
}
}
}
}

Dialog comprarcarromenu do code acima :
pawn Код:
if(dialogid == comprarcarromenu) // Menu de comprarcarro
{
if(response)
{
if(listitem == 0) { // comprarcarro
new VehicleID;
VehicleID = GetPlayerVehicleID(playerid);
new pname[MAX_PLAYER_NAME];
GetPlayerName(playerid, pname, sizeof(pname));
for(new carro = 0; carro < MAX_CARROS; carro++)
{
format(string, sizeof(string), "carro%d.ini", carro);
/*if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
SendClientMessage(playerid, Vermelho, "Vocк jб tem um carro");
return 1;
}*/

if(IsPlayerInAnyVehicle(playerid) && GetPlayerVehicleSeat(playerid) == 0 && VehicleID == dini_Int(string, "Id")){
if(GetPlayerGrana(playerid) >= dini_Int(string, "Preco")){
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
dini_IntSet(string, "TDono", 1);
dini_Set(string, "Dono", aname);
SendClientMessage(playerid, Azul, "(INFO) Veiculo comprado com sucesso!");
SendClientMessage(playerid, Azul, "(INFO) Para ver os comandos do veiculo, use: /meucarro");
GivePlayerGrana(playerid, -dini_Int(string, "Preco"));
TogglePlayerControllable(playerid, 1);
return 1;
} else {
SendClientMessage(playerid, Vermelho, "(ERRO) Vocк nгo tem dinheiro suficiente!");
return 1;
}
}
}
}
}
}
public chamada no /ccar
Код:
public CriarVeiculo2(m,Float:x,Float:y,Float:z,Float:r,c,d)
{
new string[256];
format(string, sizeof(string), "carro%d.ini", proximocarro);
new carroid;
carroid = AddStaticVehicle(m, x, y, z, r, c, d);
dini_IntSet(string, "Id", carroid);
proximocarro++;
}
Reply
#2

Nossa que confusгo, GM de faculdade '-'
poderia me explicar onde vocк modificou?
Reply
#3

Substitui esta parte:
pawn Код:
if(listitem == 4) // Vender carro
            {
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            for(new carro = 0; carro < MAX_CARROS; carro++)
            {
            format(string, sizeof(string), "carro%d.ini", carro);
            if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
            dini_Set(string, "Dono", "Nenhum");
            dini_IntSet(string, "TDono", 0);
            GivePlayerGrana(playerid, dini_Int(string, "Preco"));
            }
POR:

pawn Код:
if(listitem == 4) // Vender carro
            {
            new pname[MAX_PLAYER_NAME];
            GetPlayerName(playerid, pname, MAX_PLAYER_NAME);
            format(string, sizeof(string), "carro%d.ini", vid);
            if(strcmp(dini_Get(string, "Dono"), pname, true) == 0){
            dini_Set(string, "Dono", "Nenhum");
            dini_IntSet(string, "TDono", 0);
            GivePlayerGrana(playerid, dini_Int(string, "Preco"));
            }
Assim sу o carro q a pessoa estiver dentro vai ser vendida.
Reply
#4

nem funcionou
o pawno parou de responder --'

**obs: tentei explicar da melhor forma possivel
o player ta vendendo um carro e ao enves de vender so o que ele ta
vende todos deles
Reply
#5

Deleta a } q fica em baixo da
pawn Код:
GivePlayerGrana(playerid, dini_Int(string, "Preco"));
Reply
#6

compilou mas nem vender vendeu
Reply
#7

Se antes vendia, entao agora c o carro q vc ta dentro for seu vai vender, eu n mudei os parametros pra venda...sу os parametros de qual carro vender...
Reply
#8

Esse sistema ai tem como modificar para apenas um carro a compra?
Reply
#9

Tem como The?ou alguem :S
Reply
#10

eu ate ia resouver isso mas acabei de descobrir que roubaram meu gm
Nice Rsas!!
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)