31.08.2014, 17:02
(
Последний раз редактировалось Alexander11; 01.09.2014 в 16:21.
)
Buenas, hoy les vengo a compartir mi creador de vehнculos IN GAME, es un FS bastante simple, asн que yo se los vengo a compartir, sin mбs que decir, les explico el FS.
Cuenta con un simple comando que es /crearcarro (Modelo) (Color1) (Color2) (Tiempo de respawn)
Los archivos son numerados en la carpeta Autos que se encuentra en Scriptfiles, la cual deben crear ustedes.
No dejare fotos, ya que es algo bastante simple.
No tengo mбs nada para explicar, asн que aquн tienen:
Cuenta con un simple comando que es /crearcarro (Modelo) (Color1) (Color2) (Tiempo de respawn)
Los archivos son numerados en la carpeta Autos que se encuentra en Scriptfiles, la cual deben crear ustedes.
No dejare fotos, ya que es algo bastante simple.
No tengo mбs nada para explicar, asн que aquн tienen:
pawn Код:
#include <a_samp>
#include <YSI\y_ini>
#include <foreach>
#include <sscanf2>
#include <zcmd>
#define MAX_CARS 500
new Iterator:aAutos<MAX_CARS>;
enum InfoAutos
{
aModelo,
Float:aPosX,
Float:aPosY,
Float:aPosZ,
Float:aRotacion,
aColor1,
aColor2,
aRespawn
};
new InformacionA[MAX_CARS][InfoAutos];
public OnFilterScriptInit()
{
print("\n--------------------------------------");
print(" Blank Filterscript by your name here");
print("--------------------------------------\n");
return 1;
}
public OnFilterScriptExit()
{
return 1;
}
CMD:crearauto(playerid, params[])
{
new modelo, color1, color2, respawn;
new Float:x, Float:y, Float:z, Float:angulo;
new i = SlotAutoLibre();
if(!IsPlayerAdmin(playerid)) return SendClientMessage(playerid, -1, "No eres administrador");
if(sscanf(params,"iiii",modelo,color1,color2,respawn)) return SendClientMessage(playerid, -1, "/crearauto (Modelo) (Color1) (Color2) (Tiempo de respawn)");
if(modelo < 400 || modelo > 611) return SendClientMessage(playerid, -1, "El modelo ingresado es invalido.");
if(i == -1) return SendClientMessage(playerid, -1, "No se pueden crear mбs coches");
{
GetPlayerPos(playerid, x, y, z);
GetPlayerFacingAngle(playerid, angulo);
InformacionA[i][aModelo] = modelo;
InformacionA[i][aPosX] = x;
InformacionA[i][aPosY] = y;
InformacionA[i][aPosZ] = z;
InformacionA[i][aRotacion] = angulo;
InformacionA[i][aColor1] = color1;
InformacionA[i][aColor2] = color2;
InformacionA[i][aRespawn] = respawn;
CreateVehicle(modelo, x, y, z, angulo, color1, color2, respawn);
Iter_Add(aAutos,i);
ActualizarAutos(i);
}
return 1;
}
stock ActualizarAutos(i)
{
new BArch[19];
format(BArch,sizeof(BArch),"Autos/%d.ini",i);
new INI:Arch = INI_Open(BArch);
INI_SetTag(Arch,"data");
INI_WriteInt(Arch,"Modelo",InformacionA[i][aModelo]);
INI_WriteFloat(Arch,"PosX",InformacionA[i][aPosX]);
INI_WriteFloat(Arch,"PosY",InformacionA[i][aPosY]);
INI_WriteFloat(Arch,"PosZ",InformacionA[i][aPosZ]);
INI_WriteFloat(Arch,"Rotacion",InformacionA[i][aRotacion]);
INI_WriteInt(Arch,"Color1",InformacionA[i][aColor1]);
INI_WriteInt(Arch,"Color2",InformacionA[i][aColor2]);
INI_WriteInt(Arch,"Tiempo respawn",InformacionA[i][aRespawn]);
INI_Close(Arch);
return 1;
}
stock CargarAutos()
{
new BArch[22],i;
print("Cargando autos...\n");
while(i < MAX_CARS)
{
format(BArch,sizeof(BArch),"Autos/%d.ini",i);
if(fexist(BArch))
{
INI_ParseFile(BArch,"CargarAutos_data",.bExtra = true, .extra = i);
printf("Coche modelo: %i",InformacionA[i][aModelo]);
Iter_Add(aAutos, i);
CreateVehicle(InformacionA[i][aModelo], InformacionA[i][aPosX], InformacionA[i][aPosY], InformacionA[i][aPosZ], InformacionA[i][aRotacion], InformacionA[i][aColor1], InformacionA[i][aColor2], InformacionA[i][aRespawn]);
}
i++;
}
return 1;
}
forward CargarAutos_data(vehicleid,name[],value[]);
public CargarAutos_data(vehicleid,name[],value[])
{
INI_Int("Modelo",InformacionA[vehicleid][aModelo]);
INI_Float("PosX",InformacionA[vehicleid][aPosX]);
INI_Float("PosY",InformacionA[vehicleid][aPosY]);
INI_Float("PosZ",InformacionA[vehicleid][aPosZ]);
INI_Float("Rotacion",InformacionA[vehicleid][aRotacion]);
INI_Int("Color1",InformacionA[vehicleid][aColor1]);
INI_Int("Color2",InformacionA[vehicleid][aColor2]);
INI_Int("Tiempo respawn",InformacionA[vehicleid][aRespawn]);
return 0;
}
stock SlotAutoLibre()
{
for(new i; i < MAX_CARS; i++)
{
if(!strlen(InformacionA[i][aModelo]) && !InformacionA[i][aPosX] && !InformacionA[i][aPosZ])
{
return i;
}
}
return -1;
}