[Ajuda] Grana do Player nгo sai
#1

Olб, eu to com um problema em uma dialog de um posto, o player coloca a quantidade e talz, mas nгo sai o dinheiro que ele gastou, ele fica com o mesmo money que tinha antes de abastecer, alguem sabe como arrumar? =/

Aqui o Cуdigo:
pawn Код:
if(dialogid == DialogGasC)
    {
        Valor = strval(inputtext);
        if(VeiculosGasolina(vehicleid))
        {
            if(Valor > 100) SendClientMessage(playerid,0xFF0000AA,"(Posto)Valor mбximo para abastecer com Gasolina й 100 Litros!");
            if(dini_Int(file, "GasolinaComum") >= 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Desculpe, mas vocк jб estб com o tanque cheio!");
            if(Valor + dini_Int(file, "GasolinaComum") < 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode completar mais que 100 Litros de Gasolina no seu Tanque!");
        }
        new aname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
        format(file, sizeof(file), PASTA_CONTAS, aname);
        if(Valor < 0) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode abastecer um valor negativo!");
        Gastou = Valor * PrecoGasC;
        if(GetPlayerMoney(playerid) < Gastou) return SendClientMessage(playerid,0xFF0000AA,"(Posto) Vocк nгo tem dinheiro suficiente para Abastecer!");
        dini_IntSet(file, "GasolinaComum", dini_Int(file, "GasolinaComum") + Valor);
        format(sGas,sizeof sGas,"{FFFFFF}Vocк tinha {8080FF}%d{FFFFFF} e abasteceu {8080FF}%d. {FFFFFF}Valor pago: {8080FF}R$ %d", TCombustivel[vehicleid][GasolinaC],Valor,floatround(Gastou,floatround_round));
        ShowPlayerDialog(playerid,ExtratoCombustivel,DIALOG_STYLE_MSGBOX,"Extrato do combustнvel",sGas,"Fechar","");
        TCombustivel[vehicleid][GasolinaC] += Valor;
        GivePlayerMoney(playerid, floatround(Gastou,floatround_round));
        return 1;
    }
Reply
#2

Estб usando algum anti money hack ?
Reply
#3

pawn Код:
if(dialogid == DialogGasC)
    {
        Valor = strval(inputtext);
        if(VeiculosGasolina(vehicleid))
        {
            if(Valor > 100) SendClientMessage(playerid,0xFF0000AA,"(Posto)Valor mбximo para abastecer com Gasolina й 100 Litros!");
            if(dini_Int(file, "GasolinaComum") >= 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Desculpe, mas vocк jб estб com o tanque cheio!");
            if(Valor + dini_Int(file, "GasolinaComum") < 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode completar mais que 100 Litros de Gasolina no seu Tanque!");
        }
        new aname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
        format(file, sizeof(file), PASTA_CONTAS, aname);
        if(Valor < 0) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode abastecer um valor negativo!");
        Gastou = Valor * PrecoGasC;
        if(GetPlayerMoney(playerid) < -100) return SendClientMessage(playerid,0xFF0000AA,"(Posto) Vocк nгo tem dinheiro suficiente para Abastecer!");
        dini_IntSet(file, "GasolinaComum", dini_Int(file, "GasolinaComum") + Valor);
        format(sGas,sizeof sGas,"{FFFFFF}Vocк tinha {8080FF}%d{FFFFFF} e abasteceu {8080FF}%d. {FFFFFF}Valor pago: {8080FF}R$ %d", TCombustivel[vehicleid][GasolinaC],Valor,floatround(Gastou,floatround_round));
        ShowPlayerDialog(playerid,ExtratoCombustivel,DIALOG_STYLE_MSGBOX,"Extrato do combustнvel",sGas,"Fechar","");
        TCombustivel[vehicleid][GasolinaC] += Valor;
        GivePlayerMoney(playerid, floatround(Gastou,floatround_round));
        return 1;
    }
@EDIT
Testa esse ae ↑
Reply
#4

Cara, vocк mudou a verificaзгo se o Player tem a grana ou nгo '-'...

Tentei fazer desta forma:

pawn Код:
if(dialogid == DialogGasC)
    {
        Valor = strval(inputtext);
        if(VeiculosGasolina(vehicleid))
        {
            if(Valor > 100) SendClientMessage(playerid,0xFF0000AA,"(Posto)Valor mбximo para abastecer com Gasolina й 100 Litros!");
            if(dini_Int(file, "GasolinaComum") >= 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Desculpe, mas vocк jб estб com o tanque cheio!");
            if(Valor + dini_Int(file, "GasolinaComum") < 100) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode completar mais que 100 Litros de Gasolina no seu Tanque!");
        }
        new aname[MAX_PLAYER_NAME];
        GetPlayerName(playerid, aname, MAX_PLAYER_NAME);
        format(file, sizeof(file), PASTA_CONTAS, aname);
        if(Valor < 0) return SendClientMessage(playerid,0xFF0000AA,"(Posto)Vocк nгo pode abastecer um valor negativo!");
        Gastou = Valor * PrecoGasC;
        if(GetPlayerMoney(playerid) < Gastou) return SendClientMessage(playerid,0xFF0000AA,"(Posto) Vocк nгo tem dinheiro suficiente para Abastecer!");
        dini_IntSet(file, "GasolinaComum", dini_Int(file, "GasolinaComum") + Valor);
        format(sGas,sizeof sGas,"{FFFFFF}Vocк tinha {8080FF}%d{FFFFFF} e abasteceu {8080FF}%d. {FFFFFF}Valor pago: {8080FF}R$ %d", TCombustivel[vehicleid][GasolinaC],Valor,floatround(Gastou,floatround_round));
        ShowPlayerDialog(playerid,ExtratoCombustivel,DIALOG_STYLE_MSGBOX,"Extrato do combustнvel",sGas,"Fechar","");
        TCombustivel[vehicleid][GasolinaC] += Valor;
        GivePlayerMoney(playerid, -Gastou); //Mudei aqui
        return 1;
    }
Mas da warning 213: tag mismatch, alguem sabe o que й?
Reply
#5

Deixa, hue .
Reply
#6

linha? Do Warning
Reply
#7

Consegui arrumar essa parte, agora o problema й que se o Player comprar a gasolina, ele nгo perde o dinheiro que deveria perder, й estranho, porque se eu definir como GivePlayerMoney(playerid, -500); funciona, mas se definir como GivePlayerMoney(playerid, -Gastou); nгo funciona, alguem sabe arrumar?
Reply
#8

PrecoGasC provavelmente estб igualado a 0
Reply
#9

Se esse dialog estiver no GM tenta

pawn Код:
GivePlayerGrana(playerid, -Gastou);
Pois alguns GM muda a funзгo de money do samp
Reply
#10

Nгo й sу no posto que ta tendo o problema do GivePlayerMoney, no meu banco que to tentando fazer tambem ta dando o problema, e esta definido assim:

pawn Код:
if(dialogid == DIALOG_DEPOSITAR)
{
new MoneyBanco;
new extbanc[256];
MoneyBanco = strval(inputtext);
new aname[MAX_PLAYER_NAME];
GetPlayerName(playerid, aname, sizeof(aname));
format(file, sizeof(file), PASTA_CONTAS, aname);
if(MoneyBanco < 0) return SendClientMessage(playerid,verdel,"{32CD32}(Banco)Vocк nгo pode depositar um valor negativo!");
dini_IntSet(file, "SaldoBancario", dini_Int(file, "SaldoBancario") + MoneyBanco);
GivePlayerMoney(playerid, - MoneyBanco);
format(extbanc,sizeof extbanc,"{32CD32}Vocк depositou R$%d e seu Saldo Bancario agora й de R$%d.\n", MoneyBanco, dini_Int(file, "SaldoBancario"));
ShowPlayerDialog(playerid,ExtratoBancario,DIALOG_STYLE_MSGBOX,"Extrato Bancario",extbanc,"Fechar","");
}
Mas tambem da o mesmo problema, o player continua com o dinheiro na mгo, o dinheiro ele meio que sai e volta no mesmo tempo =/

@Edit

LOL cara heauheuheauhua Smith, muito obrigado, nem lembrei que o GM podia alterar o GivePlayerMoney para GivePlayerGrana, nem me toquei disso, valew, funcionou certinho eaheuheuhaa
Reply


Forum Jump:


Users browsing this thread: 2 Guest(s)