hlmod.hu
https://hlmod.hu/

AFK KICK
https://hlmod.hu/viewtopic.php?f=10&t=16716
Oldal: 1 / 1

Szerző:  david19 [ 2014.07.30. 20:35 ]
Hozzászólás témája:  AFK KICK

Sziasztok.
Szeretnék egy kis segittséget kérni.
Van ez az AFK kickelős sma, át kellene nekem szerkeszteni olyanra hogy ha például 10 másodperctől számoljon vissza felé folyamatosan és irja cheat be a vissza számolást.
Ezt egy szerveren láttam nagyon meg tetszet nekem de sajnos nem tudam el kérni a gazdától hiába szépen kértem.
Most a ti segiségeteket szeretném kérni ehez az sma hoz
Ha valaki meg tudja csinálni őrülten meg köszönném neki.:)

Szerző:  david19 [ 2014.07.30. 20:35 ]
Hozzászólás témája:  Re: AFK KICK

SMA Forráskód: [ Mindet kijelol ]
  1.  
  2.  
  3. *
  4.  
  5. * Author: Cheesy Peteza
  6.  
  7. * Date: 18-Mar-2004
  8.  
  9. *
  10.  
  11. *
  12.  
  13. * Description: A generic AFK Kicker that should work with nearly all Half-Life mods.
  14.  
  15. * Tested with Natural-Selection v3.0 beta 3, Counter-Strike 1.6 and Day of Defeat.
  16.  
  17. *
  18.  
  19. * Cvars:
  20.  
  21. * mp_afktime 90 Time a player is allowed to be AFK in seconds before they are kicked. (minimum 30 sec)
  22.  
  23. * They time is only accumulated while they are alive.
  24.  
  25. * mp_afkminplayers 8 Minimum number of players required to be on the server before the plugin starts kicking.
  26.  
  27. *
  28.  
  29. *
  30.  
  31. * Requirements: AMXModX
  32.  
  33. *
  34.  
  35. *
  36.  
  37. */
  38.  
  39.  
  40.  
  41. #include <amxmodx>
  42.  
  43.  
  44.  
  45. #define MIN_AFK_TIME 30 // I use this incase stupid admins accidentally set mp_afktime to something silly.
  46.  
  47. #define WARNING_TIME 15 // Start warning the user this many seconds before they are about to be kicked.
  48.  
  49. #define CHECK_FREQ 5 // This is also the warning message frequency.
  50.  
  51.  
  52.  
  53. new g_oldangles[33][3]
  54.  
  55. new g_afktime[33]
  56.  
  57. new bool:g_spawned[33] = {true, ...}
  58.  
  59.  
  60.  
  61. public plugin_init() {
  62.  
  63. register_plugin("AFK Kicker","1.0b","Cheesy Peteza")
  64.  
  65. register_cvar("afk_version", "1.0b", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
  66.  
  67.  
  68.  
  69. register_cvar("mp_afktime", "90") // Kick people AFK longer than this time
  70.  
  71. register_cvar("mp_afkminplayers", "8") // Only kick AFKs when there is atleast this many players on the server
  72.  
  73. set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
  74.  
  75. register_event("ResetHUD", "playerSpawned", "be")
  76.  
  77. }
  78.  
  79.  
  80.  
  81. public checkPlayers() {
  82.  
  83. for (new i = 1; i <= get_maxplayers(); i++) {
  84.  
  85. if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
  86.  
  87. new newangle[3]
  88.  
  89. get_user_origin(i, newangle)
  90.  
  91.  
  92.  
  93. if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) {
  94.  
  95. g_afktime[i] += CHECK_FREQ
  96.  
  97. check_afktime(i)
  98.  
  99. } else {
  100.  
  101. g_oldangles[i][0] = newangle[0]
  102.  
  103. g_oldangles[i][1] = newangle[1]
  104.  
  105. g_oldangles[i][2] = newangle[2]
  106.  
  107. g_afktime[i] = 0
  108.  
  109. }
  110.  
  111. }
  112.  
  113. }
  114.  
  115. return PLUGIN_HANDLED
  116.  
  117. }
  118.  
  119.  
  120.  
  121. check_afktime(id) {
  122.  
  123. new numplayers = get_playersnum()
  124.  
  125. new minplayers = get_cvar_num("mp_afkminplayers")
  126.  
  127.  
  128.  
  129. if (numplayers >= minplayers) {
  130.  
  131. new maxafktime = get_cvar_num("mp_afktime")
  132.  
  133. if (maxafktime < MIN_AFK_TIME) {
  134.  
  135. log_amx("cvar mp_afktime %i tul alacsony. Minimum ertek %i.", maxafktime, MIN_AFK_TIME)
  136.  
  137. maxafktime = MIN_AFK_TIME
  138.  
  139. set_cvar_num("mp_afktime", MIN_AFK_TIME)
  140.  
  141. }
  142.  
  143.  
  144.  
  145. if ( maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime) {
  146.  
  147. new timeleft = maxafktime - g_afktime[id]
  148.  
  149. client_print(id, print_chat, "[AFK Kicker] Van %i masodperc, hogy meg mozdul, vagy ki leszel rugva mert AFK vagy!", timeleft)
  150.  
  151. } else if (g_afktime[id] > maxafktime) {
  152.  
  153. new name[32]
  154.  
  155. get_user_name(id, name, 31)
  156.  
  157. client_print(0, print_chat, "[AFK Kicker] %s kirugva, mert AFK volt %i masodpercig!", name, maxafktime)
  158.  
  159. log_amx("%s kirugva, mert AFK volt %i masodpercig!", name, maxafktime)
  160.  
  161. server_cmd("kick #%d ^"Kickelve lettel! AFK voltal %i masodpercig!^"", get_user_userid(id), maxafktime)
  162.  
  163. }
  164.  
  165. }
  166.  
  167. }
  168.  
  169.  
  170.  
  171. public client_connect(id) {
  172.  
  173. g_afktime[id] = 0
  174.  
  175. return PLUGIN_HANDLED
  176.  
  177. }
  178.  
  179.  
  180.  
  181. public client_putinserver(id) {
  182.  
  183. g_afktime[id] = 0
  184.  
  185. return PLUGIN_HANDLED
  186.  
  187. }
  188.  
  189.  
  190.  
  191. public playerSpawned(id) {
  192.  
  193. g_spawned[id] = false
  194.  
  195. new sid[1]
  196.  
  197. sid[0] = id
  198.  
  199. set_task(0.75, "delayedSpawn",_, sid, 1) // Give the player time to drop to the floor when spawning
  200.  
  201. return PLUGIN_HANDLED
  202.  
  203. }
  204.  
  205.  
  206.  
  207. public delayedSpawn(sid[]) {
  208.  
  209. get_user_origin(sid[0], g_oldangles[sid[0]])
  210.  
  211. g_spawned[sid[0]] = true
  212.  
  213. return PLUGIN_HANDLED
  214.  
  215. }

Szerző:  RaZzoR [ 2014.09.21. 12:06 ]
Hozzászólás témája:  Re: AFK KICK

Nézd meg:
SMA Forráskód: [ Mindet kijelol ]
  1. #include <amxmodx>
  2.  
  3.  
  4.  
  5. #define MIN_AFK_TIME 30 // I use this incase stupid admins accidentally set mp_afktime to something silly.
  6.  
  7. //#define WARNING_TIME 15 // Start warning the user this many seconds before they are about to be kicked.
  8.  
  9. #define CHECK_FREQ 5 // This is also the warning message frequency.
  10.  
  11.  
  12.  
  13. new g_oldangles[33][3]
  14.  
  15. new g_afktime[33]
  16.  
  17. new count_time = 10
  18.  
  19. new bool:g_spawned[33] = {true, ...}
  20.  
  21.  
  22.  
  23. public plugin_init() {
  24.  
  25. register_plugin("AFK Kicker","1.0b","Cheesy Peteza")
  26.  
  27. register_cvar("afk_version", "1.0b", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)
  28.  
  29.  
  30.  
  31. register_cvar("mp_afktime", "90") // Kick people AFK longer than this time
  32.  
  33. register_cvar("mp_afkminplayers", "8") // Only kick AFKs when there is atleast this many players on the server
  34.  
  35. set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
  36.  
  37. register_event("ResetHUD", "playerSpawned", "be")
  38.  
  39. }
  40.  
  41.  
  42.  
  43. public checkPlayers() {
  44.  
  45. for (new i = 1; i <= get_maxplayers(); i++) {
  46.  
  47. if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
  48.  
  49. new newangle[3]
  50.  
  51. get_user_origin(i, newangle)
  52.  
  53.  
  54.  
  55. if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) {
  56.  
  57. g_afktime[i] += CHECK_FREQ
  58.  
  59. check_afktime(i)
  60.  
  61. } else {
  62.  
  63. g_oldangles[i][0] = newangle[0]
  64.  
  65. g_oldangles[i][1] = newangle[1]
  66.  
  67. g_oldangles[i][2] = newangle[2]
  68.  
  69. g_afktime[i] = 0
  70.  
  71. }
  72.  
  73. }
  74.  
  75. }
  76.  
  77. return PLUGIN_HANDLED
  78.  
  79. }
  80.  
  81.  
  82.  
  83. check_afktime(id) {
  84.  
  85. new numplayers = get_playersnum()
  86.  
  87. new minplayers = get_cvar_num("mp_afkminplayers")
  88.  
  89.  
  90.  
  91. if (numplayers >= minplayers) {
  92.  
  93. new maxafktime = get_cvar_num("mp_afktime")
  94.  
  95. if (maxafktime < MIN_AFK_TIME) {
  96.  
  97. log_amx("cvar mp_afktime %i tul alacsony. Minimum ertek %i.", maxafktime, MIN_AFK_TIME)
  98.  
  99. maxafktime = MIN_AFK_TIME
  100.  
  101. set_cvar_num("mp_afktime", MIN_AFK_TIME)
  102.  
  103. }
  104.  
  105.  
  106. /*if ( maxafktime-WARNING_TIME <= g_afktime[id] < maxafktime) {
  107.  
  108. new timeleft = maxafktime - g_afktime[id]
  109.  
  110. client_print(id, print_chat, "[AFK Kicker] Van %i masodperc, hogy meg mozdul, vagy ki leszel rugva mert AFK vagy!", timeleft)
  111.  
  112. }*/
  113.  
  114. if (g_afktime[id] <= 10)
  115. count(id)
  116.  
  117. else if (g_afktime[id] > maxafktime) {
  118.  
  119. new name[32]
  120.  
  121. get_user_name(id, name, 31)
  122.  
  123. client_print(0, print_chat, "[AFK Kicker] %s kirugva, mert AFK volt %i masodpercig!", name, maxafktime)
  124.  
  125. log_amx("%s kirugva, mert AFK volt %i masodpercig!", name, maxafktime)
  126.  
  127. server_cmd("kick #%d ^"Kickelve lettel! AFK voltal %i masodpercig!^"", get_user_userid(id), maxafktime)
  128.  
  129. }
  130.  
  131. }
  132.  
  133. }
  134.  
  135. public count(id)
  136. {
  137. if(count_time <= 0)
  138. return PLUGIN_CONTINUE
  139.  
  140. client_print(id, print_chat, "[AFK Kicker] Van %i masodperced, hogy megmozdulj!", count_time)
  141. count_time--
  142. set_task(1.0, "count", id)
  143.  
  144. return PLUGIN_HANDLED
  145. }
  146.  
  147. public client_connect(id) {
  148.  
  149. g_afktime[id] = 0
  150.  
  151. return PLUGIN_HANDLED
  152.  
  153. }
  154.  
  155.  
  156.  
  157. public client_putinserver(id) {
  158.  
  159. g_afktime[id] = 0
  160.  
  161. return PLUGIN_HANDLED
  162.  
  163. }
  164.  

Oldal: 1 / 1 Minden időpont UTC+02:00 időzóna szerinti
Powered by phpBB® Forum Software © phpBB Limited
https://www.phpbb.com/