SA-MP Forums Archive
Hola Ayuda - Printable Version

+- SA-MP Forums Archive (https://sampforum.blast.hk)
+-- Forum: Non-English (https://sampforum.blast.hk/forumdisplay.php?fid=9)
+--- Forum: Languages (https://sampforum.blast.hk/forumdisplay.php?fid=33)
+---- Forum: Español/Spanish (https://sampforum.blast.hk/forumdisplay.php?fid=29)
+---- Thread: Hola Ayuda (/showthread.php?tid=337545)



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;
}