搜索
查看: 1891|回复: 2

想找一个玩家进入服务器第一局首局固定7秒,其他局不限制

[复制链接]
发表于 2009-6-26 19:49:31 | 显示全部楼层 |阅读模式 来自 广东深圳
本帖最后由 eason39 于 2009-6-26 19:52 编辑

类似于DK和175进入后固定玩家。。那位提供下?谢谢
  1. #include <amxmodx>
  2. #include <fakemeta>
  3. #include <hamsandwich>

  4. new check[33] = 0

  5. #define X_POS -1.0
  6. #define Y_POS 0.5
  7. #define HOLE_TIME 7.0

  8. public plugin_init()
  9. {
  10.         register_plugin("block player","1.0","anzzy")
  11.         RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
  12.         register_logevent("EventRoundStart", 2, "1=Round_Start");
  13. }

  14. public EventRoundStart(id) //情况一:死了等待开局检查
  15. {
  16.         if(check[id] == 1) //检查过的就不检查
  17.         return PLUGIN_HANDLED;

  18.         check[id] = 1
  19.         set_pev(id,pev_flags,pev(id,pev_flags) | FL_FROZEN) //block player

  20.         set_hudmessage(255,0, 0, X_POS, Y_POS, 1, 0.5, HOLE_TIME, 0.1, 0.1, -1);
  21.         show_hudmessage(id,"进入服务器 7 秒内不能走动.")
  22.         set_task(7.0,"remove",id)
  23.         return PLUGIN_CONTINUE;
  24. }

  25. public Player_Spawn(id) //情况二:开局后才进入出生的,不排除刚进入等待开局
  26. {
  27.         if(check[id]==1) //检查过的就不检查
  28.         return PLUGIN_HANDLED;

  29.         set_task(1.0,"checks",id)
  30.         set_hudmessage(255,0, 0, X_POS, Y_POS, 1, 0.5, HOLE_TIME, 0.1, 0.1, -1);
  31.         show_hudmessage(id,"进入服务器 7 秒内不能走动.")
  32.         return PLUGIN_CONTINUE;
  33. }

  34. public checks(id)
  35. {
  36.         if(!is_user_alive(id)) //地图夹死的,跳过
  37.         return PLUGIN_HANDLED;
  38.         set_pev(id,pev_flags,pev(id,pev_flags) | FL_FROZEN) //block player
  39.         set_task(6.0,"remove",id)
  40.         return PLUGIN_CONTINUE;
  41. }

  42. public remove(id)
  43. {
  44.         new flags = pev(id,pev_flags)
  45.         flags &= ~FL_FROZEN
  46.         set_pev(id,pev_flags,flags)
  47. }

  48. public client_connect(id)
  49. {
  50.         check[id] = 0
  51. }

  52. public client_disconnect(id)
  53. {
  54.         remove_task(id)
  55. }
复制代码
这个是ANZZY帮我写的,但有个BUG,就是每局都会卡7秒,能否修改为首局限制7秒,其他局不限制?
发表于 2009-6-27 08:31:22 | 显示全部楼层 来自 广东广州
  1. register_logevent("EventRoundStart", 2, "1=Round_Start");
复制代码
的意思是每局都要执行!
楼主,那个注释是谁写的!什么情况一,情况二吖!
  1. RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
复制代码
是玩家出身时所要执行的命令!!你看现在你应该知道为什么每局都会卡7秒了吧!
回复

使用道具 举报

 楼主| 发表于 2009-6-27 13:05:34 | 显示全部楼层 来自 广东深圳
本帖最后由 eason39 于 2009-6-27 13:25 编辑
register_logevent("EventRoundStart", 2, "1=Round_Start");的意思是每局都要执行!
楼主,那个注释是谁写的!什么情况一,情况二吖!RegisterHam(Ham_Spawn, "player", "Player_Spawn", 1)
是玩家出身时所要执行 ...
kk阿朗 发表于 2009-6-27 08:31


KK 谢谢你的回答,因为作者帮我写这个插件,他也困在这个问题上,现在只能做到每局卡玩家7秒,不知道怎么做到玩家首局卡7秒。KK能否帮忙修改下插件? 谢谢 我不会写插件.:lol

此插件是为了防暴力作弊器缩写,因为就算玩家不挂载SXE进入服务器,服务器默认会给该玩家至少7秒时间走动时间,这7秒已经跟致命了,呵呵. 足以杀光服务器里的人.
回复

使用道具 举报

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

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