11.04.2017, 23:31
Buenas, he modificado un sistema de freno para que funcione al usar el comando y cargar vehнculo, pero ahora no funciona para nada, se supone que al poner /freno el vehнculo tiene que quedar inmуvil ante movimiento de un usuario, alguien se echa un vistazo por el sistema a ver si encuentra una falla?
PD; el cуdigo sale desorganizado, mбs no es asн, es cosa del foro.
PD; el cуdigo sale desorganizado, mбs no es asн, es cosa del foro.
Код:
new Float:VehFrenoPOS[MAX_VEHICLES][4];
new Float:VehComprobar[MAX_VEHICLES][4];
enum DataCar
{
cFreno
};
new CarInfo[MAX_VEHICLES][DataCar];
public OnUnoccupiedVehicleUpdate(vehicleid, playerid, passenger_seat)
{
new Auto = GetVehicleFromId(vehicleid);
if(CarInfo[CarInfo[Auto][cId]][cFreno] == 1)
{
GetVehiclePos(playerid, VehComprobar[CarInfo[Auto][cId]][0], VehComprobar[CarInfo[Auto][cId]][1], VehComprobar[CarInfo[Auto][cId]][2]);
GetVehicleZAngle(playerid, VehComprobar[playerid][3]);
if(VehComprobar[CarInfo[Auto][cId]][0] == VehFrenoPOS[vehicleid][0] || VehComprobar[CarInfo[Auto][cId]][1] == VehFrenoPOS[CarInfo[Auto][cId]][1] || VehComprobar[CarInfo[Auto][cId]][2] == VehFrenoPOS[CarInfo[Auto][cId]][2]|| VehComprobar[CarInfo[Auto][cId]][3] == VehFrenoPOS[CarInfo[Auto][cId]][3]) return 1;
SetVehiclePos(CarInfo[Auto][cId], VehFrenoPOS[CarInfo[Auto][cId]][0], VehFrenoPOS[CarInfo[Auto][cId]][1], VehFrenoPOS[CarInfo[Auto][cId]][2]);
SetVehicleZAngle(CarInfo[Auto][cId], VehComprobar[playerid][3]);
}
return 1;
}
>>>>>>> EN EL CARGADO; CarInfo[car][cFreno] = cache_get_field_content_int(car, "Freno");
if(CarInfo[car][cFreno] == 1)
{
VehFrenoPOS[car][0] = CarInfo[car][cLocationx];
VehFrenoPOS[car][1] = CarInfo[car][cLocationy];
VehFrenoPOS[car][2] = CarInfo[car][cLocationz];
VehFrenoPOS[car][3] = CarInfo[car][cAngle];
SetVehicleVelocity(car, 0, 0, 0);
}
//
COMMAND:freno(playerid)
{
static string[70];
if (IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new Auto = GetPlayerVehicle(playerid);
if (!PlayerHaveKeys(playerid, Auto) && !IsACop(playerid)) return SendInfoMessage(playerid, 0, "No tienes las llaves del vehнculo para usar este comando.");
if (CarInfo[Auto][cFreno] == 0)
{
CarInfo[Auto][cFreno] = 1;
GetVehiclePos(Auto, VehFrenoPOS[Auto][0], VehFrenoPOS[Auto][1], VehFrenoPOS[Auto][2]);
GetVehicleZAngle(Auto, VehFrenoPOS[Auto][3]);
SetVehicleVelocity(Auto, 0, 0, 0);
format(string, sizeof(string), "* %s activa el freno del mano del vehнculo.", pName(playerid));
}
else
{
CarInfo[Auto][cFreno] = 0;
format(string, sizeof(string), "* %s desactiva el freno del mano del vehнculo.", pName(playerid));
}
ProxDetector(10.0, playerid, string, COL_MORADO, COL_MORADO, COL_MORADO, COL_MORADO, COL_MORADO);
SaveCar(Auto);
}
else SendInfoMessage(playerid, 0, "Necesitas estar en un vehнculo y ser el conductor para usar este comando.");
return 1;
}
//
stock GetVehicleFromId(id)
{
for(new c = 0; c < TotalVeh; c++)
{
if(id == CarInfo[c][cId]) return c;
}
return -1;
}
stock GetPlayerVehicle(playerid)
{
new car = GetPlayerVehicleID(playerid);
if (car == 0) return -1;
for (new i = 0; i < TotalVeh; i++)
if (car == CarInfo[i][cId])
return i;
return -1;
}

