Advertisement
Guest User

Untitled

a guest
Feb 6th, 2016
48
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 6.08 KB | None | 0 0
  1. #include <a_samp>
  2.  
  3. #define AUTO_AFK_CHECK_INTERVAL 5
  4. #define AUTO_AFK_TOLERANCE 5
  5.  
  6. #define C_LIGHT_BLUE 0x00FFFFFF
  7. #define C_LIGHT_BLUE_E "{00FFFF}"
  8.  
  9. enum
  10. {
  11. DIALOG_AFK
  12. }
  13.  
  14. enum HPandAP
  15. {
  16. Float:health,
  17. Float:armour
  18. }
  19.  
  20. new bool:AutoAFK_Detected[MAX_PLAYERS],
  21. Float:Position[MAX_PLAYERS][3],
  22. AutoAFK_Timer[MAX_PLAYERS],
  23. StartGodModeTimer[MAX_PLAYERS],
  24. bool:IsPlayerAFK[MAX_PLAYERS] = false,
  25. Float:PlayerHPandAP[MAX_PLAYERS][HPandAP];
  26.  
  27. #define FILTERSCRIPT
  28. #if defined FILTERSCRIPT
  29.  
  30. public OnFilterScriptInit()
  31. {
  32.  
  33. print("Drake DS:RP");
  34.  
  35.  
  36. SetTimer("AutoAFK_Check", AUTO_AFK_CHECK_INTERVAL*1000, true);
  37. return 1;
  38. }
  39.  
  40. public OnFilterScriptExit()
  41. {
  42. print("AutoAFK has been unloaded.");
  43. return 1;
  44. }
  45.  
  46. public OnPlayerSpawn(playerid)
  47. {
  48. GetPlayerPos(playerid, Position[playerid][0], Position[playerid][1], Position[playerid][2]);
  49. return 1;
  50. }
  51.  
  52. public OnPlayerText(playerid, text[])
  53. {
  54. if(AutoAFK_Detected[playerid])
  55. {
  56. AutoAFK_Detected[playerid] = false;
  57. }
  58. return 1;
  59. }
  60.  
  61. public OnDialogResponse(playerid, dialogid, response, listitem, inputtext[])
  62. {
  63. if(dialogid == DIALOG_AFK)
  64. {
  65. if(response)
  66. {
  67. new PlayerWhoGoesBack[MAX_PLAYER_NAME],
  68. string[64];
  69. KillTimer(StartGodModeTimer[playerid]);
  70. ReturnPlayerHPandAP(playerid);
  71. GetPlayerName(playerid, PlayerWhoGoesBack, sizeof(PlayerWhoGoesBack));
  72. format(string, sizeof(string), "»PLAYERINFO« {%06x}%s "#C_LIGHT_BLUE_E"is playing again.", GetPlayerColor(playerid) >>> 8, PlayerWhoGoesBack);
  73. SendClientMessageToAll(C_LIGHT_BLUE, string);
  74. ClearAnimations(playerid);
  75. IsPlayerAFK[playerid] = false;
  76. return 1;
  77. }
  78. else ShowPlayerDialog(playerid, DIALOG_AFK, DIALOG_STYLE_MSGBOX, "Away From Keyboard", "You are now in the "#C_LIGHT_BLUE_E"AFK mode"#C_DIALOG_E".\nPress "#C_LIGHT_BLUE_E"Back"#C_DIALOG_E" to play again.", "Back", "");
  79. }
  80. return 1;
  81. }
  82.  
  83. forward AutoAFK_Processed(playerid);
  84. public AutoAFK_Processed(playerid)
  85. {
  86. new PlayerWhoGoesAFK[MAX_PLAYER_NAME],
  87. string[64+32];
  88. ShowPlayerDialog(playerid, DIALOG_AFK, DIALOG_STYLE_MSGBOX, "Away From Keyboard", "You are now in the "#C_LIGHT_BLUE_E"AFK mode"#C_DIALOG_E".\nPress "#C_LIGHT_BLUE_E"Back"#C_DIALOG_E" to play again.", "Back", "");
  89. SavePlayerHPandAP(playerid);
  90. StartGodModeTimer[playerid] = SetTimerEx("StartGodMode", 250, true, "i", playerid);
  91. GetPlayerName(playerid, PlayerWhoGoesAFK, sizeof(PlayerWhoGoesAFK));
  92. format(string, sizeof(string), "»PLAYERINFO« {%06x}%s "#C_LIGHT_BLUE_E"is now AFK.", GetPlayerColor(playerid) >>> 8, PlayerWhoGoesAFK);
  93. SendClientMessageToAll(C_LIGHT_BLUE, string);
  94. ApplyAnimation(playerid, "SUNBATHE", "ParkSit_M_in", 4.1, 0, 1, 1, 1, 1);
  95. IsPlayerAFK[playerid] = true;
  96. return 1;
  97. }
  98.  
  99. forward AutoAFK_Check();
  100. public AutoAFK_Check()
  101. {
  102. for(new i; i < MAX_PLAYERS; i++)
  103. {
  104. if(IsPlayerConnected(i))
  105. {
  106. if(!IsPlayerAFK[i])
  107. {
  108. if(IsPlayerInRangeOfPoint(i, 0, Position[i][0], Position[i][1], Position[i][2]))
  109. {
  110. if(AutoAFK_Detected[i])
  111. {
  112. return 1;
  113. }
  114. else if(!AutoAFK_Detected[i])
  115. {
  116. AutoAFK_Detected[i] = true;
  117. AutoAFK_Timer[i] = SetTimerEx("AutoAFK_Processed", AUTO_AFK_TOLERANCE*60000, false, "i", i);
  118. return 1;
  119. }
  120. }
  121. else if(!IsPlayerInRangeOfPoint(i, 0, Position[i][0], Position[i][1], Position[i][2]))
  122. {
  123. if(AutoAFK_Detected[i])
  124. {
  125. KillTimer(AutoAFK_Timer[i]);
  126. AutoAFK_Detected[i] = false;
  127. GetPlayerPos(i, Position[i][0], Position[i][1], Position[i][2]);
  128. return 1;
  129. }
  130. else if(!AutoAFK_Detected[i])
  131. {
  132. AutoAFK_Detected[i] = false;
  133. GetPlayerPos(i, Position[i][0], Position[i][1], Position[i][2]);
  134. return 1;
  135. }
  136. }
  137. }
  138. else if(IsPlayerAFK[i])
  139. {
  140. return 1;
  141. }
  142. }
  143. }
  144. return 1;
  145. }
  146.  
  147. forward StartGodMode(playerid);
  148. public StartGodMode(playerid) return SetPlayerHealth(playerid, 99999);
  149.  
  150. stock SavePlayerHPandAP(playerid)
  151. {
  152. GetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
  153. GetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
  154. return 1;
  155. }
  156.  
  157. stock ReturnPlayerHPandAP(playerid)
  158. {
  159. SetPlayerHealth(playerid, PlayerHPandAP[playerid][health]);
  160. SetPlayerArmour(playerid, PlayerHPandAP[playerid][armour]);
  161. return 1;
  162. }
  163.  
  164. #endif
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement