12.04.2011, 07:55
pawn Код:
#define DO_RANGE 300
command(me, playerid, params[])
{
new string[128];
if(strlen(params) < 5) return SendClientMessage(playerid, 0x0, "Your action has to contain at least 5 chars.");
format(string, sizeof(string), "( ( %s [ %d ] ) : %s )", GetName(playerid), playerid, params);
SendClientMessageToAll(GetPlayerColor(playerid), string);
return 1;
}
command(do, playerid, params[])
{
new string[128], Float: Pos[3];
if(strlen(params) < 5) return SendClientMessage(playerid, 0x0, "Your action has to contain at least 5 chars.");
format(string, sizeof(string), "( ( %s [ %d ] ) : %s )", GetName(playerid), playerid, params);
for(new i; i < MAX_PLAYERS; i++)
{
if(i != playerid && IsPlayerConnected(i) && IsPlayerInRange(i, DO_RANGE, DO_RANGE, Pos[0], Pos[1], Pos[2]))
{
SendClientMessage(i, GetPlayerColor(playerid), string);
}
}
SendClientMessage(playerid, GetPlayerColor(playerid), string);
return 1;
}
stock GetName(playerid)
{
new pName[25];
GetPlayerName(playerid, pName, sizeof(pName));
return pName;
}
stock IsPlayerInRange(playerid, Float:Range, Float:Z_Range, Float:tar_x, Float:tar_y, Float:tar_z) //By Gabriel "Larcius" Cordes
{
new bool:care_z = true, Float:player_x, Float:player_y, Float:player_z, Float:radius_xy, Float:radius_z;
GetPlayerPos(playerid, player_x, player_y, player_z);
radius_xy = floatsqroot(floatadd(floatpower(floatsub(player_x,tar_x),2.0),floatpower(floatsub(player_y,tar_y),2.0)));
radius_z = floatsqroot(floatadd(floatpower(radius_xy,2.0),floatpower(floatsub(player_z,tar_z),2.0)));
if(radius_z > Z_Range && radius_xy < radius_z)
{
care_z = false;
}
if(radius_xy <= Range && care_z)
{
return 1;
}
return 0;
}