搜索
查看: 2930|回复: 10

持有C4的玩家不动30秒种 自动扔出C4

[复制链接]
发表于 2005-10-20 09:36:49 | 显示全部楼层 |阅读模式 来自 中国–北京–北京–朝阳区

  1. /*
  2. *
  3. *        Author:                BlackFlagg based on Cheesy Peteza generic AFK kicker
  4. *        Date:                06-July-2004
  5. *
  6. *
  7. *        Description:        Drop bomb when player is AFK for 30 secs
  8. *
  9. *        Cvars:
  10. *                        mp_afktime 20                Time a player is allowed to be AFK in seconds before they drop bomb
  11. *                                                They time is only accumulated while they are alive.
  12. *                        mp_afkminplayers 1        Minimum number of players required .
  13. *
  14. *
  15. *        Requirements:        AMXModX
  16. *
  17. *
  18. */

  19. #include <amxmodx>

  20. #define MIN_AFK_TIME 20                // I use this incase stupid admins accidentally set mp_afktime to something silly.
  21. #define CHECK_FREQ 5                // This is also the warning message frequency.

  22. new g_oldangles[33][3]
  23. new g_afktime[33]
  24. new bool:g_spawned[33] = {true, ...}

  25. public plugin_init() {
  26.         register_plugin("AFK Bomb Drop","1.0","BlackFlagg")
  27.         register_cvar("afk_version", "1.0a", FCVAR_SERVER|FCVAR_EXTDLL|FCVAR_SPONLY)

  28.         register_cvar("mp_afktime", "20")        // Drop bomb if AFK longer than this time
  29.         register_cvar("mp_afkminplayers", "1")        // at least this many players on the server
  30.         set_task(float(CHECK_FREQ),"checkPlayers",_,_,_,"b")
  31.         register_event("ResetHUD", "playerSpawned", "be")
  32. }

  33. public checkPlayers() {
  34.         for (new i = 1; i <= get_maxplayers(); i++) {
  35.                 if (is_user_alive(i) && is_user_connected(i) && !is_user_bot(i) && !is_user_hltv(i) && g_spawned[i]) {
  36.                         new newangle[3]
  37.                         get_user_origin(i, newangle)

  38.                         if ( newangle[0] == g_oldangles[i][0] && newangle[1] == g_oldangles[i][1] && newangle[2] == g_oldangles[i][2] ) {
  39.                                 g_afktime[i] += CHECK_FREQ
  40.                                 check_afktime(i)
  41.                         } else {
  42.                                 g_oldangles[i][0] = newangle[0]
  43.                                 g_oldangles[i][1] = newangle[1]
  44.                                 g_oldangles[i][2] = newangle[2]
  45.                                 g_afktime[i] = 0
  46.                         }
  47.                 }
  48.         }
  49.         return PLUGIN_HANDLED
  50. }

  51. check_afktime(id) {
  52.         new numplayers = get_playersnum()
  53.         new minplayers = get_cvar_num("mp_afkminplayers")
  54.                                        
  55.         if (numplayers >= minplayers) {
  56.                 new maxafktime = get_cvar_num("mp_afktime")
  57.                 if (maxafktime < MIN_AFK_TIME) {
  58.                         log_amx("cvar mp_afktime %i is too low. Minimum value is %i.", maxafktime, MIN_AFK_TIME)
  59.                         maxafktime = MIN_AFK_TIME
  60.                         set_cvar_num("mp_afktime", MIN_AFK_TIME)
  61.                 }

  62.                 if (g_afktime[id] > maxafktime) {
  63.                         new name[32]
  64.                         get_user_name(id, name, 31)
  65.                         client_cmd(id,"drop weapon_c4 ")
  66.                 }
  67.         }
  68. }

  69. public client_putinserver(id) {
  70.         g_afktime[id] = 0
  71.         return PLUGIN_HANDLED
  72. }

  73. public playerSpawned(id) {
  74.         g_spawned[id] = false
  75.         new sid[1]
  76.         sid[0] = id
  77.         set_task(0.75, "delayedSpawn",_, sid, 1)        // Give the player time to drop to the floor when spawning
  78.         return PLUGIN_HANDLED
  79. }

  80. public delayedSpawn(sid[]) {
  81.         get_user_origin(sid[0], g_oldangles[sid[0]])
  82.         g_spawned[sid[0]] = true
  83.         return PLUGIN_HANDLED
  84. }
复制代码

mp_afktime 30 //设订多少秒不动仍出C4
mp_afkminplayers 1 //最少需要几位玩家开启此功能
发表于 2005-10-20 10:29:48 | 显示全部楼层 来自 中国–云南–红河哈尼族彝族自治州–个旧市

回复: 持有C4的玩家不动30秒种 自动扔出C4

:d: 这个是个好东西 要不会被拿雷包的人急死 具体怎么使用? :mad:
回复

使用道具 举报

 楼主| 发表于 2005-10-20 12:26:08 | 显示全部楼层 来自 中国–北京–北京–朝阳区

回复: 持有C4的玩家不动30秒种 自动扔出C4

我在AMXX1.0下使用 没问题 希望大家喜欢 ;)
回复

使用道具 举报

发表于 2005-10-21 01:14:32 | 显示全部楼层 来自 中国–新疆–伊犁哈萨克自治州–伊宁市

回复: 持有C4的玩家不动30秒种 自动扔出C4

谢谢楼主,这绝对是好东西!!我顶啦
回复

使用道具 举报

发表于 2005-10-21 10:29:15 | 显示全部楼层 来自 中国–江苏–无锡

回复: 持有C4的玩家不动30秒种 自动扔出C4

我在AMX0。99下编译,66行出现一个 undefined symbol log_amx,这个log_amx什么意思,怎么定义才好呢
回复

使用道具 举报

发表于 2005-10-21 20:34:39 | 显示全部楼层 来自 中国–广东–东莞

回复: 持有C4的玩家不动30秒种 自动扔出C4

:p

太好了.
回复

使用道具 举报

发表于 2005-10-22 01:49:52 | 显示全部楼层 来自 中国–广东–清远

回复: 持有C4的玩家不动30秒种 自动扔出C4

这个绝对是贴心的插件,哈哈哈,3Q
回复

使用道具 举报

发表于 2005-10-22 19:42:54 | 显示全部楼层 来自 中国–浙江–杭州

回复: 持有C4的玩家不动30秒种 自动扔出C4

Very Good :D
回复

使用道具 举报

发表于 2005-10-22 20:41:02 | 显示全部楼层 来自 中国–广东–肇庆

回复: 持有C4的玩家不动30秒种 自动扔出C4

哈哈...那么好笑!!! :boss:
回复

使用道具 举报

发表于 2005-11-1 13:44:25 | 显示全部楼层 来自 中国–湖北–黄冈

回复: 持有C4的玩家不动30秒种 自动扔出C4

没下载地址!~ :cold:
回复

使用道具 举报

游客
回复
您需要登录后才可以回帖 登录 | 注个册吧

快速回复 返回顶部 返回列表