Show cops on radar (only for other cops) -
binnyl - 20.11.2019
I have this function:
pawn Code:
forward TeamRadar(playerid); public TeamRadar(playerid) {
if(IsACop(playerid)) {
foreach(new i : Player) {
if(IsACop(i)) {
SetPlayerMarkerForPlayer(i, playerid, COLOR_LIMEGREEN);
}
}
}
}
It is called in function every 1 second, check if player is a COP, and if player is a COP show to others COPs on radar...
It is already working, but there is a problem, if the partner go out of the player range, map icon show always to north
Even if the partner is not on the north
There is a way to fix it?
My server is already:
Re: Show cops on radar (only for other cops) -
binnyl - 22.11.2019
bump
Re: Show cops on radar (only for other cops) -
Hitek - 22.11.2019
Your code is a little bit incorrect!
I'd better use
Code:
public IsACop(killerid)
{
if(GetPlayerSkin(killerid) == 280 || GetPlayerSkin(killerid) == 281 || GetPlayerSkin(killerid) == 282 || GetPlayerSkin(killerid) == 283 || GetPlayerSkin(killerid) == 284 || GetPlayerSkin(killerid) == 285 || GetPlayerSkin(killerid) == 286 || GetPlayerSkin(killerid) == 287 || GetPlayerSkin(killerid) == 288)
{
return 1;
}
else
{
return 0;
}
}
Check your other scripts and PLUGINS also streamer you use and if your pawn include matches with plugin ver
Re: Show cops on radar (only for other cops) -
Gforcez - 22.11.2019
Quote:
Originally Posted by binnyl
|
Shouldn't you set ShowPlayerMarkers to 0, since you want to hide all the markers and only show the cops to other cops.
Quote:
Originally Posted by Hitek
Your code is a little bit incorrect!
I'd better use
Code:
public IsACop(killerid)
{
if(GetPlayerSkin(killerid) == 280 || GetPlayerSkin(killerid) == 281 || GetPlayerSkin(killerid) == 282 || GetPlayerSkin(killerid) == 283 || GetPlayerSkin(killerid) == 284 || GetPlayerSkin(killerid) == 285 || GetPlayerSkin(killerid) == 286 || GetPlayerSkin(killerid) == 287 || GetPlayerSkin(killerid) == 288)
{
return 1;
}
else
{
return 0;
}
}
Check your other scripts and PLUGINS also streamer you use and if your pawn include matches with plugin ver
|
Are you just randomly saying something? IsACop isn't shown here so how'd you know if it's wrong?
Re: Show cops on radar (only for other cops) -
binnyl - 22.11.2019
Quote:
Originally Posted by Gforcez
Shouldn't you set ShowPlayerMarkers to 0, since you want to hide all the markers and only show the cops to other cops.
Are you just randomly saying something? IsACop isn't shown here so how'd you know if it's wrong?
|
Yes, he is
About showplayermakers i'm using this
pawn Code:
stock TransparentColor(color) { return (color & 0xFFFFFF00); }
So players are not showing on map, only when i want to i remove this transparent color for a little time
By the way the function TeamRadar(playerid); is working as i think
It is only bugging when someone get over from a range, every cops so far to you shows to be on north, not on the right direction
Re: Show cops on radar (only for other cops) -
binnyl - 29.11.2019
bump
Re: Show cops on radar (only for other cops) -
binnyl - 30.11.2019
bump
Re: Show cops on radar (only for other cops) -
ApolloScripter - 30.11.2019
Hello
binnyl, I don't know how exactly
SetPlayerMarkerForPlayer works, but I have a similar system, but I used
SetPlayerMapIcon to put an icon for all players of the same clan.
The difference is that
SetPlayerMapIcon makes it possible to change the constant style to appear on every radar, or just in your field of view.
The problem is that for each Map Icon will need to get the position of the player, but if you are interested follow the steps below and put them in your code, which maybe will work perfectly.
pawn Code:
new iconMapPlayerCount[MAX_PLAYERS]; //Set the variable to Map Icon Count
forward TeamRadar(playerid); public TeamRadar(playerid)
{
if(IsACop(playerid))
{
foreach(new i : Player)
{
if(IsACop(i))
{
if(IsPlayerConnected(i))
{
new Float:tg_x, tg_y, tg_z; //Set variables to target coordinates
GetPlayerPos(i, Float:tg_x, Float:tg_y, Float:tg_z); //Get target pos
SetPlayerMapIcon(playerid, iconMapPlayerCount[playerid], Float:tg_x, Float:tg_y, Float:tg_z, 0, 0x59f060FF, MAPICON_GLOBAL); //Add a icon to the target position
iconMapPlayerCount[playerid]++; //Increment the player count icon id
}
else
{
RemovePlayerMapIcon(playerid, iconMapPlayerCount[playerid]); //Remove the icon if the target disconnect
}
}
}
iconMapPlayerCount[playerid] = 0; //Set the count to 0
}
}
I didn't have time to test the operation, but if you use it and some error occurs, just call me.
EDIT NOTE: The problem with this Icon is that only 100 can be used.
Re: Show cops on radar (only for other cops) -
binnyl - 02.12.2019
Quote:
Originally Posted by ApolloScripter
Hello binnyl, I don't know how exactly SetPlayerMarkerForPlayer works, but I have a similar system, but I used SetPlayerMapIcon to put an icon for all players of the same clan.
The difference is that SetPlayerMapIcon makes it possible to change the constant style to appear on every radar, or just in your field of view.
The problem is that for each Map Icon will need to get the position of the player, but if you are interested follow the steps below and put them in your code, which maybe will work perfectly.
pawn Code:
new iconMapPlayerCount[MAX_PLAYERS]; //Set the variable to Map Icon Count
forward TeamRadar(playerid); public TeamRadar(playerid) { if(IsACop(playerid)) { foreach(new i : Player) { if(IsACop(i)) { if(IsPlayerConnected(i)) { new Float:tg_x, tg_y, tg_z; //Set variables to target coordinates GetPlayerPos(i, Float:tg_x, Float:tg_y, Float:tg_z); //Get target pos SetPlayerMapIcon(playerid, iconMapPlayerCount[playerid], Float:tg_x, Float:tg_y, Float:tg_z, 0, 0x59f060FF, MAPICON_GLOBAL); //Add a icon to the target position iconMapPlayerCount[playerid]++; //Increment the player count icon id } else { RemovePlayerMapIcon(playerid, iconMapPlayerCount[playerid]); //Remove the icon if the target disconnect } } }
iconMapPlayerCount[playerid] = 0; //Set the count to 0 } }
I didn't have time to test the operation, but if you use it and some error occurs, just call me.
EDIT NOTE: The problem with this Icon is that only 100 can be used.
|
I'm already uses SetPlayerMapIcon for a lot of stuff
Even had to use a streammer to don't get to the 100
SetPlayerMarkerForPlayer was made for it
Idk what happen if i'm missing something or if it is bugged already
Anyways, ty to your try, i rep you
Re: Show cops on radar (only for other cops) -
4D1L - 02.12.2019
I believe reducing the number of times you call SetPlayerMarkerForPlayer could help you with your problem.
I would call SetPlayerMarkerForPlayer in both
OnPlayerStreamIn and in
OnPlayerStreamOut and then do checks between them.
Instead of your timer, the following would work:
pawn Code:
public OnPlayerStreamOut(playerid, forplayerid)
{
if(IsACop(forplayerid) && IsACop(playerid))
{
SetPlayerMarkerForPlayer(playerid, forplayerid, COLOR_LIMEGREEN);
}
return 1;
}