您的位置:首页 > 编程语言

通天源码论坛捕鱼游戏 HGE打鱼防止外挂,添加CRC效验方法含代码

2017-09-18 17:36 911 查看
(有什么问题欢迎指教,企鹅:2172243813 更多资讯尽在www.ttkmwl.com)

1、修改Cmd_Fish.h,加入函数,我这里写成了inline是避免编译时提示重复声明,你也可以将去掉,然后这里只留声明,实现挪到别的公共单元的cpp里。



捕鱼游戏_HGE打鱼防止外挂,添加CRC效验方法含代码

2、象这样,为每一个结构体加上crc字段:

struct CMD_C_Fish20Config {

  int crc;

  DWORD game_id;

  int catch_count;

  double catch_probability;

};

3、修改Game_Manager.cpp中的SendSocketData函数:

bool GameManager::SendSocketData(WORD sub_cmdid, void* data, WORDdata_size) {

  if (client_kernel_ == NULL)return false;

  if(client_kernel_->IsLookonMode()) return false;

  if(data_size>sizeof(int)){

    *((int*)data)=FishCRC32((char*)data+sizeof(int),data_size-sizeof(int));

  }

  returnclient_kernel_->SendSocketData(MDM_GF_GAME, sub_cmdid, data,data_size);

}

这样子就不用挨个修改上面的函数赋值了。

4、服务器端修改 table_frame_sink.cpp,处理收到游戏消息的命令,加上前置的处理:

if (data_size>sizeof(int)){

       if(*((int*)data)!=FishCRC32((char*)data+sizeof(int),data_size-sizeof(int))){

       //无效的客户端数据包,踢掉他

       }

       data=(char*)data+sizeof(int);

       data_size-=sizeof(int);

}

内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: