Advertisement
Guest User

AFKSystem By MatteoRox

a guest
Mar 14th, 2012
191
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 5.44 KB | None | 0 0
  1. //============================================================================//
  2. // _________________________________ //
  3. // | AFKSystem by MatteoRox | //
  4. // | Righe:176 | //
  5. // | Data creazione: 13/03/2012 | //
  6. // | Last Update:14/03/2012 | //
  7. // |_________________________________| //
  8. // //
  9. //============================================================================//
  10. #include <a_samp>
  11. #define RED 0xFF0019FF
  12. #define GREEN 0x00FF0AFF
  13. #pragma tabsize 0
  14. new Afk[MAX_PLAYERS];
  15. new stringa[256];
  16. new name[24];
  17. new mute[MAX_PLAYERS];
  18. new aPVeh[MAX_PLAYERS];
  19. new aCmd[MAX_PLAYERS];
  20. new intid, vwid, vehid, seatid;
  21. enum SavePos {
  22. Float:aX,
  23. Float:aY,
  24. Float:aZ,
  25. };
  26. enum PosCheck {
  27. Float:cX,
  28. Float:cY,
  29. Float:cZ,
  30. };
  31. new CP[MAX_PLAYERS][PosCheck];
  32. new PosChecked, Float:x, Float: y, Float:z;
  33. new aP[MAX_PLAYERS][SavePos];
  34. public OnPlayerConnect(playerid)
  35. {
  36. SetTimerEx("CheckPos", 300000, true, "i", playerid); // 5 minuti
  37. PosChecked = 0;
  38. return 1;
  39. }
  40. forward CheckPos(playerid);
  41. public CheckPos(playerid)
  42. {
  43. if((PosChecked == 0) && (Afk[playerid] == 0))
  44. {
  45. GetPlayerPos(playerid, CP[playerid][cX],CP[playerid][cY],CP[playerid][cZ]);
  46. PosChecked = 1;
  47. return 1;
  48. }
  49. if(PosChecked == 1)
  50. {
  51. GetPlayerPos(playerid, x , y, z);
  52. if((CP[playerid][cX] == x) && (CP[playerid][cY] == y) && (CP[playerid][cZ] == z))
  53. {
  54. PosChecked = 0;
  55. SendClientMessage(playerid, RED, "[AFKSystem]:Il check ha rivelato che sei AFK, quindi entrerai nell'AFK mode!");
  56. return AFKmode(playerid);
  57. }
  58. else
  59. {
  60. PosChecked = 0;
  61. }
  62. return 1;
  63. }
  64. return 1;
  65. }
  66. forward AFKmode(playerid);
  67. public AFKmode(playerid)
  68. {
  69. if(IsPlayerInAnyVehicle(playerid))
  70. {
  71. aPVeh[playerid] = 1;
  72. aCmd[playerid] = 1;
  73. vehid = GetPlayerVehicleID(playerid);
  74. seatid = GetPlayerVehicleSeat(playerid);
  75. new randvw = 999 - random(998);
  76. Afk[playerid] = 1;
  77. TogglePlayerControllable(playerid, 0);
  78. mute[playerid] = 1;
  79. SendClientMessage(playerid, RED, "[AFKSystem]:Ora sei AFK, per uscire dall'AFK digita /back!");
  80. GetPlayerName(playerid, name, 24);
  81. format(stringa, 256, "[AFKSystem]:%s è AFK!", name);
  82. SendClientMessageToAll(RED, stringa);
  83. SetPlayerPos(playerid,198.0581,174.1483,1003.0234);
  84. SetPlayerInterior(playerid, 3);
  85. SetPlayerVirtualWorld(playerid, randvw);
  86. }
  87. else
  88. {
  89. aPVeh[playerid] = 0;
  90. aCmd[playerid] = 1;
  91. new randvw = 999 - random(998);
  92. Afk[playerid] = 1;
  93. TogglePlayerControllable(playerid, 0);
  94. mute[playerid] = 1;
  95. SendClientMessage(playerid, RED, "[AFKSystem]:Ora sei AFK, per uscire dall'AFK digita /back!");
  96. GetPlayerName(playerid, name, 24);
  97. format(stringa, 256, "[AFKSystem]:%s è AFK!", name);
  98. SendClientMessageToAll(RED, stringa);
  99. SetPlayerPos(playerid,198.0581,174.1483,1003.0234);
  100. SetPlayerInterior(playerid, 3);
  101. GetPlayerPos(playerid, aP[playerid][aX],aP[playerid][aY],aP[playerid][aZ]);
  102. SetPlayerVirtualWorld(playerid, randvw);
  103. }
  104. return 1;
  105. }
  106. public OnPlayerCommandText(playerid, cmdtext[])
  107. {
  108. if(strcmp("/afk", cmdtext, true, 10) == 0)
  109. {
  110. if(Afk[playerid] == 1)
  111. {
  112. SendClientMessage(playerid, RED, "[AFKSystem]:Sei gia AFK!");
  113. return 1;
  114. }
  115. else
  116. {
  117. SendClientMessage(playerid, RED, "[AFKSystem]:Fra 10 secondi entrerai nell'AFK mode!");
  118. intid = GetPlayerInterior(playerid);
  119. vwid = GetPlayerVirtualWorld(playerid);
  120. SetTimerEx("AFKmode", 10000, false, "i", playerid);
  121. return 1;
  122. }
  123. }
  124. if(strcmp("/back",cmdtext, true, 10) == 0)
  125. {
  126. aCmd[playerid] = 0;
  127. if((Afk[playerid] == 1) && (aPVeh[playerid] == 0))
  128. {
  129. Afk[playerid] = 0;
  130. TogglePlayerControllable(playerid, 1);
  131. mute[playerid] = 0;
  132. SendClientMessage(playerid, RED, "[AFKSystem]:Bentornato!");
  133. GetPlayerName(playerid, name, 24);
  134. format(stringa, 256, "[AFKSystem]:%s è uscito dall'AFK!", name);
  135. SendClientMessageToAll(RED, stringa);
  136. SetPlayerInterior(playerid, intid);
  137. SetPlayerVirtualWorld(playerid, vwid);
  138. SetPlayerPos(playerid, aP[playerid][aX],aP[playerid][aY],aP[playerid][aZ]);
  139. return 1;
  140. }
  141. if((aPVeh[playerid] == 1) && (Afk[playerid] == 1))
  142. {
  143. Afk[playerid] = 0;
  144. TogglePlayerControllable(playerid, 1);
  145. mute[playerid] = 0;
  146. SendClientMessage(playerid, RED, "[AFKSystem]:Bentornato!");
  147. GetPlayerName(playerid, name, 24);
  148. format(stringa, 256, "[AFKSystem]:%s è uscito dall'AFK!", name);
  149. SendClientMessageToAll(RED, stringa);
  150. SetPlayerVirtualWorld(playerid, vwid);
  151. SetPlayerInterior(playerid, intid);
  152. PutPlayerInVehicle(playerid, vehid, seatid);
  153. return 1;
  154. }
  155. else
  156. {
  157. SendClientMessage(playerid, RED, "[AFKSystem]:Non sei AFK!");
  158. return 1;
  159. }
  160. }
  161. if(aCmd[playerid] == 1)
  162. {
  163. SendClientMessage(playerid, RED, "[AFKSystem]:Sei AFK, non puoi usare i comandi!");
  164. return 1;
  165. }
  166. return 0;
  167. }
  168. public OnPlayerText(playerid, text[])
  169. {
  170. if(mute[playerid] == 1)
  171. {
  172. SendClientMessage(playerid, RED, "[AFKSystem]:Sei AFK, non puoi parlare!");
  173. return 0;
  174. }
  175. return 1;
  176. }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement