06.07.2013, 18:47
I give all from the command Here.
pawn Code:
//Comando que da Unknown command.
CMD:crearauto(playerid,params[])
{
if(sscanf(params,"ii",params[0],params[1])) return SendClientMessage(playerid,-1,"/crearauto [id] [precio]");//sscanf detecta que los parбmetros utilizen C formato (recomiendo ver un tutorial sobre este si no sabes su funcionamiento)
new
i = SlotVehLibre();//almacenamos en "i" el slot de auto que halla libre
if(!i)
{
return SendClientMessage(playerid,-1,"ЎNo hay mas espacio!");//el slot retorna 0 si no encuentra un valor disponible
}
GetPlayerPos(playerid,Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ]);//almacenamos la posicion del jugador en la cordenada del auto
GetPlayerFacingAngle(playerid,Vehiculo[i][Rot]);//almacenamos en las variablesdel auto el angulo del jugador.
Vehiculo[i][Precio] = params[1];//almacenamos el parametro [1] ( si es un integrer cuenta los espacios)
Vehiculo[i][Modelo] = params[0];
new
VehID = CreateVehicle(Vehiculo[i][Modelo],Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ],Vehiculo[i][Rot],0,0,600000);//creamos el vehiculo segun lso datos q nos da el array
IDVeh[VehID] = i;
ActualizarAuto(i);//el stock de antes, guardamos en el .INI
SendClientMessage(playerid,-1,"Creaste el vehiculo correctamente");//mensaje al jugador
return 1;
}
//stocks
stock CargarAutos()
{
new
S[60];//donde almacenaremos el archivo.
for(new i; i < TOTAL_AUTOS; i++)//un loop
{
format(S,sizeof S,"Autos/%d.ini",i);//formateamos el archivo, segun el id del auto que guardamos, osea el valor de I
if(fexist(S))//si el archivo que formateamos antes, existe (el auto es creado)
{
INI_ParseFile(S,"CargarVeh_%s",.bExtra = true, .extra = i);//cargamos los datos del .INI, esta funciуn extrae desde el archivo los datos, y usamos el parбmetro "Extra" ya que elejimos donde almacenarlo (en que celda del array)
new
VehID = CreateVehicle(Vehiculo[i][Modelo],Vehiculo[i][PosX],Vehiculo[i][PosY],Vehiculo[i][PosZ],Vehiculo[i][Rot],0,0,600000);//creamos el vehiculo segun lso datos q nos da el archivo
Iter_Add(fVeh,i);//agregamos al loop de foreach, el valor "i" (osea agrega totao de valores como autos halla)
IDVeh[VehID] = i;//almacenamos el ID de venta de el auto, osea VehID es el original, lo que retorno createVehicle y i es el ID del auto de venta..
}
}
return 1;
}
stock ActualizarAuto(i)
{
new
S[40];//creamos el array.
format(S,sizeof S,"Autos/%d.ini",i);//formateamos el archivo,
new
INI:Arch = INI_Open(S);//abrios el archivo que formateamos arriba
INI_SetTag(Arch,"data");//el TAG del archivo (sale como [TAG])
INI_WriteString(Arch,"Dueсo",Vehiculo[i][Dueno]);
INI_WriteInt(Arch,"Modelo",Vehiculo[i][Modelo]);//escribimos el archivo segъn los datos del array
INI_WriteInt(Arch,"Precio",Vehiculo[i][Precio]);
INI_WriteFloat(Arch,"Pos_x",Vehiculo[i][PosX]);
INI_WriteFloat(Arch,"Pos_y",Vehiculo[i][PosY]);
INI_WriteFloat(Arch,"Pos_z",Vehiculo[i][PosZ]);
INI_WriteFloat(Arch,"Rot",Vehiculo[i][Rot]);
INI_Close(Arch);//cerramos el archivo (y lo guardamos)
return 1;
}
stock SlotVehLibre()//este stock sirve para encontrar un slot de auto libre.
{
for(new i = 1; i < TOTAL_AUTOS; i++)//un loop con todos los autos
{
if(!Vehiculo[i][Modelo]) return i;//si movelo == 0 significa que el dato estб en blanco, osea estб vacнo
}
return 0;//si no encuentra, retorna 0
}