Public feed #531788

Pixels^ Range System

public cpp v1 · immutable
Raw Edit
·published 2007-06-02 23:28 UTC
rendered paste body
#include <a_samp>new pteam[MAX_PLAYERS];new used[MAX_PLAYERS];main(){	print("\n----------------------------------");	print("  Range");	print("----------------------------------\n");}public OnGameModeInit(){	SetGameModeText("Range");	AddPlayerClass(200, 1958.3783, 1343.1572, 15.3746, 269.1425, 0, 0, 0, 0, 0, 0);	return 1;}public OnPlayerRequestClass(playerid, classid){	SetPlayerPos(playerid, 1961.3783, 1343.1572, 15.3746);	SetPlayerCameraPos(playerid, 1958.3783, 1343.1572, 15.3746);	SetPlayerCameraLookAt(playerid, 1958.3783, 1343.1572, 15.3746);	return 1;}public OnPlayerCommandText(playerid, cmdtext[]){	if (strcmp(cmdtext, "/range", true)==0)	{	    GetClosestPlayerEx(playerid);	    return 1;	}	return 0;}stock Float:GetDistanceBetweenPlayers(p1,p2){	new Float:x1,Float:y1,Float:z1,Float:x2,Float:y2,Float:z2;	GetPlayerPos(p1,x1,y1,z1);	GetPlayerPos(p2,x2,y2,z2);	return floatsqroot(floatpower(floatabs(floatsub(x2,x1)),2)+floatpower(floatabs(floatsub(y2,y1)),2)+floatpower(floatabs(floatsub(z2,z1)),2));}stock GetClosestPlayerEx(p1){	new x,Float:dis,Float:dis2,player,players,called,p[24],str[24];	player = -1;	dis = 99999.99;	for (x=0;x<MAX_PLAYERS;x++)	{	    players++;		if (x != p1)		{			dis2 = GetDistanceBetweenPlayers(x,p1);			if (dis2 < dis && dis2 != -1.00 && pteam[x] == pteam[p1] && used[x] == 0)			{				dis = dis2;				player = x;				used[x] = 1;				called++;				GetPlayerName(x,p,24);				while(players>called) GetClosestPlayerEx(p1);			}		}	}	format(str,sizeof(str),"%s",p);	return player;}