Public feed
#531792
#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); SendClientMessage(p1,0xFFFFFFAA,str); return player;}