forward Fillup(playerid, vehid, pago);
public Fillup(playerid, vehid, pago)
{
new Gas = CarInfo[vehid][cTipoGas];
new fillup, total;
if(Refueling[playerid] == 1)
{
if(pago == NOEXISTE) // cбlculo de gasolina a llenar
{
fillup = 100 - CarInfo[vehid][cGas];// lleno
if(Gas == 1)
{
total = floatround(fillup * 1.7999);
}
if(Gas == 2)
{
total = floatround(fillup * 1.3999);
}
}
else
{
if(Gas == 1)
{
fillup = floatround(pago / 1.7999);
}
if(Gas == 2)
{
fillup = floatround(pago / 1.3999);
}
total = pago;
}
new Negocios = PlayerInfo[playerid][pNegocio];
if(NegocioInfo[Negocios][nOwned] == 1)
{
if(NegocioInfo[Negocios][nProd] < total)
{
SendClientMessage(playerid, Rojo, "* Agotado.");
TogglePlayerControllable(playerid,1);
PlayerInfo[playerid][pTempFrozen] = 0;
return 1;
}
}
if(fillup > (100 - CarInfo[vehid][cGas]))
{
fillup = 100 - CarInfo[vehid][cGas]; // lleno
}
if(SafeGetPlayerMoney(playerid) >= total)
{
CarInfo[vehid][cGas] += fillup;
SendClientMessage(playerid, Naranja, "____________[Gasolinera]_____________");
new Gaso[64];
if(Gas == 1) Gaso = "Gasolina | 1.7999";
else if(Gas == 2) Gaso = "Diesel | 1.3999";
format(string, sizeof(string), "Precio/Litro: {FFFFFF} %s$",Gaso);
SendClientMessage(playerid, AmarilloClaro, string);
format(string, sizeof(string), "Litros pagados: {FFFFFF}%dL",fillup);
SendClientMessage(playerid, AmarilloClaro, string);
new descuento;
if(PremiumValido(playerid,1))
{
descuento = (total / 100) * 5;
}
else if(PremiumValido(playerid,2))
{
descuento = (total / 100) * 10;
}
else if(PremiumValido(playerid,3))
{
descuento = (total / 100) * 15;
}
if(descuento > 0)
{
total -= descuento;
format(string,sizeof(string),"Descuento: %d$",descuento);
SendClientMessage(playerid, Blanco,string);
}
format(string, sizeof(string), "Total: {FFFFFF}%d$",total);
SendClientMessage(playerid, AmarilloClaro, string);
if(CarInfo[vehid][cUsos] == 1 || CarInfo[vehid][cUsos] == 2 || CarInfo[vehid][cUsos] == 3 || CarInfo[vehid][cUsos] == 4)
{
for(new i = 0; i < sizeof(ArcasInfo); i++)
{
new faccion = CarInfo[vehid][cUsos];
if(ArcasInfo[i][aId] == faccion)
{
ArcasInfo[i][aDinero]-=total;
}
SaveArcas(i);
}
}
if(CarInfo[vehid][cUsos] == 0)
{
SafeGivePlayerMoney(playerid, - total);
}
TogglePlayerControllable(playerid,1);
PlayerInfo[playerid][pTempFrozen] = 0;
if(NegocioInfo[Negocios][nOwned] == 1)
{
NegocioInfo[Negocios][nCajaFuerte] += total;
NegocioInfo[Negocios][nProd] -= fillup;
}
PlayerInfo[playerid][pNegocio] = NOEXISTE;
return Refueling[playerid] = 0;
}
else
{
TogglePlayerControllable(playerid,1);
format(string,sizeof(string),"* No tienes suficiente dinero, cuesta %d$ llenar el depуsito.",total);
PlayerInfo[playerid][pTempFrozen] = 0;
return SendClientMessage(playerid,Naranja,string);
}
}
return 1;
}
if(strcmp(cmd, "/llenar", true) == 0)
{
if(!IsAtGasStation(playerid))
{
SendClientMessage(playerid, Rojo, "* No estas en una gasolinera!");
return 1;
}
new vehid;
if (!IsPlayerInAnyVehicle(playerid))
vehid = vehiculomascercano(playerid); // jugador fuera del coche, junto a йl
else
vehid = GetPlayerVehicle(playerid); // jugador dentro del coche
if(IsABike(vehid)) { SendClientMessage(playerid, Rojo, "* No puedes repostar una bici!"); return 1; }
cmd = strtokex (cmdtext, idx);
if (!strlen(cmd))
{
SendClientMessage(playerid,Blanco,"USO: /llenar [Diesel/Gasolina]");
return 1;
}
if (strcmp("Diesel", cmd, true) == 0)
{
if(CarInfo[vehid][cTipoGas] == 2)
{
new pago;
cmd = strtokex(cmdtext, idx);
if(!strlen(cmd))
pago = NOEXISTE; // el jugador no establece una cantidad a pagar, lo quiere lleno
else
{
if (IsNumeric(cmd))
pago = strval (cmd);
else { SendClientMessage(playerid, Rojo, "* Valor de pago incorrecto"); return 1; }
}
GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Llenando deposito, espera por favor!",4800,3);
Refueling[playerid] = 1;
TogglePlayerControllable(playerid,0);
PlayerInfo[playerid][pTempFrozen] = 1;
/*if(CarInfo[vehid][cTipoGas] == 1)
{
idcar[playerid] = vehid;
SetTimerEx("Gripar",60000,0, "ddd", playerid);
}*/
SetTimerEx("Fillup",5000,0, "ddd", playerid, vehid, pago);
}
else
{
SendClientMessage(playerid, Rojo, "Tu coche no es Diesel!");
return 1;
}
}
if (strcmp("Gasolina", cmd, true) == 0)
{
if(CarInfo[vehid][cTipoGas] == 1)
{
new pago;
cmd = strtokex(cmdtext, idx);
if(!strlen(cmd))
pago = NOEXISTE; // el jugador no establece una cantidad a pagar, lo quiere lleno
else
{
if (IsNumeric(cmd))
pago = strval (cmd);
else { SendClientMessage(playerid, Rojo, "* Valor de pago incorrecto"); return 1; }
}
GameTextForPlayer(playerid,"~w~~n~~n~~n~~n~~n~~n~~n~~n~~n~Llenando deposito, espera por favor!",4800,3);
Refueling[playerid] = 1;
TogglePlayerControllable(playerid,0);
PlayerInfo[playerid][pTempFrozen] = 1;
SetTimerEx("Fillup",5000,0, "ddd", playerid, vehid, pago);
/*if(CarInfo[vehid][cTipoGas] == 2)
{
idcar[playerid] = vehid;
SetTimerEx("Gripar",60000,0, "ddd", playerid);
}*/
}
else
{
SendClientMessage(playerid, Rojo, "Tu coche no es Gasolina!");
return 1;
}
}
return 1;
}
if (strval(cmd) < 1 || strval(cmd) > 100)
{
SendClientMessage(playerid,Blanco,"USO: no ir por debajo de 1, o por encima de 100");
return 1;
}
ahi pase el comando completo, hay un bug que existe en todos los servidores si no lo capas, si pones /llenar 999999999999 o /llenar diesel 9999999999999
Si te deja introducir los litros y demas se te pondrб automaticamente dinero infinito |
else
{
if(IsNumeric(cmd))
pago = strval(cmd);
else { SendClientMessage(playerid, Rojo, "* Valor de pago incorrecto"); return 1; }
}
//y abajo le aсades йsto:
if(pago > 100 || pago < 1) return SendClientMessage(playerid, Rojo, "Maximo 100 y minimo 1");
Amigo ese bug es de OD-RP Contacta con un Scripter aunque yo ya solucione todos los bugs, PD: Ahy comandos ocultos que haran que sete resetee el Servidor por Fortuna los encontre y quite..
|