xinje 发表于 2008-7-9 16:43:10

如何检测玩家的屏幕?

如题,我想编写一个简单的反作弊。但是在检测玩家屏幕上遇到问题。

思路:
让所有玩家白屏,之后检测。
如果检测到4个设置颜色的值都为255,那么恢复正常。

如果检测为0,开启剥夺武器,或者飞天摔死,或者。。。。。。

现在就缺检测了。请各位高手帮忙。

现在编写了一些夸张的插件对付作弊,只不过是比作弊者更夸张而已。我想用更正统的方法严惩作弊。如果有兴趣我们一起研究。QQ:54477714,XINJE@126.COM
--------------------------
以下是我编写的内容,我比较无知,请不要笑我。应该如何实现?请大家帮忙。

public plugin_init() {
         register_plugin(PLUGIN_NAME, PLUGIN_VERSION, PLUGIN_AUTHOR)
   
    register_clcmd("zxc","zzz")
   
}


public zzz(id){
    new players, num;
    get_players(players, num);
    new id;
    for(new i=0;i<num;i++)
    {
      id = players
message_begin(MSG_ONE, get_user_msgid("ScreenFade"), {0,0,0}, id)
      write_short(1<<1)
      write_short(1<<1)
      write_short(1<<2)
      write_byte(255)
      write_byte(255)
      write_byte(255)
      write_byte(255)
      message_end()
    if (get_msg_arg_int(4)==255 && get_msg_arg_int(5)==255 && get_msg_arg_int(6)==255 && get_msg_arg_int(7)==255){
      set_task(0.5,"fader",0,"",1,"b")
    //set_user_health(id, 1)

    }
}
}

public fader(id){
    client_cmd(id,"kill")
   
}

ttbs123 发表于 2008-7-9 19:33:25

回复: 如何检测玩家的屏幕?

测试了一下,好像不行,你把玩家屏幕变白了,服务器记录了玩家是白色的了,你获取到的值,肯定也是255.
防闪光作弊的又不是根据这个值来作弊。。。

Rulzy 发表于 2008-7-9 22:01:16

回复: 如何检测玩家的屏幕?

要想检测玩家的屏幕是否防闪光,只能截图玩家客户端的屏幕。

52yz 发表于 2008-7-10 23:04:44

回复: 如何检测玩家的屏幕?

如果这样,是否可以根据玩家只要中了闪光,无论是否全白都做一个snapshot的动作,包括smoke?

不过我觉得这样只适合战队比赛,事后有怀疑的情况下就必须上传图片

csersnake 发表于 2008-7-11 10:13:59

回复: 如何检测玩家的屏幕?

利用amxx可以给玩家截图和录像,唯一的问题是上传。如果amxx可以上传,登陆器什么的都不需要了,直接插件就可以完成

jim_yang 发表于 2008-7-11 10:17:10

回复: 如何检测玩家的屏幕?

不是amxx的问题,是客户端dll,网络游戏基本原理建议好好研究一下

csersnake 发表于 2008-7-13 08:19:20

回复: 如何检测玩家的屏幕?

客户端dll是什么东西?好吃吗?味道是不是和葡萄差不多?

xinje 发表于 2008-7-13 19:48:06

回复: 如何检测玩家的屏幕?

现在已经验证的确可行。开反闪光等作弊的人屏幕没反映。而正常的人都是白屏。
现在的问题是不知道怎样自动识别这些屏幕没问题的人。

请大家帮忙出出主意。

ttbs123 发表于 2008-7-14 12:10:42

回复: 如何检测玩家的屏幕?

开防闪作弊器的,屏幕会闪一下,0.×秒就消失。
问题是get_msg_arg_int(4)==255 && get_msg_arg_int(5)==255 && get_msg_arg_int(6)==255 && get_msg_arg_int(7)==255)
这里返回的值,你开了作弊器,和没开作弊器,都是一样,返回255被闪了。这个值应该是保留在服务器,不是客户端的。

ttbs123 发表于 2008-7-14 12:11:53

回复: 如何检测玩家的屏幕?

findcheat插件里面,利用玩家被闪时间内,是否杀人来检测。也同样判断不到玩家是否已经被闪了。
页: [1]
查看完整版本: 如何检测玩家的屏幕?