possible solutions for blips removal ...
in here :
Code:
// Manage Allies
void ManageAlly(void)
{
uint AN = 0;
for(AN=0;AN<=ALLYMAX;AN++)
{
if(DOES_CHAR_EXIST(aped[AN]))
{
SET_CHAR_WANTED_BY_POLICE(aped[AN], FALSE);
if(aPedRC[AN] == 1)
{
if(IS_CHAR_DEAD(aped[AN]) || IS_CHAR_IN_ANY_CAR(aped[AN]) && IS_CHAR_DEAD(aped[AN]))
{
REMOVE_FAKE_NETWORK_NAME_FROM_PED(aped[AN]);
REMOVE_BLIP(aped[AN]);
EXPLODE_CHAR_HEAD(aped[AN]);
TASK_DIE(aped[AN]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&aped[AN]);
aPedRC[AN] = 0;
}
}
}
}
}
did you try just :
Code:
// Manage Allies
void ManageAlly(void)
{
uint AN = 0;
for(AN=0;AN<=ALLYMAX;AN++)
{
if(DOES_CHAR_EXIST(aped[AN]))
{
SET_CHAR_WANTED_BY_POLICE(aped[AN], FALSE);
if(aPedRC[AN] == 1)
{
if(IS_CHAR_DEAD(aped[AN]))
{
REMOVE_FAKE_NETWORK_NAME_FROM_PED(aped[AN]);
REMOVE_BLIP(aped[AN]);
EXPLODE_CHAR_HEAD(aped[AN]);
TASK_DIE(aped[AN]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&aped[AN]);
aPedRC[AN] = 0;
}
}
}
}
}
or maybe you could add a distance check ... like this :
Code:
// Manage Allies
void ManageAlly(void)
{
float xp, yp, zp;
float xa, ya, za;
float dist;
uint AN = 0;
for(AN=0;AN<=ALLYMAX;AN++)
{
if(DOES_CHAR_EXIST(aped[AN]))
{
SET_CHAR_WANTED_BY_POLICE(aped[AN], FALSE);
GET_CHAR_COORDINATES(GetPlayerPed(), &xp, &yp, &zp);
GET_CHAR_COORDINATES(aped[AN], &xa, &ya, &za);
GET_DISTANCE_BETWEEN_COORDS_3D(xp, yp, zp, xa, ya, za, &dist);
if(aPedRC[AN] == 1)
{
if(IS_CHAR_DEAD(aped[AN]) || dist > 250.0)
{
REMOVE_FAKE_NETWORK_NAME_FROM_PED(aped[AN]);
REMOVE_BLIP(aped[AN]);
EXPLODE_CHAR_HEAD(aped[AN]);
TASK_DIE(aped[AN]);
MARK_CHAR_AS_NO_LONGER_NEEDED(&aped[AN]);
aPedRC[AN] = 0;
}
}
}
}
}