Carros somem mesmo estando dentro do carro. - fear - 23/07/2021
Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
RE: Carros somem mesmo estando dentro do carro. - Lightz/Conta nova - 23/07/2021
(23/07/2021 18:22)fear Escreveu: Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
Opa kk, o carro demora quanto tempo para sumir? Eu tenho um comando idêntico a esse mais não acontece isso.
RE: Carros somem mesmo estando dentro do carro. - fear - 23/07/2021
(23/07/2021 19:20)Lightz/Conta nova Escreveu: (23/07/2021 18:22)fear Escreveu: Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
Opa kk, o carro demora quanto tempo para sumir? Eu tenho um comando idêntico a esse mais não acontece isso.
quando começa a lotar o servidor e tem varios spawn de carros começa a sumir pra varios players.. e não tem função de deletar veiculos.
unica que tem e esse mas e quando o player disconecta.
Código PHP: if(sCar[playerid]) DestroyVehicle(sCar[playerid]); if(eventoCar[playerid]) DestroyVehicle(eventoCar[playerid]);
RE: Carros somem mesmo estando dentro do carro. - Lightz/Conta nova - 23/07/2021
(23/07/2021 19:23)fear Escreveu: (23/07/2021 19:20)Lightz/Conta nova Escreveu: (23/07/2021 18:22)fear Escreveu: Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
Opa kk, o carro demora quanto tempo para sumir? Eu tenho um comando idêntico a esse mais não acontece isso.
quando começa a lotar o servidor e tem varios spawn de carros começa a sumir pra varios players.. e não tem função de deletar veiculos.
unica que tem e esse mas e quando o player disconecta.
Código PHP: if(sCar[playerid]) DestroyVehicle(sCar[playerid]); if(eventoCar[playerid]) DestroyVehicle(eventoCar[playerid]);
Descobri, o problema é o respawn_delay apague todos eles e veja se o problema persiste.
Pelas informações no SA-MP Wiki (CreateVehicle) respawn_delay é o atraso até que o carro seja restaurado sem motorista em segundos.
Se quiser também pode deixar no local de respawn delay deixe: -1.
PegarCarro[playerid] = CreateVehicle(VeiculoID, X,Y,Z+1, Angle, Cor, Cor2, 0);
RE: Carros somem mesmo estando dentro do carro. - fear - 23/07/2021
(23/07/2021 19:31)Lightz/Conta nova Escreveu: (23/07/2021 19:23)fear Escreveu: (23/07/2021 19:20)Lightz/Conta nova Escreveu: (23/07/2021 18:22)fear Escreveu: Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
Opa kk, o carro demora quanto tempo para sumir? Eu tenho um comando idêntico a esse mais não acontece isso.
quando começa a lotar o servidor e tem varios spawn de carros começa a sumir pra varios players.. e não tem função de deletar veiculos.
unica que tem e esse mas e quando o player disconecta.
Código PHP: if(sCar[playerid]) DestroyVehicle(sCar[playerid]); if(eventoCar[playerid]) DestroyVehicle(eventoCar[playerid]);
Descobri, o problema é o respawn_delay apague todos eles e veja se o problema persiste.
Pelas informações no SA-MP Wiki (CreateVehicle) respawn_delay é o atraso até que o carro seja restaurado sem motorista em segundos.
Se quiser também pode deixar no local de respawn delay deixe: -1.
PegarCarro[playerid] = CreateVehicle(VeiculoID, X,Y,Z+1, Angle, Cor, Cor2, 0);
da um monte de erro tanto removendo quanto colocando -1 mas eu uso respawn_delay no outro gamemode que tenho que e acontece isso não.
RE: Carros somem mesmo estando dentro do carro. - Lightz/Conta nova - 23/07/2021
(23/07/2021 19:51)fear Escreveu: (23/07/2021 19:31)Lightz/Conta nova Escreveu: (23/07/2021 19:23)fear Escreveu: (23/07/2021 19:20)Lightz/Conta nova Escreveu: (23/07/2021 18:22)fear Escreveu: Boa noite. to sofrendo um bug que quando os players estão dentro do carro ele some do nada..
função de criar carros:
Código PHP: 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]) 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); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(sCar[playerid]) 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; }
comando /car
Código PHP: 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; }
Opa kk, o carro demora quanto tempo para sumir? Eu tenho um comando idêntico a esse mais não acontece isso.
quando começa a lotar o servidor e tem varios spawn de carros começa a sumir pra varios players.. e não tem função de deletar veiculos.
unica que tem e esse mas e quando o player disconecta.
Código PHP: if(sCar[playerid]) DestroyVehicle(sCar[playerid]); if(eventoCar[playerid]) DestroyVehicle(eventoCar[playerid]);
Descobri, o problema é o respawn_delay apague todos eles e veja se o problema persiste.
Pelas informações no SA-MP Wiki (CreateVehicle) respawn_delay é o atraso até que o carro seja restaurado sem motorista em segundos.
Se quiser também pode deixar no local de respawn delay deixe: -1.
PegarCarro[playerid] = CreateVehicle(VeiculoID, X,Y,Z+1, Angle, Cor, Cor2, 0);
da um monte de erro tanto removendo quanto colocando -1 mas eu uso respawn_delay no outro gamemode que tenho que e acontece isso não. Muito estranho esse problema.
Irei mandar meu código para pegar carro e você testa em uma GameMode nova e na sua original.
Código PHP: new PegarCarro[MAX_PLAYERS]; new PlayerInfo[MAX_PLAYERS]; new Float: X, Float: Y, Float: Z; new VehicleNames[212][] = { "Landstalker","Bravura","Buffalo","Linerunner","Pereniel","Sentinel","Dumper","Firetruck","Trashmaster","Stretch","Manana","Infernus", "Voodoo","Pony","Mule","Cheetah","Ambulance","Leviathan","Moonbeam","Esperanto","Taxi","Washington","Bobcat","Mr Whoopee","BF Injection", "Hunter","Premier","Enforcer","Securicar","Banshee","Predator","Bus","Rhino","Barracks","Hotknife","Trailer","Previon","Coach","Cabbie", "Stallion","Rumpo","RC Bandit","Romero","Packer","Monster","Admiral","Squalo","Seasparrow","Pizzaboy","Tram","Trailer","Turismo","Speeder", "Reefer","Tropic","Flatbed","Yankee","Caddy","Solair","Berkley's RC Van","Skimmer","PCJ-600","Faggio","Freeway","RC Baron","RC Raider", "Glendale","Oceanic","Sanchez","Sparrow","Patriot","Quad","Coastguard","Dinghy","Hermes","Sabre","Rustler","ZR3 50","Walton","Regina", "Comet","BMX","Burrito","Camper","Marquis","Baggage","Dozer","Maverick","News Chopper","Rancher","FBI Rancher","Virgo","Greenwood", "Jetmax","Hotring","Sandking","Blista Compact","Police Maverick","Boxville","Benson","Mesa","RC Goblin","Hotring Racer A","Hotring Racer B", "Bloodring Banger","Rancher","Super GT","Elegant","Journey","Bike","Mountain Bike","Beagle","Cropdust","Stunt","Tanker","RoadTrain", "Nebula","Majestic","Buccaneer","Shamal","Hydra","FCR-900","NRG-500","HPV1000","Cement Truck","Tow Truck","Fortune","Cadrona","FBI Truck", "Willard","Forklift","Tractor","Combine","Feltzer","Remington","Slamvan","Blade","Freight","Streak","Vortex","Vincent","Bullet","Clover", "Sadler","Firetruck","Hustler","Intruder","Primo","Cargobob","Tampa","Sunrise","Merit","Utility","Nevada","Yosemite","Windsor","Monster A", "Monster B","Uranus","Jester","Sultan","Stratum","Elegy","Raindance","RC Tiger","Flash","Tahoma","Savanna","Bandito","Freight","Trailer", "Kart","Mower","Duneride","Sweeper","Broadway","Tornado","AT-400","DFT-30","Huntley","Stafford","BF-400","Newsvan","Tug","Trailer A","Emperor", "Wayfarer","Euros","Hotdog","Club","Trailer B","Trailer C","Andromada","Dodo","RC Cam","Launch","Police Car (LSPD)","Police Car (SFPD)", "Police Car (LVPD)","Police Ranger","Picador","S.W.A.T. Van","Alpha","Phoenix","Glendale","Sadler","Luggage Trailer A","Luggage Trailer B", "Stair Trailer","Boxville","Farm Plow","Utility Trailer" };
CMD:car(playerid, params[]) { new GetVehicle[15], Cor, Cor2, string[400]; new Float:Angle,int1; GetPlayerPos(playerid, X,Y,Z); GetPlayerFacingAngle(playerid,Angle); int1 = GetPlayerInterior(playerid); if(sscanf(params, "s[15]ii", GetVehicle, Cor, Cor2)) return SendClientMessage(playerid, Vermelho, "{00FF00}[TheLastZone]: {FFFFFF}Use /Car [Nome do Veículo] [Cor1] [Cor2]."); new bool:existe, VeiculoID; for(new r = 0;r < 212; r++) { if(!strcmp(GetVehicle, VehicleNames[r],true)) { existe = true; } if(!strcmp(GetVehicle, VehicleNames[r],true)) VeiculoID = (r+400); } if(!existe) return SendClientMessage(playerid, Vermelho, "{FF0000}[ERRO]: {FFFFFF}Esse veículo não existe."); if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER) { DestroyVehicle(GetPlayerVehicleID(playerid)); PegarCarro[playerid] = CreateVehicle(VeiculoID, X,Y,Z+1, Angle, Cor, Cor2, 0); LinkVehicleToInterior(PegarCarro[playerid],int1); SetVehicleVirtualWorld(PegarCarro[playerid] ,GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid,PegarCarro[playerid], 0); format(string, sizeof(string), "{00FF00}[TheLastZone]: {FFFFFF}Veículo criado com sucesso! (Nome: {FF0000}%s{FFFFFF} Cores: {FF0000}%d / %d{FFFFFF}).", VehicleNames[VeiculoID-400],Cor,Cor2); SendClientMessage(playerid, Vermelho, string); } if(GetPlayerState(playerid) == PLAYER_STATE_ONFOOT) { if(VeiculoOcupado(PegarCarro[playerid])) {} else DestroyVehicle(GetPlayerVehicleID(playerid)); PegarCarro[playerid] = CreateVehicle(VeiculoID, X,Y,Z+1, Angle, Cor, Cor2, 0); LinkVehicleToInterior(PegarCarro[playerid],int1); PlayerInfo[playerid] = PegarCarro[playerid]; SetVehicleVirtualWorld(PegarCarro[playerid],GetPlayerVirtualWorld(playerid)); PutPlayerInVehicle(playerid,PegarCarro[playerid], 0); format(string, sizeof(string), "{00FF00}[TheLastZone]: {FFFFFF}Veículo criado com sucesso! (Nome: {FF0000}%s{FFFFFF} Cores: {FF0000}%d / %d{FFFFFF}).", VehicleNames[VeiculoID-400],Cor,Cor2); SendClientMessage(playerid, Vermelho, string); } return 1; }
stock VeiculoOcupado(vehicleid) { for(new r = 0; r < MAX_PLAYERS; r++) { if(GetPlayerState(r) == PLAYER_STATE_DRIVER || GetPlayerState(r) == PLAYER_STATE_PASSENGER) { if(GetPlayerVehicleID(r) == vehicleid) { return 1; } } } return 0; }
|