[Ajuda] Me ajudem com esse Bug Pfv
#1

Fala pessoal, estou com uns probelmas... Nгo estб verificando se o Player estб preso, se estб offline. E tambйm parece que sу manda para o ID 0 a mensagem pra aceita ou recusa o ajuste. Eu nгo sei se estб criado da melhor forma... mas se alguйm puder ajudar eu agradeзo.
PHP код:

new AdvId[MAX_PLAYERS];
new 
Preso_Dialog[MAX_PLAYERS][MAX_PLAYERS];
// OnPlayerConnect
AdvId[playerid] = 999;
//----------------------------------//
    
if(dialogid == D_AjusteP)
    {
        if(!
response)
        {
            
SendClientMessage(playerid, COLOR_GRAD2, "Voce cancelou o menu de advogados.");
            return 
1;
        }
        if(!
strlen(inputtext)) return ShowAdvogado(playerid, GetPVarInt(playerid, "IDDialogPresos"));
        if(!
IsNumeric(inputtext)) return SendClientMessage(playerid, COLOR_GRAD1, "Digite apenas numeros !");
        
        if(
AdvId[Preso_Dialog[playerid][strlen(inputtext)]] != 999)
            return 
SendClientMessage(playerid, COLOR_GRAD1, "Este preso ja esta negociando com um advogado.");
            
        if(
PlayerInfo[Preso_Dialog[playerid][strlen(inputtext)]][pAjustado])
            return 
SendClientMessage(playerid, COLOR_GRAD1, "Este preso ja foi ajustado por outro advogado.");
        if(!
IsPlayerConnected(Preso_Dialog[playerid][strlen(inputtext)]))
            return 
SendClientMessage(playerid, COLOR_GREY, "   Este jogador esta Offline !");
            
        if(
PlayerInfo[Preso_Dialog[playerid][strlen(inputtext)]][pJailed] < 0)
            return 
SendClientMessage(playerid, COLOR_GRAD1, "Este jogador nao esta preso !");
        
SetPVarInt(playerid, "list", strlen(inputtext));
        
AdvId[Preso_Dialog[playerid][strlen(inputtext)]] = playerid;
        
ShowPlayerDialog(playerid, D_AjusteP_2, DIALOG_STYLE_INPUT, "Quanto voce quer retirar da pena dele?",
        
"{E9ED19}OBS: Digite o numero equivalente a porcentagem\n\
        que voce deseja retirar. (Exemplo: 10).\n\n\
        {FFFFFF}Retirar: {59FA72}10 {FFFFFF}da pena\n\
        Retirar: {59FA72}20 {FFFFFF}da pena\n\
        Retirar: {59FA72}30 {FFFFFF}da pena\n\
        Retirar: {59FA72}40 {FFFFFF}da pena\n\
        Retirar: {59FA72}50 {FFFFFF}da pena\n\
        Retirar: {59FA72}60 {FFFFFF}da pena\n\
        Retirar: {59FA72}70 {FFFFFF}da pena\n"
,
        
"Continuar", " Sair");
        return 
1;
    }
    if(
dialogid == D_AjusteP_2)
    {
        if(!
response)
        {
            
AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;
            return 
SendClientMessage(playerid, COLOR_GRAD2, "Vocк cancelou o menu de advogados.");
        }
        if(
response)
        {
            if(!
strcmp(inputtext, "10"))
            {
                
SetPVarInt(playerid, "ADV_Ajust", 10);
            }
            if(!
strcmp(inputtext, "20"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 20){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 20);
            }
            if(!
strcmp(inputtext, "30"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 40){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 30);
            }
            if(!
strcmp(inputtext, "40"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 80){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 40);
            }
            if(!
strcmp(inputtext, "50"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 160){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 50);
            }
            if(!
strcmp(inputtext, "60"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 190){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 60);
            }
            if(!
strcmp(inputtext, "70"))
            {
                if(
PlayerInfo[playerid][pLawSkill] < 200){return SendClientMessage(playerid, COLOR_GRAD1, "Suas habilidades de advogado ainda nao e suficientes, use: /habilidades"), AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;}
                
SetPVarInt(playerid, "ADV_Ajust", 70);
            }
            
ShowPlayerDialog(playerid, D_AjusteP_3, DIALOG_STYLE_INPUT, "Quanto voce quer?", "Digite quanto voce quer para ajustar o preso", "Continuar", "");
        }
        return 
1;
    }
    if(
dialogid == D_AjusteP_3)
    {
        if(!
response || !strval(inputtext) || strval(inputtext) < 1000 || strval(inputtext) > 200000)
        {
              
ShowPlayerDialog(playerid, D_AjusteP_3, DIALOG_STYLE_INPUT, "Quanto voce quer?", "Digite quanto voce quer para ajustar o preso", "Continuar", "");
            return 
SendClientMessage(playerid, COLOR_GRAD1, "Preзo de R$1.000 a R$200.000");
        }
        
          
SetPVarInt(playerid, "ADV_Preco", strval(inputtext));
          
        
format(string, sizeof string,
        
"O advogado %s quer retirar %d por cento da sua pena\n\
        por R$%s, voce aceita ou nao?"
,
        
NomePlayer(playerid), GetPVarInt(playerid, "ADV_Ajust"), ConvertMoney(GetPVarInt(playerid, "ADV_Preco")));
        
ShowPlayerDialog(Preso_Dialog[playerid][GetPVarInt(playerid, "list")], D_AjusteP_4, DIALOG_STYLE_MSGBOX, "Advogado", string, "Aceitar", "Recusar");
        
format(string, sizeof string, "* Voce quer livrar %s de %d por cento de sua pena por R$%s",
        
NomePlayer(Preso_Dialog[playerid][GetPVarInt(playerid, "list")]),
        
GetPVarInt(playerid, "ADV_Ajust"), ConvertMoney(strval(inputtext)));
        
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
        return 
1;
    }
    
    if(
dialogid == D_AjusteP_4)
    {
        new 
id = AdvId[playerid];
        if(!
IsPlayerConnected(id) || PlayerInfo[id][pEmprego] != 2)return SendClientMessage(playerid, COLOR_LIGHTRED, "* Este advogado nao esta mais conectado ou nao e mais um advogado"), AdvId[playerid] = 999;
        if(
PlayerInfo[playerid][pJailTime] < 1)
            return 
SendClientMessage(playerid, COLOR_GRAD1, "Voce nao esta mais preso!");
            
        if(!
response)
        {
             
format(string, sizeof string, " * Voce recusou o advogado %s.", NomePlayer(id));
            
SendClientMessage(playerid, COLOR_LIGHTRED, string);
            
format(string, sizeof string, " * %s recusou seu pedido de ajuste de tempo de prisao.", NomePlayer(playerid));
            
SendClientMessage(id, COLOR_LIGHTRED, string);
            
AdvId[Preso_Dialog[playerid][GetPVarInt(playerid, "list")]] = 999;
            return 
1;
        }
        if(
response)
        {
            if(
GetPlayerMoney(playerid) < GetPVarInt(id, "ADV_Preco"))
               {
                
SendClientMessage(playerid, COLOR_LIGHTRED, "Voce nao pode pagar o que o advogado pediu.");
                
format(string, sizeof string, " * o preso %s nao pode pagar o que voce pediu.", NomePlayer(playerid));
                
SendClientMessage(id, COLOR_LIGHTRED, string);
                
AdvId[playerid] = 999;
                return 
1;
            }
        
            
format(string, sizeof string, " * O advogado %s retirou %d por cento da sua pena por R$%s.",
            
NomePlayer(id), GetPVarInt(id, "ADV_Ajust"),ConvertMoney(GetPVarInt(id, "ADV_Preco")));
            
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
            
format(string, sizeof string, " * Voce retirou %d por cento da pena de %s, por R$%s.", GetPVarInt(id, "ADV_Ajust"), NomePlayer(playerid), ConvertMoney(GetPVarInt(id, "ADV_Preco")));
            
SendClientMessage(id, COLOR_LIGHTBLUE, string);
            
GivePlayerMoney(playerid, -GetPVarInt(id, "ADV_Preco"));
            
GivePlayerMoney(id, GetPVarInt(id, "ADV_Preco"));
            
PlayerInfo[playerid][pAjustado] = true;
            new 
time = PlayerInfo[playerid][pJailTime];
            new 
ajust = GetPVarInt(id, "ADV_Ajust");
            
PlayerInfo[playerid][pJailTime] = (time) - (time*ajust/100);
            
            
PlayerInfo[id][pLawSkill] ++;
            if(
PlayerInfo[id][pLawSkill] == 20)
            {
                   
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 30 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 40)
            {
                   
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 40 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 100)
            {
                
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 50 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 150)
            {
                
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 60 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 250)
            {
                
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 70 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 370)
            {
                
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 80 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 500)
            {
                
SendClientMessage(playerid, COLOR_YELLOW, "** Voce agora pode livrar presos em ate 90 por cento da pena **");
            }
        }
        
AdvId[playerid] = 999;
        return 
true;
    }
stock ShowAdvogado(playerid, delegacia)
{
    if(
PlayerInfo[playerid][pEmprego] == 2 && !PlayerInfo[playerid][pJailed])
    {
        new 
string[150];
        new 
In_Preso = 0;
        
MEGAString[0] = EOS;
        for(new 
i = 0; i < MAX_PLAYERS; i++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
PlayerInfo[i][pJailed] == delegacia)
                {
                    
Preso_Dialog[playerid][In_Preso] = i;
                    
                    
format(string, sizeof string, "ID: %d   Preso: %s\n", i, NomePlayer(i));
                    
strcat(MEGAString, string);
                    
In_Preso ++;
                }
            }
        }
        if(
In_Preso == 0)return SendClientMessage(playerid, COLOR_GRAD1, "Ninguem esta preso nessa delegacia.");
        
ShowPlayerDialog(playerid, D_AjusteP, DIALOG_STYLE_INPUT, "Presos nessa delegacia", MEGAString, "Ajustar", "Fechar");
    }
    else 
SendClientMessage(playerid, COLOR_GRAD1, "Voce nao e um advogado.");
    return 
true;
} 
Reply
#2

Use INVALID_PLAYER_ID ao invйs de 999
Reply
#3

Quote:
Originally Posted by RenanMsV
Посмотреть сообщение
Use INVALID_PLAYER_ID ao invйs de 999
Para checar se o advogado digitar um ID que nгo esteja no servidor?
Reply
#4

HELP ;-;
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)