[Ajuda]/Veiculoestacionar
#1

Olб a todos, eu tenho um Problema ao estacionar o veiculo, dou o comando ele estaciona mas depois dou denovo e ele desaparece.

Код:
        if(strcmp(cmdtext,"/veiculoestacionar",true)==0)
            {
            if(IsPlayerInAnyVehicle(playerid))
            {
                //new car = TaNoCarro[playerid];
                new Float:X,Float:Y,Float:Z;
                new Float:A;
                new VID = GetPlayerVehicleID(playerid);
                CarregarDono(playerid);
                new PlayerNick[MAX_PLAYER_NAME];
                GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
                new arquivo[256];
                format(arquivo, sizeof(arquivo), "/Concessionaria/Donos/%s.ini",PlayerNick);
                if(dini_Exists(arquivo))
                {
                    new carro = Dono[playerid][dChave];
                    if(Carro[carro][cCID] == VID)
                    {
      					if(strcmp(PlayerNick,Carro[carro][cDono],true)==0)
    					{
                    			motor[carro] = 0;
	                            GetVehicleZAngle(VID,A);
	                            GetVehiclePos(VID,X,Y,Z);
	                            Carro[carro][cSpawnX] = X;
	                            Carro[carro][cSpawnY] = Y;
	                            Carro[carro][cSpawnZ] = Z;
	                            Carro[carro][cAngulo] = A;
	                            strmid(Carro[carro][cDono], PlayerNick, 0, strlen(PlayerNick), MAX_PLAYER_NAME);
	                            Carro[carro][cCarroON] = 0;
	                            DestroyVehicle(cCarro[carro]);
	                            cCarro[carro] = AddStaticVehicleEx(Carro[carro][cModelo],Carro[carro][cSpawnX],Carro[carro][cSpawnY],Carro[carro][cSpawnZ],Carro[carro][cAngulo],Carro[carro][cCorUm],Carro[carro][cCorDois],-1);
	                            PutPlayerInVehicle(playerid, cCarro[carro], 0);
	                            Carro[carro][cCID] = VID;
	                            SalvarCarro(carro);
	                            CarregarCarros();
	                            SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
	                            return 1;
						}
                    }
                    else
                    {
                        SendClientMessage(playerid, Branco, "Intense RP: Este carro nгo й seu!");
                        return 1;
                    }
                }
                new car = TaNoCarro[playerid];
                if(car > 0)
                {
                    GetVehicleZAngle(VID,A);
                    GetVehiclePos(VID,X,Y,Z);
                    Carro[car][cSpawnX] = X;
                    Carro[car][cSpawnY] = Y;
                    Carro[car][cSpawnZ] = Z;
                    Carro[car][cAngulo] = A;
                    Carro[car][cCarroON] = 0;
                    Dono[playerid][dChave] = car;
                    DestroyVehicle(cCarro[car]);
                    cCarro[car] = AddStaticVehicleEx(ModeloCarro[playerid],Carro[car][cSpawnX],Carro[car][cSpawnY],Carro[car][cSpawnZ],Carro[car][cAngulo],Carro[car][cCorUm],Carro[car][cCorDois],-1);
                    PutPlayerInVehicle(playerid, cCarro[car], 0);
                    Carro[car][cCID] = VID;
                    ComprarCarro(playerid);
                    SalvarCarro(car);
                    SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
                    TaNoCarro[playerid] = 0;
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, Branco, "Intense RP: Vocк nгo estб em um carro da concessionбria.");
                    return 1;
                }
            }
            return 1;
        }
Por Favor se poder ajudar

Obrigado Desde Ja.
Reply
#2

pode ser o
pawn Код:
DestroyVehicle(cCarro[car]);
tente
pawn Код:
if(strcmp(cmdtext,"/veiculoestacionar",true)==0)
            {
            if(IsPlayerInAnyVehicle(playerid))
            {
                //new car = TaNoCarro[playerid];
                new Float:X,Float:Y,Float:Z;
                new Float:A;
                new VID = GetPlayerVehicleID(playerid);
                CarregarDono(playerid);
                new PlayerNick[MAX_PLAYER_NAME];
                GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
                new arquivo[256];
                format(arquivo, sizeof(arquivo), "/Concessionaria/Donos/%s.ini",PlayerNick);
                if(dini_Exists(arquivo))
                {
                    new carro = Dono[playerid][dChave];
                    if(Carro[carro][cCID] == VID)
                    {
                        if(strcmp(PlayerNick,Carro[carro][cDono],true)==0)
                        {
                                motor[carro] = 0;
                                GetVehicleZAngle(VID,A);
                                GetVehiclePos(VID,X,Y,Z);
                                Carro[carro][cSpawnX] = X;
                                Carro[carro][cSpawnY] = Y;
                                Carro[carro][cSpawnZ] = Z;
                                Carro[carro][cAngulo] = A;
                                strmid(Carro[carro][cDono], PlayerNick, 0, strlen(PlayerNick), MAX_PLAYER_NAME);
                                Carro[carro][cCarroON] = 0;
                                cCarro[carro] = AddStaticVehicleEx(Carro[carro][cModelo],Carro[carro][cSpawnX],Carro[carro][cSpawnY],Carro[carro][cSpawnZ],Carro[carro][cAngulo],Carro[carro][cCorUm],Carro[carro][cCorDois],-1);
                                PutPlayerInVehicle(playerid, cCarro[carro], 0);
                                Carro[carro][cCID] = VID;
                                SalvarCarro(carro);
                                CarregarCarros();
                                SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
                                return 1;
                        }
                    }
                    else
                    {
                        SendClientMessage(playerid, Branco, "Intense RP: Este carro nгo й seu!");
                        return 1;
                    }
                }
                new car = TaNoCarro[playerid];
                if(car > 0)
                {
                    GetVehicleZAngle(VID,A);
                    GetVehiclePos(VID,X,Y,Z);
                    Carro[car][cSpawnX] = X;
                    Carro[car][cSpawnY] = Y;
                    Carro[car][cSpawnZ] = Z;
                    Carro[car][cAngulo] = A;
                    Carro[car][cCarroON] = 0;
                    Dono[playerid][dChave] = car;
                    cCarro[car] = AddStaticVehicleEx(ModeloCarro[playerid],Carro[car][cSpawnX],Carro[car][cSpawnY],Carro[car][cSpawnZ],Carro[car][cAngulo],Carro[car][cCorUm],Carro[car][cCorDois],-1);
                    PutPlayerInVehicle(playerid, cCarro[car], 0);
                    Carro[car][cCID] = VID;
                    ComprarCarro(playerid);
                    SalvarCarro(car);
                    SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
                    TaNoCarro[playerid] = 0;
                    return 1;
                }
                else
                {
                    SendClientMessage(playerid, Branco, "Intense RP: Vocк nгo estб em um carro da concessionбria.");
                    return 1;
                }
            }
            return 1;
        }
Reply
#3

Isto deve resolver o seu problema .



Basta passar a usar a funзгo CreateVehicle ao invйs da AddStaticVehicleEx para criar os veнculos no local de estacionamento. Dessa maneira, os veнculos serгo criados durante o jogo .



Arrumei pra vocк, aqui estб :


pawn Код:
if(strcmp(cmdtext,"/veiculoestacionar",true)==0)
    {
        if(IsPlayerInAnyVehicle(playerid))
        {
            //new car = TaNoCarro[playerid];
            new Float:X,Float:Y,Float:Z;
            new Float:A;
            new VID = GetPlayerVehicleID(playerid);
            CarregarDono(playerid);
            new PlayerNick[MAX_PLAYER_NAME];
            GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
            new arquivo[256];
            format(arquivo, sizeof(arquivo), "/Concessionaria/Donos/%s.ini",PlayerNick);
            if(dini_Exists(arquivo))
            {
                new carro = Dono[playerid][dChave];
                if(Carro[carro][cCID] == VID)
                {
                    if(strcmp(PlayerNick,Carro[carro][cDono],true)==0)
                    {
                        motor[carro] = 0;
                        GetVehicleZAngle(VID,A);
                        GetVehiclePos(VID,X,Y,Z);
                        Carro[carro][cSpawnX] = X;
                        Carro[carro][cSpawnY] = Y;
                        Carro[carro][cSpawnZ] = Z;
                        Carro[carro][cAngulo] = A;
                        strmid(Carro[carro][cDono], PlayerNick, 0, strlen(PlayerNick), MAX_PLAYER_NAME);
                        Carro[carro][cCarroON] = 0;
                        DestroyVehicle(cCarro[carro]);
                        cCarro[carro] = CreateVehicle(Carro[carro][cModelo],Carro[carro][cSpawnX],Carro[carro][cSpawnY],Carro[carro][cSpawnZ],Carro[carro][cAngulo],Carro[carro][cCorUm],Carro[carro][cCorDois],-1);
                        PutPlayerInVehicle(playerid, cCarro[carro], 0);
                        Carro[carro][cCID] = VID;
                        SalvarCarro(carro);
                        CarregarCarros();
                        SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
                        return 1;
                    }
                }
                else
                {
                    SendClientMessage(playerid, Branco, "Intense RP: Este carro nгo й seu!");
                    return 1;
                }
            }
            new car = TaNoCarro[playerid];
            if(car > 0)
            {
                GetVehicleZAngle(VID,A);
                GetVehiclePos(VID,X,Y,Z);
                Carro[car][cSpawnX] = X;
                Carro[car][cSpawnY] = Y;
                Carro[car][cSpawnZ] = Z;
                Carro[car][cAngulo] = A;
                Carro[car][cCarroON] = 0;
                Dono[playerid][dChave] = car;
                DestroyVehicle(cCarro[car]);
                cCarro[car] = CreateVehicle(ModeloCarro[playerid],Carro[car][cSpawnX],Carro[car][cSpawnY],Carro[car][cSpawnZ],Carro[car][cAngulo],Carro[car][cCorUm],Carro[car][cCorDois],-1);
                PutPlayerInVehicle(playerid, cCarro[car], 0);
                Carro[car][cCID] = VID;
                ComprarCarro(playerid);
                SalvarCarro(car);
                SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
                TaNoCarro[playerid] = 0;
                return 1;
            }
            else
            {
                SendClientMessage(playerid, Branco, "Intense RP: Vocк nгo estб em um carro da concessionбria.");
                return 1;
            }
        }
        return 1;
    }

Espero ter ajudado .
Reply
#4

Obrigado pessoal mas nenhum deu
Reply
#5

Alguem pode ajudar Por Favor? Obrigado.
Reply
#6

Bem, reformei seu cуdigo deixando sу o que й primordial .


Caso o mesmo nгo resolva o seu problema, o que estб causando este, ou й a funзгo SalvarCarro ou й um cуdigo de outro lugar do seu GameMode .


Coloque:


pawn Код:
//No Topo do GM:

new bool:EsperarEstacionar[MAX_VEHICLES];



//Na public OnPlayerCommandText:


if(!strcmp(cmdtext, "/veiculoestacionar", true))
    {
        if(!IsPlayerInAnyVehicle(playerid)) return SendClientMessage(playerid, Branco, "Intense RP: Vocк nгo estб em um carro.");
        new VID = GetPlayerVehicleID(playerid);
        if(EsperarEstacionar[VID]) return SendClientMessage(playerid, Branco, "Intense RP: Espere um pouco para poder estar novamente.");
        new PlayerNick[MAX_PLAYER_NAME];
        new carro = Dono[playerid][dChave];
        new Float:X,Float:Y,Float:Z;
        new Float:A;
        GetPlayerName(playerid,PlayerNick,sizeof(PlayerNick));
        if(Carro[carro][cCID] == VID && !strcmp(PlayerNick,Carro[carro][cDono],true))
        {
            motor[carro] = 0;
            GetVehicleZAngle(VID,A);
            GetVehiclePos(VID,X,Y,Z);
            Carro[carro][cSpawnX] = X;
            Carro[carro][cSpawnY] = Y;
            Carro[carro][cSpawnZ] = Z;
            Carro[carro][cAngulo] = A;
            strmid(Carro[carro][cDono], PlayerNick, 0, strlen(PlayerNick), MAX_PLAYER_NAME);
            Carro[carro][cCarroON] = 0;
            DestroyVehicle(cCarro[carro]);
            cCarro[carro] = CreateVehicle(Carro[carro][cModelo],Carro[carro][cSpawnX],Carro[carro][cSpawnY],Carro[carro][cSpawnZ],Carro[carro][cAngulo],Carro[carro][cCorUm],Carro[carro][cCorDois],-1);
            PutPlayerInVehicle(playerid, cCarro[carro], 0);
            Carro[carro][cCID] = VID;
            SendClientMessage(playerid, Azul, "Intense RP: Carro estacionado com sucesso!");
            EsperarEstacionar[VID] = true;
            SetTimerEx("SalvarCarroEstacionado", 5000, false, "dd", carro, VID);
        }
        else
        {
            SendClientMessage(playerid, Branco, "Intense RP: Este carro nгo й seu!");
        }
        return true;
    }



//No Final do GM:

forward SalvarCarroEstacionado(carro, vid);
public SalvarCarroEstacionado(carro, vid)   return EsperarEstacionar[vid] = false, SalvarCarro(carro);


Espero ter ajudado .
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)