#1

Hello!

I want you to only see team members on radar, and not all players/teams.
How do i do that?
Reply
#2

SetPlayerMarkerForPlayer

Do a loop through all players, check if team is the same and set the marker accordingly.
Reply
#3

Quote:
Originally Posted by Vince
View Post
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?
Reply
#4

For example:

PHP Code:
for(new 0MAX_PLAYERSi++)
{
    if(
VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }

Reply
#5

Quote:
Originally Posted by Shadoww5
View Post
For example:

PHP Code:
for(new 0MAX_PLAYERSi++)
{
    if(
VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }

Thats it? or do i need to "complete" it with some other codes?
Reply
#6

It depends when you want call this function. For example: OnPlayerConnect

PHP Code:
public OnPlayerConnect()
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }
    }  
    return 
1;

Reply
#7

Quote:
Originally Posted by Shadoww5
View Post
It depends when you want call this function. For example: OnPlayerConnect

PHP Code:
public OnPlayerConnect()
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
VARIABLE[i] == true) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }
    }  
    return 
1;

Ah ok, i think OnPlayerSpawn would be a better choice?
Does this works for SetPlayerTeam(id, ?
Reply
#8

Quote:
Originally Posted by cruising
View Post
Ah ok, i think OnPlayerSpawn would be a better choice?
Does this works for SetPlayerTeam(id, ?
Yes, change
pawn Code:
if (VARIABLE[i] == true)
to
pawn Code:
if(GetPlayerTeam(i)) == X)
Reply
#9

Quote:
Originally Posted by [GF]Sasino97
View Post
Yes, change
pawn Code:
if (VARIABLE[i] == true)
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
Reply
#10

Define X and use this code:

PHP Code:
public OnPlayerConnect()
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
GetPlayerTeam(i) == X) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }
    }  
    return 
1;

Reply
#11

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;
}
Reply
#12

Quote:
Originally Posted by Shadoww5
View Post
Define X and use this code:

PHP Code:
public OnPlayerConnect()
{
    for(new 
0MAX_PLAYERSi++)
    {
        if(
GetPlayerTeam(i) == X) { SetPlayerMarkerForPlayer(playeridi0xFFFF00FF); }
    }  
    return 
1;

When i define X, i get errors on other lines way down the script.
Reply
#13

Quote:
Originally Posted by Ricop522
View Post
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.");
    }
Reply
#14

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;
}
Reply
#15

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;
}
Reply
#16

Quote:
Originally Posted by PCheriyan007
View Post
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?
Reply
#17

Make it ShowPlayerMarkers(true); and use the tips of my example.
Reply
#18

Quote:
Originally Posted by BigETI
View Post
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.
Reply


Forum Jump:


Users browsing this thread: