[Ajuda] Bug em funзгo que da dinheiro
#1

PESSOAL EU TAVA VENDO NO MEU GM tem um bug de uma funзгo samp que ela dar dinheiro exempo:

pawn Код:
if(strcmp(cmd, "/precocasa", true) == 0)
    {
        new preco;

        if(sscanf(cmdtext, "s[11]d", cmd, preco))
        {
            SendClientMessage(playerid, Vermelho, "/precocasa [preзo]");
            return 1;
        }
        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), PASTA_CASAS, c);
            if(dini_Exists(string))
            {
                if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
                {
                    if(pAdmin[playerid] > 6)
                    {
                        dini_IntSet(string, "Preco", preco);

                        format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}%s\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}%s\n{33AAFF}Valor: {FFFFFF}$%d", c, dini_Get(string, "Dono"), dini_Get(string, "DataSet"), dini_Get(string, "Morador"), preco);
                        UpdateDynamic3DTextLabelText(ctextoid[c], -1, STRX);
                        return 1;
                    }
                    else
                    {
                        SendClientMessage(playerid, Vermelho, "Vocк nгo tem permissгo.");
                        return 1;
                    }
                }
            }
        }
        return 1;

ai o poblema e o seguinte o muleque digita : /precocasa -1000000 > e ele ganha 1000000 tem algum jeito de corrigir esse bug ! ?
Reply
#2

if(preco < 1) return SendClientMessage(playerid, -1, "Sem bugar o seu NOOB");

tenta assim!
Reply
#3

no caso assim

pawn Код:
if(strcmp(cmd, "/precocasa", true) == 0)
    {
        new preco;

        if(sscanf(cmdtext, "s[11]d", cmd, preco))
        {
            SendClientMessage(playerid, Vermelho, "/precocasa [preзo]");
            return 1;
        }
        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), PASTA_CASAS, c);
            if(dini_Exists(string))
            {
                if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
                {
                    if(pAdmin[playerid] > 6)
                    {
                        if(preco < 1)
                        {
                            SendClientMessage(playerid, -1, "Sem bugar o seu NOOB");
                        }
                        else
                        {
                            dini_IntSet(string, "Preco", preco);
                        }
                        format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}%s\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}%s\n{33AAFF}Valor: {FFFFFF}$%d", c, dini_Get(string, "Dono"), dini_Get(string, "DataSet"), dini_Get(string, "Morador"), preco);
                        UpdateDynamic3DTextLabelText(ctextoid[c], -1, STRX);
                        return 1;
                    }
                    else
                    {
                        SendClientMessage(playerid, Vermelho, "Vocк nгo tem permissгo.");
                        return 1;
                    }
                }
            }
        }
        return 1;
    }
Reply
#4

Tф muito tempo sem mexer em sa-mp voltando agora

mas acho que poderar te ajudar

pawn Код:
dini_IntSet(string, "Preco", preco+1000000)-1000000;
Reply
#5

Quote:
Originally Posted by Dieguinho
Посмотреть сообщение
no caso assim

pawn Код:
if(strcmp(cmd, "/precocasa", true) == 0)
    {
        new preco;

        if(sscanf(cmdtext, "s[11]d", cmd, preco))
        {
            SendClientMessage(playerid, Vermelho, "/precocasa [preзo]");
            return 1;
        }
        for(new c = 0; c < MAX_CASAS; c++)
        {
            format(string, sizeof(string), PASTA_CASAS, c);
            if(dini_Exists(string))
            {
                if(IsPlayerInRangeOfPoint(playerid, 2.0, dini_Float(string, "PosX"), dini_Float(string, "PosY"), dini_Float(string, "PosZ")))
                {
                    if(pAdmin[playerid] > 6)
                    {
                        if(preco < 1)
                        {
                            SendClientMessage(playerid, -1, "Sem bugar o seu NOOB");
                        }
                        else
                        {
                            dini_IntSet(string, "Preco", preco);
                        }
                        format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}%s\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}%s\n{33AAFF}Valor: {FFFFFF}$%d", c, dini_Get(string, "Dono"), dini_Get(string, "DataSet"), dini_Get(string, "Morador"), preco);
                        UpdateDynamic3DTextLabelText(ctextoid[c], -1, STRX);
                        return 1;
                    }
                    else
                    {
                        SendClientMessage(playerid, Vermelho, "Vocк nгo tem permissгo.");
                        return 1;
                    }
                }
            }
        }
        return 1;
    }
isso!

se nгo funcionar basta colocar um limite mбximo tambйm!
Reply
#6

e como ficar nesse comando ?

pawn Код:
if(strcmp("/ccar", cmd, true) == 0)
    {
        format(file, sizeof(file), PASTA_CONTAS, GetPlayerNameEx(playerid));
        if(pAdmin[playerid] > 2 || dini_Int(file, "Profissao") == Diretor)
        {
            new carid, preco, cor1, cor2,
                Float:X, Float:Y, Float:Z, Float:ang;

            if(sscanf(cmdtext, "s[6]ddD(-1)D(-1)", cmd, carid, preco, cor1, cor2))
            {
                SendClientMessage(playerid, Cinza, "Use: /ccar [id] [preзo] [cor1] [cor2]");
                return 1;
            }
            if(carid >= 400 && carid <= 611)
            {
                if(carid == 425 || carid == 469 || carid == 538 || carid == 537 || carid == 520 || carid == 449 || carid == 447 || carid == 569 || carid == 570 || carid == 432)
                {
                    SendClientMessage(playerid, tcadm, "Veнculo proibido, tente outro! | ID's = 400-611");
                    return 1;
                }
                if(IsPlayerInAnyVehicle(playerid))
                {
                    GetPlayerPos(playerid, X, Y, Z);
                    GetVehicleZAngle(GetPlayerVehicleID(playerid), ang);
                    PlayerAddConceVehicle(playerid, carid, preco, X, Y, Z, ang, cor1, cor2);


                }
                else
                {
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, ang);
                    PlayerAddConceVehicle(playerid, carid, preco, X, Y, Z, ang, cor1, cor2);
                }
            }
            else
            {
                SendClientMessage(playerid, Cinza, "Valor invбlido, tente novamente! | ID's = 400-611");
            }
        }
        else
        {
            SendClientMessage(playerid, Cinza, "Vocк nгo tem permissгo.");
        }
        return 1;
Reply
#7

Nгo entendi o porquк do jogador RECEBER 1kk. Nгo hб o GivePlayerMoney ali.

Alйm do mais, se tivesse, o jogador deveria PERDER 1kk nгo ganhar.

Enfim, nesse outro comando, eu acho que deveria ser assim:
pawn Код:
// Dentro do /ccar
                if(preco <= 0) return SendClientMessage(playerid, -1, "Preзo indisponнvel!"); // Adiciona isso
                if(carid == 425 || carid == 469 || carid == 538 || carid == 537 || carid == 520 || carid == 449 || carid == 447 || carid == 569 || carid == 570 || carid == 432)
                {
                    SendClientMessage(playerid, tcadm, "Veнculo proibido, tente outro! | ID's = 400-611");
                    return 1;
                }
                if(IsPlayerInAnyVehicle(playerid))
                {
                    GetPlayerPos(playerid, X, Y, Z);
                    GetVehicleZAngle(GetPlayerVehicleID(playerid), ang);
                    PlayerAddConceVehicle(playerid, carid, preco, X, Y, Z, ang, cor1, cor2);


                }
                else
                {
                    GetPlayerPos(playerid, X, Y, Z);
                    GetPlayerFacingAngle(playerid, ang);
                    PlayerAddConceVehicle(playerid, carid, preco, X, Y, Z, ang, cor1, cor2);
                }
Reply
#8

Quote:
Originally Posted by Rodney Francalim
Посмотреть сообщение
Nгo entendi o porquк do jogador RECEBER 1kk. Nгo hб o GivePlayerMoney ali.

Alйm do mais, se tivesse, o jogador deveria PERDER 1kk nгo ganhar.
Isso й um bug do sa-mp!
Reply
#9

Quote:
Originally Posted by ViniKuliveguisky
Посмотреть сообщение
Isso й um bug do sa-mp!
Que louco! Tava por fora disso.
Reply
#10

e pessoal como posso colocar nesse comando aki

pawn Код:
if(strcmp(cmd, "/criarcasa", true) == 0)
    {
        if(pAdmin[playerid] == 3 || pAdmin[playerid] == 4 || pAdmin[playerid] == 5 || pAdmin[playerid] == 6)
        {
            new preco, cint,
                Float:X, Float:Y, Float:Z;

            if(sscanf(cmdtext, "s[11]dd", cmd, preco, cint))
            {
                SendClientMessage(playerid, Vermelho, "/criarcasa [preзo] [interior]");
                return 1;
            }

           
            GetPlayerPos(playerid, X, Y, Z);
            PlayerCreateHause(playerid, preco, cint, X, Y, Z, GetPlayerInterior(playerid));
        }
        }
}

stock PlayerCreateHause(playerid, casapreco, casaint, Float:Xp, Float:Yp, Float:Zp, Ip)
{
    new year, month, day, data[128],
        msg[256], strc[128], strc2[128],
        casafile[128], pickupid, iconid;

    if(!(casaint <= proximoint))
    {
        format(msg, sizeof(msg), "Use um interior vбlido! | ID's = 0-%d", proximoint);
        SendClientMessage(playerid, Vermelho, msg);
        return 1;
    }
    for(new c = 0; c < MAX_CASAS; c++)
    {
        format(strc2, sizeof(strc2), PASTA_CASAS, c);
        if(casapreco <= 0) return SendClientMessage(playerid, Vermelho, "(INFO) Preзo indisponнvel!"); // Adiciona isso

        if(dini_Exists(strc2))
        {
            if(IsPlayerInRangeOfPoint(playerid, 30.0, dini_Float(strc2, "PosX"), dini_Float(strc2, "PosY"), dini_Float(strc2, "PosZ")))
            {
                SendClientMessage(playerid, Vermelho, "Nгo pode ser criada mais casa neste local.");
                return 1;
            }
            if(dini_Int(strc2, "TDono") == 3)
            {
                getdate(year, month, day);
                format(data, sizeof(data), "%d/%d/%d", day, month, year);

                dini_FloatSet(strc2, "PosX", Xp);
                dini_FloatSet(strc2, "PosY", Yp);
                dini_FloatSet(strc2, "PosZ", Zp);
                dini_IntSet(strc2, "Int", casaint);
                dini_IntSet(strc2, "IntID", Ip);
                dini_IntSet(strc2, "Mundo", c);
                dini_IntSet(strc2, "TDono", 0);
                dini_Set(strc2, "Dono", "Ninguem");
                dini_IntSet(strc2, "Preco", casapreco);
                dini_IntSet(strc2, "Trancada", 0);
                dini_IntSet(strc2, "TMorador", 0);
                dini_Set(strc2, "Morador", "Ninguem");
                dini_Set(strc2, "DataSet", data);
                pickupid = CreateDynamicPickup(1273, 1, Xp, Yp, Zp, -1, -1, -1, 200.0);
                dini_IntSet(strc2, "Id", pickupid);
                iconid = CreateDynamicMapIcon(Xp, Yp, Zp, 31, 0, -1, -1, -1, 100.0);
                dini_IntSet(strc2, "IconId", iconid);
                format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}Ninguem\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}Ninguem\n{33AAFF}Valor: {FFFFFF}$%d", c, data, casapreco);
                ctextoid[c] = CreateDynamic3DTextLabel(STRX, -1, Xp, Yp, Zp, 30.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 200.0);
                format(msg, sizeof(msg), "{FFFFFF} %s {00FFFF}Criou {FFFFFF}uma {00FFFF}Casa. {FFFFFF}Local: {00FFFF} %s, {FFFFFF} ID: {00FFFF}%d", GetPlayerNameEx(playerid), GetPlayerArea(playerid), c);
                SendClientMessageToAll(Azul, msg);
                CasaLog(msg);
                return 1;
            }
        }
    }
    if(proximacasa >= MAX_CASAS-1)
    {
        format(STRX, sizeof(STRX), "O limite de %d casas foi atingido, nгo й possнvel criar mais.", MAX_CASAS);
        SendClientMessage(playerid, Vermelho, STRX);
        return 1;
    }
    format(strc, sizeof(strc), PASTA_CASAS, proximacasa);
    if(dini_Exists(strc))
    {
        proximacasa++;
    }
    getdate(year, month, day);
    format(data, sizeof(data), "%d/%d/%d", day, month, year);
    format(casafile, sizeof(casafile), PASTA_CASAS, proximacasa);

    dini_Create(casafile);
    dini_FloatSet(casafile, "PosX", Xp);
    dini_FloatSet(casafile, "PosY", Yp);
    dini_FloatSet(casafile, "PosZ", Zp);
    dini_IntSet(casafile, "Int", casaint);
    dini_IntSet(casafile, "IntID", Ip);
    dini_IntSet(casafile, "Mundo", proximacasa);
    dini_IntSet(casafile, "TDono", 0);
    dini_Set(casafile, "Dono", "Ninguem");
    dini_IntSet(casafile, "Preco", casapreco);
    dini_IntSet(casafile, "Trancada", 0);
    dini_IntSet(casafile, "TMorador", 0);
    dini_Set(casafile, "Morador", "Ninguem");
    dini_Set(casafile, "DataSet", data);
    pickupid = CreateDynamicPickup(1273, 1, Xp, Yp, Zp, -1, -1, -1, 200.0);
    dini_IntSet(casafile, "Id", pickupid);
    iconid = CreateDynamicMapIcon(Xp, Yp, Zp, 31, 0, -1, -1, -1, 100.0);
    dini_IntSet(casafile, "IconId", iconid);
    format(STRX, sizeof(STRX), "{33AAFF}Casa ID: {FFFFFF}%d\n{33AAFF}Dono: {FFFFFF}Ninguem\n{33AAFF}Ъltimo Login: {FFFFFF}%s\n{33AAFF}Morador: {FFFFFF}Ninguem\n{33AAFF}Valor: {FFFFFF}$%d", proximacasa, data, casapreco);
    ctextoid[proximacasa] = CreateDynamic3DTextLabel(STRX, -1, Xp, Yp, Zp, 30.0, INVALID_PLAYER_ID, INVALID_VEHICLE_ID, 1, -1, -1, -1, 200.0);
    format(msg, sizeof(msg), "{FFD700}%s{FFFFFF} criou uma casa. Local: {FFD700}%s, {FFFFFF}ID: {FFD700}%d", GetPlayerNameEx(playerid), GetPlayerArea(playerid), proximacasa);
    SendClientMessageToAll(Azul, msg);
    CasaLog(msg);
    proximacasa++;
    return 1;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)