- Нndice- O que й msi_radars?
- O que й msi_radars?
- Onde posso encontra-la?
- Como utilizar?
- Configuraзхes
- Funзхes
- OnPlayerEnterRadar
- Informaзхes
- Criando um radar
- Demonstraзгo
- Onde posso encontra-la?
- msi_radars й uma include desenvolvida por Larceny e Lуs e tem como o objetivo adicionar funзхes para a criaзгo e administraзгo de radares de velocidade dentro do jogo, vocк fornece as coordenadas do objeto e a radiaзгo e depois usa uma callback para verificar sempre que um jogador passar pelo radar acima da velocidade.
- Como utilizar?
- msi_radars й parte da livraria MSi(Master Server Includes) e pode ser encontrada neste tуpico.
- Configuraзхes
- A utilizaзгo da msi_radars nгo muito й diferente de outras includes, basta vocк deve incluir a include a seu script:
E entгo adicionar a callback OnPlayerEnterRadar a seu script:pawn Код:#include <MSi\msi_radars>
Que vocк jб pode comeзar a utilizar os radares.pawn Код:public OnPlayerEnterRadar(playerid, radarid, speed)
{
return 1;
}- Funзхes
- Vocк pode, caso preferir, alterar certos valores desta include, sendo elas quantia mбxima de radares permitidos e o modelid do objeto do radar, definindo ACIMA da include:
Exemplo:pawn Код:#define MAX_RADARS (QUANTIA_MAXIMA_DE_RADARES)
#define RADAR_MODEL_ID (MODELID_DO_OBJETO_DO_RADAR)
#include <MSi\msi_radars>
- O cуdigo acima define a quantidade mбxima de radares para 40 e o objeto do radar para 1889.pawn Код:#define MAX_RADARS 40
#define RADAR_MODEL_ID 1889
#include <MSi\msi_radars>- OnPlayerEnterRadar
- CreateRadar(Float:X, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 200.0, maxspeed = 140, Float:radius = 15.0, activated = true)
- X: Coordenada X do radar(objeto!).
- Y: Coordenada Y do radar(objeto!).
- Z: Coordenada Z do radar(objeto!).
- rX: Rotaзгo X do radar(objeto!).
- rY: Rotaзгo Y do radar(objeto!).
- rZ: Rotaзгo Z do radar(objeto!).
- DrawDistance: DrawDistance do radar(objeto!).
- maxspeed: Velocidade mбxima permitida do radar.
- radius: Distвncia mбxima que o radar procurarб pelos jogadores.
- activated: Radar estб ativado ou desativado.
- Obs. Apenas as coordenadas e rotaзхes sгo obrigatуrias! O resto dos parвmetros sгo OPCIONAIS!
- Esta funзгo cria um radar e retorna o ID do radar criado, exemplo:
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
return 1;
}- DestroyRadar(radarid)
- radarid: ID do radar que serб destruнdo.
- Esta funзгo destrуi um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- SetRadarPosition(radarid, Float:Y, Float:Z, Float:rX, Float:rY, Float:rZ, Float:DrawDistance = 200.0)
- radarid: ID do radar.
- X: Coordenada X do radar(objeto!).
- Y: Coordenada Y do radar(objeto!).
- Z: Coordenada Z do radar(objeto!).
- rX: Rotaзгo X do radar(objeto!).
- rY: Rotaзгo Y do radar(objeto!).
- rZ: Rotaзгo Z do radar(objeto!).
- DrawDistance: DrawDistance do radar(objeto!).
- Esta funзгo altera a posiзгo de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
SetRadarPosition(radar_near_ammunation, 2484.01, 1242.12, 14.07, 0.0, 0.0, 46.0);
// Alterando a posiзгo de um radar
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- GetRadarPosition(radarid, &Float:Y, &Float:Z, &Float:rX, &Float:rY, &Float:rZ)
- radarid: ID do radar que terб a posiзгo obtida.
- X: Coordenada X do objeto do radar, passada por referкncia.
- Y: Coordenada X do objeto do radar, passada por referкncia.
- Z: Coordenada X do objeto do radar, passada por referкncia.
- rX: Rotaзгo do objeto do radar, passada por referкncia.
- rY: Rotaзгo do objeto do radar, passada por referкncia.
- rZ: Rotaзгo do objeto do radar, passada por referкncia.
- Esta obtйm as coordenadas de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
new Float:RadarPos[3],
Float:RadarRot[3];
GetRadarPosition(radar_near_ammunation, RadarPos[0], RadarPos[1], RadarPos[2], RadarRot[0], RadarRot[1], RadarRot[2]);
// Obtйm as coordenadas e rotaзхes do radar e armazena nas arrays RadarPos e RadarRot.
return 1;
}- SetRadarRadius(radarid, Float:radius)
- radarid: ID do radar que terб a radiaзгo alterada.
- radius: Radiaзгo.
- Esta funзгo altera a radiaзгo de checagem de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
SetRadarRadius(radar_near_ammunation, 20.0);
// Alterando a radiaзгo do radar
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- GetRadarRadius(radarid)
- radarid: ID do radar que terб a radiaзгo obtida.
- Esta funзгo obtйm a radiaзгo de checagem de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
new radar_radius = GetRadarRadius(radar_near_ammunation);
// Obtendo a radiaзгo do radar
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- SetRadarMaxSpeed(radarid, maxspeed)
- radarid: ID do radar que terб a velocidade mбxima permitida alterada.
- maxspeed: Velocidade max. permitida.
- Esta funзгo altera a velocidade mбxima permitida de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
SetRadarMaxSpeed(radar_near_ammunation, 140);
// Altera a velocidade mбxima permitida do radar para 140km/h.
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- GetRadarMaxSpeed(radarid)
- radarid: ID do radar que terб a velocidade mбxima permitida obtida.
- Esta funзгo obtйm a velocidade mбxima permitida de um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
new maxspeed = GetRadarMaxSpeed(radar_near_ammunation);
// Obtйm a velocidade mбxima permitida do radar.
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- SetRadarActivated(radarid, activated)
- radarid: ID do radar que serб ativado/desativado.
- activated: 1 Para ativar o radar, 0 para desativar.
- Obs. Radares desativados nгo sгo chamados pela callback OnPlayerEnterRadar.
- Esta funзгo ativa ou desativa um radar.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
SetRadarActivated(radar_near_ammunation, false);
// Desativando o radar.
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- IsRadarActivated(radarid)
- radarid: ID do radar que serб verificado se estб ativado/desativado.
- Esta funзгo verifica se um radar estб ativado ou desativado.
pawn Код:public OnGameModeInit()
{
new radar_near_ammunation;
// Variбvel para armazenar o ID do radar
radar_near_ammunation = CreateRadar(1247.10, -1248.21, 25.98, 0.0, 0.0, 90.0);
// Criando um radar em algum lugar
SetRadarActivated(radar_near_ammunation, false);
// Desativando o radar.
if(!IsRadarActivated(radar_near_ammunation)) print("O radar estб desativao!");
// Enviando uma mensagem no console caso o radar estiver desativado.
DestroyRadar(radar_near_ammunation);
// Destruindo o radar
return 1;
}- Informaзхes
- OnPlayerEnterRadar(playerid, radarid, speed)
- playerid: ID do jogador que passou no radar acima da velocidade.
- radarid: ID do radar em que o jogador passou.
- speed: Velocidade na qual o jogador passou no radar.
- Esta callback й chamada sempre que um jogador passa por um radar acima da velocidade.
pawn Код:public OnPlayerEnterRadar(playerid, radarid, speed)
{
SendClientMessage(playerid, -1, "Vocк foi pego por um radar!");
return 1;
}- Criando um radar
- Caso for utilizar a include em um filterscript Й NECESSБRIO definir acima da include #define FILTERSCRIPT!
- A msi_radars utiliza um timer que й chamado a cada 1000ms para verificar se os jogadores estгo em um radar, em breve o intervalo de busca poderб ser re-definivel.
- O ID do objeto do radar, por padrгo, й 18880.
- A quantia mбxima de radares que podem ser criados, por padrгo, й 32.
- Demonstraзгo
- Para a criaзгo de radares eu aconselho o uso do:
[Tool/Web/Other] Map editor: (ALL SA-MP VERSIONS) with removebuilding support.- Primeiro vocк vai atй o local indicado com o editor, entгo utilize o mouse para clicar no local em que deseja que o radar seja criado, com isso o local clicado ficarб vermelho:
- Agora vocк clica em "Inser Object" na parte superior do programa e insira o objeto do radar, que por padrгo й 18880, com isso o radar serб adicionado no local clicado, e com alguns ajustes vocк pode deixa-lo como desejar:
- Apуs feito isso clique em "Show code" na parte superior do programa tambйm e copie apenas as coordenadas e rotaзхes(que й apenas o que precisamos):
- E por fim, podemos utiliza-las na criaзгo de nosso radar:
pawn Код:public OnGameModeInit()
{
CreateRadar(1146.78, -1390.08, 12.83, 0.00, 0.00, 270.00);
return 1;
}- E pronto, nosso radar estб feito!
- Abaixo segue um vнdeo demonstrando um radar em funcionamento e o cуdigo utilizado.
[*******] Testando msi_radarspawn Код:new g_nradar_test;
public OnGameModeInit()
{
g_nradar_test = CreateRadar(1146.78, -1390.08, 12.83, 0.00, 0.00, 270.00);
return 1;
}
public OnPlayerEnterRadar(playerid, radarid, speed)
{
if (radarid == g_nradar_test)
{
SendClientMessage(playerid, -1, "ATENЗГO: Vocк foi pego por um radar e uma multa foi adicionada a seu veнculo!");
SendClientMessage(playerid, -1, "ATENЗГO: Vб atй a prefeitura para pagar sua multa!");
GameTextForPlayer(playerid,"~n~~n~~n~~n~~n~~n~~r~Pego pelo radar!", 5000, 3);
}
return 1;
}