[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(playeridCOLOR_GRAD2"Voce cancelou o menu de advogados.");
            return 
1;
        }
        if(!
strlen(inputtext)) return ShowAdvogado(playeridGetPVarInt(playerid"IDDialogPresos"));
        if(!
IsNumeric(inputtext)) return SendClientMessage(playeridCOLOR_GRAD1"Digite apenas numeros !");
        
        if(
AdvId[Preso_Dialog[playerid][strlen(inputtext)]] != 999)
            return 
SendClientMessage(playeridCOLOR_GRAD1"Este preso ja esta negociando com um advogado.");
            
        if(
PlayerInfo[Preso_Dialog[playerid][strlen(inputtext)]][pAjustado])
            return 
SendClientMessage(playeridCOLOR_GRAD1"Este preso ja foi ajustado por outro advogado.");
        if(!
IsPlayerConnected(Preso_Dialog[playerid][strlen(inputtext)]))
            return 
SendClientMessage(playeridCOLOR_GREY"   Este jogador esta Offline !");
            
        if(
PlayerInfo[Preso_Dialog[playerid][strlen(inputtext)]][pJailed] < 0)
            return 
SendClientMessage(playeridCOLOR_GRAD1"Este jogador nao esta preso !");
        
SetPVarInt(playerid"list"strlen(inputtext));
        
AdvId[Preso_Dialog[playerid][strlen(inputtext)]] = playerid;
        
ShowPlayerDialog(playeridD_AjusteP_2DIALOG_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(playeridCOLOR_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(playeridCOLOR_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(playeridCOLOR_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(playeridCOLOR_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(playeridCOLOR_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(playeridCOLOR_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(playeridCOLOR_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(playeridD_AjusteP_3DIALOG_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(playeridD_AjusteP_3DIALOG_STYLE_INPUT"Quanto voce quer?""Digite quanto voce quer para ajustar o preso""Continuar""");
            return 
SendClientMessage(playeridCOLOR_GRAD1"Preзo de R$1.000 a R$200.000");
        }
        
          
SetPVarInt(playerid"ADV_Preco"strval(inputtext));
          
        
format(stringsizeof 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_4DIALOG_STYLE_MSGBOX"Advogado"string"Aceitar""Recusar");
        
format(stringsizeof 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(playeridCOLOR_LIGHTBLUEstring);
        return 
1;
    }
    
    if(
dialogid == D_AjusteP_4)
    {
        new 
id AdvId[playerid];
        if(!
IsPlayerConnected(id) || PlayerInfo[id][pEmprego] != 2)return SendClientMessage(playeridCOLOR_LIGHTRED"* Este advogado nao esta mais conectado ou nao e mais um advogado"), AdvId[playerid] = 999;
        if(
PlayerInfo[playerid][pJailTime] < 1)
            return 
SendClientMessage(playeridCOLOR_GRAD1"Voce nao esta mais preso!");
            
        if(!
response)
        {
             
format(stringsizeof string" * Voce recusou o advogado %s."NomePlayer(id));
            
SendClientMessage(playeridCOLOR_LIGHTREDstring);
            
format(stringsizeof string" * %s recusou seu pedido de ajuste de tempo de prisao."NomePlayer(playerid));
            
SendClientMessage(idCOLOR_LIGHTREDstring);
            
AdvId[Preso_Dialog[playerid][GetPVarInt(playerid"list")]] = 999;
            return 
1;
        }
        if(
response)
        {
            if(
GetPlayerMoney(playerid) < GetPVarInt(id"ADV_Preco"))
               {
                
SendClientMessage(playeridCOLOR_LIGHTRED"Voce nao pode pagar o que o advogado pediu.");
                
format(stringsizeof string" * o preso %s nao pode pagar o que voce pediu."NomePlayer(playerid));
                
SendClientMessage(idCOLOR_LIGHTREDstring);
                
AdvId[playerid] = 999;
                return 
1;
            }
        
            
format(stringsizeof 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(playeridCOLOR_LIGHTBLUEstring);
            
format(stringsizeof 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(idCOLOR_LIGHTBLUEstring);
            
GivePlayerMoney(playerid, -GetPVarInt(id"ADV_Preco"));
            
GivePlayerMoney(idGetPVarInt(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(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 30 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 40)
            {
                   
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 40 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 100)
            {
                
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 50 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 150)
            {
                
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 60 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 250)
            {
                
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 70 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 370)
            {
                
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 80 por cento da pena **");
            }
            if(
PlayerInfo[id][pLawSkill] == 500)
            {
                
SendClientMessage(playeridCOLOR_YELLOW"** Voce agora pode livrar presos em ate 90 por cento da pena **");
            }
        }
        
AdvId[playerid] = 999;
        return 
true;
    }
stock ShowAdvogado(playeriddelegacia)
{
    if(
PlayerInfo[playerid][pEmprego] == && !PlayerInfo[playerid][pJailed])
    {
        new 
string[150];
        new 
In_Preso 0;
        
MEGAString[0] = EOS;
        for(new 
0MAX_PLAYERSi++)
        {
            if(
IsPlayerConnected(i))
            {
                if(
PlayerInfo[i][pJailed] == delegacia)
                {
                    
Preso_Dialog[playerid][In_Preso] = i;
                    
                    
format(stringsizeof string"ID: %d   Preso: %s\n"iNomePlayer(i));
                    
strcat(MEGAStringstring);
                    
In_Preso ++;
                }
            }
        }
        if(
In_Preso == 0)return SendClientMessage(playeridCOLOR_GRAD1"Ninguem esta preso nessa delegacia.");
        
ShowPlayerDialog(playeridD_AjustePDIALOG_STYLE_INPUT"Presos nessa delegacia"MEGAString"Ajustar""Fechar");
    }
    else 
SendClientMessage(playeridCOLOR_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)