Portal SAMP
[Ajuda] Sistema de sequestro bugando - Versão de Impressão

+- Portal SAMP (https://portalsamp.com)
+-- Fórum: SA-MP (https://portalsamp.com/forumdisplay.php?fid=5)
+--- Fórum: Área de suporte (https://portalsamp.com/forumdisplay.php?fid=6)
+--- Tópico: [Ajuda] Sistema de sequestro bugando (/showthread.php?tid=2485)



Sistema de sequestro bugando - Biru Biru - 17/06/2022

Bom dia, amigos.

Então eu tô com a gm de um amigo aqui pra arrumar, o sistema de sequestros pra ele, ao tentar realizar a ação in game, apenas aparece "Valor deve ser entre 1.00 e 80.000" porém o valor utilizado se encaixa na demanda, sou scripter (noob) ainda e não achei erro no código do sistema, se alguém puder me auxiliar ou ajudar, fico grato.

Código: 


Código:
CMD:sequestrar(playerid, params[])
    {
        if(IsPlayerConnected(playerid))
        {
           if(PlayerInfo[playerid][pMembro] == 5 || PlayerInfo[playerid][pLider] == 5 || PlayerInfo[playerid][pMembro] == 6 || PlayerInfo[playerid][pLider] == 6 || PlayerInfo[playerid][pMembro] == 15 || PlayerInfo[playerid][pLider] == 15 || PlayerInfo[playerid][pMembro] == 16 || PlayerInfo[playerid][pLider] == 16 || PlayerInfo[playerid][pMembro] == 18 || PlayerInfo[playerid][pLider] == 18 || PlayerInfo[playerid][pMembro] == 8 || PlayerInfo[playerid][pLider] == 8
            || PlayerInfo[playerid][pMembro] == 22 || PlayerInfo[playerid][pLider] == 22 || PlayerInfo[playerid][pMembro] == 20 || PlayerInfo[playerid][pLider] == 20 || PlayerInfo[playerid][pMembro] == 19 || PlayerInfo[playerid][pLider] == 19 || PlayerInfo[playerid][pMembro] == 23 || PlayerInfo[playerid][pLider] == 23 || PlayerInfo[playerid][pMembro] == 11 || PlayerInfo[playerid][pLider] == 11 || PlayerInfo[playerid][pMembro] == 21 || PlayerInfo[playerid][pLider] == 21
            || PlayerInfo[playerid][pMembro] == 24 || PlayerInfo[playerid][pLider] == 24 || PlayerInfo[playerid][pMembro] == 26 || PlayerInfo[playerid][pLider] == 26)
            {
                if(psequestrar == 1)
                {
                    SendClientMessage(playerid,COR_GRAD2,"Sequestraram recentimente, so pode sequestrar a cada 4 minutos!");
                    return 1;
                }
                if(PlayerInfo[playerid][pCargo] < 2)
                {
                    SendClientMessage(playerid, COR_GRAD2, "Voce precisa ser acima do cargo 2 para usar este comando !");
                    return 1;
                }
                if(PlayerInfo[playerid][pLevel] < 4)
                {
                    SendClientMessage(playerid, COR_LIGHTBLUE, "Voce precisa ser level 4+ para usar este comando!");
                    return 1;
                }
                new money;
                if(sscanf(params, "u", sscanfid, money))
                {
                    SendClientMessage(playerid, COR_GRAD2, "{ffffff} USE: /sequestrar [id] [quantia]");
                    return 1;
                }
                if(money < 1000 || money > 80000) { SendClientMessage(playerid, COR_GREY, "O valor requisitado no sequestro deve ser entre R$1.000 e R$80.000 !"); return true; }
                if(IsPlayerConnected(sscanfid))
                {
                    if(sscanfid != INVALID_PLAYER_ID)
                    {
                        new car = GetPlayerVehicleID(playerid);
                        if(IsPlayerInAnyVehicle(playerid) && GetPlayerState(playerid) == 2 && IsPlayerInVehicle(sscanfid, car))
                        {
                            if(sscanfid == playerid)
                            {
                                SendClientMessage(playerid, COR_GREY, "Voce nao pode se sequestrar !");
                                return true;
                            }
                            if(PlayerInfo[sscanfid][pLevel] <= 4)
                            {
                                SendClientMessage(playerid, COR_GRAD1, "Voce nao pode sequestrar jogadores abaixo do level 4!");
                                return 1;
                            }
                            if(GetPlayerOrg(sscanfid) == GetPlayerOrg(playerid))
                            {
                                SendClientMessage(playerid, COR_GRAD1, "Voce nao pode usar este comando na sua propria org!");
                                return 1;
                            }
                            new dinheirovitima = GetPlayerMoneyEx(sscanfid);
                            GetPlayerName(sscanfid, giveplayerZCMD, sizeof(giveplayerZCMD));
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            GivePlayerMoneyEx(sscanfid, - dinheirovitima);
                            format(stringZCMD, sizeof(stringZCMD), "* Voce foi sequestrado por %s, e perdeu todo o seu dinheiro que tinha na mao, e perdeu seu celular!", sendername);
                            SendClientMessage(sscanfid, COR_LIGHTBLUE, stringZCMD);
                            GivePlayerMoneyEx(playerid, dinheirovitima);
                            format(stringZCMD, sizeof(stringZCMD), "* Voce sequestrou %s e recebeu [%d] que ele tinha nas maos.", giveplayerZCMD, dinheirovitima);
                            SendClientMessage(playerid, COR_LIGHTBLUE, stringZCMD);
                            format(stringZCMD, sizeof(stringZCMD), "[Sequestro %s]: %s sequestrou %s[%d] e quer R$[%d] para liberta-lo.", NomeORG(playerid), sendername ,giveplayerZCMD,sscanfid, money);
                            SendClientMessageToAll(GetPlayerColor(playerid), stringZCMD);
                            GetPlayerName(playerid, sendername, sizeof(sendername));
                            GameTextForPlayer(sscanfid, "~r~Sequestrado", 2500, 3);
                            psequestrar = 1;
                            PlayerCuffed[sscanfid] = 2;
                            SetPlayerAttachedObject(sscanfid, 9, 19418, 6, -0.031999, 0.024000,-0.024000,-7.900000,-32.000011,-72.299987, 1.115998, 1.322000, 1.406000);
                            SetPlayerSpecialAction(sscanfid, 24);
                            Sequestrado[sscanfid] = 1;
                            PlayerInfo[sscanfid][pPnumber] = 0;
                            TempoSequestrar = SetTimer("Sequestrar",186000, 0);
                            PlayerMutado[sscanfid] = 1;
                            PlayerInfo[playerid][pSequestros] ++;
                        }
                        else
                        {
                            SendClientMessage(playerid, COR_GREY, "O Jogador nao esta em seu carro, ou Voce nao e o motorista !");
                        }
                    }
                }
                else
                {
                    SendClientMessage(playerid, 0xfa4c4cff, "{fa4c4c}ERRO: {ffffff}nao ha nenhum jogador on-line com esse ID/Nick!");
                }
            }
            else
            {
                SendClientMessage(playerid, COR_GREY, "Voce nao e um Gangster !");
            }
        }
        return true;
    }



RE: Sistema de sequestro bugando - White_Blue - 17/06/2022

Tente fazer a seguinte mudança na condicional do limite de dinheiro para ver se o mesmo funciona.
Código PHP:
if(money 1000 || money 80000) return SendClientMessage(playeridCOR_GREY"O valor requisitado no sequestro deve ser entre R$1.000 e R$80.000 !"); 



RE: Sistema de sequestro bugando - Dr Editor - 17/06/2022

Jovem, falta o especificador numérico na função sscanf:
Código:
if(sscanf(params, "ui", sscanfid, money))



RE: Sistema de sequestro bugando - CoelhaO_LokaO - 17/06/2022

if(sscanf(params, "u", sscanfid, money))

troca por

if(sscanf(params, "ui", sscanfid, money))


e coloca o if

if(money < 1000 || money > 80000) return SendClientMessage(playerid, COR_GREY, "O valor requisitado no sequestro deve ser entre R$1.000 e R$80.000 !");


RE: Sistema de sequestro bugando - Biru Biru - 17/06/2022

Muito Obrigado a todos por ajudarem no errinho, finalmente consegui consertar.


RE: Sistema de sequestro bugando - agi.exe - 18/06/2022

GG