Radar -
cruising - 29.06.2011
Hello!
I want you to only see team members on radar, and not all players/teams.
How do i do that?
Re: Radar -
Vince - 29.06.2011
SetPlayerMarkerForPlayer
Do a loop through all players, check if team is the same and set the marker accordingly.
Re: Radar -
cruising - 29.06.2011
Quote:
Originally Posted by Vince
SetPlayerMarkerForPlayer
Do a loop through all players, check if team is the same and set the marker accordingly.
|
Loops and stuffs are to advanced to me, wanna try help me a bit with that?
Re: Radar -
Shadoww5 - 29.06.2011
For example:
PHP Code:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
Re: Radar -
cruising - 30.06.2011
Quote:
Originally Posted by Shadoww5
For example:
PHP Code:
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
|
Thats it? or do i need to "complete" it with some other codes?
Re: Radar -
Shadoww5 - 30.06.2011
It depends when you want call this function. For example:
OnPlayerConnect
PHP Code:
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
return 1;
}
Re: Radar -
cruising - 30.06.2011
Quote:
Originally Posted by Shadoww5
It depends when you want call this function. For example: OnPlayerConnect
PHP Code:
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
return 1;
}
|
Ah ok, i think OnPlayerSpawn would be a better choice?
Does this works for SetPlayerTeam(id, ?
Re: Radar -
Sasino97 - 30.06.2011
Quote:
Originally Posted by cruising
Ah ok, i think OnPlayerSpawn would be a better choice?
Does this works for SetPlayerTeam(id, ?
|
Yes, change
to
pawn Code:
if(GetPlayerTeam(i)) == X)
Re: Radar -
cruising - 30.06.2011
Quote:
Originally Posted by [GF]Sasino97
Yes, change to
pawn Code:
if(GetPlayerTeam(i)) == X)
|
Ok, so if i do like this and put it on OnPlayerSpawn, you only see ur own team on the radar right?
pawn Code:
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerTeam(i)) == X) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
return 1;
}
Edit: X give me error about define, and when i define i got much more errors
Re: Radar -
Shadoww5 - 30.06.2011
Define X and use this code:
PHP Code:
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerTeam(i) == X) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
return 1;
}
Re: Radar -
Ricop522 - 01.07.2011
pawn Code:
#define Vagos 1
//
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++) {
if(GetPlayerTeam(i) == Vagos) SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF);
}
return 1;
}
Re: Radar -
cruising - 01.07.2011
Quote:
Originally Posted by Shadoww5
Define X and use this code:
PHP Code:
public OnPlayerConnect()
{
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(GetPlayerTeam(i) == X) { SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); }
}
return 1;
}
|
When i define X, i get errors on other lines way down the script.
Re: Radar -
cruising - 01.07.2011
Quote:
Originally Posted by Ricop522
pawn Code:
#define Vagos 1
// public OnPlayerConnect() { for(new i = 0; i < MAX_PLAYERS; i++) { if(GetPlayerTeam(i) == Vagos) SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); } return 1; }
|
Thanks, but i dont use teams like that, i only put players in teams with SetPlayerTeam(playerid, 1); when read the userfile
like this
pawn Code:
public OnPlayerSpawn(playerid)
{
if(Member[playerid] == 1)
{
if(Member[playerid] > 0) PutPlayerInGroup(playerid, Member[playerid]);
if(Member[playerid] != 1) PutPlayerInGroup(playerid, Member[playerid]);
SetPlayerColor(playerid,COLOR_GREY);
SetPlayerTeam(playerid, 1);
SetPlayerSkin(playerid, 255);
SetPlayerPos(playerid, 1607.7803,1169.4840,14.2188);
GivePlayerWeapon(playerid,36,60); //HS Rocket Launcher **
GivePlayerWeapon(playerid,27,100); //Combat Shotgun
GivePlayerWeapon(playerid,30,200); //AK-47
SendClientMessage(playerid,COLOR_GREY,"Combat Team: Airwolves.");
}
Re: Radar -
PCheriyan007 - 01.07.2011
Do what Ricop said. I sorta made an edited version of it.
pawn Code:
#include <a_samp>
#include <foreach>
#define Vagos 1
#define Rifas 2
#define Grove 3
#define Ballas 4
#define Triad 5
public OnPlayerConnect()
{
foreach(Player, i)
{
if(GetPlayerTeam(i) == Vagos) SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF);
else if(GetPlayerTeam(i) == Rifas) SetPlayerMarkerForPlayer(playerid, i, 0x00E4C5FF);
else if(GetPlayerTeam(i) == Grove) SetPlayerMarkerForPlayer(playerid, i, 0x009A05FF);
else if(GetPlayerTeam(i) == Ballas) SetPlayerMarkerForPlayer(playerid, i, 0xAE00FFFF);
else if(GetPlayerTeam(i) == Triad) SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF);
}
return 1;
}
Re: Radar -
BigETI - 01.07.2011
pawn Code:
stock SharePlayerMarkers(playerid, id) //Shares the markers between those player ID's
{
SetPlayerMarkerForPlayer(playerid, id, GetPlayerColor(id));
SetPlayerMarkerForPlayer(id, playerid, GetPlayerColor(playerid));
}
stock RemovePlayerMarkers(playerid, id) //Removes the markers from both sides
{
SetPlayerMarkerForPlayer(playerid, id, (GetPlayerColor(id) & 0xFFFFFF00));
SetPlayerMarkerForPlayer(id, playerid, (GetPlayerColor(playerid) & 0xFFFFFF00));
}
public OnPlayerSpawn(playerid)
{
//...
SetPlayerTeam(playerid, GetPVarInt(playerid, "TeamID")); //However you are setting the teams
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(GetPlayerTeam(i) == GetPlayerTeam(playerid)) SharePlayerMarkers(playerid, i);
else RemovePlayerMarkers(playerid, i);
}
}
//...
return 1;
}
Re: Radar -
cruising - 01.07.2011
Quote:
Originally Posted by PCheriyan007
Do what Ricop said. I sorta made an edited version of it.
pawn Code:
#include <a_samp> #include <foreach>
#define Vagos 1 #define Rifas 2 #define Grove 3 #define Ballas 4 #define Triad 5
public OnPlayerConnect() { foreach(Player, i) { if(GetPlayerTeam(i) == Vagos) SetPlayerMarkerForPlayer(playerid, i, 0xFFFF00FF); else if(GetPlayerTeam(i) == Rifas) SetPlayerMarkerForPlayer(playerid, i, 0x00E4C5FF); else if(GetPlayerTeam(i) == Grove) SetPlayerMarkerForPlayer(playerid, i, 0x009A05FF); else if(GetPlayerTeam(i) == Ballas) SetPlayerMarkerForPlayer(playerid, i, 0xAE00FFFF); else if(GetPlayerTeam(i) == Triad) SetPlayerMarkerForPlayer(playerid, i, 0xFF0000FF); } return 1; }
|
Uhm.. i have done everything and on OnPlayerSpawn i set up the teams with SetPlayerTeam(playerid, Rifas); etc
But all the markers is being shown for everyone anyways, and if i remove the global ShowPlayerMarkers(0); on OnGameModeInit, you do not see any markers at all. what am i doing wrong?
Re: Radar -
BigETI - 01.07.2011
Make it ShowPlayerMarkers(true); and use the tips of my example.
Re: Radar -
cruising - 01.07.2011
Quote:
Originally Posted by BigETI
Make it ShowPlayerMarkers(true); and use the tips of my example.
|
You mean ShowPlayerMarkers(true); on OnGameModeInit?
I have been looking at your tip, but i dont know how to set up the teams to fit your code
EDIT: it seams that i got it to work, changed some stuffs to this
pawn Code:
SetPlayerTeam(playerid, GetPVarInt(playerid, Member)); //However you are setting the teams
for(new i = 0; i < MAX_PLAYERS; i++)
{
if(IsPlayerConnected(i))
{
if(Member[i] == Member[playerid]) SharePlayerMarkers(playerid, i);
else RemovePlayerMarkers(playerid, i);
}
}
So i say thank you for the best solution!
EDIT2: there is a issue, when a player spawns, you dont see others on the radar, but when you get close to a another player you see hes blip on radar, ever if you after that go away from the player :S
And it seams that there is no blips at all until you get close to a another player, no matter witch team or member you are.