03.10.2014, 17:47
I have some problems about mapicons. I want to change distance of icons. Player would see all icons that minimap shows but I have a very complicated code. Could you help me?
Additionaly I want these icons that are seen on minimap appears on general map like that:
Код:
#define INVALID_ICON_ID -1
new Slot[MAX_PLAYERS][MAX_CHECKPOINTS];
new SlotUsed[MAX_PLAYERS][32];
new IconCount[MAX_PLAYERS];
forward MapIconUpdate();
public MapIconUpdate()
{
new s;//new string[256];
//new Float:X,Float:Y,Float:Z;
for(new i; i < GetMaxPlayers(); i++)
{
if(IsPlayerConnected(i) && PlayerInfo[i][pSpawn] == 1)
{
for(new j = 0; j < sizeof(HouseInfo); j++)//sizeof(HouseInfo) Current_House_ID
{
if (HouseData[j][h_RobWaitTime] > 0)
{
HouseData[j][h_RobWaitTime] --;
}
if (HouseData[j][h_InviteTime] > 0)
{
HouseData[j][h_InviteTime] --;
if (HouseData[j][h_InviteTime] == 1)
{
HouseData[j][h_InviteID] = -1;
HouseData[j][h_InviteRequestID] = -1;
}
}
if (j > 0 && HouseInfo[j][h_cpmarker] > 0)
{
if (IsPlayerInRangeOfPoint(i, 100.0, HouseInfo[j][h_cpx], HouseInfo[j][h_cpy], HouseInfo[j][h_cpz]) && GetPlayerVirtualWorld(i) == 0)
{
if(Slot[i][j] == INVALID_ICON_ID)
{
s = GetFreeSlot(i);
if(IconCount[i] < 99 && s != INVALID_ICON_ID)
{
if (HouseData[j][h_OwnerID] > -1 && HouseInfo[j][h_cptype] == CP_TYPE_HOUSE)
{
if (HouseData[j][h_OwnerID] == i)
{
HouseInfo[j][h_cpmarker] = 35;
}else{
if (HouseData[j][h_Rent] > 0)
{
HouseInfo[j][h_cpmarker] = 32;
}
}
}
SetPlayerMapIcon(i,s,HouseInfo[j][h_cpx], HouseInfo[j][h_cpy], HouseInfo[j][h_cpz],HouseInfo[j][h_cpmarker],0, MAPICON_GLOBAL);
SlotUsed[i][s]=true;
Slot[i][j] = s;
IconCount[i] ++;
}
}
}else{
if(Slot[i][j] != INVALID_ICON_ID)
{
RemovePlayerMapIcon(i,Slot[i][j]);
SlotUsed[i][Slot[i][j]] = false;
Slot[i][j] = INVALID_ICON_ID;
IconCount[i]--;
}
}
}
}
}
}
return 1;
}


