04/11/2024 16:49
(04/11/2024 15:15)Mackor Escreveu:(04/11/2024 15:01)BitSain Escreveu: Quando um jogador entrar em um veículo, verifique apenas se o motor está ligado ou desligado. Em seguida, ajuste o estado do motor para o estado atual, conforme necessário.
Para simplificar o controle do estado do motor, só precisa salvar o valor em uma variável global booleana (por exemplo, `new bool:motorLigado[MAX_VEHICLES];`), já que você trabalha apenas com os estados "on" e "off".
Faça isso na callback OnPlayerEnterVehicle ou na callback OnPlayerStateChange.
Tanto faz verificar se ele é o motorista, já que você está tratando com o estado do motor do veículo pelo lado do servidor.
Você teria um exemplo de como usar essa global? Fiz o que disse abaixo, mais nenhum resultado.
Citar: new newcar = GetPlayerVehicleID(playerid);
if(!IsABike(newcar))
{
new engine, lights, alarm, doors, hood, trunk, ob;
GetVehicleParamsEx(vehicleid, engine, lights, alarm, doors, hood, trunk, ob);
if(engine == VEHICLE_PARAMS_ON)
{
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_ON, lights, alarm, doors, hood, trunk, ob);
}
else if(engine == VEHICLE_PARAMS_OFF)
{
SetVehicleParamsEx(vehicleid, VEHICLE_PARAMS_OFF, lights, alarm, doors, hood, trunk, ob);
}
Código:
public OnPlayerStateChange(playerid, newstate, oldstate)
{
new idv = GetPlayerVehicleID(playerid);
if(GetVehicleModel(idv) == 509 || GetVehicleModel(idv) == 510 || GetVehicleModel(idv) == 481 || GetVehicleModel(idv) == 501)
{
new motor, farol, alarme, portas, capo, portamalas, objetivo;
GetVehicleParamsEx(idv, motor, farol, alarme, portas, capo, portamalas, objetivo);
SetVehicleParamsEx(idv, VEHICLE_PARAMS_ON, 1, alarme, portas, capo, portamalas, objetivo);
}
return 1;
}