Ad Code

Responsive Advertisement

[TUTORIAL] Criando um Portão Automático

Eu não vi muitos deles por aí, então decidi fazer um. 

Ok, primeiro precisamos incluir a_samp para que todas as funções funcionem. Portanto, queremos colocar isso no início do script.
Código de peão:
#include <a_samp>

Então precisamos encaminhar o cronômetro que usaremos mais tarde. Então, colocamos isso em #include <a_samp>
Código de peão:
GateCheck para a frente ( ) ;

Então, vamos querer criar algo para armazenar o objeto portão. Portanto, vamos querer incluir isso em incluir e avançar.
Código de peão:
novo AutomaticGate;

Ok, se você tiver um script de filtro, usará "OnFilterScriptInit" em vez de "OnGameModeInit", estou usando "OnGameModeInit" aqui, altere para "OnFilterScriptInit" se estiver colocando isso em um script de filtro.
Código de peão:
public OnGameModeInit ( )

Agora queremos adicionar o cronômetro que encaminhamos antes para verificar se um jogador está perto do portão.
Código de peão:
SetTimer ( "GateCheck" , 500 , verdadeiro ) ;
Você pode alterar 500 para um valor menor, se quiser, mas quanto menor for o valor que você pegar, mais ficará para o seu servidor.

E agora queremos criar o objeto portão e anexar algo que armazena o objeto.
Selecionei criar meu objeto nas coordenadas 2641.8201, 2810.6196 e 36.3222.
Código de peão:
AutomaticGate = CreateObject ( 971 , 2641.8201 , 2810.6196 , 36.3222 , 0 , 0 , 0 ) ;
Leia http://wiki.sa-mp.com/wiki/CreateObject para obter mais informações sobre esta função.

Quando terminarmos, deve ser parecido com isto
Código de peão:
public OnGameModeInit ( )
{
    SetTimer ( "GateCheck" , 500 , true ) ;
    AutomaticGate = CreateObject ( 971 , 2641.8201 , 2810.6196 , 36.3222 , 0 , 0 , 0 ) ;
    return 1 ;
}

E, por fim, queremos criar a função de temporizador que encaminhamos primeiro.
Código de peão:
public GateCheck ( )

Então, vamos querer fazer um loop para todos os jogadores.
Código de peão:
para ( novo i = 0 ; i < MAX_PLAYERS; i ++ )

Depois disso, vamos verificar se os jogadores estão conectados. (Estar seguro)
Código de peão:
if ( IsPlayerConnected ( i ) )

Agora queremos verificar se um jogador está perto do portão. Usando a função IsPlayerInRangeOfPoint.
Código de peão:
if ( IsPlayerInRangeOfPoint ( i, 10.0 , 2641.8201 , 2810.6196 , 36.3222 ) )
Consulte http://wiki.sa-mp.com/wiki/IsPlayerInRangeOfPoint para obter mais informações sobre esta função.

E se um jogador estiver perto do portão, vamos querer movê-lo.
Código de peão:
MoveObject ( AutomaticGate, 2641.8201 , 2810.6196 , 26.3222 , 5.0 ) ;
Optei por movê-lo 10 pontos para baixo.

Se o jogador não estiver perto do portão, devemos reiniciá-lo.
Código de peão:
MoveObject ( AutomaticGate, 2641.8201 , 2810.6196 , 36.3222 , 5.0 ) ;

Agora deve ser parecido com isso.
Código de peão:
public CheckGate ( )
{
    for ( new i = 0 ; i < MAX_PLAYERS; i ++ )
    {
        if ( IsPlayerConnected ( i ) )
        {
            if ( IsPlayerInRangeOfPoint ( i, 10.0 , 2641.8201 , 2810.6196 , 36.3222 ) )
            {
                MoveObject ( AutomaticGate, 2641.8201 , 2810.6196 , 26.3222 ,5.0 ) ;
            }
            else
            {
                MoveObject ( AutomaticGate, 2641.8201 , 2810.6196 , 36.3222 , 5.0 ) ;
            }
        }
    }
}

Postar um comentário

0 Comentários

© 2022 PawnScript All Rights Reversed