Embora já existam alguns tutoriais sobre este assunto, não incomoda nada reforçar um pouco estas ideias para os novos (sendo que muitos são por comandos e muita gente procura por teclas).
Para começar, vamos criar uma variável com o número de portas que desejamos e uma encaminhar para mais tarde fazermos um calback para chamar o porto para as coordenadas de origem.
ex:
peão Код:Para começar, vamos criar uma variável com o número de portas que desejamos e uma encaminhar para mais tarde fazermos um calback para chamar o porto para as coordenadas de origem.
ex:
- Código:
novo
esPortão [ 1 ] ;
- Código:
encaminhar sPortaoVoltar ( )
;
Com um esporte variável vamos criar 1 porto. Mas se quiser mais basta trocar o nъmero 1 pelo nъmero de portхes que deseja colocar com a mesma variбvel (lembrando que irгo ser portхes diferentes) e irб comeзar sempre pelo 0 (irгo ver jб aqui em baixo) Depois da variбvel criada, vamos ao OnGameModeInit /OnFilterScriptInit (dependendo se está a usar gamemode ou filterscript) e colocamos o seguinte em baixo:
peão Код:- Código:
sPortao [ 0 ] = CreateObject ( 980 , 2237.4724 , 2452.9809 , 11.9243 , 0.0000 , 0.0000 , -90.2999 ) ; _
(este objeto é do meu gamemode, foi só para dar um exemplo) .
980 - id do porto;
2237.4724 - coordenada X onde o porto se encontra;
2452.9809 - coordenada Y onde o porto se encontra;
11.9243 - coordenada Z onde o porto se encontra;
0,0000 - rotação X;
0,0000 - rotação Y;
-90.2999 - rotação Z.
Agora, vamos para o calback que vai controlado o procedimento do portô mexer através das teclas, que é:
peão Код:980 - id do porto;
2237.4724 - coordenada X onde o porto se encontra;
2452.9809 - coordenada Y onde o porto se encontra;
11.9243 - coordenada Z onde o porto se encontra;
0,0000 - rotação X;
0,0000 - rotação Y;
-90.2999 - rotação Z.
Agora, vamos para o calback que vai controlado o procedimento do portô mexer através das teclas, que é:
- Código:
[size=14][size=13]public OnPlayerKeyStateChange ( playerid, newkeys, oldkeys )[/size][/size]
[center][size=14]Dentro deste calback, vamos colocar o seguinte:[/size][/center]
[size=14]peão Код:
[size=13]if ( newkeys == KEY_RIGHT && ! IsPlayerInAnyVehicle ( playerid ) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle ( playerid ) )
{
if ( IsPlayerInRangeOfPoint ( playerid, 15.0 , 2237.4724 , 2452.9809 , 11.9243 ) )
{
if ( IsPlayerAdmin ( playerid ) )
{
MoveObject (PortaoPoliciaMilitar [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , - 90.2999 ) ;
SetTimer ( "CallPortaoPoliciaMilitarE1" , 5000 , 0 ) ;
} }
}[/size][/size]
E vamos a seguir para a explicação do que eu queria de colocar
peão Код:- Código:
[size=14][size=13]if ( newkeys == KEY_RIGHT && ! IsPlayerInAnyVehicle ( playerid ) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle ( playerid ) )[/size][/size]
[size=14]peão Код:
[size=13]KEY_RIGHT &&! ÉJogadorEmQualquerVeículo[/size][/size]
Se o jogador clicar na tecla do mouse (direita) e estiver fora de um veículo, irá funcionar.
ou a outra opção é o seguinte:
peão Код:ou a outra opção é o seguinte:
- Código:
KEY_HANDBRAKE && IsPlayerInAnyVehicle
que é se o jogador clicar na tecla ESPAÇO e estiver dentro de um veículo.
Em relação ao
peão Код:Em relação ao
- Código:
if ( IsPlayerInRangeOfPoint ( playerid, 15.0 , 2237.4724 , 2452.9809 , 11.9243 ) )
é uma função para verificar a que distância está da coordenada...
peão Код:- Código:
15.0 - raio
2237.4724 , 2452.9809 , 11.9243 - coordenadas
Isto quer dizer que se estiver em um raio de 15,0 dessas coordenadas, irá conseguir abrir as portas.
peão Код:- Código:
if ( IsPlayerAdmin ( playerid ) )
Só vou deixar você usar a função se estiver logado no RCON (pode retirar isso, foi um exemplo) .
peão Код:- Código:
MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , -90.2999 ) ; _ SetTimer ( "sPortaoVoltar" , 5000 , 0 ) ;
explicação:
peão Код:- Código:
MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 1.9243 , 3 , 0.0000 , 0.0000 , -90.2999 ) ; _
Irá mover o objeto criado para outro sítio.
peão Код:- Código:
SetTimer ( "sPortaoVoltar" , 5000 , 0 ) ;
Passado o tempo definido (5000) irá chamar um calback sPortaoVoltar e trazer o portô denovo ao sítio de origem.
Agora para criar, vamos criar um calback para quando o objeto é movido, passado o tempo definido voltar ao local de origem.
peão Код:Agora para criar, vamos criar um calback para quando o objeto é movido, passado o tempo definido voltar ao local de origem.
- Código:
public sPortaoVoltar ( )
return MoveObject ( sPortao [ 0 ] , 2237.4724 , 2452.9809 , 11.9243 , 3 , 0.0000 , 0.0000 , - 90.2999 ) ;
Com esta calback, o objeto sPortao[0] que é o nosso porto irá voltar para o local de origem (2237.4724, 2452.9809, 11.9243) .
Creditos: [Variedade