Hola Ayuda -
andySix - 26.04.2012
Chicos tengo un problema cuando recargo la gasolina y se llena el tanque me sigue cobrando el costo de la recarga y me hace como un spam :/ este es el comando que anda mal?
Код:
CMD:regasolina(playerid, params[])
{
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON) return SendClientMessageEx(playerid, COLOR_RED, "Necesitas apagar el motor antes de llenar (/car motor).");
if(!IsAtFuelStation(playerid)) return SendClientMessageEx(playerid, COLOR_RED, "No estбs en una estaciуn de gasolina.");
if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_RED,"Este Vehiculo no necesita gasolina.");
if(VehicleFuel[vehicleid] >= 100.0) return SendClientMessageEx(playerid, COLOR_RED, "El tanque de este vehнculo ya estб lleno.");
if(RefuelingVehicle[playerid] == 1) return SendClientMessageEx(playerid, COLOR_RED, "Estбs llenando el tanque de tu vehнculo.");
SendClientMessageEx(playerid, COLOR_WHITE, "Abasteciendo de combustible el tanque de su vehнculo, por favor espere.");
RefuelingVehicle[playerid] = 1;
RefuelingVehicleTimer[playerid] = SetTimerEx("ReFill", 1000, true, "i", playerid);
}
return 1;
}
Respuesta: Hola Ayuda -
Treyfus - 26.04.2012
Prueba asi te debe de funcionar!!!
pawn Код:
CMD:regasolina(playerid, params[])
{
if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == PLAYER_STATE_DRIVER)
{
new vehicleid = GetPlayerVehicleID(playerid);
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(vehicleid,engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON) return SendClientMessageEx(playerid, COLOR_RED, "Necesitas apagar el motor antes de llenar (/car motor).");
if(!IsAtFuelStation(playerid)) return SendClientMessageEx(playerid, COLOR_RED, "No estбs en una estaciуn de gasolina.");
if(GetVehicleModel(vehicleid) == 481 || GetVehicleModel(vehicleid) == 509 || GetVehicleModel(vehicleid) == 510) return SendClientMessageEx(playerid,COLOR_RED,"Este Vehiculo no necesita gasolina.");
if(VehicleFuel[vehicleid] >= 100.0) return SendClientMessageEx(playerid, COLOR_RED, "El tanque de este vehнculo ya estб lleno.");
if(RefuelingVehicle[playerid] == 1) return SendClientMessageEx(playerid, COLOR_RED, "Estбs llenando el tanque de tu vehнculo.");
SendClientMessageEx(playerid, COLOR_WHITE, "Abasteciendo de combustible el tanque de su vehнculo, por favor espere.");
RefuelingVehicle[playerid] = 1;
RefuelingVehicleTimer[playerid] = SetTimerEx("ReFill", 1000, false, "i", playerid);
}
return 1;
}
Respuesta: Hola Ayuda -
Fluid016 - 26.04.2012
Pasa el public ReFill
Respuesta: Hola Ayuda -
Treyfus - 26.04.2012
Creo que el problema suyo era este:
pawn Код:
SetTimerEx("ReFill", 1000, true, "i", playerid);
osea que el Timer tenia el True para que se repita!!!
y lo que deberia de aser es cambiarlo a false y es lo que yo le ise y aun no a contestado si le sirvio o no
Respuesta: Hola Ayuda -
andySix - 26.04.2012
Gracias si me sirvio, disculpa por no responder, pero ahora lo otro esque no llena la gasolina que sera :S
Respuesta: Hola Ayuda -
Treyfus - 27.04.2012
Pues como dice GROVE22 pasanos el public Refill para que beamos
Respuesta: Hola Ayuda -
andySix - 27.04.2012
Aca esta
Код:
forward ReFill(playerid);
public ReFill(playerid)
{
if(!IsAtFuelStation(playerid) || !IsPlayerInAnyVehicle(playerid) || VehicleFuel[GetPlayerVehicleID(playerid)] >= 100.0 || GetPlayerCash(playerid) < 1)
{
StopRefueling(playerid);
}
else
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON) return StopRefueling(playerid);
VehicleFuel[GetPlayerVehicleID(playerid)] += 1.0; RefuelingVehiclePrice[playerid] += 30;
if(VehicleFuel[GetPlayerVehicleID(playerid)] >= 100.0) VehicleFuel[GetPlayerVehicleID(playerid)] = 100.0;
}
return true;
}
Respuesta: Hola Ayuda -
Treyfus - 27.04.2012
pawn Код:
public ReFill(playerid)
{
if(!IsAtFuelStation(playerid) || !IsPlayerInAnyVehicle(playerid) || VehicleFuel[GetPlayerVehicleID(playerid)] >= 100.0 || GetPlayerCash(playerid) < 1)
{
StopRefueling(playerid);
}
else
{
new engine,lights,alarm,doors,bonnet,boot,objective;
GetVehicleParamsEx(GetPlayerVehicleID(playerid),engine,lights,alarm,doors,bonnet,boot,objective);
if(engine == VEHICLE_PARAMS_ON) return StopRefueling(playerid);
VehicleFuel[GetPlayerVehicleID(playerid)] += 10; RefuelingVehiclePrice[playerid] += 30;
if(VehicleFuel[GetPlayerVehicleID(playerid)] >= 100) VehicleFuel[GetPlayerVehicleID(playerid)] = 100;
}
return true;
}
Prueba asi!!!
Respuesta: Hola Ayuda -
andySix - 27.04.2012
Gracias x'D pero sigue igual D'x lo dejare asi, lo ponde como bugeado hehe igual tengo el empleo de mecanico que vende gasolina
lo puse asi por los momentos
Код:
CMD:regasolina(playerid, params[])
{
SendClientMessageEx(playerid, COLOR_GREY, "Comando en arreglo por bug, llame a un mecanico!");
return 1;
}