pawn Код:
#include <a_samp>
#define VALOR_LITRO 2.0 //- Definir valor por litro da gasolina
#define RETIRAR_KM 16 //- A Cada 16 KM ,retirar 1 de gasolina
#define DIALOG_GAS 24 //- ID Do Dialog para Colocar Gasolina
new
Gasosa[MAX_VEHICLES],
bool:Avisado[500],
Float:velokm[3],
Retirada[500]
;
public OnPlayerCommandText(playerid, cmdtext[])
{
if(!strcmp(cmdtext, "/gasolina", true)) {
if(!IsPlayerInAnyVehicle(playerid))
return SendClientMessage(playerid, 0xFFFFFFFF, "Vocк nгo esta em um carro");
ShowPlayerDialog(playerid,DIALOG_GAS,DIALOG_STYLE_INPUT,"Colocar Gasolina","Por favor digite a quantidade de litros para colocar \n o Preзo atual da Gasolina й 2$ por litro","Sim","Nao");
return 1;
}
return 0;
}
public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
{
if(dialogid == DIALOG_GAS) {
if(!response)
return SendClientMessage(playerid, 0xFFFFFFFF, "Vocк nгo colocou gasolina");
new sGasolinaT = strval(inputtext),string[64],quantia = sGasolinaT*floatround(VALOR_LITRO);
if(GetPlayerMoney(playerid) < quantia)
return SendClientMessage(playerid, 0xFFFFFFFF, "Vocк nгo tem dinheiro para isto");
if(sGasolinaT > 100 || sGasolinaT <= 0)
return SendClientMessage(playerid, 0xFFFFFFFF, "Quantia Invбlida");
format(string,60, "* Vocк abastaceu %d Litros por %d$",sGasolinaT,quantia);
SendClientMessage(playerid,0xFFFF00AA, string);
Gasosa[GetPlayerVehicleID(playerid)] = sGasolinaT;
GivePlayerMoney(playerid,-quantia);
Retirada[playerid] = 0;
Avisado[playerid] = false;
TogglePlayerControllable(playerid, true);
return 1;
}
return 0;
}
public OnPlayerEnterVehicle(playerid, vehicleid, ispassenger)
{
new str[128];
format(str, sizeof(str), "* Este carro esta com %d Litros de gasolina", Gasosa[vehicleid]);
SendClientMessage(playerid,0xFFFF00AA, str);
return 1;
}
public OnPlayerUpdate(playerid)
{
if(IsPlayerInAnyVehicle(playerid)) {
new string[50],carid = GetPlayerVehicleID(playerid);
GetVehicleVelocity(carid, velokm[0], velokm[1], velokm[2]);
format(string, sizeof(string), "~w~Gasolina: ~r~%i", Gasosa[carid]);
GameTextForPlayer(playerid,string,300,1);
if(floatround(((floatsqroot(((velokm[0] * velokm[0]) + (velokm[1] * velokm[1]) + (velokm[2] * velokm[2]))) * (170.0))) * 1) > 5) {
if(Gasosa[carid] == 0 && Avisado[playerid] == false) {
SendClientMessage(playerid,0xFFFF00AA,"A Gasolina Deste carro acabou | Chame o Guincho ou /gasolina");
TogglePlayerControllable(playerid, false);
Avisado[playerid] = true;
}
if(Gasosa[carid] > 0) {
Retirada[playerid]+=1;
if(Retirada[playerid] >= (RETIRAR_KM*13)) {
Gasosa[carid]--;
Retirada[playerid]=0;
Avisado[playerid] = false;
}
}
}
}
return 1;
}