[TUT] Portões Automaticos

Estou aqui com o objetivo de ensinar a você como fazer um portão automatico para seu time.

Necessário:

Coordenadas do portão aberto;
Coordenadas do portão fechado;
5 minutos para ler e executar o que está aqui.

Começando:

Coloque isso no inicio do seu gamemode se você não tiver:
PAWN Code:
new gTeam[MAX_PLAYERS];

Agora adicione as news também no inicio do gamemode:
PAWN Code:
new portaocop,portaocop2; /*Isto é só um exemplo, pode mudar de acordo com sua necessidade*/

Agora procure no seu gamemode o public OnGameModeInit.

Depois e achar o public OnGameModeInit, coloque no inicio do public um Timer:
PAWN Code:
SetTimer("ChecarPortao", 1000, true); /*Para checar a cada segundo se à alguem perto do portão*/

Depois de colocar o Timer procure o objeto correspondente ao seu portão fechado e coloque o que há no new, Ex:
PAWN Code:
portaocop = CreateObject(971, 1544.7706298828, -1625.9729003906, 15.702730178833, 0.000000, 0.000000, 89.325012207031);
portaocop2 = CreateObject(971, 1588.6604003906, -1638.0908203125, 13.757768630981, 0.000000, 0.000000, 0.000000);

Agora vá bem no fim de seu gamemode e adicione um novo public:
PAWN Code:
public ChecarPortao()

Agora em baixo do novo public adicione:
PAWN Code:
{
new P1, P2; //Novos news para abrir e fechar os portões
for(new playerid;playerid)
{
if(gTeam[playerid] == TIME) /*Mude o "TIME" para o ID do seu time ou o Nome Definido!*/if(IsPlayerInRangeOfPoint(playerid,10.0,1544.7706298828, -1625.9729003906, 15.702730178833)) P1=1; //Aqui a coordenada do 1° portão fechado.
if(gTeam[playerid] == TIME) /*Mude o "TIME" para o ID do seu time ou o Nome Definido!*/if(IsPlayerInRangeOfPoint(playerid,10.0,1588.6604003906, -1638.0908203125, 13.757768630981)) P2=1; //Aqui a coordenada do 2° portão fechado
}
if(P1)MoveObject(portaocop,1544.7705078125, -1625.97265625, 7.452730178833, 2.5); //Aqui se estiver alguem perto do portão e for do time certo, o portão se abrirá!(Coordenadas do portão aberto)
else MoveObject(portaocop,1544.7706298828, -1625.9729003906, 15.702730178833, 2.5); //Caso ele se afaste de mais o portão irá fechar.(Coordenadas do portão fechado)
if(P2)MoveObject(portaocop2,1588.66015625, -1638.0908203125, 7.2577686309814, 2.5);//Aqui se estiver alguem perto do portão e for do time certo, o portão se abrirá!(Coordenadas do portão aberto)
else MoveObject(portaocop2,1588.6604003906, -1638.0908203125, 13.757768630981, 2.5);//Caso ele se afaste de mais o portão irá fechar. (Coordenadas do portão fechado)
}

//PS: 2.5 é a velocidade com que o portão se fecha ou se abre.

Este é o fim do tutorial, espero que tenha gostado, e que tenha sido util.


StumbleDiggTechnoratiRedditDelicious