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; }