Invisible players.
#7

Well YSF supposedly has a ShowPlayerForPlayer and a HidePlayerForPlayer function though I personally have never tested it but it seems to be there. It should work something like this:

pawn Код:
#include <a_samp>
#include <YSF>
new static bool: Visible[MAX_PLAYERS] = true;

public OnPlayerConnect(playerid)
{
    Visible[playerid] = true;
    CallLocalFunction("HOOK_OnPlayerConnect", "i", playerid);
    return 1;
}

#if defined _ALS_OnPlayerConnect
  #undef OnPlayerConnect
#else
#define _ALS_OnPlayerConnect
#endif

#define OnPlayerConnect HOOK_OnPlayerConnect

forward HOOK_OnPlayerConnect(playerid);

stock IsPlayerVisible(playerid)
{
    if(Visible[playerid] == true)
        return 1;
   
    return 0;
}

stock SetPlayerVisible(playerid, bool: visible_)
{
    if(visible_)
    {
        if(Visible[playerid])
        {
            SyncPlayerVisible(playerid); // player is already visible, so sync it just in case
            return 1;
        }
       
        else
        {
            Visible[playerid] = true;
            SyncPlayerVisible(playerid);
        }
    }
   
    else
    {
        Visible_[playerid] = false;
        SyncPlayerVisable(playerid);
        return 1;
    }
}

static stock SyncPlayerVisible(playerid)
{
    if(IsPlayerConnected(playerid))
    {
        if(Visible[playerid])
        {
            for(new i; i < MAX_PLAYERS; i++)
            {
                if(!IsPlayerConnected(i)) continue;
               
                ShowPlayerForPlayer(i, playerid);
            }
        }
        else
        {
            for(new i; i < MAX_PLAYERS; i++)
            {
                if(!IsPlayerConnected(i)) continue;
                ShowPlayerForPlayer(i, playerid);
            }
        }
    }
   
    return 1;
}

public OnPlayerStreamIn(playerid, forplayerid)
{
    if(Visible[playerid])
    {
        ShowPlayerForPlayer(forplayerid, playerid);
    }
    else HidePlayerForPlayer(forplayerid, playerid);
    CallLocalFunction("HOOK_OnPlayerStreamIn", "ii", playerid, forplayerid);
    return 1;
}

#if defined _ALS_OnPlayerStreamIn
  #undef OnPlayerStreamIn
#else
#define _ALS_OnPlayerStreamIn
#endif

#define OnPlayerStreamIn HOOK_OnPlayerStreamIn

forward HOOK_OnPlayerStreamIn(playerid, forplayerid);
(http://pastebin.com/R5H0bKED)

This is set up as an include, use IsPlayerVisible to check if the player is visible & SetPlayerVisible to toggle their visibility, ex:
pawn Код:
CMD:v(playerid, params[])
{
    if(IsPlayerVisible(playerid))
    {
        SetPlayerVisible(playerid, false);
    }
   
    else SetPlayerVisible(playerid, true);
    return 1;
}
Reply


Messages In This Thread
Invisible players. - by Denying - 13.08.2015, 19:07
Re: Invisible players. - by SoFahim - 13.08.2015, 19:10
Re: Invisible players. - by AIped - 13.08.2015, 20:05
Re: Invisible players. - by Denying - 13.08.2015, 21:55
Re: Invisible players. - by Denying - 15.08.2015, 15:23
Re: Invisible players. - by Denying - 16.08.2015, 17:12
Re: Invisible players. - by Abagail - 16.08.2015, 17:26
Re: Invisible players. - by faff - 16.08.2015, 18:35
Re: Invisible players. - by Denying - 17.08.2015, 15:25
Re: Invisible players. - by DaniceMcHarley - 17.08.2015, 15:33

Forum Jump:


Users browsing this thread: 1 Guest(s)