13.01.2010, 22:46
Isso й fбcil. Vamos lб:
Primeiramente vocк precisa criar uma variбvel no topo do seu gamemode para definir as "equipes", tome esse exemplo:
Agora vamos criar um timer para checar a posiзгo do jogador e saber se ele estб na бrea do portгo:
Agora que estamos chamando a funзгo CheckPos atravйs de um timer, vamos atй ela:
Resumindo: acabamos de criar uma funзгo cuja й executada a cada segundo que verifica se o jogador estб num raio de 3 (metros, nгo sei) da posiзгo X, Y, Z que vocк irб substituir por uma coordenada prуxima ao seu portгo.
Depois disso, vamos definir no final do script a funзгo PlayerToPoint que checa a distвncia do jogador dentro do raio desejado:
Bom, agora que jб estб quase tudo pronto, vocк precisa "se virar" aн e definir a "equipe" que o jogador pertencerб.
Abraзos
Primeiramente vocк precisa criar uma variбvel no topo do seu gamemode para definir as "equipes", tome esse exemplo:
Code:
new Team[MAX_PLAYERS];
Code:
//OnGameModeInit SetTimer("CheckPos", 1000, true);
Code:
//Final do Script public CheckPos() { for(new i = 0; i < MAX_PLAYERS; i++) { if(IsPlayerConnected(i)) { if(Team[i] == 1) // Considerando que a equipe dos Cops й de ID 1 (modificar se necessбrio). { if(PlayerToPoint(3.0, i, X, Y, Z)) { // MoveObject.... Aqui vocк vai fazer seu portгo abrindo. } else { // MoveObject... Aqui vocк irб fazer seu portгo fechando, na posiзгo padrгo. } } } } return 1; }
Depois disso, vamos definir no final do script a funзгo PlayerToPoint que checa a distвncia do jogador dentro do raio desejado:
Code:
[b]//Topo do Script: forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z); //Final do script: 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; }
Abraзos