[Duda] їMe pueden ayudar a hacer esto?
#1

Buenas, estoy haciendo editando un sistema de vehнculos que encontre en la secciуn de aportes, pero la verdad se me complico por que no sй como hacer para saber cuanta gasolina tiene el vehнculo, miren este es el FS que les digo:
https://sampforum.blast.hk/showthread.php?tid=534840

Lo que yo hice fue agregarle la variable de gasolina y todo, pero al momento de subirme al auto me dice que no tiene gasolina, esto fue lo que yo intente:

pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
{
    if(PRESSED(KEY_NO))
    {
        if(GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
        {
            new vehicle = GetPlayerVehicleID(playerid);
            new engine,lights,alarm,doors,bonnet,boot,objective;
            GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
            if(engine == 0)
            {
                if(InformacionA[vehicle][aGas] < 1) return SendClientMessage(playerid, -1, "{FF0000}El vehнculo no tiene gasolina.");
                SetVehicleParamsEx(vehicle,1,1,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid, -1, "{04B404}Encendiste el motor del vehнculo.");
            }
            else
            {
                SetVehicleParamsEx(vehicle,0,0,alarm,doors,bonnet,boot,objective);
                SendClientMessage(playerid, -1, "{FF0000}Apagaste el motor del vehнculo.");
            }
        }
    }
    return 1;
}

public OnPlayerStateChange(playerid, newstate, oldstate)
{
    switch(newstate)
    {
        case PLAYER_STATE_DRIVER:
        {
            new vehicle = GetPlayerVehicleID(playerid);
            new engine,lights,alarm,doors,bonnet,boot,objective;
            GetVehicleParamsEx(vehicle,engine,lights,alarm,doors,bonnet,boot,objective);
            if(engine == 0)
            {
                SendClientMessage(playerid, -1, "{FFFF00}* {FFFFFF}El vehнculo se encuentra apagado, si deseas prenderlo utiliza {FF0000}N{FFFFFF}.");
            }
            else
            {
                SendClientMessage(playerid, -1, "{FFFF00}* {FFFFFF}El vehнculo se encuentra encendido, si deseas apagarlo utiliza {FF0000}N{FFFFFF}.");
            }
        }
    }
    return 1;
}
Pero no me resulta, por que no sй como hacer esto, por lo que se, tengo que utilizar la funciуn Foreach para buscar entre todos los vehнculo a ver en cual estoy, pero no sй como hacerlo >.< me pueden ayudar por favor?
Desde ya les agradezco mucho.

PD: Por si preguntan algo de las variables o algo, estб todo igual al post de dуnde lo saque, solo he agregado la variable de gasolina.
Reply
#2

pawn Код:
if(InformacionA[vehicle][aGas] < 1) return SendClientMessage(playerid, -1, "{FF0000}El vehнculo no tiene gasolina.");
Eso ponelo aparte...

їCуmo estбs guardando la gasolina? Pasa la variable aGas
Reply
#3

pawn Код:
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_WriteInt(Arch,"Gasolina",InformacionA[i][aGas]);

    INI_Close(Arch);
    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]);
    INI_Int("Gasolina",InformacionA[vehicleid][aGas]);
    return 0;
}
Asн lo guardo y lo cargo, y obviamente lo tengo en el enum de los vehнculos.
Reply
#4

Mira, existe un problema en tu cуdigo (creo), por que las ID de los vehнculos son dinбmicas, por ejemplo, si tъ tienes 400 vehнculos y eliminas uno de los archivos o uno de los vehнculos desincronizas con los archivos, tienes que crear una variable que se cargue aсadiйndo el ID que tiene en sus archivos, y otra ID relativa que serнa quй ID tiene el vehнculo dentro de un loop o sea con quй id se cargу, no usar el id de GetVehicleModelID por ejemplo, si no la gasolina por ejemplo estarб guardando en otro "vehнculo" sus datos.
Reply
#5

Me mataste >.< :'c
Con lo de poner ID que tienen los archivos, no tengo idea.
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)