Portal SAMP
[Ajuda] Os carros dos players estão sumindo - 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] Os carros dos players estão sumindo (/showthread.php?tid=1575)

Páginas: 1 2


RE: Os carros dos players estão sumindo - Lightz/Conta nova - 30/08/2021

(29/08/2021 19:45)fear Escreveu:
(29/08/2021 18:34)SrBlue Escreveu: experimenta, só botar nas devidas callbacks...




Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params, "s[25]I(1)I(1)",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(!strcmp(Veiculo, sCars[r],true))
            {
                existe = true;
            }
            if(!strcmp(Veiculo, sCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID = strval(Veiculo);
        existe = true;
        if(400 < (VeiculoID) > 611) existe = false;
    }
    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "-ERRO- veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}




Código:
stock CriarVeiculo(playerid, modelid, Float:posX, Float:posY, Float:posZ, Float:angle, Colour1, Colour2, respawn_delay)
{
    new world = GetPlayerVirtualWorld(playerid);
    new interior = GetPlayerInterior(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }
    return 1;
}




Código:
public OnPlayerDisconnect(playerid, reason){
    if(sCar[playerid]>=1){
        DestroyVehicle(sCar[playerid]);
        sCar[playerid]=0;
    }
}

a cada minuto ta verificado se tem carro e deletando, faz o seguinte
remove essa função de lá...

Código:
if(sCar[playerid]) DestroyVehicle(sCar[playerid]); 

não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    
CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(
CriouCarro[playerid] == 1)
    {
       
DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 
1;




RE: Os carros dos players estão sumindo - fear - 30/08/2021

(30/08/2021 10:21)Lightz/Conta nova Escreveu:
(29/08/2021 19:45)fear Escreveu:
(29/08/2021 18:34)SrBlue Escreveu: experimenta, só botar nas devidas callbacks...




Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params, "s[25]I(1)I(1)",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(!strcmp(Veiculo, sCars[r],true))
            {
                existe = true;
            }
            if(!strcmp(Veiculo, sCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID = strval(Veiculo);
        existe = true;
        if(400 < (VeiculoID) > 611) existe = false;
    }
    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "-ERRO- veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}




Código:
stock CriarVeiculo(playerid, modelid, Float:posX, Float:posY, Float:posZ, Float:angle, Colour1, Colour2, respawn_delay)
{
    new world = GetPlayerVirtualWorld(playerid);
    new interior = GetPlayerInterior(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }
    return 1;
}




Código:
public OnPlayerDisconnect(playerid, reason){
    if(sCar[playerid]>=1){
        DestroyVehicle(sCar[playerid]);
        sCar[playerid]=0;
    }
}

a cada minuto ta verificado se tem carro e deletando, faz o seguinte
remove essa função de lá...

Código:
if(sCar[playerid]) DestroyVehicle(sCar[playerid]); 

não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    
CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(
CriouCarro[playerid] == 1)
    {
       
DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 
1;


Funcionou mas não sei se não vai sumir carro de player do nada.. mesmo estando dentro.. sem ser o player q spawno.. ele ta deletando quando disconecta com o codigo.. porem da pra spawnar muitos carros acumulando no mapa.


RE: Os carros dos players estão sumindo - Lightz/Conta nova - 30/08/2021

(30/08/2021 18:35)fear Escreveu:
(30/08/2021 10:21)Lightz/Conta nova Escreveu:
(29/08/2021 19:45)fear Escreveu:
(29/08/2021 18:34)SrBlue Escreveu: experimenta, só botar nas devidas callbacks...




Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params, "s[25]I(1)I(1)",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(!strcmp(Veiculo, sCars[r],true))
            {
                existe = true;
            }
            if(!strcmp(Veiculo, sCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID = strval(Veiculo);
        existe = true;
        if(400 < (VeiculoID) > 611) existe = false;
    }
    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "-ERRO- veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}




Código:
stock CriarVeiculo(playerid, modelid, Float:posX, Float:posY, Float:posZ, Float:angle, Colour1, Colour2, respawn_delay)
{
    new world = GetPlayerVirtualWorld(playerid);
    new interior = GetPlayerInterior(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }
    return 1;
}




Código:
public OnPlayerDisconnect(playerid, reason){
    if(sCar[playerid]>=1){
        DestroyVehicle(sCar[playerid]);
        sCar[playerid]=0;
    }
}

a cada minuto ta verificado se tem carro e deletando, faz o seguinte
remove essa função de lá...

Código:
if(sCar[playerid]) DestroyVehicle(sCar[playerid]); 

não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(CriouCarro[playerid] == 1)
    {
       DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 1;


Funcionou mas não sei se não vai sumir carro de player do nada.. mesmo estando dentro.. sem ser o player q spawno.. ele ta deletando quando disconecta com o codigo.. porem da pra spawnar muitos carros acumulando no mapa.

Blz fera, lá no seu server eu tinha entrado pra ver e os carros do spawn não sumia fiquei uns 5 minutos andando, ai peguei um do /car e depois de uns 1 2 minutos sumiu, se quiser mando meu /car pra você testar e ve se funciona.


RE: Os carros dos players estão sumindo - fear - 30/08/2021

(30/08/2021 18:55)Lightz/Conta nova Escreveu:
(30/08/2021 18:35)fear Escreveu:
(30/08/2021 10:21)Lightz/Conta nova Escreveu:
(29/08/2021 19:45)fear Escreveu:
(29/08/2021 18:34)SrBlue Escreveu: experimenta, só botar nas devidas callbacks...




Código:
CMD:car(playerid, params[])
{
    if(pAusente[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playerid, Vermelho, "-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params, "s[25]I(1)I(1)",Veiculo, Cor[0], Cor[1])) return pMensagem(playerid, Laranja, "[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existe, VeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new r = 0;r < 212; r++)
        {
            if(!strcmp(Veiculo, sCars[r],true))
            {
                existe = true;
            }
            if(!strcmp(Veiculo, sCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID = strval(Veiculo);
        existe = true;
        if(400 < (VeiculoID) > 611) existe = false;
    }
    if(!existe)
    {
        new String[256];
        format(String, sizeof(String), "-ERRO- veiculo Não existe.", Veiculo);
        pMensagem(playerid, Vermelho, String);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1, "[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playerid, X, Y, Z);
    GetPlayerFacingAngle(playerid, Angle);
    CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1);
    return 1;
}




Código:
stock CriarVeiculo(playerid, modelid, Float:posX, Float:posY, Float:posZ, Float:angle, Colour1, Colour2, respawn_delay)
{
    new world = GetPlayerVirtualWorld(playerid);
    new interior = GetPlayerInterior(playerid);
    if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
    {
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }else if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT){
        if(sCar[playerid]>=1){
            DestroyVehicle(sCar[playerid]);
        }
        GetPlayerPos(playerid, posX, posY, posZ);
        GetPlayerFacingAngle(playerid, angle);
        sCar[playerid] = CreateVehicle(modelid, posX, posY, posZ, angle, Colour1, Colour2, respawn_delay);
        LinkVehicleToInterior(sCar[playerid], interior);
        SetVehicleVirtualWorld(sCar[playerid], world);
        SetVehicleZAngle(sCar[playerid], angle);
        PutPlayerInVehicle(playerid, sCar[playerid], 0);
        SetPlayerInterior(playerid, interior);
        pMensagem(playerid, AzulC, "[INFO] veiculo spawnado.");
    }
    return 1;
}




Código:
public OnPlayerDisconnect(playerid, reason){
    if(sCar[playerid]>=1){
        DestroyVehicle(sCar[playerid]);
        sCar[playerid]=0;
    }
}

a cada minuto ta verificado se tem carro e deletando, faz o seguinte
remove essa função de lá...

Código:
if(sCar[playerid]) DestroyVehicle(sCar[playerid]); 

não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(CriouCarro[playerid] == 1)
    {
       DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 1;


Funcionou mas não sei se não vai sumir carro de player do nada.. mesmo estando dentro.. sem ser o player q spawno.. ele ta deletando quando disconecta com o codigo.. porem da pra spawnar muitos carros acumulando no mapa.

Blz fera, lá no seu server eu tinha entrado pra ver e os carros do spawn não sumia fiquei uns 5 minutos andando, ai peguei um do /car e depois de uns 1 2 minutos sumiu, se quiser mando meu /car pra você testar e ve se funciona.
eu quero arrumar esse e não ter q adaptar outro...


RE: Os carros dos players estão sumindo - Lightz/Conta nova - 30/08/2021

(30/08/2021 18:59)fear Escreveu:
(30/08/2021 18:55)Lightz/Conta nova Escreveu:
(30/08/2021 18:35)fear Escreveu:
(30/08/2021 10:21)Lightz/Conta nova Escreveu:
(29/08/2021 19:45)fear Escreveu: não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(CriouCarro[playerid] == 1)
    {
       DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 1;


Funcionou mas não sei se não vai sumir carro de player do nada.. mesmo estando dentro.. sem ser o player q spawno.. ele ta deletando quando disconecta com o codigo.. porem da pra spawnar muitos carros acumulando no mapa.

Blz fera, lá no seu server eu tinha entrado pra ver e os carros do spawn não sumia fiquei uns 5 minutos andando, ai peguei um do /car e depois de uns 1 2 minutos sumiu, se quiser mando meu /car pra você testar e ve se funciona.
eu quero arrumar esse e não ter q adaptar outro...

Então cara, meu comando basicamente é igual o seu então não precisa adaptar,  tente mudar o  CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1); para CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], 0);

(30/08/2021 18:59)fear Escreveu:
(30/08/2021 18:55)Lightz/Conta nova Escreveu:
(30/08/2021 18:35)fear Escreveu:
(30/08/2021 10:21)Lightz/Conta nova Escreveu:
(29/08/2021 19:45)fear Escreveu: não resolveu os carros somem dos players do nada.. to dirigindo e meu carro some.

Puts estranho isso, vou tentar mostrar um exemplo do que eu entendi

Código PHP:
new CriouCarro[MAX_PLAYERS];

CMD:car(playeridparams[])
{
    if(pAusente[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está ausente.");
    if(pPreso[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está preso.");
    if(EmArenaDM[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você Não pode usar este comando em uma arena.");
    if(pEvento[playerid] == true) return pMensagem(playeridVermelho"-ERRO- Você está no evento.");
    new Veiculo[25], Cor[2];
    if(sscanf(params"s[25]I(1)I(1)",VeiculoCor[0], Cor[1])) return pMensagem(playeridLaranja"[INFO] Use: /Car [Nome] [Cor 1] [Cor 2]");
    new bool:existeVeiculoID;
    if(!IsNumeric(Veiculo))
    {
        for(new 0;212r++)
        {
            if(!strcmp(VeiculosCars[r],true))
            {
                existe true;
            }
            if(!strcmp(VeiculosCars[r],true)) VeiculoID = (r+400);
        }
    }
    if(IsNumeric(Veiculo))
    {
        VeiculoID strval(Veiculo);
        existe true;
        if(400 < (VeiculoID) > 611existe false;
    }
    if(!existe)
    {
        new String[256];
        format(Stringsizeof(String), "-ERRO- veiculo Não existe."Veiculo);
        pMensagem(playeridVermelhoString);
        return 1;
    }
      if(pPvPLiberado[playerid] == false && sCAdmin[playerid] < 5)
      {
        if(VeiculoID == 520 || VeiculoID == 432 || VeiculoID == 592 || VeiculoID == 425 ||
        VeiculoID == 464 || VeiculoID == 406 || VeiculoID == 476 || VeiculoID == 447) return pMensagem(playerid, -1"[INFO] Este veiculo Não é permitido neste Modo.");
    }
    GetPlayerPos(playeridXYZ);
    GetPlayerFacingAngle(playeridAngle);
    CriarVeiculo(playeridVeiculoIDXYZ+1AngleCor[0], Cor[1], -1);
    CriouCarro[playerid] = 1// Confirmar se ele criou carro
    return 1;


Código PHP:
public OnPlayerDisconnect(playeridreason)
{
    if(CriouCarro[playerid] == 1)
    {
       DestroyVehicle(GetPlayerVehicleID(playerid));
    }
    return 1;


Funcionou mas não sei se não vai sumir carro de player do nada.. mesmo estando dentro.. sem ser o player q spawno.. ele ta deletando quando disconecta com o codigo.. porem da pra spawnar muitos carros acumulando no mapa.

Blz fera, lá no seu server eu tinha entrado pra ver e os carros do spawn não sumia fiquei uns 5 minutos andando, ai peguei um do /car e depois de uns 1 2 minutos sumiu, se quiser mando meu /car pra você testar e ve se funciona.
eu quero arrumar esse e não ter q adaptar outro...

Então cara, meu comando basicamente é igual o seu então não precisa adaptar,  tente mudar o  CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], -1); para CriarVeiculo(playerid, VeiculoID, X, Y, Z+1, Angle, Cor[0], Cor[1], 0);