Invisible on radar not working anymore
#1

I had it working but now it doesnt..

pawn Код:
stock ToggleBlipVisibilty(playerid, bool:visible)
{
    new tmpcolor = GetPlayerColor(playerid);
    if(visible == true) tmpcolor &= 0xFFFFFF00;
    else tmpcolor |= 0x000000FF;
    SetPlayerColor(playerid, tmpcolor);
}

dcmd_acvis(playerid, params[])
{
    #pragma unused params

    if(_LOGIN_Rank[playerid] > 1)
    {
        ToggleBlipVisibilty(playerid, true);
    }
    return 1;
}
This function used to get your player color, like green, then make you invisible, all it does is make your name black now. Unless i predefine the tmpcolor like tmpcolor = 0x9ACD32AA, then it works fine.

Does anybody know why?

Thnx!
Reply
#2

Bump!
Reply
#3

tmpcolor |= 0x000000FF; , tmpcolor &= 0xFFFFFF00;

valid codes?

dont bump please, if someone wants to help u, they will do it, bump is not needed.
Reply
#4

https://sampwiki.blast.hk/wiki/GetPlayerColor
Quote:

Important note: GetPlayerColor will return nothing unless SetPlayerColor has been used!

So try this:
pawn Код:
//top of the script
new playerColors[] = {
0xFF8C13FF,0xC715FFFF,0x20B2AAFF,0xDC143CFF,0x6495EDFF,0xf0e68cFF,0x778899FF,0xFF1493FF,0xF4A460FF,0xEE82EEFF,0xFFD720FF,
0x8b4513FF,0x4949A0FF,0x148b8bFF,0x14ff7fFF,0x556b2fFF,0x0FD9FAFF,0x10DC29FF,0x534081FF,0x0495CDFF,0xEF6CE8FF,0xBD34DAFF,
0x247C1BFF,0x0C8E5DFF,0x635B03FF,0xCB7ED3FF,0x65ADEBFF,0x5C1ACCFF,0xF2F853FF,0x11F891FF,0x7B39AAFF,0x53EB10FF,0x54137DFF,
0x275222FF,0xF09F5BFF,0x3D0A4FFF,0x22F767FF,0xD63034FF,0x9A6980FF,0xDFB935FF,0x3793FAFF,0x90239DFF,0xE9AB2FFF,0xAF2FF3FF,
0x057F94FF,0xB98519FF,0x388EEAFF,0x028151FF,0xA55043FF,0x0DE018FF,0x93AB1CFF,0x95BAF0FF,0x369976FF,0x18F71FFF,0x4B8987FF,
0x491B9EFF,0x829DC7FF,0xBCE635FF,0xCEA6DFFF,0x20D4ADFF,0x2D74FDFF,0x3C1C0DFF,0x12D6D4FF,0x48C000FF,0x2A51E2FF,0xE3AC12FF,
0xFC42A8FF,0x2FC827FF,0x1A30BFFF,0xB740C2FF,0x42ACF5FF,0x2FD9DEFF,0xFAFB71FF,0x05D1CDFF,0xC471BDFF,0x94436EFF,0xC1F7ECFF,
0xCE79EEFF,0xBD1EF2FF,0x93B7E4FF,0x3214AAFF,0x184D3BFF,0xAE4B99FF,0x7E49D7FF,0x4C436EFF,0xFA24CCFF,0xCE76BEFF,0xA04E0AFF,
0x9F945CFF,0xDCDE3DFF,0x10C9C5FF,0x70524DFF,0x0BE472FF,0x8A2CD7FF,0x6152C2FF,0xCF72A9FF,0xE59338FF,0xEEDC2DFF,0xD8C762FF,
0x3FE65CFF
};

public OnPlayerConnect(playerid)
{
  SetPlayerColor(playerid,playerColors[playerid]);
}
And...I forgot, use this instead of your SetPlayerColor:
pawn Код:
stock ToggleBlipVisibilty(playerid, bool:visible)
{
  new tmpcolor = GetPlayerColor(playerid);
  if(visible == true) tmpcolor &= 0xFFFFFF00;
  else tmpcolor |= 0x000000FF;
  for ( new i; i < MAX_PLAYERS; i++ )
  {
    if ( i != playerid && IsPlayerConnected(i) )
      SetPlayerMarkerForPlayer( i, playerid, tmpcolor );
  }
}
Reply
#5

There isn't two huindred colours in that array so you would need to add those as if you are playerid 187 for example then it will be an invalid index.
Reply
#6

I doubt his server has more than 100 players at the same time...But anyway he can find another array of player colour or:
pawn Код:
public OnPlayerConnect(playerid)
{
  if(playerid < 100) SetPlayerColor(playerid,playerColors[playerid]);
  if(playerid > 99) SetPlayerColor(playerid,playerColors[playerid-100]);
}
Reply
#7

Just because it may not happen doesn't mean it won't (chance is a mofo!!) and now I've pointed it out and you have given a solution the guy won't be back saying "this crashes my server" so all is good.
Reply
#8

I was searching for a gentle solution on that, ended up with this function:
http://dracoblue.net/dev/toggle-mapi...-a-player/138/

pawn Код:
stock togglePlayerMapIconVisibility(playerid,bool:visible){
SetPlayerColor(playerid, (GetPlayerColor(playerid) | 0xFF) - (visible ? 0x00 : 0xFF));
}
Does not need to store any colors, just does it's work by some bitwise-or .

- Draco
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)