CarInfo[cocheid][cId] = cocheid;
CarInfo[cocheid][cModel] = datacar[tmpcar][dcIDModel];
CarInfo[cocheid][cLocationx] = Concesionarios[Conce][ctX];
CarInfo[cocheid][cLocationy] = Concesionarios[Conce][ctY];
CarInfo[cocheid][cLocationz] = Concesionarios[Conce][ctZ];
CarInfo[cocheid][cAngle] = 90.0;
CarInfo[cocheid][cColorOne] = color1;
CarInfo[cocheid][cColorTwo] = color2;
CarInfo[cocheid][cOwner] = sendername;
CarInfo[cocheid][cDescription] = cochenombre;
CarInfo[cocheid][cValue] = datacar[tmpcar][dcPrecio];
CarInfo[cocheid][cLicense] = 1;
CarInfo[cocheid][cOwned] = 1;
CarInfo[cocheid][cLock] = 0;
pon el comando de /comprarveh asi veo como lo tienes puesto
edito: que gm usas? el de OSRP u otro? |
if (strcmp("/comprarveh", cmd, true) == 0) { cmd = strtokex(cmdtext,idx); if (!strlen(cmd)) { SendClientMessage(playerid, Blanco, "USO: /comprarveh [VehiculoID] [Color1] [Color2]"); return 1; } if(TimerConce == 1) { SendClientMessage(playerid, Rojo, "* Acaban de comprar un coche, espera mientras se guardan los datos..."); return 1; } if (EnCatalogoVeh[playerid] != NOEXISTE) { SendClientMessage(playerid, Rojo, "* Sal del catбlogo para comprar el vehiculo. (ENTER)"); return 1; } GetPlayerPos(playerid, PlayerInfo[playerid][pPos_x], PlayerInfo[playerid][pPos_y], PlayerInfo[playerid][pPos_z]); SetPlayerFacingAngle(playerid, 212.2497); SetCameraBehindPlayer(playerid); new tmpcar; tmpcar = strval(cmd); if ((PlayerInfo[playerid][pMember] == datacar[tmpcar][dcComprador]) || (datacar[tmpcar][dcMember] == 0)) { if(datacar[tmpcar][dcIDModel] == 525) { if(PlayerInfo[playerid][pHabilidadMecanico] < 20) { SendClientMessage(playerid, Rojo, "* No tienes suficiente experiencia para conducir este tipo de vehiculos."); return 1; } } if(datacar[tmpcar][dcNivel] > GetPlayerLevel(playerid)) { SendClientMessage(playerid, Rojo, "* Nivel insuficiente!"); return 1; } if(PlayerInfo[playerid][pPCarKey][0] != NOEXISTE && PlayerInfo[playerid][pPCarKey][1] != NOEXISTE && PlayerInfo[playerid][pPCarKey][2] != NOEXISTE && PlayerInfo[playerid][pPCarKey][3] != NOEXISTE && PlayerInfo[playerid][pPCarKey][4] != NOEXISTE) { SendClientMessage(playerid, Naranja, "* Ya tienes todos los slots de llaves propias ocupados!"); return 1; } if(datacar[tmpcar][dcConcesionario] == GetPlayerConcesionario(playerid)) { new Conce = GetPlayerConcesionarioEx(playerid); for(new i=0; i < TotalVeh; i++) { if(VehicleToPoint(10.0, i, Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ])) { SendClientMessage(playerid, Rojo, "* Hay un vehнculo en el punto de entrega, imposible entregar."); return 1; } } } else { SendClientMessage(playerid, Rojo, "* No disponemos de ese modelo, deberбs buscar en otro concesionario."); return 1; } if (SafeGetPlayerMoney(playerid) < datacar[tmpcar][dcPrecio]) { SendClientMessage(playerid, Rojo, "* No llevas dinero suficiente. Vuelve en otro momento"); return 1; } tmp = strtokex(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, Blanco, "USO: /comprarveh [VehiculoID] [Color1] [Color2]"); return 1; } new color1; color1 = strval(tmp); tmp = strtokex(cmdtext, idx); if(!strlen(tmp)) { SendClientMessage(playerid, Blanco, "USO: /comprarveh [VehiculoID] [Color1] [Color2]"); return 1; } new color2; color2 = strval(tmp); for(new i; i < MAX_PROPIOS; i++) { if(PlayerInfo[playerid][pPCarKey][i] == NOEXISTE) { PlayerInfo[playerid][pPCarKey][i] = CodigoLlave; break; } } SendClientMessage(playerid, Verde, "* Has comprado un nuevo vehнculo."); SendClientMessage(playerid, Amarillo, "* El vendedor te ha entregado las llaves (mira en /stats)"); new Conce = datacar[tmpcar][dcConcesionario]-1; CreateLLLCar (playerid, tmpcar, Concesionarios[Conce][ctX], Concesionarios[Conce][ctY], Concesionarios[Conce][ctZ], 90.0, color1,color2); //autos SafeGivePlayerMoney(playerid, - datacar[tmpcar][dcPrecio]); TimerConce = 1; SetTimerEx("ResetearTimerConce",10000,0,""); SaveValues(playerid, "Coches"); SaveValues(playerid, "CochesPrestados"); } else { SendClientMessage(playerid, Rojo, "* No puedes comprar este tipo de vehiculo"); } return 1; }
Vehicle_OnPlayerExitVehicle(playerid, vehicleid)
{
#pragma unused vehicleid
new tmpcar;
tmpcar = GetPlayerVehicle(playerid);
CarInfo[tmpcar][cFixPos] = 1;
TogglePlayerControllable (playerid, 1);
if (CarInfo[tmpcar][cGPS] > -1 && GetPlayerVehicleSeat(playerid)==0)
{
new Float:X,Float:Y,Float:Z;
GetVehiclePos(CarInfo[tmpcar][cId],X,Y,Z);
SetPlayerMarkerForPlayer(CarInfo[tmpcar][cGPS], playerid, 0xFFFFFF00);
SetPlayerCheckpoint(CarInfo[tmpcar][cGPS],X,Y,Z,8.0);
PlayerInfo[CarInfo[tmpcar][cGPS]][pCheckpoint]=31;
}
FixVPos(tmpcar);
return 1;
}
forward FixVPos(tmpcar);
public FixVPos(tmpcar)
{
if(CarInfo[tmpcar][cUsos] == 0 && !(strcmp(CarInfo[tmpcar][cOwner], "autoescuela", true) == 0))
{
print("Es un coche de civil, saquemos las coordenadas");
GetVehiclePos(CarInfo[tmpcar][cId], CarInfo[tmpcar][cLocationx], CarInfo[tmpcar][cLocationy], CarInfo[tmpcar][cLocationz]);
GetVehicleZAngle(CarInfo[tmpcar][cId], CarInfo[tmpcar][cAngle]);
SaveCar(tmpcar);
new sql[256];
GetVehiclePos(CarInfo[tmpcar][cId],CarInfo[tmpcar][cLocationx],CarInfo[tmpcar][cLocationy],CarInfo[tmpcar][cLocationz]);
GetVehicleZAngle(CarInfo[tmpcar][cId], CarInfo[tmpcar][cAngle]);
format(sql, sizeof(sql), "UPDATE cars SET X=%f,Y=%f,Z=%f,A=%f,Vw=%d,Interior=%d WHERE id = %d",
CarInfo[tmpcar][cLocationx],
CarInfo[tmpcar][cLocationy],
CarInfo[tmpcar][cLocationz],
CarInfo[tmpcar][cAngle],
CarInfo[tmpcar][cVw],
CarInfo[tmpcar][cInt],
CarInfo[tmpcar][cSQLID]);
mysql_query(sql);
}
else
{
//print("No es un coche de civil, saquemos las coordenadas temporales");
GetVehiclePos(CarInfo[tmpcar][cId], CarInfo[tmpcar][cTmpx], CarInfo[tmpcar][cTmpy], CarInfo[tmpcar][cTmpz]);
GetVehicleZAngle(CarInfo[tmpcar][cId], CarInfo[tmpcar][cTmpa]);
}
CarInfo[tmpcar][cFixPos] = 0;
return 1;
}
Hola, mira yo tambiйn pase por eso en OSRP v2 y lo que hice fue lo siguiente , no sй si sera lo mбs optimizado pero bueno me funciona.. debes ir a coches.inc y reemplazar las siguientes funciones
pawn Код:
y luego pawn Код:
|