Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- #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);
Advertisement
Add Comment
Please, Sign In to add comment