BUG no /assaltar
#1

Galera, quando o marginal vai assaltar, ele dб o /assaltar, atй ai tudo bem.
O problema й que, se ele botar 999999999999999999999999999999999 e a vitima nгo tiver, a vitima fica devendo o valor e o marginal ganha a grana.

Por favor me dкm uma luz.

pawn Код:
if(strcmp(cmd,"/assaltar",true)==0)
    {
        if(PlayerInfo[playerid][pJailed] != 0 || PlayerPaintballing[playerid] != 0)
        {
           SendClientMessage(playerid,COLOR_YELLOW," Vocк nгo pode assaltar agora!");
           return 1;
        }
        if(PlayerInfo[playerid][pMembro] != 5 && PlayerInfo[playerid][pLider] != 5 && PlayerInfo[playerid][pMembro] != 14 && PlayerInfo[playerid][pLider] != 14
        && PlayerInfo[playerid][pMembro] != 17 && PlayerInfo[playerid][pLider] != 17 && PlayerInfo[playerid][pMembro] != 18 && PlayerInfo[playerid][pLider] != 18
        && PlayerInfo[playerid][pMembro] != 19 && PlayerInfo[playerid][pLider] != 19 && PlayerInfo[playerid][pMembro] != 20 && PlayerInfo[playerid][pLider] != 20
        && PlayerInfo[playerid][pMembro] == 21 && PlayerInfo[playerid][pLider] == 21)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode usar esse comando!" );
            return 1;
        }
        if(IsPlayerConnected(playerid))
        {
            if(UsouComando[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб usou esse comando uma vez, espere mais 5 minutos!");
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
                return 1;
            }
            //giveplayerid = strval(tmp);
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
                return 1;
            }
            new money = strval(tmp);
            if(money < 1|| money > 99999999) { SendClientMessage(playerid, COLOR_GREY, " O Preзo Tem que ser entre R$ 1 e R$ 99999999!"); return 1; }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pLevel] == 2)
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode assaltar novatos!");
                        return 1;
                    }
                    if (ProxDetectorS(5.0, playerid, giveplayerid))
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Vocк estб assaltando $%d de %s.", money, giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* %s: Isso й um assalto,pague $%d! nгo seja Ant-RPG.", sendername, money);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "/aceitar assalto para aceitar");
                        format(string, sizeof(string), "*%s estб assaltando %s!", sendername,giveplayer);
                        ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        OfAssalto[giveplayerid] = playerid;
                        precoassalto[giveplayerid] = money;
                        SetPlayerCriminal(playerid,255, "Tentativa de Assalto");
                        UsouComando[playerid] = 1;
                        SetTimerEx("UsarNovamente",300000,0,"d",playerid);
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Esse jogador nгo estб perto de vocк!");
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   ID/Nome Invalido !");
                    return 1;
                }
            }
        }
        return 1;
    }
Reply
#2

pawn Код:
if(strcmp(cmd,"/assaltar",true)==0)
    {
        if(PlayerInfo[playerid][pJailed] != 0 || PlayerPaintballing[playerid] != 0)
        {
           SendClientMessage(playerid,COLOR_YELLOW," Vocк nгo pode assaltar agora!");
           return 1;
        }
        if(PlayerInfo[playerid][pMembro] != 5 && PlayerInfo[playerid][pLider] != 5 && PlayerInfo[playerid][pMembro] != 14 && PlayerInfo[playerid][pLider] != 14
        && PlayerInfo[playerid][pMembro] != 17 && PlayerInfo[playerid][pLider] != 17 && PlayerInfo[playerid][pMembro] != 18 && PlayerInfo[playerid][pLider] != 18
        && PlayerInfo[playerid][pMembro] != 19 && PlayerInfo[playerid][pLider] != 19 && PlayerInfo[playerid][pMembro] != 20 && PlayerInfo[playerid][pLider] != 20
        && PlayerInfo[playerid][pMembro] == 21 && PlayerInfo[playerid][pLider] == 21)
        {
            SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode usar esse comando!" );
            return 1;
        }
        if(IsPlayerConnected(playerid))
        {
            if(UsouComando[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб usou esse comando uma vez, espere mais 5 minutos!");
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
                return 1;
            }
            //giveplayerid = strval(tmp);
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
                return 1;
            }
            new money = strval(tmp);
            if(money < 1|| money > 99999999) { SendClientMessage(playerid, COLOR_GREY, " O Preзo Tem que ser entre R$ 1 e R$ 99999999!"); return 1; }
            if (IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pLevel] == 2)
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode assaltar novatos!");
                        return 1;
                    }
                   
                    if(GetPlayerMoney(giveplayerid) < money)
                        return SendClientMessage(playerid, COLOR_GRAD1, "A vitima nгo tem esse dinheiro.");
                       
                    if (ProxDetectorS(5.0, playerid, giveplayerid))
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Vocк estб assaltando $%d de %s.", money, giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* %s: Isso й um assalto,pague $%d! nгo seja Ant-RPG.", sendername, money);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "/aceitar assalto para aceitar");
                        format(string, sizeof(string), "*%s estб assaltando %s!", sendername,giveplayer);
                        ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        OfAssalto[giveplayerid] = playerid;
                        precoassalto[giveplayerid] = money;
                        SetPlayerCriminal(playerid,255, "Tentativa de Assalto");
                        UsouComando[playerid] = 1;
                        SetTimerEx("UsarNovamente",300000,0,"d",playerid);
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GREY, "Esse jogador nгo estб perto de vocк!");
                    }
                }
                else
                {
                    SendClientMessage(playerid, COLOR_GREY, "   ID/Nome Invalido !");
                    return 1;
                }
            }
        }
        return 1;
    }
@Edit - Pronto agora sim : )
Reply
#3

Obrigado NurbWill !!
Funcionou direitinho;
Reply
#4

Sу um jeito de organizar melhor seu script!
pawn Код:
if(!strcmp(cmd,"/assaltar",true))
    {
        if(PlayerInfo[playerid][pJailed] != 0 || PlayerPaintballing[playerid] != 0)
           return SendClientMessage(playerid,COLOR_YELLOW," Vocк nгo pode assaltar agora!");
        if(PlayerInfo[playerid][pMembro] != 5 && PlayerInfo[playerid][pLider] != 5 && PlayerInfo[playerid][pMembro] != 14 && PlayerInfo[playerid][pLider] != 14
        && PlayerInfo[playerid][pMembro] != 17 && PlayerInfo[playerid][pLider] != 17 && PlayerInfo[playerid][pMembro] != 18 && PlayerInfo[playerid][pLider] != 18
        && PlayerInfo[playerid][pMembro] != 19 && PlayerInfo[playerid][pLider] != 19 && PlayerInfo[playerid][pMembro] != 20 && PlayerInfo[playerid][pLider] != 20
        && PlayerInfo[playerid][pMembro] == 21 && PlayerInfo[playerid][pLider] == 21)
            return SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode usar esse comando!" );
        if(IsPlayerConnected(playerid))
        {
            if(UsouComando[playerid] == 1) return SendClientMessage(playerid, COLOR_GREY, "Vocк jб usou esse comando uma vez, espere mais 5 minutos!");
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
                return SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
            giveplayerid = ReturnUser(tmp);
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
                return SendClientMessage(playerid, COLOR_GRAD2, "USE: /assaltar [id] [Quantia]");
            new money = strval(tmp);
            if(money < 1|| money > 99999999) { SendClientMessage(playerid, COLOR_GREY, " O Preзo Tem que ser entre R$ 1 e R$ 99999999!"); return 1; }
            if (IsPlayerConnected(giveplayerid)) {
                if(giveplayerid != INVALID_PLAYER_ID) {
                    if(PlayerInfo[giveplayerid][pLevel] == 2)
                        return SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo pode assaltar novatos!");
                    if(GetPlayerMoney(giveplayerid) < money)
                        return SendClientMessage(playerid, COLOR_GRAD1, "A vitima nгo tem esse dinheiro.");

                    if (ProxDetectorS(5.0, playerid, giveplayerid)) {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Vocк estб assaltando $%d de %s.", money, giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* %s: Isso й um assalto,pague $%d! nгo seja Ant-RPG.", sendername, money);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, "/aceitar assalto para aceitar");
                        format(string, sizeof(string), "*%s estб assaltando %s!", sendername,giveplayer);
                        ProxDetector(20.0, playerid, string, COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE,COLOR_PURPLE);
                        OfAssalto[giveplayerid] = playerid;
                        precoassalto[giveplayerid] = money;
                        SetPlayerCriminal(playerid,255, "Tentativa de Assalto");
                        UsouComando[playerid] = 1;
                        SetTimerEx("UsarNovamente",300000,0,"d",playerid);
                    }
                    else
                        return SendClientMessage(playerid, COLOR_GREY, "Esse jogador nгo estб perto de vocк!");
                }
                else
                    return SendClientMessage(playerid, COLOR_GREY, "   ID/Nome Invalido !");
            }
        }
        return 1;
    }
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)