16.05.2010, 13:01
Primeiro crie um new com o nome do portгo nesse caso aqui vai ser assim
agora vamos criar um setTimer para o portгo.
no OnGameModeInit coloque assim
agora vamos colocar os objetos no servidor
agora vamos criar o public para fazer o portгo se mover
no final do gm coloque assim
a e antes q eu me esquessa o mais importante.
no final do gm coloque isso
pawn Код:
new portao;
no OnGameModeInit coloque assim
pawn Код:
SetTimer("portaodojudson", 1000, true); /*Para checar a cada segundo se а alguem perto do portгo*/
pawn Код:
portao = CreateObject(980,2717.201,853.300,12.672,0.0,0.0,-90.000);
MoveObject(portao,2717.152,853.1000,12.672,2.0);
no final do gm coloque assim
pawn Код:
forward Portaodojudson(playerid);
public Portaodojudson(playerid) { //nome do forward
for(new i=0; i < MAX_PLAYERS; i++){
/*portгo fechado*/ if(IsPlayerInRangeOfPoint(playerid, 7.0, 2717.201,853.300)){ //o 7.0 й o raio que o player tem que ficar para abrir o portгo, depois do i sгo as coordenadas do portгo fexado, a mesma do create object
/*portгo aberto*/MoveObject(portao, 2717.201,853.300,20.672, 2); // funзгo para mover o objecto, nesse exemplo faremos o portгo subir para cima, no eixo Z que й a ultima coordenada(20.547) e o 2 й a velocidade que ele se vai mover.
} else {
/*portгo fechado*/MoveObject(portao,2717.201,853.300,12.672, 2); //se o player se afastar do portгo atй nгo estar mais no raio definido, o portгo vai mover se para baixo(eixo Z, coordenada 12.547)
}
}
}
no final do gm coloque isso
pawn Код:
stock PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
tempposx = (oldposx -x);
tempposy = (oldposy -y);
tempposz = (oldposz -z);
if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi)))
{
return 1;
}
return 0;
}