05.08.2013, 18:54
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:
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:
(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:
Dentro desta calback, vamos colocar o seguinte:
E vamos seguir para a explicaзгo do que acabei de colocar
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:
que й se o jogador clicar na tecla ESPAЗO e estiver dentro de um veнculo.
Em relaзгo ao
й uma funзгo para verificar a que distвncia estб da coordenada...
Isto quer dizer que se estiver atй um raio de 15.0 dessas coordenadas, irб conseguir abrir os portхes.
Sу ira deixar vocк usar a funзгo se estiver logado na RCON (pode retirar isto, foi sу um exemplo).
explicaзгo:
Irб mover o objeto criado para outro sнtio.
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.
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).
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();
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);
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)
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);
}
}
}
pawn Код:
if(newkeys == KEY_RIGHT && !IsPlayerInAnyVehicle(playerid) || newkeys == KEY_HANDBRAKE && IsPlayerInAnyVehicle(playerid))
pawn Код:
KEY_RIGHT &&!IsPlayerInAnyVehicle
ou a outra opзгo й a seguinte:
pawn Код:
KEY_HANDBRAKE && IsPlayerInAnyVehicle
Em relaзгo ao
pawn Код:
if(IsPlayerInRangeOfPoint(playerid, 15.0, 2237.4724,2452.9809,11.9243))
pawn Код:
15.0 - raio
2237.4724,2452.9809,11.9243 - coordenadas
pawn Код:
if(IsPlayerAdmin(playerid))
pawn Код:
MoveObject(sPortao[0], 2237.4724,2452.9809,1.9243,3,0.0000,0.0000,-90.2999);
SetTimer("sPortaoVoltar", 5000, 0);
pawn Код:
MoveObject(sPortao[0], 2237.4724,2452.9809,1.9243,3,0.0000,0.0000,-90.2999);
pawn Код:
SetTimer("sPortaoVoltar", 5000, 0);
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);