if(strcmp(cmd, "/trocarpneus", true) == 0) { if(IsPlayerConnected(playerid)) { //new tmpcar = GetPlayerVehicleID(playerid); tmp = strtok(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, COLOR_GRAD1, "Use: /trocarpneu [Nъmero da Placa]"); return 1; } new testcar = strval(tmp); //GetVehiclePos(testcar); new Float:cwx2,Float:cwy2,Float:cwz2; GetVehiclePos(testcar, cwx2, cwy2, cwz2); if(ProxDetectorS(8.0, playerid, testcar) && !IsPlayerInAnyVehicle(playerid) && PlayerInfo[playerid][pMechSkill] >= 51) { new panels, doors, lights, tires; GetVehicleDamageStatus(testcar, panels, doors, lights, tires); UpdateVehicleDamageStatus(testcar, panels, doors, lights, 15); return 1; } else { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo estб perto do carro, nгo sabe trocar pneus ou estб dentro de um carro."); return 1; } } return 1; }
Use IsPlayerInRangeOfPoint utilizando as coordenadas obtidas no GetVehiclePos
|
Alйm do que foi dito acima, faзa com que o quinto argumento do UpdateVehicleDamageStatus seja igual a 0 para que as rodas do veнculo indicado sejam reparadas .
Espero ter ajudado . |
stock IsPlayerNearVehicle(playerid, vehicleid, Float:distance)
{
static
Float:vPos[3];
GetVehiclePos(vehicleid, vPos[0], vPos[1], vPos[2]);
return IsPlayerInRangeOfPoint(playerid, distance, vPos[0], vPos[1], vPos[2]);
}
if(ProxDetectorS(8.0, playerid, testcar)
if(IsPlayerNearVehicle(playerid, testcar, 8.0))