veiculos bugando spawn - DPB G4MERS - 04/06/2023
Olá, estou com um problema grande! já tentei resolver inumeras vezes é que que quando um veiculo é criado na concessionaria o de outro player é destruido. o que pode ser que esteja acontecendo? estou há muito tempo tentando.
segue o codigo de quando o veiculo é criado:
Código PHP: public OnPlayerConnect(playerid)
{ CriarCarro(playerid); return 1; } forward CriarCarro(playerid); public CriarCarro(playerid) { if(IsPlayerNPC(playerid)) return 0; if(Conce[playerid][IDVeh] != 0) { new caridlocal; DestroyVehicle(GetPVarInt(playerid, "Veh")); new idcarro, Float:Pos[4],Cor[2]; idcarro = DOF2_GetInt(GetPasta(playerid), "IDVeh"); Pos[0] = DOF2_GetFloat(GetPasta(playerid), "CarX"); Pos[1] = DOF2_GetFloat(GetPasta(playerid), "CarY"); Pos[2] = DOF2_GetFloat(GetPasta(playerid), "CarZ"); Pos[3] = DOF2_GetFloat(GetPasta(playerid), "CarAngle"); Cor[0] = DOF2_GetInt(GetPasta(playerid), "Cor1"); Cor[1] = DOF2_GetInt(GetPasta(playerid), "Cor2"); caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1); SetPVarInt(playerid, "Veh", caridlocal); Gasosa[GetPVarInt(playerid, "Veh")] = Conce[playerid][Gasolina]; //Gasosa[Veh[playerid]] = 100; VehDono[caridlocal] = playerid; AddVehicleComponent(GetPVarInt(playerid, "Veh"), Conce[playerid][Nitro]); AddVehicleComponent(GetPVarInt(playerid, "Veh"), Conce[playerid][AeroFolio]); SetVehicleVirtualWorld(GetPVarInt(playerid, "Veh"), 0); japode[playerid] = true; if(Conce[playerid][PaintJob] == 1) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh"), 0); } else if(Conce[playerid][PaintJob] == 2) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh"), 1); } else if(Conce[playerid][PaintJob] == 3) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh"), 2); } } if(Conce[playerid][IDVeh2] != 0) { new caridlocal; DestroyVehicle(GetPVarInt(playerid, "Veh2")); new idcarro, Float:Pos[4],Cor[2]; idcarro = DOF2_GetInt(GetPasta(playerid), "IDVeh2"); Pos[0] = DOF2_GetFloat(GetPasta(playerid), "CarX2"); Pos[1] = DOF2_GetFloat(GetPasta(playerid), "CarY2"); Pos[2] = DOF2_GetFloat(GetPasta(playerid), "CarZ2"); Pos[3] = DOF2_GetFloat(GetPasta(playerid), "CarAngle2"); Cor[0] = DOF2_GetInt(GetPasta(playerid), "Cor3"); Cor[1] = DOF2_GetInt(GetPasta(playerid), "Cor4"); caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1); SetPVarInt(playerid, "Veh2", caridlocal); Gasosa[GetPVarInt(playerid, "Veh2")] = Conce[playerid][Gasolina2]; VehDono[GetPVarInt(playerid, "Veh2")] = playerid; AddVehicleComponent(GetPVarInt(playerid, "Veh2"), Conce[playerid][Nitro2]); AddVehicleComponent(GetPVarInt(playerid, "Veh2"), Conce[playerid][AeroFolio2]); SetVehicleVirtualWorld(GetPVarInt(playerid, "Veh2"), 0); japode[playerid] = true; if(Conce[playerid][PaintJob2] == 1) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh2"), 0); } else if(Conce[playerid][PaintJob2] == 2) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh2"), 1); } else if(Conce[playerid][PaintJob2] == 3) { ChangeVehiclePaintjob(GetPVarInt(playerid, "Veh2"), 2); } } return 1; }
se alguem puder me ajudar ficarei grato, porque nunca tinha feito uma concessionaria e enfrentei isso.
RE: veiculos bugando spawn - White_Blue - 04/06/2023
Citar:Código PHP: DestroyVehicle(GetPVarInt(playerid, "Veh"));
O trecho de código acima está destruindo o veículo armazenado na variável "Veh" pode ser o problema. Se possível explicar como você está usando essa variável e para que ela serve para podermos te ajudar de forma mais eficaz.
RE: veiculos bugando spawn - DPB G4MERS - 04/06/2023
estou usando assim:
Código: new caridlocal;
caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1);
SetPVarInt(playerid, "Veh", caridlocal);
RE: veiculos bugando spawn - White_Blue - 04/06/2023
(04/06/2023 08:25)DPB G4MERS Escreveu: estou usando assim:
Código: new caridlocal;
caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1);
SetPVarInt(playerid, "Veh", caridlocal);
Por que está deletando o veículo da variável?
RE: veiculos bugando spawn - DPB G4MERS - 04/06/2023
(04/06/2023 10:25)White_Blue Escreveu: (04/06/2023 08:25)DPB G4MERS Escreveu: estou usando assim:
Código: new caridlocal;
caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1);
SetPVarInt(playerid, "Veh", caridlocal);
Por que está deletando o veículo da variável?
eu no começo da função deleto o veiculo e crio novamente. então devo mudar isso?
RE: veiculos bugando spawn - Carlos Victor - 04/06/2023
Está sendo destruído provavelmente porque você não está zerando os dados, acaba que quando um jogador loga, as variáveis do jogador antes no caso o playerid que estava usando o mesmo ID antes continua se você não resetar para um valor default (padrão). Eu acredito que o problema esteja nisso, você destrói o carro só quando é criado, deveria destruir quando o jogador desconecta do servidor e apagar a variável.
Código PHP: public OnPlayerDisconnect(playerid, reason) { static vehicleid;
vehicleid = GetPVarInt(playerid, "Veh");
if(IsValidVehicle(vehicleid)) { DestroyVehicle(vehicleid); DeletePVar(playerid, "Veh"); } return 1; }
RE: veiculos bugando spawn - White_Blue - 04/06/2023
(04/06/2023 11:37)DPB G4MERS Escreveu: (04/06/2023 10:25)White_Blue Escreveu: (04/06/2023 08:25)DPB G4MERS Escreveu: estou usando assim:
Código: new caridlocal;
caridlocal = AddStaticVehicleEx(idcarro, Pos[0], Pos[1], Pos[2], Pos[3], Cor[0], Cor[1], -1);
SetPVarInt(playerid, "Veh", caridlocal);
Por que está deletando o veículo da variável?
eu no começo da função deleto o veiculo e crio novamente. então devo mudar isso?
Se você está criando o veículo, tecnicamente ele não deveria existir antes disso, então não faz sentido deletar o veículo no meu ponto de vista, creio que isto possa estar relacionado com seu problema, teste removendo esse trecho do código, se o problema parar, isso significa que é algo relacionado à aquele trecho do código. Ao menos que eu tenha entendido as suas intenções usando a função para deletar o veículo erroneamente, eu creio que possa ser isso o problema.
Outra coisa que não entendi o por que você está fazendo, é atribuir os valores da variável local "caridlocal" em uma na pvar "Veh", lembre-se que pvar's são mais lentas que as variáveis normais, sendo que seria muito mais fácil apenas declarar a variável local "caridlocal" como uma variável global.
RE: veiculos bugando spawn - DPB G4MERS - 04/06/2023
obrigado, espero que resolva o que vocês me mandaram, obrigado por cederem seus tempos, vou tentar tirar esse PVar e colocar variável global novamente. desculpa qualquer incômodo eu não gosto de pedir ajuda mas quando preciso eu peço.
|