09.04.2013, 10:58
Bueno eh estado sacando el sistema de gasolina con ProgressBar del GM Virtual Rol.
y poniendolo en el GM de Zenon City.
Y no me da ningun error ,pero no hace las funciones que tendria que hacer.
El problema es el siguiente.
La barra de gasolina me aparece asi normal sin subirme al vehiculo, una vez subido en el vehiclo la barra baja rapidamente y no no se detiene y no dice nada de que queda poca gasolina, (la barra baja en 2 segundos).
Despues de que la barra se quede vacia sigue conduciendo el auto y no me dice nada pero despues de 10 segundos o asi me lo dice y se detiene el vehiculo,pero me bajo y me vuelvo a subir y el vehiculo puedo arrancarlo(que deberia quedarse quieto y decirme que no hay gasolina).
Esto es lo que he hecho x)
Los news y define
Esto en OnPlayerConnect
En OnPlayerDisconnect
OnPlayerUpdate
En OnGamemodeExit
En OnGameModeInit
Los forwards
Aqui los public
OnPlayerEnterVehicle
OnPlayerExitVehicle
Y esto intente ponerlo en
function SetVehicleEngine(vehicleid, playerid)
Que seria casi lo mismo que en public CheckGas.. Pero nada sigue igual..
y poniendolo en el GM de Zenon City.
Y no me da ningun error ,pero no hace las funciones que tendria que hacer.
El problema es el siguiente.
La barra de gasolina me aparece asi normal sin subirme al vehiculo, una vez subido en el vehiclo la barra baja rapidamente y no no se detiene y no dice nada de que queda poca gasolina, (la barra baja en 2 segundos).
Despues de que la barra se quede vacia sigue conduciendo el auto y no me dice nada pero despues de 10 segundos o asi me lo dice y se detiene el vehiculo,pero me bajo y me vuelvo a subir y el vehiculo puedo arrancarlo(que deberia quedarse quieto y decirme que no hay gasolina).
Esto es lo que he hecho x)
Los news y define
Код:
#define RunOutTime 25000 #define GasMax 100 #define CAR_AMOUNT 700 //Change to Your Vehicle Amount #define RefuelWait 5000 new Gas[MAX_VEHICLES]; new Text:GasolinaT[MAX_PLAYERS];// No lo pongo completo porque es un simple TextDraw new Bar:BGasolina[MAX_PLAYERS]; new checkgastimer; new gGas[MAX_PLAYERS]; new NoFuel[MAX_PLAYERS];
Код:
BGasolina[playerid] = CreateProgressBar(144.00, 402.00, 74.50, 3.20, 7527679, 100.0); SetProgressBarMaxValue(BGasolina[playerid], 100); Aqui donde se resetean las variables... NoFuel[playerid] = 0; gGas[playerid] = 0;
Код:
DestroyProgressBar(BGasolina[playerid]);
Код:
new vehicleid = GetPlayerVehicleID(playerid); if(IsPlayerInAnyVehicle(playerid)) Gas[vehicleid]--; SetProgressBarValue(BGasolina[playerid], Gas[vehicleid]); UpdateProgressBar(BGasolina[playerid], playerid); TextDrawShowForPlayer(playerid,GasolinaT[playerid]); TextDrawHideForPlayer(playerid,GasolinaT[playerid]); TextDrawShowForPlayer(playerid,GasolinaT[playerid]);
Код:
KillTimer(checkgastimer);
Код:
checkgastimer = SetTimer("CheckGas", RunOutTime, 1); for(new c=0;c<CAR_AMOUNT;c++) { Gas[c] = RandomEx(50,100); }
Код:
forward CheckGas();
Код:
public CheckGas() { new string[256]; for(new i=0;i<MAX_PLAYERS;i++) { if(IsPlayerConnected(i)) { if(GetPlayerState(i) == PLAYER_STATE_DRIVER) { new vehicle = GetPlayerVehicleID(i); if(Gas[vehicle] >= 1) { if(Gas[vehicle] <= 10) { PlayerPlaySound(i, 1085, 0.0, 0.0, 0.0); } if(IsAPlane(vehicle) || IsABoat(vehicle) || IsAHarvest(vehicle) || IsASweeper(vehicle) || arr_Engine[vehicle] == 0) { Gas[vehicle]++; } Gas[vehicle]--; format(string,sizeof(string),"~n~~n~~n~~n~~n~~n~~n~~w~Gasolina: ~r~%d",Gas[vehicle]); return 1; } else if(Gas[vehicle] <= 0) { NoFuel[i] = 1; Gas[vehicle] = 0; TogglePlayerControllable(i, 0); GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~No queda Gasolina",1500,3); } } } } return 1; }
Код:
if(NoFuel[playerid] == 1) { TogglePlayerControllable(playerid, 1); RemovePlayerFromVehicle(playerid); NoFuel[playerid] = 0; }
Код:
if(gGas[playerid] == 1) { GameTextForPlayer(playerid, "~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~Queda Poca Gasolina", 500, 3); } if (GetPlayerState(playerid) == 1) { return 1; }
function SetVehicleEngine(vehicleid, playerid)
Код:
{ new engine,lights,alarm,doors,bonnet,boot,objective; GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective); if(engine == VEHICLE_PARAMS_ON) { SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_OFF,lights,alarm,doors,bonnet,boot,objective); SendClientMessageEx(playerid, COLOR_WHITE, "Motor a sido apagado con йxito."); EncendioMotor[playerid] = 0; arr_Engine{vehicleid} = 0; } else if(engine == VEHICLE_PARAMS_OFF || engine == VEHICLE_PARAMS_UNSET) { new Float: f_vHealth; GetVehicleHealth(vehicleid, f_vHealth); if(f_vHealth < 350.0) return SendClientMessageEx(playerid, COLOR_RED, "El coche no prenderб, el motor se ha quemado! (/servicios)"); for(new i=0;i<MAX_PLAYERS;i++) if(Gas[vehicleid] <= 0) { NoFuel[i] = 1; Gas[vehicleid] = 0; TogglePlayerControllable(i, 0); GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~No queda Gasolina",1500,3); } SetVehicleParamsEx(vehicleid,VEHICLE_PARAMS_ON,lights,alarm,doors,bonnet,boot,objective); Info[playerid][pSpeedo] = 1; SendClientMessageEx(playerid, COLOR_GREEN2, "Vehiculo a encendido con йxito. (/v motor para apagarlo)"); arr_Engine{vehicleid} = 1; } return 1; }