24.02.2019, 22:00
Use PlayerToPoint
Topo GM:
Em OnGameModeInit:
Apуs isso faзa uma public de verificaзгo para ver se o player estб naquele local ou nгo:
(Vocк deverб trocar X,Y,Z pelas coordenadas do meio do ponto que vc quer bloquear, e o 5.0 pelo raio que essa coordenada vai ser bloqueada)
Stock PlayerToPoint ( Coloque no final da GM se quiser )
Topo GM:
Code:
forward PlayerToPoint(Float:radi, playerid, Float:x, Float:y, Float:z); forward naopode();
Code:
SetTimer("naopode", 1000, true); // Cria um timer que verifica de 1 em 1 segundo onde o player estб,se ele estiver na бrea que vocк determinou vai executar a funзгo
Code:
public naopode() { foreach(Player, i) { if(PlayerToPoint(5.0, i, Posiзгo X,Posiзгo Y,Posiзгo Z)){ // 5.0 = Raio da distвncia do X,Y,Z SendClientMessage(i,-1,"Vocк nгo pode entrar aqui!"); TogglePlayerControllable(playerid,0); // Congela o player }else TogglePlayerControllable(playerid,1); // Descongela caso algum adm puxar ele pra fora } }
Stock PlayerToPoint ( Coloque no final da GM se quiser )
Code:
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; }