[Pedido] Soltar mais de perto !
#1

Olб, eu gostaria que alguйm adicionasse o cуdigo de ir mais perto do preso para poder soltar ele ! Pois aqui esta soltando de muito longe. GM da BPG

Se alguйm poder me ajudar eu agradeзo !

Quote:

if(strcmp(cmd, "/soltar", true) == 0)
{
if(!PlayerToPoint(10.0,playerid,1834.2039,-1720.7905,5202.5859))
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб na penitenciaria, ou esta muito longe do Preso !");
return 1;
}
if(PlayerInfo[playerid][pEmprego] != 2)
{
SendClientMessage(playerid, COLOR_GREY, "Vocк nгo й um advogado!");
return 1;
}
tmp = strtok(cmdtext, idx);
if(!strlen(tmp))
{
SendClientMessage(playerid, COLOR_GRAD2, "USE: /soltar [id] [preco]");
return 1;
}
if(LicencaAdvogado[playerid] == 0)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк nгo estб autorizado,pegue uma autorizaзгo !");
return 1;
}
new playa;
new money;
playa = ReturnUser(tmp);
tmp = strtok(cmdtext, idx);
money = strval(tmp);
new granapreso = GetPlayerMoneyEx(playa);
if(money < 500 || money > 5000) { SendClientMessage(playerid, COLOR_GREY, "Custo entre R$ 500 e 5000 !"); return 1; }
if(GetPlayerMoneyEx(playa) < money) { format(string, sizeof(string), "* Vocк ofereceu soltar o preso %s por R$[%d], ele sу tem R$[%d] !", PlayerName(playa), money, granapreso); SendClientMessage(playerid, COLOR_LIGHTBLUE, string); return 1; }
if(IsPlayerConnected(playa))
{
if(playa != INVALID_PLAYER_ID)
{
if(PlayerInfo[playa][pPenitenciaria] == 0)
{
if(localizarpenlv[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Este preso estб na penitenciбria de outra cidade, use /gps e vб atй lб!");
return 1;
}
}
if(PlayerInfo[playa][pPenitenciaria] == 1)
{
if(localizarpen[playerid] == 1)
{
SendClientMessage(playerid, COLOR_GRAD1, "Este preso estб na penitenciбria de outra cidade, use /gps e vб atй lб!");
return 1;
}
}
new level = PlayerInfo[playerid][pLawSkill];
if(level >= 0 && level <= 50 && PlayerInfo[playa][pJailTime] > 300)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 1, sу pode soltar presos com atй 5 minutos(300 segundos) de cadeia!");
return 1;
}
if(level >= 51 && level <= 100 && PlayerInfo[playa][pJailTime] > 420)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 2, sу pode soltar presos com atй 7 minutos(700 segundos) de cadeia!");
return 1;
}
if(level >= 101 && level <= 200 && PlayerInfo[playa][pJailTime] > 540)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 3, sу pode soltar presos com atй 9 minutos(900 segundos) de cadeia!");
return 1;
}
if(level >= 201 && level <= 300 && PlayerInfo[playa][pJailTime] > 720)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 4, sу pode soltar presos com atй 12 minutos(900 segundos) de cadeia!");
return 1;
}
//--------------Preoзo para Soltar-------------//
if(level >= 0 && level <= 50 && money > 1000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 1,sу pode cobrar atй R$1000!");
return 1;
}
if(level >= 51 && level <= 100 && money > 2000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 2,sу pode cobrar atй R$2000!");
return 1;
}
if(level >= 101 && level <= 200 && money > 3000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 3,sу pode cobrar atй R$3000!");
return 1;
}
if(level >= 201 && level <= 300 && money > 4000)
{
SendClientMessage(playerid, COLOR_GRAD1, "Vocк й advogado nivel 4,sу pode cobrar atй R$4000!");
return 1;
}
if(playa == playerid) { SendClientMessage(playerid, COLOR_GREY, "Vocк nгo pode se libertar!"); return true; }
if(PlayerInfo[playa][pJailed] == 1 || PlayerInfo[playa][pJailed] == 2
|| PlayerInfo[playa][pJailed] == 3 && LicencaAdvogado[playerid] == 1)
{
GetPlayerName(playa, giveplayer, sizeof(giveplayer));
GetPlayerName(playerid, sendername, sizeof(sendername));
format(gstring,sizeof(gstring),"* Advogado: %s ofereceu para te soltar por R$[%d]\nVocк deseja pagar R$[%d] para ser solto?", PlayerName(playerid), money, money);
ShowPlayerDialog(playa ,9,DIALOG_STYLE_MSGBOX,"Advogado",gstring,"Sim","N гo");
format(string, sizeof(string), "* Vocк ofereceu a liberdade para o preso:%s, por R$[%d] !", giveplayer, money);
SendClientMessage(playerid, COLOR_LIGHTBLUE, string);
CuraOffer[playa] = playerid;
CuraPrice[playa] = money;
}
else
{
SendClientMessage(playerid, COLOR_GRAD1, "O jogador nгo precisa de advogado ou vocк nгo tem autorizaзгo !");
}
}
}
return 1;
}

Reply
#2

Usa GetDistanceBetweenPlayers
http://pastebin.com/gTLu5eHp

PHP код:
    if(GetDistanceBetweenPlayers(plid,playerid) > 30){
    
SendClientMessage(playerid,Vermelho,"| ERRO | Vocк esta muito longe chegue mais perto.");
    return 
1;
    } 
Reply
#3

Tentei adicionar, mas nгo consegui :S... Em que linha coloco esse comando ?
Reply
#4

Coloca isto no final do GM

PHP код:
stock GetDistanceBetweenPlayers(playerid,playerid2)
{
        new 
Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;
        new 
Float:dis;
        
GetPlayerPos(playerid,x1,y1,z1);
        
GetPlayerPos(playerid2,x2,y2,z2);
        
dis floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));
        return 
floatround(dis);

E o comando fica assim (aproveitei e organizei seu cуdigo)

PHP код:
if(strcmp(cmd"/soltar"true) == 0)
{
    if(!
PlayerToPoint(10.0,playerid,1834.2039,-1720.7905,5202.5859))
    {
        
SendClientMessage(playeridCOLOR_GRAD1"Vocк nгo estб na penitenciaria, ou esta muito longe do Preso !");
        return 
1;
    }
    if(
PlayerInfo[playerid][pEmprego] != 2)
    {
        
SendClientMessage(playeridCOLOR_GREY"Vocк nгo й um advogado!");
        return 
1;
    }
    
tmp strtok(cmdtextidx);
    if(!
strlen(tmp))
    {
        
SendClientMessage(playeridCOLOR_GRAD2"USE: /soltar [id] [preco]");
        return 
1;
    }    
    if(
LicencaAdvogado[playerid] == 0)
    {
        
SendClientMessage(playeridCOLOR_GRAD1"Vocк nгo estб autorizado,pegue uma autorizaзгo !");
        return 
1;
    }
    new 
playa;
    new 
money;
    
playa ReturnUser(tmp);
    
tmp strtok(cmdtextidx);
    
money strval(tmp);
    new 
granapreso GetPlayerMoneyEx(playa);
    if(
money 500 || money 5000) { SendClientMessage(playeridCOLOR_GREY"Custo entre R$ 500 e 5000 !"); return 1; }
    if(
GetPlayerMoneyEx(playa) < money) { format(stringsizeof(string), "* Vocк ofereceu soltar o preso %s por R$[%d], ele sу tem R$[%d] !"PlayerName(playa), moneygranapreso); SendClientMessage(playeridCOLOR_LIGHTBLUEstring); return 1; }
    if(
IsPlayerConnected(playa))
    {
        if(
playa != INVALID_PLAYER_ID)
        {
            if(
GetDistanceBetweenPlayers(playa,playerid) > 20) return SendClientMessage(playeridCOLOR_GRAD1"Vocк estб muito longe! Chegue mais perto.");
            if(
PlayerInfo[playa][pPenitenciaria] == 0)
            {
                if(
localizarpenlv[playerid] == 1)
                {
                    
SendClientMessage(playeridCOLOR_GRAD1"Este preso estб na penitenciбria de outra cidade, use /gps e vб atй lб!");
                    return 
1;
                }
            }
            if(
PlayerInfo[playa][pPenitenciaria] == 1)
            {
                if(
localizarpen[playerid] == 1)
                {
                    
SendClientMessage(playeridCOLOR_GRAD1"Este preso estб na penitenciбria de outra cidade, use /gps e vб atй lб!");
                    return 
1;
                }
            }
            new 
level PlayerInfo[playerid][pLawSkill];
            if(
level >= && level <= 50 && PlayerInfo[playa][pJailTime] > 300)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 1, sу pode soltar presos com atй 5 minutos(300 segundos) de cadeia!");
                return 
1;
            }
            if(
level >= 51 && level <= 100 && PlayerInfo[playa][pJailTime] > 420)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 2, sу pode soltar presos com atй 7 minutos(700 segundos) de cadeia!");
                return 
1;
            }
            if(
level >= 101 && level <= 200 && PlayerInfo[playa][pJailTime] > 540)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 3, sу pode soltar presos com atй 9 minutos(900 segundos) de cadeia!");
                return 
1;
            }
            if(
level >= 201 && level <= 300 && PlayerInfo[playa][pJailTime] > 720)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 4, sу pode soltar presos com atй 12 minutos(900 segundos) de cadeia!");
                return 
1;
            }            
            
//--------------Preoзo para Soltar-------------//
            
if(level >= && level <= 50 && money 1000)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 1,sу pode cobrar atй R$1000!");
                return 
1;
            }
            if(
level >= 51 && level <= 100 && money 2000)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 2,sу pode cobrar atй R$2000!");
                return 
1;
            }
            if(
level >= 101 && level <= 200 && money 3000)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 3,sу pode cobrar atй R$3000!");
                return 
1;
            }
            if(
level >= 201 && level <= 300 && money 4000)
            {
                
SendClientMessage(playeridCOLOR_GRAD1"Vocк й advogado nivel 4,sу pode cobrar atй R$4000!");
                return 
1;
            }
            if(
playa == playerid) { SendClientMessage(playeridCOLOR_GREY"Vocк nгo pode se libertar!"); return true; }
            if(
PlayerInfo[playa][pJailed] == || PlayerInfo[playa][pJailed] == 2
            
|| PlayerInfo[playa][pJailed] == && LicencaAdvogado[playerid] == 1)
            {
                
GetPlayerName(playagiveplayersizeof(giveplayer));
                
GetPlayerName(playeridsendernamesizeof(sendername));
                
format(gstring,sizeof(gstring),"* Advogado: %s ofereceu para te soltar por R$[%d]\nVocк deseja pagar R$[%d] para ser solto?"PlayerName(playerid), moneymoney);
                
ShowPlayerDialog(playa ,9,DIALOG_STYLE_MSGBOX,"Advogado",gstring,"Sim","N гo");
                
format(stringsizeof(string), "* Vocк ofereceu a liberdade para o preso:%s, por R$[%d] !"giveplayermoney);
                
SendClientMessage(playeridCOLOR_LIGHTBLUEstring);
                
CuraOffer[playa] = playerid;
                
CuraPrice[playa] = money;
            }
            else
            {
                
SendClientMessage(playeridCOLOR_GRAD1"O jogador nгo precisa de advogado ou vocк nгo tem autorizaзгo !");
            }
        }
    }
    return 
1;

Reply
#5

Olha o que deu parceiro >http://prntscr.com/7ggkd3<
Reply
#6

Remove isto:

PHP код:
stock GetDistanceBetweenPlayers(playerid,playerid2

        new 
Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2
        new 
Float:dis
        
GetPlayerPos(playerid,x1,y1,z1); 
        
GetPlayerPos(playerid2,x2,y2,z2); 
        
dis floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2)); 
        return 
floatround(dis); 

Reply
#7

E depois nao coloca mais nda ?
Reply
#8

Vocк tem duas stocks iguais e entгo tem que remover uma. Й sу remover a que te mandei, compila e fala se tem mais algum erro.
Reply
#9

Deu apenas esse erro ai >http://prntscr.com/7ggnlt<
Reply
#10

Em vez de:

PHP код:
public Float:GetDistanceBetweenPlayers(p1,p2
Coloca:

PHP код:
stock GetDistanceBetweenPlayers(p1p2
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)