Advertisement
Guest User

Pause detecting script

a guest
Aug 19th, 2011
448
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C++ 1.99 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. forward OnPlayerPaused(playerid);
  4. forward OnPlayerUnpaused(playerid);
  5.  
  6. enum e_Player
  7. {
  8.     Count,
  9.     bool:Paused
  10. }
  11. static PlayerPauseInfo[MAX_PLAYERS][e_Player];
  12. new pauseTimer;
  13.  
  14. #define IsPlayerPaused(%1) PlayerPauseInfo[%1][Paused]
  15.  
  16.  
  17. public OnGameModeInit()
  18. {
  19.     pauseTimer = SetTimer("CheckPausedPlayers", 1000, true);
  20. }
  21. #if defined _ALS_OnGameModeInit
  22.     #undef OnGameModeInit
  23. #else
  24.     #define _ALS_OnGameModeInit
  25. #endif
  26. #define OnGameModeInit Pause_OnGameModeInit
  27. forward Pause_OnGameModeInit();
  28.  
  29. public OnPlayerConnect(playerid)
  30. {
  31.     PlayerPauseInfo[playerid][Paused] = false;
  32.     return 1;
  33. }
  34. #if defined _ALS_OnPlayerConnect
  35.     #undef OnPlayerConnect
  36. #else
  37.     #define _ALS_OnPlayerConnect
  38. #endif
  39. #define OnPlayerConnect Pause_OnPlayerConnect
  40. forward Pause_OnPlayerConnect(playerid);
  41.  
  42. public OnPlayerUpdate(playerid)
  43. {
  44.     PlayerPauseInfo[playerid][Count] = 0;
  45.     if(PlayerPauseInfo[playerid][Paused])
  46.     {
  47.         CallLocalFunction("OnPlayerUnpaused", "i", playerid);
  48.         PlayerPauseInfo[playerid][Paused] = false;
  49.     }
  50.     return 1;
  51. }
  52. #if defined _ALS_OnPlayerUpdate
  53.     #undef OnPlayerUpdate
  54. #else
  55.     #define _ALS_OnPlayerUpdate
  56. #endif
  57. #define OnPlayerUpdate Pause_OnPlayerUpdate
  58. forward Pause_OnPlayerConnect(playerid);
  59.  
  60. stock pause_IsPlayerSpawned(playerid) // By Goldkiller
  61. {
  62.     new PlayerState = GetPlayerState(playerid);
  63.     return (PlayerState != PLAYER_STATE_NONE && PlayerState != PLAYER_STATE_WASTED && PlayerState != PLAYER_STATE_SPECTATING);
  64. }
  65.  
  66. forward CheckPausedPlayers(playerid);
  67. public CheckPausedPlayers()
  68. {
  69.     #if defined foreach
  70.     foreach(Player, playerid)
  71.     #else
  72.     for(new playerid = 0, players = GetMaxPlayers(); playerid != players; playerid++)
  73.     #endif
  74.     {
  75.         if(pause_IsPlayerSpawned(playerid) && !PlayerPauseInfo[playerid][Paused])
  76.         {
  77.             PlayerPauseInfo[playerid][Count] ++;
  78.             if(PlayerPauseInfo[playerid][Count] > 2)
  79.             {
  80.                 CallLocalFunction("OnPlayerPaused", "i", playerid);
  81.                 PlayerPauseInfo[playerid][Paused] = true;
  82.             }
  83.         }
  84.     }
  85.     return 1;
  86. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement