Advertisement
drakee

daused

Nov 27th, 2012
286
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Pawn 3.68 KB | None | 0 0
  1. #if defined _daused_included
  2.     #endinput
  3. #else
  4.     #define _daused_included
  5. #endif
  6.  
  7.  
  8. new
  9.     d_AfkTeszt[MAX_PLAYERS] = false,
  10.     d_Afkzik[MAX_PLAYERS] = false,
  11.     d_Timer[MAX_PLAYERS] = false,
  12.     Float:d_CameraPosok[MAX_PLAYERS][3];
  13.  
  14. forward OnPlayerPause(playerid);
  15. forward OnPlayerUnPause(playerid);
  16.  
  17. static
  18.     bool:daused_g_HasOPP = false,
  19.     bool:daused_g_HasOPUP = false;
  20.  
  21. #if defined FILTERSCRIPT
  22.  
  23. public OnFilterScriptInit()
  24. {
  25.     daused_g_HasOPP =   funcidx("OnPlayerPause") != -1;
  26.     daused_g_HasOPUP    =   funcidx("OnPlayerUnPause") != -1;
  27.    
  28.     return
  29.         CallLocalFunction("daused_OnFilterScriptInit", "");
  30. }
  31.  
  32. #if defined _ALS_OnFilterScriptInit
  33.     #undef OnFilterScriptInit
  34. #else
  35.     #define _ALS_OnFilterScriptInit
  36. #endif
  37. #define OnFilterScriptInit daused_OnFilterScriptInit
  38. forward daused_OnFilterScriptInit();
  39.  
  40. #else
  41.  
  42. public OnGameModeInit()
  43. {
  44.     daused_g_HasOPP =   funcidx("OnPlayerPause") != -1;
  45.     daused_g_HasOPUP    =   funcidx("OnPlayerUnPause") != -1;
  46.    
  47.     if(funcidx("daused_OnGameModeInit") != -1)
  48.     {
  49.         return CallLocalFunction("daused_OnGameModeInit", "");
  50.     }
  51.     return true;
  52. }
  53.  
  54. #if defined _ALS_OnGameModeInit
  55.     #undef OnGameModeInit
  56. #else
  57.     #define _ALS_OnGameModeInit
  58. #endif
  59. #define OnGameModeInit daused_OnGameModeInit
  60. forward daused_OnGameModeInit();
  61.  
  62. #endif
  63.  
  64.    
  65. public OnPlayerUpdate(playerid)
  66. {
  67.     d_AfkTeszt[playerid]++;
  68.     return CallLocalFunction("daused_OnPlayerUpdate", "i", playerid);
  69. }
  70.  
  71. #if defined _ALS_OnPlayerUpdate
  72.     #undef OnPlayerUpdate
  73. #else
  74.     #define _ALS_OnPlayerUpdate
  75. #endif
  76. #define OnPlayerUpdate daused_OnPlayerUpdate
  77. forward daused_OnPlayerUpdate(playerid);
  78.  
  79. public OnPlayerConnect(playerid)
  80. {
  81.     d_Timer[playerid]       =   SetTimerEx("CheckIfPaused", 500, true, "i", playerid);
  82.     d_AfkTeszt[playerid]    =   0;
  83.     d_Afkzik[playerid]      =   false;
  84.     d_Timer[playerid]       =   false;
  85.     return CallLocalFunction("daused_OnPlayerConnect", "i", playerid);
  86. }
  87.  
  88. #if defined _ALS_OnPlayerConnect
  89.     #undef OnPlayerConnect
  90. #else
  91.     #define _ALS_OnPlayerConnect
  92. #endif
  93. #define OnPlayerConnect daused_OnPlayerConnect
  94. forward daused_OnPlayerConnect(playerid);
  95.  
  96. public OnPlayerDisconnect(playerid, reason)
  97. {
  98.     KillTimer(d_Timer[playerid]);
  99.     d_AfkTeszt[playerid]    =   0;
  100.     d_Afkzik[playerid]      =   false;
  101.     d_Timer[playerid]       =   false;
  102.     return CallLocalFunction("daused_OnPlayerDisconnect", "ii", playerid, reason);
  103. }
  104.  
  105. #if defined _ALS_OnPlayerDisconnect
  106.     #undef OnPlayerDisconnect
  107. #else
  108.     #define _ALS_OnPlayerDisconnect
  109. #endif
  110. #define OnPlayerDisconnect daused_OnPlayerDisconnect
  111. forward daused_OnPlayerDisconnect(playerid, reason);
  112.  
  113. forward CheckIfPaused(playerid);
  114. public CheckIfPaused(playerid)
  115. {
  116.     new
  117.         Float:CameraPos[3];
  118.    
  119.     GetPlayerCameraPos(playerid, CameraPos[0], CameraPos[1], CameraPos[2]);
  120.    
  121.     if(d_AfkTeszt[playerid] && d_Afkzik[playerid] && !InvalidStates(playerid))
  122.     {
  123.         d_Afkzik[playerid] = false;
  124.        
  125.         if(daused_g_HasOPUP)
  126.         {
  127.             CallLocalFunction("OnPlayerUnPause", "i", playerid);
  128.         }
  129.     }
  130.        
  131.     else if(!d_AfkTeszt[playerid] && !d_Afkzik[playerid] && (d_CameraPosok[playerid][0] == CameraPos[0]) && (d_CameraPosok[playerid][1] == CameraPos[1]) && (d_CameraPosok[playerid][2] == CameraPos[2]) && !InvalidStates(playerid))
  132.     {
  133.         d_Afkzik[playerid] = true;
  134.        
  135.         if(daused_g_HasOPP)
  136.         {
  137.             CallLocalFunction("OnPlayerPause", "i", playerid);
  138.         }
  139.     }
  140.    
  141.     GetPlayerCameraPos(playerid, d_CameraPosok[playerid][0], d_CameraPosok[playerid][1], d_CameraPosok[playerid][2]);
  142.    
  143.     d_AfkTeszt[playerid] = 0;
  144.    
  145.     return true;
  146. }
  147.  
  148. stock bool:IsPlayerPaused(playerid)
  149.     return d_Afkzik[playerid];
  150.  
  151. stock InvalidStates(playerid)
  152. {
  153.     new
  154.         pState = GetPlayerState(playerid);
  155.        
  156.     if(pState == 0 || pState == 7)
  157.         return true;
  158.     else
  159.         return false;
  160. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement