[FilterScript] Creador de vehнculos IN GAME
#1

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:

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;
}
Reply
#2

Supongo que tienes que crear el archivo 'Autos.ini'
pawn Код:
"Autos/%d.ini"
Vamos hay gente demasiado nueva en esto y necesitaran mas info. Aъn asн agradezco tu aporte!
Reply
#3

Quote:
Originally Posted by YasserCarp
Посмотреть сообщение
Supongo que tienes que crear el archivo 'Autos.ini'
pawn Код:
"Autos/%d.ini"
Vamos hay gente demasiado nueva en esto y necesitaran mas info. Aъn asн agradezco tu aporte!
No, al usar /crearauto se crea el auto y luego en la funciуn actualizar los ficheros se crean solos.
Reply
#4

Quote:
Originally Posted by YasserCarp
Посмотреть сообщение
Supongo que tienes que crear el archivo 'Autos.ini'
pawn Код:
"Autos/%d.ini"
Vamos hay gente demasiado nueva en esto y necesitaran mas info. Aъn asн agradezco tu aporte!
Tambien hay gente que no mira el cуdigo completamente.
Reply
#5

Quote:

Los archivos son numerados en la carpeta Autos que se encuentra en Scriptfiles, la cual deben crear ustedes.

Quizбs leyendo un poco detenidamente, entendieras mejor las cosas.
Reply
#6

muy bueno men
Reply
#7

beri jud
Reply
#8

Quote:
Originally Posted by Ghost112397
Посмотреть сообщение
hola soy nuevo en esto, їcomo hago para ke se guarden los autos?
es ke pongo el comando y cuando se crean no se guardan
Se supone que para que algo se guarde tiene que tener su funciуn de guardado... Tъ en que Gamemode lo estas usando, luego que me respondas eso podrй ayudarte.
Reply
#9

Quote:
Originally Posted by Toolkit
Посмотреть сообщение
Se supone que para que algo se guarde tiene que tener su funciуn de guardado... Tъ en que Gamemode lo estas usando, luego que me respondas eso podrй ayudarte.
Por lo que veo, ese codigo no necesita un guardado extra, ya que lo tiene el mismo.
Quizas para aсadirle otros componentes o editar el vehiculo si necesites otra funcion, pero los coches se guardan al crearlos.

Quizas no se te guarda porque no has creado la carpeta?
O se te olvido algo?

Disculpen si me equivoco.

Salu2

Ranslsad
Reply
#10

Super Men.

Un Saludo, Powermax3000
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)