[Include] MSi - Radars
#1

Esta include nгo й mais atualizada e й desaconselhado o uso.
Utilize esta outra include:
https://github.com/WiRR-/SA-MP-Radars


__________________________________________________ ______________________




Radars

- Нndice
  • O que й msi_radars?
  • Onde posso encontra-la?
  • Como utilizar?
  • Configuraзхes
  • Funзхes
  • OnPlayerEnterRadar
  • Informaзхes
  • Criando um radar
  • Demonstraзгo
- O que й msi_radars?
  • 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.
- Onde posso encontra-la?
  • msi_radars й parte da livraria MSi(Master Server Includes) e pode ser encontrada neste tуpico.
- Como utilizar?
  • A utilizaзгo da msi_radars nгo muito й diferente de outras includes, basta vocк deve incluir a include a seu script:
    pawn Код:
    #include <MSi\msi_radars>
    E entгo adicionar a callback OnPlayerEnterRadar a seu script:

    pawn Код:
    public OnPlayerEnterRadar(playerid, radarid, speed)
    {
        return 1;
    }
    Que vocк jб pode comeзar a utilizar os radares.
- Configuraзх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:
    pawn Код:
    #define MAX_RADARS      (QUANTIA_MAXIMA_DE_RADARES)
    #define RADAR_MODEL_ID  (MODELID_DO_OBJETO_DO_RADAR)
    #include <MSi\msi_radars>
    Exemplo:
    pawn Код:
    #define MAX_RADARS      40
    #define RADAR_MODEL_ID  1889
    #include <MSi\msi_radars>
    - O cуdigo acima define a quantidade mбxima de radares para 40 e o objeto do radar para 1889.
- Funзхes
  • 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;
    }
- OnPlayerEnterRadar
  • 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;
    }
- Informaзхes
  • 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.
- Criando um radar
  • 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!
- Demonstraзгo
  • Abaixo segue um vнdeo demonstrando um radar em funcionamento e o cуdigo utilizado.

    pawn Код:
    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;
    }
    [*******] Testando msi_radars
Reply
#2

Muito bom.

@Edit Dica cria uma include Race um sistema de Race por cp ****** fez na livraria(Y_race) dele, mas numca vi alguem usar, as funзхes poderia ser identicas a inc y_race. Porem uma que funcione
Reply
#3

de todas as includes da livraria atй agora, esta foi a que me desperto mais curiosidade.
eu achei esta muito ъtil

@enfim muito legal.
Reply
#4

Parabens ( Meu queridjenhoo Synch' )

REP
Reply
#5

Уtimo, parabйns aos 2 :mgreen:
Reply
#6

Muito bom!
Livraria otima..
Reply


Forum Jump:


Users browsing this thread: 3 Guest(s)