All pastes #1819557 Raw Edit

Untitled

public text v1 · immutable
#1819557 ·published 2010-03-02 17:29 UTC
rendered paste body
/*
##################################
# K's Technology - Icon Streamer #
#           Ver. 0.1b            #
#      Created by K_POLAND       #
#                                #
#     Copyright © K_POLAND       #
##################################
*/

#include a_samp

#define KTech_Max_Icons    300
#define KTech_Dis          250
#define KTech_Max_Players2 200

forward K_Tech_IconUpdate();
forward Start_KTech_IconStreamer();

enum Enum_KTech_Icon
{
Float:x2,
Float:y2,
markertype2,
color2,
}

new KTech_Icon[KTech_Max_Icons][Enum_KTech_Icon],
	KTech_Empty_Slots[KTech_Max_Players2][32],
	bool:KTech_Created_Icons[KTech_Max_Icons],
	KTech_Max_Players;

public Start_KTech_IconStreamer()
{
    KTech_Max_Players = GetMaxPlayers();
	SetTimer("K_Tech_IconUpdate", 750, true);
	for(new a = 0; a < KTech_Max_Players; a++)
	{
	    for(new b = 0; b < 32; b++)
	    {
	    	KTech_Empty_Slots[a][b] = -1;
	    }
 	}
   	return 1;
}

public K_Tech_IconUpdate()
{
	new bool:kejka;
	for(new p = 0; p < KTech_Max_Players; p++)
	{
	    if(IsPlayerConnected(p))
	    {
			new Float:x, Float:y, Float:z;
			GetPlayerPos(p, x, y, z);
			for(new a = 0; a < KTech_Max_Icons; a++)
			{
				kejka = false;
			    if(KTech_Created_Icons[a] == true)
			    {
	        		if(IconDis(KTech_Icon[a][x2], KTech_Icon[a][y2],  x, y) <= KTech_Dis)
					{
			    		for(new iid = 0; iid < 32; iid++)
			    		{
			        		if(KTech_Empty_Slots[p][iid] == -1 && kejka == false)
			        		{
								SetPlayerMapIcon(p, iid, KTech_Icon[a][x2], KTech_Icon[a][y2], 0.0, KTech_Icon[a][markertype2], KTech_Icon[a][color2]);
								KTech_Empty_Slots[p][iid] = a;
								kejka = true;
							}
						}
					}
					else
					{
						for(new iid = 0; iid < 32; iid++)
			    		{
					    	if(KTech_Empty_Slots[p][iid] == a)
					    	{
								RemovePlayerMapIcon(p, iid);
								KTech_Empty_Slots[p][iid] = -1;
							}
						}
					}
				}
			}
		}
	}
   	return 1;
}


stock CreateMapIcon(Float:x, Float:y, markertype, color)
{
	for(new playerid = 0; playerid < KTech_Max_Players; playerid++)
	{
		for(new a = 0; a < KTech_Max_Icons; a++)
		{
	    	if(KTech_Created_Icons[a] == false)
			{
    			KTech_Icon[a][x2] = x;
    			KTech_Icon[a][y2] = y;
    			KTech_Icon[a][markertype2] = markertype;
    			KTech_Icon[a][color2] = color;
    			KTech_Created_Icons[a] = true;
    			return a;
    		}
    	}
  	}
	return -1;
}

stock DestroyMapIcon(c_iconid)
{
    for(new playerid = 0; playerid < KTech_Max_Players; playerid++)
	{
		if(KTech_Created_Icons[c_iconid] == true)
		{
	    	for(new a = 0; a < 32; a++)
	    	{
	        	if(KTech_Empty_Slots[p][a] == c_iconid)
	        	{
	            	RemovePlayerMapIcon(playerid, c_iconid);
	        	}
	    	}
			KTech_Icon[c_iconid][x2] = 0.0;
			KTech_Icon[c_iconid][y2] = 0.0;
			KTech_Icon[c_iconid][markertype2] = 0;
			KTech_Icon[c_iconid][color2] = 0;
			KTech_Created_Icons[c_iconid] = false;
 		}
	}
	return 0;
}

stock IconDis(Float:x, Float:y, Float:xx, Float:yy)
	return floatround(floatsqroot(floatabs(floatpower(floatsub(x, xx), 2)) + floatabs(floatpower(floatsub(y, yy), 2))));


/*
native CreateMapIcon(Float:x, Float:y, markertype, color);
native DestroyMapIcon(c_iconid);
*/