[Ajuda] Sistema de combustivel
#1

Galera estou usando esse sistema de combustivel, quando ele abastece cobra 1,00 por litro queria saber como colocar preзos diferente

pawn Код:
if( !strcmp( cmd, "/abastecer", true ))
    {
    tmp = strtok( cmdtext, idx );
    if( !strlen( tmp ))
    {
    SendClientMessage(playerid, Vermelho, "[ ERRO ] /Abastecer [TIPO] [QUANTIDADE]");
    SendClientMessage(playerid, Vermelho, "• Ex.: /Abastecer [G] [100]");
    SendClientMessage(playerid, Vermelho, "[ ! ] ( G = Gasolina ) & ( E = Etanol ) & ( D = Diesel )");
    return 1;
    }
    else if( !strcmp( tmp, "e", true ))
    {
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), PASTA_CONTAS, aname);
    new quantidade;
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(IsPlayerInAnyVehicle(playerid) == 0){
    SendClientMessage(playerid, Vermelho,"[ ! ] Para vocк abastecer, precisarб estar em um veнculo!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
    SendClientMessage(playerid, Vermelho, "[ ERRO ] /Abastecer [Quantidade] [Tipo]");
    SendClientMessage(playerid, Vermelho, "• Ex.: /Abastecer [G] [100]");
    SendClientMessage(playerid, Vermelho, "[ ! ] ( G = Gasolina ) & ( E = Etanol ) & ( D = Diesel )");
    return 1;
    }
    if(dini_Int(file ,"CartaoOn") == 0){
    quantidade = strval(tmp);
    if(quantidade <= 0 || GetPlayerGrana(playerid) < quantidade){
    SendClientMessage(playerid, Vermelho,"[ ! ] Vocк nгo podera abastecer, seu dinheiro nгo da para pagar o Posto!");
    return 1;
    }
    }
    if(dini_Int(file ,"CartaoOn") == 1){
    quantidade = strval(tmp);
    if(quantidade <= 0 || dini_Int(file, "SaldoBancario" )< quantidade) {
    SendClientMessage(playerid, Vermelho,"[ ! ] Saldo bancбrio insuficiente para pagar o Posto, use: /CartaoOff para desativa-lo!");
    return 1;
    }
    }
    if(strfind(tmp, "-", true) != -1)
    {
    SendClientMessage(playerid, Vermelho,"[ ! ] Valor invбlido!");
    return 1;
    }
    quantidade = strval(tmp);
    format(string, sizeof(string), "/Servidor/posto%d.ini", qual[playerid]);
    if(dini_Int(string, "Gasolina") > quantidade-1){
    if(AreaPosto[0][playerid] == true  || AreaPosto[1][playerid] == true || AreaPosto[2][playerid] == true || AreaPosto[3][playerid] == true || AreaPosto[4][playerid] == true
    || AreaPosto[5][playerid] == true || AreaPosto[6][playerid] == true || AreaPosto[7][playerid] == true || AreaPosto[8][playerid] == true || AreaPosto[9][playerid] == true
    || AreaPosto[10][playerid] == true || AreaPosto[11][playerid] == true || AreaPosto[12][playerid] == true || AreaPosto[13][playerid] == true || AreaPosto[14][playerid] == true
    || AreaPosto[15][playerid] == true || AreaPosto[16][playerid] == true){
    if(quantidade + dini_Int(file, "Alcool") < 100){
    dini_IntSet(file, "Alcool", dini_Int(file, "Alcool") + quantidade);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-quantidade);
    format(string, sizeof(string), "[ ! ] Vocк colocou %d Litros de Etanol!", quantidade);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portanto foi descontado da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantidade);
    }
    return 1;
    }
    if(quantidade + dini_Int(file, "Alcool")){
    new quantia;
    quantia = 100 - dini_Int(file, "Alcool");
    dini_IntSet(file, "Alcool", 100);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-100);
    format(string, sizeof(string), "[ ! ] Tanque completo, foram colocados %d Litros", quantia);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portando foi descontando da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantia);
    }
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Vocк nгo estб em um Posto de Combustivel!");
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Esse posto estб sem Combustivel, pois procure-o outro Posto, ou chame um Petroleiro(a) para abastece-lo!");
    }
    }
    else if( !strcmp( tmp, "g", true ))
    {
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), PASTA_CONTAS, aname);
    new quantidade;
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(IsPlayerInAnyVehicle(playerid) == 0){
    SendClientMessage(playerid, Vermelho,"[ ! ] Para vocк abastecer, precisarб estar em um veнculo!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
    SendClientMessage(playerid, Vermelho, "[ ERRO ] /Abastecer [Quantidade] [Tipo]");
    SendClientMessage(playerid, Vermelho, "• Ex.: /Abastecer [G] [100]");
    SendClientMessage(playerid, Vermelho, "[ ! ] ( G = Gasolina ) & ( E = Etanol ) & ( D = Diesel )");
    return 1;
    }
    if(dini_Int(file ,"CartaoOn") == 0){
    quantidade = strval(tmp);
    if(quantidade <= 0 || GetPlayerGrana(playerid) < quantidade){
    SendClientMessage(playerid, Vermelho,"[ ! ] Vocк nгo podera abastecer, seu dinheiro nгo da para pagar o Posto!");
    return 1;
    }
    }
    if(dini_Int(file ,"CartaoOn") == 1){
    quantidade = strval(tmp);
    if(quantidade <= 0 || dini_Int(file, "SaldoBancario" )< quantidade) {
    SendClientMessage(playerid, Vermelho,"[ ! ] Saldo bancбrio insuficiente para pagar o Posto, use: /CartaoOff para desativa-lo!");
    return 1;
    }
    }
    if(strfind(tmp, "-", true) != -1)
    {
    SendClientMessage(playerid, Vermelho,"[ ! ] Valor invбlido!");
    return 1;
    }
    quantidade = strval(tmp);
    format(string, sizeof(string), "/Servidor/posto%d.ini", qual[playerid]);
    if(dini_Int(string, "Gasolina") > quantidade-1){
    if(AreaPosto[0][playerid] == true  || AreaPosto[1][playerid] == true || AreaPosto[2][playerid] == true || AreaPosto[3][playerid] == true || AreaPosto[4][playerid] == true
    || AreaPosto[5][playerid] == true || AreaPosto[6][playerid] == true || AreaPosto[7][playerid] == true || AreaPosto[8][playerid] == true || AreaPosto[9][playerid] == true
    || AreaPosto[10][playerid] == true || AreaPosto[11][playerid] == true || AreaPosto[12][playerid] == true || AreaPosto[13][playerid] == true || AreaPosto[14][playerid] == true
    || AreaPosto[15][playerid] == true || AreaPosto[16][playerid] == true){
    if(quantidade + dini_Int(file, "Combustivel") < 100){
    dini_IntSet(file, "Combustivel", dini_Int(file, "Combustivel") + quantidade);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-quantidade);
    format(string, sizeof(string), "[ ! ] Vocк colocou %d Litros de Gasolina!", quantidade);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portanto foi descontado da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantidade);
    }
    return 1;
    }
    if(quantidade + dini_Int(file, "Combustivel")){
    new quantia;
    quantia = 100 - dini_Int(file, "Combustivel");
    dini_IntSet(file, "Combustivel", 100);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-100);
    format(string, sizeof(string), "[ ! ] Tanque completo, foram colocados %d Litros", quantia);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portando foi descontando da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantia);
    }
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Vocк nгo estб em um Posto de Combustivel!");
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Esse posto estб sem Combustivel, pois procure-o outro Posto, ou chame um Petroleiro(a) para abastece-lo!");
    }
    }
    else if( strcmp( tmp, "d", true ) == 0 )
    {
    new aname[MAX_PLAYER_NAME];
    GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
    format(file, sizeof(file), PASTA_CONTAS, aname);
    new quantidade;
    new pName[MAX_PLAYER_NAME];
    GetPlayerName(playerid,pName,sizeof(pName));
    if(IsPlayerInAnyVehicle(playerid) == 0){
    SendClientMessage(playerid, Vermelho,"[ ! ] Para vocк abastecer, precisarб estar em um veнculo!");
    return 1;
    }
    tmp = strtok(cmdtext, idx);
    if(!strlen(tmp)){
    SendClientMessage(playerid, Vermelho, "[ ERRO ] /Abastecer [Quantidade] [Tipo]");
    SendClientMessage(playerid, Vermelho, "• Ex.: /Abastecer [G] [100]");
    SendClientMessage(playerid, Vermelho, "[ ! ] ( G = Gasolina ) & ( E = Etanol ) & ( D = Diesel )");
    return 1;
    }
    if(dini_Int(file ,"CartaoOn") == 0){
    quantidade = strval(tmp);
    if(quantidade <= 0 || GetPlayerGrana(playerid) < quantidade){
    SendClientMessage(playerid, Vermelho,"[ ! ] Vocк nгo podera abastecer, seu dinheiro nгo da para pagar o Posto!");
    return 1;
    }
    }
    if(dini_Int(file ,"CartaoOn") == 1){
    quantidade = strval(tmp);
    if(quantidade <= 0 || dini_Int(file, "SaldoBancario" )< quantidade) {
    SendClientMessage(playerid, Vermelho,"[ ! ] Saldo bancбrio insuficiente para pagar o Posto, use: /CartaoOff para desativa-lo!");
    return 1;
    }
    }
    if(strfind(tmp, "-", true) != -1)
    {
    SendClientMessage(playerid, Vermelho,"[ ! ] Valor invбlido!");
    return 1;
    }
    quantidade = strval(tmp);
    format(string, sizeof(string), "/Servidor/posto%d.ini", qual[playerid]);
    if(dini_Int(string, "Gasolina") > quantidade-1){
    if(AreaPosto[0][playerid] == true  || AreaPosto[1][playerid] == true || AreaPosto[2][playerid] == true || AreaPosto[3][playerid] == true || AreaPosto[4][playerid] == true
    || AreaPosto[5][playerid] == true || AreaPosto[6][playerid] == true || AreaPosto[7][playerid] == true || AreaPosto[8][playerid] == true || AreaPosto[9][playerid] == true
    || AreaPosto[10][playerid] == true || AreaPosto[11][playerid] == true || AreaPosto[12][playerid] == true || AreaPosto[13][playerid] == true || AreaPosto[14][playerid] == true
    || AreaPosto[15][playerid] == true || AreaPosto[16][playerid] == true){
    if(quantidade + dini_Int(file, "Combustivel2") < 100){
    dini_IntSet(file, "Combustivel2", dini_Int(file, "Combustivel2") + quantidade);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-quantidade);
    format(string, sizeof(string), "[ ! ] Vocк colocou %d Litros de Diesel!", quantidade);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portanto foi descontado da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantidade);
    }
    return 1;
    }
    if(quantidade + dini_Int(file, "Combustivel2")){
    new quantia;
    quantia = 100 - dini_Int(file, "Combustivel2");
    dini_IntSet(file, "Combustivel2", 100);
    dini_IntSet(string, "Gasolina", dini_Int(string, "Gasolina")-100);
    format(string, sizeof(string), "[ ! ] Tanque completo, foram colocados %d Litros", quantia);
    SendClientMessage(playerid, Verde, string);
    if(dini_Int(file ,"CartaoOn") == 1){
    dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario")- quantidade);
    SendClientMessage(playerid, VerdeClaro, "[ ! ] Seu cartгo bancбrio estava ativado, e o Posto foi pago com ele. Portando foi descontando da sua Conta Bancaria!");
    }else{
    GivePlayerGrana(playerid, - quantia);
    }
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Vocк nгo estб em um Posto de Combustivel!");
    return 1;
    }
    }else{
    SendClientMessage(playerid, Vermelho, "[ ! ] Esse posto estб sem Combustivel, pois procure-o outro Posto, ou chame um Petroleiro(a) para abastece-lo!");
    }
    }
    return 1;
    }
Reply
#2

Bom, o sistema cobra por quantidade colocada, a variбvel:
PHP код:
quantidade 
й responsбvel pelo preзo a pagar, sugiro que defina uma segunda variбvel com um valor fixo, e adiciona a soma do valor a pagar:
PHP код:
new priceCombustivel 3
E nas linhas onde ocorrem a cobranзa acrescente esta variбvel criada mais a quantidade:
PHP код:
//quantidade + priceCombustivel
new pricetotal quantidade priceCombustivel;
dini_IntSet(file"SaldoBancario"dini_Int(file"SaldoBancario")- pricetotal ); 
Isto й sу um exemplo adeque ao seu cуdigo.
Bom desenvolvimento.
Reply
#3

Quote:
Originally Posted by MtC
Посмотреть сообщение
Bom, o sistema cobra por quantidade colocada, a variбvel:
PHP код:
quantidade 
й responsбvel pelo preзo a pagar, sugiro que defina uma segunda variбvel com um valor fixo, e adiciona a soma do valor a pagar:
PHP код:
new priceCombustivel 3
E nas linhas onde ocorrem a cobranзa acrescente esta variбvel criada mais a quantidade:
PHP код:
//quantidade + priceCombustivel
new pricetotal quantidade priceCombustivel;
dini_IntSet(file"SaldoBancario"dini_Int(file"SaldoBancario")- pricetotal ); 
Isto й sу um exemplo adeque ao seu cуdigo.
Bom desenvolvimento.
krl mano quebrei a cabeзa aki mais entedi vlw me ajudou pakas +rap ^^
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)