Liberar para usar o comando em uma certa бrea -
MarlboroBr - 04.03.2015
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( !strcmp( cmdtext, "/ap1", true ))
{
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;
}
Obs: E se possнvel me mostrar onde fica o "raio" para mim poder aumentar e abaixar de acordo com o necessбrio... Obrigado.
Re: Liberar para usar o comando em uma certa бrea -
ExPLORE - 04.03.2015
Re: Liberar para usar o comando em uma certa бrea - Whoo - 04.03.2015
Boa Noite, vocк precisa pegar as coordenadas no pedagio e usar junto com:
IsPlayerInRangeOfPoint
@Edit
dsclp nгo vi que tinha postado.
Re: Liberar para usar o comando em uma certa бrea -
Cidiei - 04.03.2015
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;
}
Re: Liberar para usar o comando em uma certa бrea -
MarlboroBr - 04.03.2015
Galera, nгo deu erro mais deu, podem ver oque eu fiz de errado por favor:
PHP код:
if( !strcmp( cmdtext, "/ap1", true ))
{
if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Gerente ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.2866))
{
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Vocк nгo estб perto do Pedagio!");
}
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;
}
Obs:
Quando estou de Policial Rodoviario aparece:

Aparece a mensagem que nгo estou perto, mais mesmo assim abre :/
Re: Liberar para usar o comando em uma certa бrea -
arakuta - 05.03.2015
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
Re: Liberar para usar o comando em uma certa бrea -
MarlboroBr - 05.03.2015
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( !strcmp( cmdtext, "/ap1", true ))
{
if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Patrao ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.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!");
}
SendClientMessage( playerid, COLOR_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( !strcmp( cmdtext, "/ap1", true ))
{
if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Gerente ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.2866))
{
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Vocк nгo estб perto do Pedagio!");
}
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;
}
Re: Liberar para usar o comando em uma certa бrea -
Ever_SH - 05.03.2015
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.
Re: Liberar para usar o comando em uma certa бrea -
MarlboroBr - 05.03.2015
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( !strcmp( cmdtext, "/ap1", true ))
{
if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Patrao ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.2866))
{
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Vocк nгo estб perto do Pedagio!");
}
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;
}
Re: Liberar para usar o comando em uma certa бrea -
Detoria - 05.03.2015
PHP код:
if( pInfo[ playerid ][ Prof ] == POL_RODOVIARIA || aInfo[ playerid ][ Patrao ] == 1 || aInfo[ playerid ][ Admin ] == 1 )
{
if(!IsPlayerInRangeOfPoint(playerid, 5.0, 51.7680, -1530.5012, 5.2866))
{
SendClientMessage(playerid, COLOR_ERRO, "[ x ] Vocк nгo estб perto do Pedagio!");
}
if(!IsPlayerAdmin(playerid)) return SendClientMessage( playerid, COLOR_ERRO, "[ x ] Vocк nгo tem permissгo!" );
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*/
}
return 1;
}
Erros primeiro,efeito depois.