All pastes #915089 Raw Edit

IconControl

public cpp v1 · immutable
#915089 ·published 2008-02-23 14:23 UTC
rendered paste body
///////////////////////////////////////// Icon Control                   //////                                //////                                //////                                //////          Copyright by Rafelder /////////////////////////////////////////#define MAX_ICONS 1000#define MAX_SHOWED_MAPICONS 32 //Don't write more than 32!new Float:XM[MAX_ICONS];new Float:YM[MAX_ICONS];new Float:ZM[MAX_ICONS];new MarkerM[MAX_ICONS];new ColorM[MAX_ICONS];new IsValid[MAX_ICONS];new Show[MAX_PLAYERS][MAX_ICONS];new IconidM=-1;new Set_Timer=0;new Count=0;new ShowedForPlayer[MAX_PLAYERS];forward StreamTimer();/*native CreateMapIcon(markerid, color, Float:X, Float:Y, Float:Z);native DestroyMapIcon(iconid);native ResetMapIconVariables(playerid);native IsValidMapIcon(iconid);native IsIconActivatedForPlayer(playerid, iconid);native IsIconActivatedForAll(iconid);native SetMapIconPos(iconid, Float:X, Float:Y, Float:Z);native SetMapIconIcon(iconid, markerid, color);native SetMapIconColor(iconid, color);native GetMapIconPos(iconid, &Float:X, &Float:Y, &Float:Z);native GetMapIconIcon(iconid);native GetMapIconColor(iconid);native ShowMapIconForPlayer(playerid, iconid);native ShowMapIconForAll(iconid);native ShowAllMapIconForPlayer(playerid);native ShowAllMapIconForAll();native DisableMapIconForPlayer(playerid, iconid);native DisableMapIconForAll(iconid);native DisableAllMapIconForPlayer(playerid);native DisableAllMapIconForAll();*//***************************CREATE***************************/stock CreateMapIcon(markerid, color, Float:X, Float:Y, Float:Z){	if (Set_Timer == 0) {	SetTimer("StreamTimer", 200, 1);	Set_Timer=1;	}	if (IconidM >= MAX_ICONS) return 0;	IconidM++;	IsValid[IconidM]=1;	XM[IconidM]=X;	YM[IconidM]=Y;	ZM[IconidM]=Z;	MarkerM[IconidM]=markerid;	ColorM[IconidM]=color;	for(new i=0; i<MAX_PLAYERS; i++) {	Show[i][IconidM]=1;	}	return IconidM;}stock DestroyMapIcon(iconid) {	IsValid[iconid]=0;	XM[iconid]=0.0;	YM[iconid]=0.0;	ZM[iconid]=0.0;	MarkerM[iconid]=0;	ColorM[iconid]=0;	for(new i=0; i<MAX_PLAYERS; i++)	Show[i][iconid]=0;	return 1;}stock ResetMapIconVariables(playerid){	for(new i=0; i<MAX_ICONS; i++) {	Show[playerid][i]=1;	}	return 1;}/*****************************IS*****************************/stock IsValidMapIcon(iconid){	if (IsValid[iconid] == 1) return 1;	return 0;}stock IsIconActivatedForPlayer(playerid, iconid){	if (!IsValidMapIcon(icondid)) return 0;	if (Show[playerid][iconid] == 1) return 1;	return 0;}stock IsIconActivatedForAll(iconid){	if (!IsValidMapIcon(icondid)) return 0;	for(new i=0; i<MAX_PLAYERS; i++) {	if (Show[i][iconid] == 1) return 1;	return 0;	}}/*****************************DO*****************************/stock SetMapIconPos(iconid, Float:X, Float:Y, Float:Z){	if (!IsValidMapIcon(icondid)) return 0;	XM[iconid]=X;	YM[iconid]=Y;	ZM[iconid]=Z;	return 1;}stock SetMapIconIcon(iconid, markerid, color){	if (!IsValidMapIcon(icondid)) return 0;	MarkerM[iconid]=markerid;	ColorM[iconid]=color;	return 1;}stock SetMapIconColor(iconid, color){	if (!IsValidMapIcon(icondid)) return 0;	ColorM[iconid]=color;	return 1;}stock ShowMapIconForPlayer(playerid, iconid){	if (!IsValidMapIcon(icondid)) return 0;	Show[playerid][iconid]=1;	return 1;}stock ShowMapIconForAll(iconid){	if (!IsValidMapIcon(icondid)) return 0;	for(new i=0; i<MAX_PLAYERS; i++)	if (IsPlayerConnected(i))	Show[i][iconid]=1;	return 1;}stock ShowAllMapIconForPlayer(playerid){	for(new m=0; m<MAX_ICONS; m++) {	if (IsValidMapIcon(m))	Show[playerid][m]=1;	}	return 1;}stock ShowAllMapIconForAll(){	for(new i=0; i<MAX_PLAYERS; i++) {	if (IsPlayerConnected(i)) {	for(new m=0; m<MAX_ICONS; m++) {	if (IsValidMapIcon(m))	Show[i][m]=1;	}	}	}	return 1;}stock DisableMapIconForPlayer(playerid, iconid){	if (!IsValidMapIcon(icondid)) return 0;	Show[playerid][iconid]=0;	return 1;}stock DisableMapIconForAll(iconid){	if (!IsValidMapIcon(icondid)) return 0;	for(new i=0; i<MAX_PLAYERS; i++)	Show[i][iconid]=0;	return 1;}stock DisableAllMapIconForPlayer(playerid){	for(new m=0; m<MAX_ICONS; m++) {	if (IsValidMapIcon(m))	Show[playerid][m]=0;	}	return 1;}stock DisableAllMapIconForAll(){	for(new i=0; i<MAX_PLAYERS; i++) {	if (IsPlayerConnected(i)) {	for(new m=0; m<MAX_ICONS; m++) {	if (IsValidMapIcon(m))	Show[i][m]=0;	}	}	}	return 1;}/****************************GET*****************************/stock GetMapIconPos(iconid, &Float:X, &Float:Y, &Float:Z){	if (!IsValidMapIcon(iconid)) return 0;	X=XM[iconid];	Y=YM[iconid];	Z=ZM[iconid];	return 1;}stock GetMapIconIcon(iconid){	if (!IsValidMapIcon(icondid)) return 0;	return MarkerM[iconid];}stock GetMapIconColor(iconid){	if (!IsValidMapIcon(icondid)) return 0;	return ColorM[inconid];}/***************************TIMER*****************************/public StreamTimer(){	for(new i=0; i<MAX_PLAYERS; i++) {		if (IsPlayerConnected(i)) {			ShowedForPlayer[i]=0;			for(new oldm=0; oldm<32; oldm++) {RemovePlayerMapIcon(i, oldm);}			Count=0;			for(new m=0; m<MAX_ICONS; m++) {				if (IsValidMapIcon(m)) {					if (ShowedForPlayer[i] < MAX_SHOWED_MAPICONS) {						if (Show[i][m] == 1) {							if (GetDistanceToMapIcon(i, m) <= 400) {								SetPlayerMapIcon(i, Count, XM[m], YM[m], ZM[m], MarkerM[m], ColorM[m]);								ShowedForPlayer[i]++;								Count++;							}												}					}				}			}		}	}	return 1;}/**************************DISTANCE***************************/stock GetDistanceToMapIcon(playerid, iconid){	new Float:x1,Float:y1,Float:z1;	new Float:x2,Float:y2,Float:z2;	new Float:output;	GetPlayerPos(playerid, x1, y1, z1);	GetMapIconPos(iconid, x2, y2, z2);	output = floatsqroot(floatpower(floatabs(floatsub(x2, x1)), 2)+floatpower(floatabs(floatsub(y2, y1)), 2));	return floatround(output);}