05.09.2012, 13:46
pawn Код:
stock ProxDetector(Float:radi, playerid, string[],col1,col2,col3,col4,col5)
{
if(IsPlayerConnected(playerid))
{
new Float:posx, Float:posy, Float:posz;
new Float:oldposx, Float:oldposy, Float:oldposz;
new Float:tempposx, Float:tempposy, Float:tempposz;
new invehicle[MAX_PLAYERS];
new virtualworld = GetPlayerVirtualWorld(playerid);
new interior = GetPlayerInterior(playerid);
new vehicleid = GetPlayerVehicleID(playerid);
new ivehicleid;
if(vehicleid)
{
GetVehiclePos(vehicleid,oldposx,oldposy,oldposz);
}
else
{
GetPlayerPos(playerid, oldposx, oldposy, oldposz);
vehicleid = GetPlayerVehicleID(playerid);
}
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(!BigEar[i])
{
if(GetPlayerVirtualWorld(i) == virtualworld)
{
if((GetPlayerInterior(i) == interior))
{
if(vehicleid)
{
if(IsPlayerInVehicle(i,vehicleid)) invehicle[i] = 1;
}
if(!invehicle[i])
{
if(IsPlayerInAnyVehicle(i))
{
ivehicleid = GetPlayerVehicleID(i);
GetVehiclePos(ivehicleid,posx,posy,posz);
}
else
{
GetPlayerPos(i,posx,posy,posz);GameTextForPlayer(
}
tempposx = (oldposx -posx);
tempposy = (oldposy -posy);
tempposz = (oldposz -posz);
if (((tempposx < radi/16) && (tempposx > -radi/16)) && ((tempposy < radi/16) && (tempposy > -radi/16)) && ((tempposz < radi/16) && (tempposz > -radi/16))) SendClientMessage(i, col1, string);
else if (((tempposx < radi/8) && (tempposx > -radi/8)) && ((tempposy < radi/8) && (tempposy > -radi/8)) && ((tempposz < radi/8) && (tempposz > -radi/8))) SendClientMessage(i, col2, string);
else if (((tempposx < radi/4) && (tempposx > -radi/4)) && ((tempposy < radi/4) && (tempposy > -radi/4)) && ((tempposz < radi/4) && (tempposz > -radi/4))) SendClientMessage(i, col3, string);
else if (((tempposx < radi/2) && (tempposx > -radi/2)) && ((tempposy < radi/2) && (tempposy > -radi/2)) && ((tempposz < radi/2) && (tempposz > -radi/2))) SendClientMessage(i, col4, string);
else if (((tempposx < radi) && (tempposx > -radi)) && ((tempposy < radi) && (tempposy > -radi)) && ((tempposz < radi) && (tempposz > -radi))) SendClientMessage(i, col5, string);
}
else GameTextForPlayer(i, col1, string,5000,5);
}
}
}
else GameTextForPlayer(i, string,5000,5);
}
}
}
return 1;
}
use this:
pawn Код:
forward count2();
public count2()
{
new Float:x, Float:y, Float:z;
new playerid;
GetPlayerPos(playerid,x,y,z);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i,30.5,x,y,z))//radi = 30.5
{
//GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 2 ~g~-",1000,3);
ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
TogglePlayerControllable(i,0);
SetTimer("unfreeze2",2000,0);
}
}
}
forward count1();
public count1()
{
new Float:x, Float:y, Float:z;
new playerid;
GetPlayerPos(playerid,x,y,z);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i,30.5,x,y,z))//radi = 30.5
{
//GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 1 ~g~-",1000,3);
ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
TogglePlayerControllable(i,0);
SetTimer("unfreeze1",1000,0);
}
}
}
forward countgo();
public countgo()
{
new Float:x, Float:y, Float:z;
new playerid;
GetPlayerPos(playerid,x,y,z);
for(new i=0; i < MAX_PLAYERS; i++)
{
if(IsPlayerInRangeOfPoint(i,30.5,x,y,z))//radi =30.5
{
TogglePlayerControllable(i,1);
//GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~]~g~-~y~START~g~-~y~]~g~-",1000,3);
ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
PlayerPlaySound(i,1057,x,y,z);
}
}
}
if(strcmp(cmdtext,"/count",true) == 0)
{
new pName[30];
if(Event[playerid] == 1 || PlayerInfo[playerid][pAdmin] >= 1)
{
if (aaa == false)
{
aaa = true;
GetPlayerName(playerid, pName, 30);
new Float:x, Float:y, Float:z;
GetPlayerPos(playerid,x,y,z);
for(new i=0; i < MAX_PLAYERS; i++)
{
format(string,sizeof(string)," {FFD900}*** {00FFFF}%s {FFD900}has started the count",pName);
SendClientMessage(i,COLOR_WHITE,string);
//GameTextForPlayer(i,"~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~n~~g~-~y~ 3 ~g~-",1000,3);
ProxDetector(30.0, playerid, string, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE, COLOR_WHITE);
TogglePlayerControllable(i,0);
SetTimer("unfreeze1",3000,0);
}
SetTimer("count2",1000,0);
SetTimer("count1",2000,0);
SetTimer("countgo",3000,0);
SetTimer("stop",6000,0);
}
else SendClientMessage(playerid, 0xFF9900AA, "Its allready started!");
return 1;
}
else SendClientMessage(playerid, COLOR_GRAD1, " Numaratoare se foloseste doar la {FFB300}event");
}
forward stop();
public stop()
{
aaa = false;
}
forward unfreeze3();
public unfreeze3()
{
for(new i; i < MAX_PLAYERS; i++)
{
TogglePlayerControllable(i,1);
}
}
forward unfreeze2();
public unfreeze2()
{
for(new i; i < MAX_PLAYERS; i++)
{
TogglePlayerControllable(i,1);
}
}
forward unfreeze1();
public unfreeze1()
{
for(new i; i < MAX_PLAYERS; i++)
{
TogglePlayerControllable(i,1);
}
}