Guest User

paused.inc

a guest
Aug 11th, 2012
70
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 1.75 KB | None | 0 0
  1. #include <YSI\y_hooks>
  2.  
  3. #define TIME_DIF 2000 //Decreasing will make it more accurate, leave it like that, it's fine.
  4.  
  5. forward C_Paused(playerid);
  6. forward OnPlayerPause(playerid);
  7. forward OnPlayerUnPause(playerid);
  8.  
  9. new g_Paused[MAX_PLAYERS];
  10. new g_Timer[MAX_PLAYERS];
  11. new bool:g_Requesting[MAX_PLAYERS];
  12. new bool:g_IsPaused[MAX_PLAYERS];
  13.  
  14. Hook:P_OnPlayerConnect(playerid)
  15. {
  16. g_IsPaused[playerid] = false;
  17. g_Requesting[playerid] = false;
  18. g_Timer[playerid] = SetTimerEx("C_Paused", 754, 1, "i", playerid);
  19. return 1;
  20. }
  21.  
  22. Hook:P_OnPlayerUpdate(playerid)
  23. {
  24. g_Paused[playerid] = GetTickCount();
  25. return 1;
  26. }
  27.  
  28. Hook:P_OnPlayerRequestClass(playerid)
  29. {
  30. g_Requesting[playerid] = true;
  31. g_IsPaused[playerid] = false;
  32. return 1;
  33. }
  34.  
  35. Hook:P_OnPlayerDisconnect(playerid)
  36. {
  37. KillTimer(g_Timer[playerid]);
  38. g_Requesting[playerid] = false;
  39. g_IsPaused[playerid] = false;
  40. return 1;
  41. }
  42.  
  43. Hook:P_OnPlayerSpawn(playerid)
  44. {
  45. g_Requesting[playerid] = false;
  46. g_IsPaused[playerid] = false;
  47. return 1;
  48. }
  49.  
  50. public C_Paused(playerid)
  51. {
  52. if(GetTickCount()-g_Paused[playerid] > TIME_DIF && g_Requesting[playerid] != true && g_IsPaused[playerid] != true && InvalidStates(playerid) != 1)
  53. {
  54. OnPlayerPause(playerid);
  55. g_IsPaused[playerid] = true;
  56. }
  57. else if(GetTickCount()-g_Paused[playerid] < TIME_DIF && g_Requesting[playerid] != true && g_IsPaused[playerid] != false && InvalidStates(playerid) != 1)
  58. {
  59. OnPlayerUnPause(playerid);
  60. g_IsPaused[playerid] = false;
  61. }
  62. return 1;
  63. }
  64.  
  65. stock IsPlayerPaused(playerid)
  66. {
  67. return g_IsPaused[playerid];
  68. }
  69.  
  70. stock InvalidStates(playerid)
  71. {
  72. new pState = GetPlayerState(playerid);
  73. if(pState == 0 || pState == 7)
  74. {
  75. return 1;
  76. }
  77. else
  78. {
  79. return 0;
  80. }
  81. }
Advertisement
Add Comment
Please, Sign In to add comment