SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Português/Portuguese

Reply
 
Thread Tools Display Modes
Old 10/02/2019, 06:57 PM   #1
Japis
Big Clucker
 
Join Date: Mar 2017
Posts: 117
Reputation: 0
Default Cálculo de diferença preço da Gasolina

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:

Code:
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
Japis is offline   Reply With Quote
Old 10/02/2019, 07:38 PM   #2
DanielMatrix
Big Clucker
 
Join Date: Sep 2018
Posts: 91
Reputation: 9
Default Re: Cálculo de diferença preço da Gasolina

Cheque a gasolina atual do jogador, caso ela for maior que o desejado você cancela a compra do combustível.
DanielMatrix is offline   Reply With Quote
Old 10/02/2019, 08:34 PM   #3
PedroH
Huge Clucker
 
Join Date: Jul 2017
Posts: 279
Reputation: 3
Default Re: Cálculo de diferença preço da Gasolina

Tem um calculo mas eu não me lembro agora, voce pode fazer isso amigo:
PHP Code:
 new quantTemLitrosCarro 10quantLitrosAbastecer 30quantidadeAbasteceu 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 Code:
    new quantTemLitrosCarro 60quantLitrosAbastecer 50quantidadeAbasteceu;
    
quantidadeAbasteceu quantLitrosAbastecer;
    if((
quantTemLitrosCarro quantLitrosAbastecer) > 70)
        
quantidadeAbasteceu = (quantTemLitrosCarro quantLitrosAbastecer) ? (quantTemLitrosCarro quantLitrosAbastecer) : (quantLitrosAbastecer quantTemLitrosCarro); 

Last edited by PedroH; 10/02/2019 at 10:49 PM.
PedroH is offline   Reply With Quote
Old 11/02/2019, 02:03 AM   #4
wearLy
Big Clucker
 
wearLy's Avatar
 
Join Date: Jun 2018
Location: SA-MP
Posts: 88
Reputation: 15
Default Re: Cálculo de diferença preço da Gasolina

PHP Code:
#define         MAX_COMBUSTIVEL         70
#define         VALOR_COMBUSTIVEL       3

new quantCombustivel strval(inputtext), string[64],
    
completarTanque MAX_COMBUSTIVEL Dados[playerid][pGasosa]
;
    
if (
quantCombustivel >= completarTanquequantCombustivel 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(string64"Você abasteceu %d litros de combustível por $%d"quantCombustivelquantia);
SendClientMessage(playerid, -1string);
        
Dados[playerid][pGasosa] += quantCombustivel;
      
if (
Dados[playerid][pGasosa] > 70) return Dados[playerid][pGasosa] = 70false;

Retirada[playerid] = 0Avisado[playerid] = false;
Dados[playerid][pDinheiro] -= quantia;
TogglePlayerControllable(playeridtrue);
        
return 
true
__________________
_



"Abra sua mente"

Last edited by wearLy; 11/02/2019 at 10:59 AM.
wearLy is offline   Reply With Quote
Old 11/02/2019, 02:58 PM   #5
Japis
Big Clucker
 
Join Date: Mar 2017
Posts: 117
Reputation: 0
Default Re: Cálculo de diferença preço da Gasolina

Obrigado pelo apoio pessoal, acredito que com estas bases ficará mais fácil para adicionar no sistema da gm obrigado a todos os envolvidos.
Japis is offline   Reply With Quote
Old 11/02/2019, 04:02 PM   #6
AutoMatic2
Huge Clucker
 
AutoMatic2's Avatar
 
Join Date: Apr 2018
Posts: 316
Reputation: 7
Default Re: Cálculo de diferença preço da Gasolina

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 Code:
if(dialogid == DIALOG_ABASTECER)
{
    if(
response)
    {
        new 
Litros strval(inputtext), string[120], Quantia Litros*floatround(5.0);

        if(!
strval(inputtext))
        {
            
ShowPlayerDialog(playeridDIALOG_ABASTECERDIALOG_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(playeridVermelho"| ERRO | Quantidade Inválida!");
            return 
1;
        }
        if(
strfind(inputtext"-"true) != -1)
        {
            
ShowPlayerDialog(playeridDIALOG_ABASTECERDIALOG_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(playeridVermelho"| ERRO | Quantidade Inválida!");
            return 
1;
        }
        if(
GetPlayerMoney(playerid) < Quantia)
           {
            
SendClientMessage(playeridVermelho"| ERRO | Você não tem todo esse dinheiro para pagar o frentista!");
            return 
1;
        }
        if(
Litros Gasolina[GetPlayerVehicleID(playerid)] <= 70)
        {
            
format(stringsizeof(string), "| INFO | Você completou seu tanque com %d litros por {008000}$%d"LitrosQuantia);
            
SendClientMessage(playeridAzulstring);
            
Gasolina[GetPlayerVehicleID(playerid)] += Litros;
            
GivePlayerMoney(playerid, - Quantia);
            
TogglePlayerControllable(playeridtrue);
            
Retirada[playerid] = 0;
        }
    }
    return 
1;

Ou use apenas essa parte:

PHP Code:
if(Litros Gasolina[GetPlayerVehicleID(playerid)] <= 70
AutoMatic2 is online now   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off


Similar Threads
Thread Thread Starter Forum Replies Last Post
Como seto Preço da gasolina por litros? JoaoPareja Português/Portuguese 5 28/11/2016 07:07 PM
[Ajuda] Cálculo EditPawn Português/Portuguese 4 20/12/2015 10:00 PM
[Off] Ajuda com cálculo lucas_mdr1235 Português/Portuguese 10 22/03/2014 08:12 PM
[Pedido] queria o comando de /soltar [id] [preço] o meu so n tem [preço] Junior_Cunha Português/Portuguese 4 28/07/2012 01:03 PM
[Ajuda] Sistema de preco da gasolina gustavodrift Português/Portuguese 2 14/07/2011 06:47 PM


All times are GMT. The time now is 09:57 PM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.