Portгo eletrуnico (apertando tecla) -
[A]rray - 05.08.2013
Embora jб existam alguns tutoriais sobre este assunto, nгo incomoda nada reforзar um pouco estas idйias para os novatos (sendo que muitos sгo por comandos e muita gente procura por teclas).
Para comeзar, iremos criar uma variбvel com o nъmero de portхes que desejamos e uma forward para mais tarde fazermos a calback para chamar o portгo para as coordenadas de origem.
ex:
pawn Код:
new
sPortao[1];
forward sPortaoVoltar();
Com a variбvel sPortao iremos criar 1 portгo. Mas se quiser mais basta trocar o nъmero 1 pelo nъmero de portхes que desejar 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 colocaremos o seguinte em baixo:
pawn Код:
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 portгo;
2237.4724 - coordenada X onde o portгo se encontra;
2452.9809 - coordenada Y onde o portгo se encontra;
11.9243 - coordenada Z onde o portгo se encontra;
0.0000 - rotaзгo X;
0.0000 - rotaзгo Y;
-90.2999 - rotaзгo Z.
Agora, vamos para a calback que vai efetuar o procedimento do portгo mexer atravйs das teclas, que й a:
pawn Код:
public OnPlayerKeyStateChange(playerid, newkeys, oldkeys)
Dentro desta calback, vamos colocar o seguinte:
pawn Код:
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);
}
}
}
E vamos seguir para a explicaзгo do que acabei de colocar
pawn Код:
if(newkeys == KEY_RIGHT && !IsPlayerInAnyVehicle(playerid) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle(playerid))
pawn Код:
KEY_RIGHT &&!IsPlayerInAnyVehicle
Se o jogador clicar na tecla do mouse
(direita) e estiver fora de um veнculo, irб funcionar.
ou a outra opзгo й a seguinte:
pawn Код:
KEY_HANDBRAKE && IsPlayerInAnyVehicle
que й se o jogador clicar na tecla
ESPAЗO e estiver dentro de um veнculo.
Em relaзгo ao
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 15.0, 2237.4724,2452.9809,11.9243))
й uma funзгo para verificar a que distвncia estб da coordenada...
pawn Код:
15.0 - raio
2237.4724,2452.9809,11.9243 - coordenadas
Isto quer dizer que se estiver atй um raio de
15.0 dessas coordenadas, irб conseguir abrir os portхes.
pawn Код:
if(IsPlayerAdmin(playerid))
Sу ira deixar vocк usar a funзгo se estiver logado na
RCON (pode retirar isto, foi sу um exemplo).
pawn Код:
MoveObject(sPortao[0], 2237.4724,2452.9809,1.9243,3,0.0000,0.0000,-90.2999);
SetTimer("sPortaoVoltar", 5000, 0);
explicaзгo:
pawn Код:
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.
pawn Код:
SetTimer("sPortaoVoltar", 5000, 0);
Passado o tempo definido
(5000) irб chamar a calback
sPortaoVoltar e trazer o portгo denovo ao sнtio de origem.
Agora para criar, vamos criar a calback para quando o objeto й movido, passado o tempo definido voltar ao local de origem.
pawn Код:
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 portгo irб voltar para o local de origem
(2237.4724, 2452.9809, 11.9243).
Re: Portгo eletrуnico (apertando tecla) -
BielCOP - 05.08.2013
Para que vocк vai usar assim ? .-.
Use:
Re: Portгo eletrуnico (apertando tecla) -
[A]rray - 05.08.2013
Se vir a explicaзгo, falei que era para se quisesse criar mais do que um portгo sem criar uma nova variбvel.
Re: Portгo eletrуnico (apertando tecla) -
BielCOP - 05.08.2013
Eu vi...
mas do jeito que vocк ensinou, й um SE...
Se vocк fosse ensinar a criar um portao, aн vocк poderia usar.
No entanto, pra que usar sem precisar ?
De qualquer maneira, vai ajudar os novatos.
Re: Portгo eletrуnico (apertando tecla) -
Chery - 05.08.2013
nosssa cara puis la deu 5 eerro, voce vai embolando , nao da pra entender nada, mais vlw a tentativa ^^