Cбlculo de diferenзa preзo da Gasolina -
Japis - 10.02.2019
Estou criando um sistema de gasolina, e na dialog dela temos a funзгo de adicionar o nъmero de litros desejados, porйm nгo sei como irei adicionar a funзгo de contar a diferenзa de litros que jб tem no tanque, para o nъmero de litros adicionais, e descontar apenas a diferenзa desses valores.
Informaзхes: 70 й a quantidade mбxima de gasolina dos tanques
Exemplo: se eu for abastecer e no tanque jб tiver uma quantidade 10 listros de gasolina, para os 70 litros (Quantidade mбxima do tanque) temos uma diferenзa de 60 litros
gostaria de contabilizar estes 60 litros e descontar no preзo apenas os 60
Sistema atual:
Код:
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 > 70 || sGasolinaT <= 0)
return SendClientMessage(playerid, 0xFFFFFFFF, "Quantia Invбlida");
format(string,60, "* Vocк abastaceu %d Litros por %d$",sGasolinaT,quantia);
SendClientMessage(playerid,0xFFFF00AA, string);
Dados[playerid][pGasosa] += sGasolinaT;
if(Dados[playerid][pGasosa] > 70)
{
Dados[playerid][pGasosa] = 70;
return 0;
}
Retirada[playerid] = 0;
Avisado[playerid] = false;
Dados[playerid][pDinheiro] -= quantia;
TogglePlayerControllable(playerid, true);
return 1;
}
Do jeito que estб o player pode chegar com 10 litros no posto e abastecer 70, ele vai cobrar o valor de 70 litros e nгo a diferenзa que seria 60 litros, fazendo com que o player gaste mais atoa
Re: Cбlculo de diferenзa preзo da Gasolina -
DanielMatrix - 10.02.2019
Cheque a gasolina atual do jogador, caso ela for maior que o desejado vocк cancela a compra do combustнvel.
Re: Cбlculo de diferenзa preзo da Gasolina -
PedroH - 10.02.2019
Tem um calculo mas eu nгo me lembro agora, voce pode fazer isso amigo:
PHP код:
new quantTemLitrosCarro = 10, quantLitrosAbastecer = 30, quantidadeAbasteceu = 1;
while(quantTemLitrosCarro <= 70 && quantLitrosAbastecer--) quantidadeAbasteceu++, quantTemLitrosCarro++;
quantidadeAbasteceu sera a variavel que armazenara a quantidade de litros abastecidos.
se eu me lembrar do calculo eu mando aqui.
@Edit voce pode fazer isso tabem:
PHP код:
new quantTemLitrosCarro = 60, quantLitrosAbastecer = 50, quantidadeAbasteceu;
quantidadeAbasteceu = quantLitrosAbastecer;
if((quantTemLitrosCarro + quantLitrosAbastecer) > 70)
quantidadeAbasteceu = (quantTemLitrosCarro > quantLitrosAbastecer) ? (quantTemLitrosCarro - quantLitrosAbastecer) : (quantLitrosAbastecer - quantTemLitrosCarro);
Re: Cбlculo de diferenзa preзo da Gasolina -
wearLy - 11.02.2019
PHP код:
#define MAX_COMBUSTIVEL 70
#define VALOR_COMBUSTIVEL 3
new quantCombustivel = strval(inputtext), string[64],
completarTanque = MAX_COMBUSTIVEL - Dados[playerid][pGasosa]
;
if (quantCombustivel >= completarTanque) quantCombustivel = completarTanque;
new quantia = quantCombustivel * VALOR_COMBUSTIVEL;
if (GetPlayerMoney(playerid) < quantia) return SendClientMessage(playerid, -1, "Vocк nгo tem dinheiro para colocar combustнvel.");
if (quantCombustivel > 70 || quantCombustivel < 1) return SendClientMessage(playerid, -1, "A quantidade de combustнvel deve ser de 1 б 70 litros.");
format(string, 64, "Vocк abasteceu %d litros de combustнvel por $%d", quantCombustivel, quantia);
SendClientMessage(playerid, -1, string);
Dados[playerid][pGasosa] += quantCombustivel;
if (Dados[playerid][pGasosa] > 70) return Dados[playerid][pGasosa] = 70, false;
Retirada[playerid] = 0, Avisado[playerid] = false;
Dados[playerid][pDinheiro] -= quantia;
TogglePlayerControllable(playerid, true);
return true;
Re: Cбlculo de diferenзa preзo da Gasolina -
Japis - 11.02.2019
Obrigado pelo apoio pessoal, acredito que com estas bases ficarб mais fбcil para adicionar no sistema da gm obrigado a todos os envolvidos.
Re: Cбlculo de diferenзa preзo da Gasolina -
AutoMatic2 - 11.02.2019
Uso esse mesmo sistema que o seu porйm eu mudei os nomes das variбvel, e tbm coloquei uns anti bug e sei oq quer dizer o meu vai ate 100 litros eu mudei pra 70.
PHP код:
if(dialogid == DIALOG_ABASTECER)
{
if(response)
{
new Litros = strval(inputtext), string[120], Quantia = Litros*floatround(5.0);
if(!strval(inputtext))
{
ShowPlayerDialog(playerid, DIALOG_ABASTECER, DIALOG_STYLE_INPUT, "Abastecer", "{FFFFFF}Insira uma quantidade de litros para abastecer.\n{FFFFFF}O Preзo atual da Gasolina й {008000}$5.00 {FFFFFF}por litro", "Abastecer", "Fechar");
SendClientMessage(playerid, Vermelho, "| ERRO | Quantidade Invбlida!");
return 1;
}
if(strfind(inputtext, "-", true) != -1)
{
ShowPlayerDialog(playerid, DIALOG_ABASTECER, DIALOG_STYLE_INPUT, "Abastecer", "{FFFFFF}Insira uma quantidade de litros para abastecer.\n{FFFFFF}O Preзo atual da Gasolina й {008000}$5.00 {FFFFFF}por litro", "Abastecer", "Fechar");
SendClientMessage(playerid, Vermelho, "| ERRO | Quantidade Invбlida!");
return 1;
}
if(GetPlayerMoney(playerid) < Quantia)
{
SendClientMessage(playerid, Vermelho, "| ERRO | Vocк nгo tem todo esse dinheiro para pagar o frentista!");
return 1;
}
if(Litros + Gasolina[GetPlayerVehicleID(playerid)] <= 70)
{
format(string, sizeof(string), "| INFO | Vocк completou seu tanque com %d litros por {008000}$%d", Litros, Quantia);
SendClientMessage(playerid, Azul, string);
Gasolina[GetPlayerVehicleID(playerid)] += Litros;
GivePlayerMoney(playerid, - Quantia);
TogglePlayerControllable(playerid, true);
Retirada[playerid] = 0;
}
}
return 1;
}
Ou use apenas essa parte:
PHP код:
if(Litros + Gasolina[GetPlayerVehicleID(playerid)] <= 70)