[Ajuda] BUG advogado consegue soltar carandiru
#1

Pessoal estou com um problema. a profissao advogado do meu gm ta conseguindo soltar presos no carandiru, de qualquer lugar.
Reply
#2

Posta o cуdigo colega.
Reply
#3

bom mais qual parte eu mando? vo manda o script do adv
pawn Код:
else if(strcmp(x_Emprego,"Advogado",true) == 0)
            {
                tmp = strtok(cmdtext, idx);
                if(!strlen(tmp))
                {
                    SendClientMessage(playerid, COLOR_GRAD2, "USE: /aceitar Advogado [id]");
                    return 1;
                }
                giveplayerid = ReturnUser(tmp);
                if (IsACop(playerid))
                {
                    if(IsPlayerConnected(giveplayerid))
                    {
                        if(giveplayerid != INVALID_PLAYER_ID)
                        {
                            if(PlayerInfo[giveplayerid][pEmprego] == 2)
                            {
                                GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                                GetPlayerName(playerid, sendername, sizeof(sendername));
                                format(string, sizeof(string), "* Vocк autorizou %s para liberar um preso.", giveplayer);
                                SendClientMessage(playerid, COLOR_LIGHTBLUE,string);
                                format(string, sizeof(string), "* Oficial %s te autorizou a soltar alguem da prisгo. (use /soltar)", sendername);
                                SendClientMessage(giveplayerid, COLOR_LIGHTBLUE,string);
                                ApprovedAdvogado[giveplayerid] = 1;
                                return 1;
                            }
                        }
                    }
                    return 1;
                }
Reply
#4

Posta o comando que o advogado usa pra libertar. Ex: /libertar
Reply
#5

pawn Код:
if(strcmp(cmd, "/soltar", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pEmprego] != 2)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo й um Advogado!");
                return 1;
            }
            if(PlayerInfo[playerid][pLawSkill] >= 400)
            {
                ApprovedAdvogado[playerid] = 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "Use: /soltar [id]");
                SendClientMessage(playerid, COLOR_GRAD2, "Obs: Vocк sу pode soltar em um Departamento de Policia!");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se libertar!"); return 1; }
                    if(PlayerInfo[giveplayerid][pJailed] >= 1 && ApprovedAdvogado[playerid] == 1)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Vocк libertou %s da cadeia.", giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* Vocк foi libertado da cadeia pelo Advogado: %s.", sendername);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                        ApprovedAdvogado[playerid] = 0;
                        WantAdvogado[giveplayerid] = 0;
                        CallAdvogado[giveplayerid] = 0;
                        JailPrice[giveplayerid] = 0;
                        PlayerInfo[giveplayerid][pJailTime] = 1;
                        PlayerInfo[playerid][pLawSkill] ++;
                        if(PlayerInfo[playerid][pLawSkill] == 50)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 2, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 100)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 3, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 200)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 4, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 400)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 5, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "   O jogador nгo precisa de advogado ou vocк estб longe dele. !");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   O jogador estб offline!");
            }
        }//not connected
        return 1;
Reply
#6

pawn Код:
if(strcmp(cmd, "/soltar", true) == 0)
{
    if(IsPlayerConnected(playerid))
    {
        if(PlayerInfo[playerid][pEmprego] != 2)
            return SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo й um Advogado!");

        if(PlayerInfo[playerid][pLawSkill] >= 400)
            ApprovedAdvogado[playerid] = 1;

        tmp = strtok(cmdtext, idx);
        if(!strlen(tmp))
        {
            SendClientMessage(playerid, COLOR_GRAD2, "Use: /soltar [id]");
            SendClientMessage(playerid, COLOR_GRAD2, "Obs: Vocк sу pode soltar em um Departamento de Policia!");
            return 1;
        }
        giveplayerid = ReturnUser(tmp);
        new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        if(!IsPlayerInRangeOfPoint(giveplayerid , 5.0, Pos[0], Pos[1], Pos[2]))
            return SendClientMessage(giveplayerid , COLOR_GRAD2, "ERRO: Vocк estб longe do jogador");

        if(IsPlayerConnected(giveplayerid))
        {
            if(giveplayerid != INVALID_PLAYER_ID)
            {
                if(giveplayerid == playerid) SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se libertar!"); return 1;
                if(PlayerInfo[giveplayerid][pJailed] >= 1 && ApprovedAdvogado[playerid] == 1)
                {
                    GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                    GetPlayerName(playerid, sendername, sizeof(sendername));
                    format(string, sizeof(string), "* Vocк libertou %s da cadeia.", giveplayer);
                    SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                    format(string, sizeof(string), "* Vocк foi libertado da cadeia pelo Advogado: %s.", sendername);
                    SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                    ApprovedAdvogado[playerid] = 0;
                    WantAdvogado[giveplayerid] = 0;
                    CallAdvogado[giveplayerid] = 0;
                    JailPrice[giveplayerid] = 0;
                    PlayerInfo[giveplayerid][pJailTime] = 1;
                    PlayerInfo[playerid][pLawSkill] ++;
                    if(PlayerInfo[playerid][pLawSkill] == 50)
                        SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 2, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos.");
                    else if(PlayerInfo[playerid][pLawSkill] == 100)
                        SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 3, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos.");
                    else if(PlayerInfo[playerid][pLawSkill] == 200)
                        SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 4, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos.");
                    else if(PlayerInfo[playerid][pLawSkill] == 400)
                        SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 5, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos.");
                }
                else
                    SendClientMessage(playerid, COLOR_GRAD1, "   O jogador nгo precisa de advogado ou vocк estб longe dele. !");
            }
        }
        else
            SendClientMessage(playerid, COLOR_GREY, "   O jogador estб offline!");
    }
    return 1;
}
Reply
#7

pawn Код:
if(strcmp(cmd, "/soltar", true) == 0)
    {
        if(IsPlayerConnected(playerid))
        {
            if(PlayerInfo[playerid][pEmprego] != 2)
            {
                SendClientMessage(playerid, COLOR_GREY, "   Vocк nгo й um Advogado!");
                return 1;
            }
            if(PlayerInfo[playerid][pLawSkill] >= 400)
            {
                ApprovedAdvogado[playerid] = 1;
            }
            tmp = strtok(cmdtext, idx);
            if(!strlen(tmp))
            {
                SendClientMessage(playerid, COLOR_GRAD2, "Use: /soltar [id]");
                SendClientMessage(playerid, COLOR_GRAD2, "Obs: Vocк sу pode soltar em um Departamento de Policia!");
                return 1;
            }
            giveplayerid = ReturnUser(tmp);
            if(IsPlayerConnected(giveplayerid))
            {
                if(giveplayerid != INVALID_PLAYER_ID)
                {
                    if(PlayerInfo[giveplayerid][pJailed] == /*changeme*/) return SendClientMessage(playerid, COLOR_GREY,"Este jogador esta no carandiru e nгo pode ser solto por advogados!");
                    if(giveplayerid == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se libertar!"); return 1; }
                    if(PlayerInfo[giveplayerid][pJailed] >= 1 && ApprovedAdvogado[playerid] == 1)
                    {
                        GetPlayerName(giveplayerid, giveplayer, sizeof(giveplayer));
                        GetPlayerName(playerid, sendername, sizeof(sendername));
                        format(string, sizeof(string), "* Vocк libertou %s da cadeia.", giveplayer);
                        SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
                        format(string, sizeof(string), "* Vocк foi libertado da cadeia pelo Advogado: %s.", sendername);
                        SendClientMessage(giveplayerid, COLOR_LIGHTBLUE, string);
                        ApprovedAdvogado[playerid] = 0;
                        WantAdvogado[giveplayerid] = 0;
                        CallAdvogado[giveplayerid] = 0;
                        JailPrice[giveplayerid] = 0;
                        PlayerInfo[giveplayerid][pJailTime] = 1;
                        PlayerInfo[playerid][pLawSkill] ++;
                        if(PlayerInfo[playerid][pLawSkill] == 50)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 2, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 100)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 3, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 200)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 4, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                        else if(PlayerInfo[playerid][pLawSkill] == 400)
                        { SendClientMessage(playerid, COLOR_YELLOW, "* Seu nнvel de advogado agora й 5, Vocк ganharб mais dinheiro e vai soltar mais rбpido os presos."); }
                    }
                    else
                    {
                        SendClientMessage(playerid, COLOR_GRAD1, "   O jogador nгo precisa de advogado ou vocк estб longe dele. !");
                    }
                }
            }
            else
            {
                SendClientMessage(playerid, COLOR_GREY, "   O jogador estб offline!");
            }
        }//not connected
        return 1;
    }
Acha o /*changeme*/ no gamemode e troca pelo numero que o pJailed recebe quando oplayer vai pro carandiru

@edit vini й mais ninja q eu D:
Reply
#8

pharrel deu certo. so que um problema, to na pm e consigo solta no bope. tentei fazer o esquema do viniborn que й coloca distancia so que eu acho que tem alguma coisa errado pq quando eu coloco o
pawn Код:
new Float:Pos[3];
        GetPlayerPos(playerid, Pos[0], Pos[1], Pos[2]);
        if(!IsPlayerInRangeOfPoint(giveplayerid , 5.0, Pos[0], Pos[1], Pos[2]))
            return SendClientMessage(giveplayerid , COLOR_GRAD2, "ERRO: Vocк estб longe do jogador");
a mensagem vocк estб longe do jogador aparece й para o preso e nao da para soltar mesmo estando perto
Reply
#9

Pega um ponto fixo, e coloca assim.

pawn Код:
if(!IsPlayerInRangeOfPoint(playerid, 5.0, X, Y, Z))
    return SendClientMessage(playerid, COLOR_GRAD2, "ERRO: Vocк estб longe da cela");
Reply
#10

Uma dъvida, vocк usa qual GM? se for GF poste o [pJailed] para sabermos qual й a variбvel do carandiru.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)