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);
*/