[Ajuda] Liberar para usar o comando em uma certa бrea
#1

Boa noite, Bom й o seguinte, eu queria ajuda com um cуdigo...

O "/ap1" abre o portгo 1 do pedбgio, eu queria colocar este comando para poder somente usar perto do Pedбgio, e aparecer uma mensagem de erro caso a pessoa estiver longe do pedбgio. Meu cуdigo й este:
PHP код:
    if( !strcmpcmdtext"/ap1"true ))
    {
        if( 
pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Patrao ] == || aInfoplayerid ][ Admin ] == )
        {
            
SendClientMessageplayeridCOLOR_AMARELO"[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
            
MoveDynamicObjectpp145, -1530.363.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        
}
        else
        {
            
SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
        }
        return 
1;
    } 
Obs: E se possнvel me mostrar onde fica o "raio" para mim poder aumentar e abaixar de acordo com o necessбrio... Obrigado.
Reply
#2

Reply
#3

Boa Noite, vocк precisa pegar as coordenadas no pedagio e usar junto com:
IsPlayerInRangeOfPoint

@Edit
dsclp nгo vi que tinha postado.
Reply
#4

pawn Код:
if( !strcmp( cmdtext, "/ap1", true ))
    {
        /*Use isto*/if(!IsPlayerInRangeOfPoint(playerid,5.0/*Raio*/,pos x, pos y, pos z) return SendClientMessage( playerid, COLOR_AMARELO, "[ > ] Vocк nгo estб no pedagio 1." );
        if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Patrao ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
        {
            SendClientMessage( playerid, COLOR_AMARELO, "[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
            MoveDynamicObject( pp1, 45, -1530.3, 6, 3.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        }
        else
        {
            SendClientMessage( playerid, COLOR_ERRO, "[ x ] Vocк nгo tem permissгo!" );
        }
        return 1;
    }
Reply
#5

Galera, nгo deu erro mais deu, podem ver oque eu fiz de errado por favor:

PHP код:
    if( !strcmpcmdtext"/ap1"true ))
       {
       if( 
pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Gerente ] == || aInfoplayerid ][ Admin ] == )
       {
        if(!
IsPlayerInRangeOfPoint(playerid5.051.7680, -1530.50125.2866))
        {
        
SendClientMessage(playeridCOLOR_ERRO"[ x ] Vocк nгo estб perto do Pedagio!");
        }
         
SendClientMessageplayeridCOLOR_AMARELO"[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
         
MoveDynamicObjectpp145, -1530.363.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        
}
        else
        {
            
SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
        }
        return 
1;
    } 
Obs:
Quando estou de Policial Rodoviario aparece:

Aparece a mensagem que nгo estou perto, mais mesmo assim abre :/
Reply
#6

Bom, vocк basicamente fez que o cуdigo nгo parasse no erro. Basicamente vocк fez:

PHP код:
new value 5;
if(
value == 5)
{
    
printf("Que pena, value й 5!");
}
printf("Value nгo й 5!"); 
Como percebeu, "Value nгo й 5!" serб sempre printado na tela. Ele serб sempre chamado.

No seu cуdigo, a condiзгo da distвncia estar dentro de 5.0, apenas serve para mostrar ao jogador que ele nгo estб prуximo ao pedбgio. Vocк deve impedi-lo de prosseguir com o comando usando return, OU usando if/else if/else de forma correta.

PHP код:
if(IsPlayerInRangeOfPoint(playerid,5.0,100.0,100.0,100.0))
{
    
SendClientMessage(playerid,-1,"Vocк estб perto da coordenada!");
    
// Entгo podemos fazer outras verificaзхes, se ele й policial...
    
if(pInfo[playerid][Prof] == POL_RODOVIARIA)
    {
        
SendClientMessage(playerid,-1,"Vocк й da policia rodoviбria!");
        
// Faзa algo :D
    
}
    else
    {
        
SendClientMessage(playerid,-1,"Que pena, vocк nгo й policial rodoviбrio :/");
    }
}
else
{
    
SendClientMessage(playerid,"Que pena, vocк precisa estar mais perto!");

Sugiro que leia: https://sampwiki.blast.hk/wiki/Control_Structures
Reply
#7

Arakura, obrigado man, mais achei o seu modo meio complicado "Avanзado" (Sou novo em Pawno), e acabou dando 1 erro "035: argument type mismatch (argument 2)"

Fiz assim:
PHP код:
    if( !strcmpcmdtext"/ap1"true ))
       {
       if( 
pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Patrao ] == || aInfoplayerid ][ Admin ] == )
       {
    if(!
IsPlayerInRangeOfPoint(playerid5.051.7680, -1530.50125.2866))
{
    if(
pInfo[playerid][Prof] == POL_RODOVIARIA)
    {
        
SendClientMessage(playerid,-1,"Vocк й da policia rodoviбria!");
    }
    else
    {
        
SendClientMessage(playerid,-1,"Que pena, vocк nгo й policial rodoviбrio :/");
    }
}
else
{
    
SendClientMessage(playerid,"Que pena, vocк precisa estar mais perto!");
}
            
SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
        }
        return 
1;
    } 
Teria como vocк me ajudar a arrumar este abaixo ?! Sу estou tendo 1 problema, quando vai abrir o portгo fala que nгo esta perto mais estб abrindo... Nгo estб obdescendo as coordenadas mandada...

Obs:
Quando estou de Policial Rodoviario aparece:

Aparece a mensagem que nгo estou perto, mais mesmo assim abre :/

PHP код:
    if( !strcmpcmdtext"/ap1"true ))
       {
       if( 
pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Gerente ] == || aInfoplayerid ][ Admin ] == )
       {
        if(!
IsPlayerInRangeOfPoint(playerid5.051.7680, -1530.50125.2866))
        {
        
SendClientMessage(playeridCOLOR_ERRO"[ x ] Vocк nгo estб perto do Pedagio!");
        }
         
SendClientMessageplayeridCOLOR_AMARELO"[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
         
MoveDynamicObjectpp145, -1530.363.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        
}
        else
        {
            
SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
        }
        return 
1;
    } 
Reply
#8

Arakuta acabou de explicar sobre isso, unica coisa que vocк fez foi ver se tava no lugar certo e mandar mensagem.
pawn Код:
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.2866))
        {
        return SendClientMessage(playerid, COLOR_ERRO, "[ x ] Vocк nгo estб perto do Pedagio!");
        }

e na linha:
SendClientMessage(playerid,"Que pena, vocк precisa estar mais perto!");
Faltou a cor da mensagem, por isso esta dando error.
Reply
#9

Ever, aquele cуdigo ali, achei muito complicado para mim, depois se eu precisar editar irei ficar com dъvidas, entгo poderia me ajudar com o problema deste ?!

PROBLEMA:
Quando estou de Policial Rodoviario aparece:

Aparece a mensagem que nгo estou perto, mais mesmo assim abre...
PHP код:
   if( !strcmpcmdtext"/ap1"true ))
       {
       if( 
pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Patrao ] == || aInfoplayerid ][ Admin ] == )
       {
        if(!
IsPlayerInRangeOfPoint(playerid5.051.7680, -1530.50125.2866))
        {
        
SendClientMessage(playeridCOLOR_ERRO"[ x ] Vocк nгo estб perto do Pedagio!");
        }
         
SendClientMessageplayeridCOLOR_AMARELO"[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
         
MoveDynamicObjectpp145, -1530.363.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        
}
        else
        {
            
SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
        }
        return 
1;
    } 
Reply
#10

PHP код:
       if( pInfoplayerid ][ Prof ] == POL_RODOVIARIA || aInfoplayerid ][ Patrao ] == || aInfoplayerid ][ Admin ] == )
       {
        if(!
IsPlayerInRangeOfPoint(playerid5.051.7680, -1530.50125.2866))
        {
        
SendClientMessage(playeridCOLOR_ERRO"[ x ] Vocк nгo estб perto do Pedagio!");
        }
         if(!
IsPlayerAdmin(playerid)) return SendClientMessageplayeridCOLOR_ERRO"[ x ] Vocк nгo tem permissгo!" );
         
SendClientMessageplayeridCOLOR_AMARELO"[ > ] Abrindo o portгo nъmero 1 do Pedбgio." );
         
MoveDynamicObjectpp145, -1530.363.0 ); /*( pp1, 45.6, -1525.8, 2, 3.0 ); // Caso queira colocar o portгo para abrir pra baixo*/
        
}
        return 
1;
    } 
Erros primeiro,efeito depois.
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)