Ae vou ensinar a criar portoes que abrem automaticamente quando a pessoa chega la ^^

Topo:

Código:

new portao; //criando a variavel do portao
forward pp(playerid); //funcao que irá verificar se a pessoa está perto e depois fechar/abrir o portao se a pessoa estiver perto/longe dele


GameModeInit:

Código:

SetTimer("pp", 999, false); //settimer que irá verificar se a pessoa está perto do portao a cada 1seg


Fim do GM:

Código:

public pp(playerid)
{
  if(PlayerToPoint(5.0, playerid, X, Y, Z)
  //Explicação do cod acima ^^
  http://5.0 = Distancia que deve ficar do alvo
  //X,Y,Z = Coordenadas do portão
  {
      MoveObject(portao, X, Y, Z, 5);
      //Explicação ^^
      //X, Y, Z = Coordenadas do portao quando está aberto
      //5 = Velocidade do portao ao abrir
  }
  else //se o player ficar longe das coords acima, o objeto vai se fechar com a função abaixo
  {
      MoveObject(portao, X, Y, Z, 5);
      //Explicação ^^
      //X, Y, Z = Coordenadas do portao quando está fechado
      //5 = Velocidade do portao ao fechar
  }
  return 1;
}


---------------
Deu erro 'undefined symbol "PlayerToPoint"' ??
É por você não tem a função PlayerToPoint definida no codigo
Então vamos definir

Topo do GM:

Código:

forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z);


Fim do GM:

Código:

public PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z)
{
    if(IsPlayerConnected(playerid))
   {
      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;
}