qpzm01010101 发表于 2021-3-10 22:11:58

五游二开-hm棋牌-补丁式一键端修改迭代版0.1

五游二开-hm棋牌-补丁式一键端修改迭代版0.1 说明

看这个之前首先你要有原帖的压缩包,这就不提供了 五游大联盟带机器人手工架设
按照说明进行操作 直接覆盖


把这个 五游二开联盟.rar(1.34Gb)压缩包解压到D盘新建的文件夹========文件夹命名 bzekfk ==========
下面的文件我只提取直接解压覆盖后就能用的文件 包括几个bat脚本
和简单工具(如果你要继续修改,当然如果你能修改客户端业务处理方式【比如注册账号登陆】 这个很需要专业知识。改这个游戏查资料挺频繁。。。。)


目录结构看图

我这改的APK纯粹是本地的局域网 服务器IP为192.168.0.147(教程里面漏掉一处没说,会连到别人服 热更新的大厅lobby里面也是 基本接近全源码所以容易识别)


目录从上向下依次:
        phpstudy_pro目录我会把修改后的数据库导出提供和其他必要文件 这里注意 删掉com目录 使用我提供的覆盖(首次启动小皮可能组件空白,关掉再打开)
                        数据库恢复如果出错可先把里面的表全删了 再恢复
               (注意数据库密码是root 启动小皮可能会显示密码是123456) 数据库还得继续修改参数完善 这卡登录了。。
                               精简剔除未改动文件
                                        TaskPHP 未改动 好像是任务相关的
                               
      RedisGame   原始内容不变 不提供
        RedisPHP        原始内容不变 不提供                  
      release1    原始内容不变 不提供.
       
        机器人      修改了config.ini文件 只提供ini文件 具体的 初 中 高 级目录我这是使用的同一个exe程序 所有你自己复制。。
                    机器人的启动脚本 你打开编辑下自己要启动的游戏假人
                                我这默认只启用5人斗地主斗地主初中高跑得快和炸金花 其他选项用;注释了
       
覆盖用的压缩包文件 bzekfk.7z 解压覆盖到D盘
       
启动顺序按脚本名字
想一键关服务端的话自己写吧 有参考说明.mht文件


暂时迭代版0.1希望有大佬继续完善       
       
游戏修改这方面能力水平有限,, 忙活两三天开始倒腾完直接使用微信登录首次稀里糊涂上去了。。(居然没报签名错误,下面有图作证应该是旧版的lobby大厅换了新的lobby改了客户端就报签名错误不能登录 或是二次登录卡壳)







游戏桌可能要在数据库改参数





qpzm01010101 发表于 2021-3-10 22:14:35

本帖最后由 qpzm01010101 于 2021-3-11 11:17 编辑

地址
附带APK的最后签名信息2d9a9668fc5242eb49991cbc36d893df   txt里面的签名不是最后修改的APK



!!!!安全起见虚拟机内倒腾,不保证程序干净!!!!
应用包密匙 微信登陆好像用不到这个只要包名和md5签名   看附带教程蛋疼


考虑不了全面    注意 机器人配置AIconfig.in端口没改忘说了比如跑得快初级端口是2002中级房是2003exe程序可能一样端口配置不一样
不然服务端具体房间读不到假人
证明是本地联接几张图










ErrorJ 发表于 2021-3-11 00:02:27

感谢大佬分享

qpzm01010101 发表于 2021-3-11 06:48:42

本帖最后由 qpzm01010101 于 2021-3-11 08:20 编辑

考虑不全 有接力棒大佬看看呗
参考资料大长页

微信登录接入微信登录遵循协议Aouth2.0中的授权码模式我们来看一下Aouth2.0中的授权码模式是怎么定义的:授权码模式(authorization code)是功能最完整、流程最严密的授权模式。它的特点就是通过客户端的后台服务器,与”服务提供商”的认证服务器进行互动。
它的步骤如下:(A)用户访问客户端,后者将前者导向认证服务器。(B)用户选择是否给予客户端授权。(C)假设用户给予授权,认证服务器将用户导向客户端事先指定的”重定向URI”(redirection URI),同时附上一个授权码。(D)客户端收到授权码,附上早先的”重定向URI”,向认证服务器申请令牌。这一步是在客户端的后台的服务器上完成的,对用户不可见。(E)认证服务器核对了授权码和重定向URI,确认无误后,向客户端发送访问令牌(access token)和更新令牌(refresh token)微信登录的官方文档将微信登录分为3个步骤:第一步.请求code{    // send oauth request      Final SendAuth.Req req = new SendAuth.Req();   req.scope = "snsapi_userinfo";   req.state = "wechat_sdk_demo_test";   api.sendReq(req);    }
用这段代码向微信开放平台请求授权码code,可拉起微信并打开授权登录页(前提是你安装了微信应用并已登录,未登录的会引导你先登录),如下图:
1.如果微信授权页不显示,请检查你的APP签名是否和你在腾讯开放平台的APP签名一致,不一致可修改腾讯开放平台中的APP签名,修改后重装微信或清除微信数据后重试。2.在你的包名相应目录下新建一个wxapi目录,并在该wxapi目录下新增一个WXEntryActivity类,该类继承自Activity(例如应用程序的包名为net.sourceforge,则新的包名为:net.sourceforge.wxapi),此处应注意包名不要弄错,新增类的名字必须为WXEntryActivity。返回说明
用户点击授权后,微信客户端会被拉起,跳转至授权界面,用户在该界面点击允许或取消,SDK通过SendAuth的Resp返回数据给调用方。回调WXEntryActivity中的onResp(BaseResp resp)方法,如下:
    @Override    public void onResp(BaseResp resp) {      int errorCode = resp.errCode;      switch (errorCode) {      case BaseResp.ErrCode.ERR_OK:            //用户同意            String code = ((SendAuth.Resp) resp).code;            break;      case BaseResp.ErrCode.ERR_AUTH_DENIED:            //用户拒绝            break;      case BaseResp.ErrCode.ERR_USER_CANCEL:            //用户取消            break;      default:            break;      }      ToastUtil.showMessageLong(this, resp.errStr);    }

客户端收到授权码后,向自己的服务器发起登录请求,并附带收到的授权码。服务端收到登录请求,向微信开放平台请求获取access_token,微信开放平台返回Json字符串:第二步:通过code获取access_token(在自己服务器端做)获取第一步的code后,请求以下链接获取access_token:https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code
   private String getAccessToken(String code) {      String url = "https://api.weixin.qq.com/sns/oauth2/access_token?appid=APPID&secret=SECRET&code=CODE&grant_type=authorization_code";      URI uri = URI.create(url);      HttpClient client = new DefaultHttpClient();      HttpGet get = new HttpGet(uri);      HttpResponse response;      try {            response = client.execute(get);            if (response.getStatusLine().getStatusCode() == 200) {                HttpEntity entity = response.getEntity();                BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));                StringBuilder sb = new StringBuilder();                for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {                  sb.append(temp);                }                JSONObject object = new JSONObject(sb.toString().trim());                accessToken = object.getString("access_token");                openID = object.getString("openid");                refreshToken = object.getString("refresh_token");                expires_in = object.getLong("expires_in");                return accessToken;            }      } catch (ClientProtocolException e) {            // TODO Auto-generated catch block             e.printStackTrace();      } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (IllegalStateException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();      }      return null;    }


参数说明参数      是否必须      说明 appid       是        应用唯一标识,在微信开放平台提交应用审核通过后获得secret      是        应用密钥AppSecret,在微信开放平台提交应用审核通过后获得code      是         填写第一步获取的code参数grant_type是        填authorization_code回说明**正确的返回:
{   "access_token":"ACCESS_TOKEN",   "expires_in":7200,   "refresh_token":"REFRESH_TOKEN",    "openid":"OPENID",   "scope":"SCOPE",    "unionid":"o6_bmasdasdsad6_2sgVt7hMZOPfL"}

参数                              说明access_token                  接口调用凭证expires_inaccess_token      接口调用凭证超时时间,单位(秒)refresh_token                   用户刷新access_tokenopenid                        授权用户唯一标识scope                           用户授权的作用域,使用逗号(,)分隔unionid                  只有在用户将公众号绑定到微信开放平台帐号后,才会出现该字段。错误返回样例:{"errcode":40029,"errmsg":"invalid code"}

服务端收到返回的access_token,将access_token,expires_in,access_token是否有效 等数据返回给客户端,客户端成功登录   客户端可利用已有的access_token获取微信用户信息第三步:通过access_token调用接口获取access_token后,进行接口调用,有以下前提:
[*]access_token有效且未超时;
[*]微信用户已授权给第三方应用帐号相应接口作用域(scope)。
对于接口作用域(scope),能调用的接口有以下:授权作用域(scope)             接口                接口说明snsapi_base          /sns/oauth2/access_token      通过code换取            access_token、refresh_token和已授权scope                  /sns/oauth2/refresh_token      刷新或续期access_token使用                  /sns/auth                      检查access_token有效性snsapi_userinfo   /sns/userinfo                 获取用户个人信息其中snsapi_base属于基础接口,若应用已拥有其它scope权限,则默认拥有snsapi_base的权限。使用snsapi_base可以让移动端网页授权绕过跳转授权登录页请求用户授权的动作,直接跳转第三方网页带上授权临时票据(code),但会使得用户已授权作用域(scope)仅为snsapi_base,从而导致无法获取到需要用户授权才允许获得的数据和基础功能。以获取用户信息为例:
private void getUserInfo() {    if (isAccessTokenIsInvalid() && System.currentTimeMillis() < expires_in) {      String uri = "https://api.weixin.qq.com/sns/userinfo?access_token=" + accessToken + "&openid=" + openID;      HttpClient client = new DefaultHttpClient();      HttpGet get = new HttpGet(URI.create(uri));      try {      HttpResponse response = client.execute(get);      if (response.getStatusLine().getStatusCode() == 200) {            BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));            StringBuilder builder = new StringBuilder();            for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {            builder.append(temp);            }            JSONObject object = new JSONObject(builder.toString().trim());            String nikeName = object.getString("nickname");      }      } catch (ClientProtocolException e) {      // TODO Auto-generated catch block      e.printStackTrace();      } catch (IOException e) {      // TODO Auto-generated catch block      e.printStackTrace();      } catch (JSONException e) {      // TODO Auto-generated catch block      e.printStackTrace();      }    }}


微信重复登录假设用户已经获得授权,则下次登录时只需要验证access_token是否有效,无效则重新获取授权,有效则无需重新获得授权。1.用户向自己的服务器请求登录,登录方式为微信登录,附带上次登录返回的的access_token2.服务器收到用户的登录请求,向微信开放平台发送access_token是否有效的验证请求如下:
private boolean isAccessTokenIsInvalid() {      String url = "https://api.weixin.qq.com/sns/auth?access_token=" + accessToken + "&openid=" + openID;      URI uri = URI.create(url);      HttpClient client = new DefaultHttpClient();      HttpGet get = new HttpGet(uri);      HttpResponse response;      try {            response = client.execute(get);            if (response.getStatusLine().getStatusCode() == 200) {                HttpEntity entity = response.getEntity();                BufferedReader reader = new BufferedReader(new InputStreamReader(entity.getContent(), "UTF-8"));                StringBuilder sb = new StringBuilder();                for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {                  sb.append(temp);                }                JSONObject object = new JSONObject(sb.toString().trim());                int errorCode = object.getInt("errcode");                if (errorCode == 0) {                  return true;                }            }      } catch (ClientProtocolException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();      }      return false;    }


返回说明正确的Json返回结果:{    "errcode":0,"errmsg":"ok"}错误的Json返回示例:{   "errcode":40003,"errmsg":"invalid openid"} 如果access_token有效,服务端将信息返回给客户端,客户端成功登录。如果access_token无效,服务端向微信开放平台发送刷新access_token的请求如下:access_token是调用授权关系接口的调用凭证,由于access_token有效期(目前为2个小时)较短,当access_token超时后,可以使用refresh_token进行刷新,access_token刷新结果有两种:1.若access_token已超时,那么进行refresh_token会获取一个新的access_token,新的超时时间;
2.若access_token未超时,那么进行refresh_token不会改变access_token,但超时时间会刷新,相当于续期access_token。refresh_token拥有较长的有效期(30天),当refresh_token失效的后,需要用户重新授权。
private void refreshAccessToken() {      String uri = "https://api.weixin.qq.com/sns/oauth2/refresh_token?appid=" + APP_ID + "&grant_type=refresh_token&refresh_token=" + refreshToken;      HttpClient client = new DefaultHttpClient();      HttpGet get = new HttpGet(URI.create(uri));      try {            HttpResponse response = client.execute(get);            if (response.getStatusLine().getStatusCode() == 200) {                BufferedReader reader = new BufferedReader(new InputStreamReader(response.getEntity().getContent(), "UTF-8"));                StringBuilder builder = new StringBuilder();                for (String temp = reader.readLine(); temp != null; temp = reader.readLine()) {                  builder.append(temp);                }                JSONObject object = new JSONObject(builder.toString().trim());                accessToken = object.getString("access_token");                refreshToken = object.getString("refresh_token");                openID = object.getString("openid");                expires_in = object.getLong("expires_in");            }      } catch (ClientProtocolException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (IOException e) {            // TODO Auto-generated catch block            e.printStackTrace();      } catch (JSONException e) {            // TODO Auto-generated catch block            e.printStackTrace();      }}


返回说明正确的返回:
{   "access_token":"ACCESS_TOKEN",   "expires_in":7200,   "refresh_token":"REFRESH_TOKEN",   "openid":"OPENID",   "scope":"SCOPE" }

参数                  说明access_token       接口调用凭证expires_in      access_token接口调用凭证超时时间,单位(秒)refresh_token   用户刷新access_tokenopenid         授权用户唯一标识scope          用户授权的作用域,使用逗号(,)分隔错误返回样例:{"errcode":40030,"errmsg":"invalid refresh_token"}3.服务端获取到新的access_token等信息,并返回给客户端,客户端成功登录或者重新获取授权。

l3322632 发表于 2021-3-11 07:51:54

不明觉厉

qpzm01010101 发表于 2021-3-11 07:59:53

l3322632 发表于 2021-3-11 07:51
不明觉厉

你。。。。。牛:!你可以:

skycancan 发表于 2021-3-11 08:06:19

::

xyz7220633 发表于 2021-3-11 08:42:52

五游二开-hm棋牌-补丁式一键端修改迭代版0.1

thuongdo 发表于 2021-3-11 10:37:35

感谢大佬分享

qpzm01010101 发表于 2021-3-11 11:25:12

大佬抽时间 接力棒   
这个补丁版比教程有参考价值


shishei 发表于 2021-3-11 11:29:32

楼主发贴辛苦了,谢谢楼主分享!

980712876 发表于 2021-3-11 21:21:13

支持楼主,楼主已经很厉害了,希望有大佬接力,造福宝湾大众

qpzm01010101 发表于 2021-3-12 07:53:34

机器人端口号配置文件修改


skycancan 发表于 2021-3-12 10:35:47

::

skycancan 发表于 2021-3-12 10:41:45

::

skycancan 发表于 2021-3-12 10:46:07

::

)ε╰親!妳的菜✎ 发表于 2021-3-12 10:48:55

不错,希望大神研究出后能整合一个虚拟机192.168.1.*网段的,感谢各位大神的付出:

164548891 发表于 2021-3-12 12:30:18

6666666666666666666666

qpzm01010101 发表于 2021-3-12 13:52:18

其实 我是在物理机器上倒腾的。。:

qpzm01010101 发表于 2021-3-16 10:52:43

,,,,,,,,死帖,,,,,,,,   有后台数据就剩 n想干什么了。。。
页: [1] 2
查看完整版本: 五游二开-hm棋牌-补丁式一键端修改迭代版0.1

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明