欢迎光临散文网 会员登陆 & 注册

【Minecraft基岩版】客户端Skid教程 #3 如何Port其他端的功能到自己的客户端

2023-07-19 12:29 作者:SADAMI123  | 我要投稿



请使用已公开的源码,并用于学习!

一:创建功能

  1. 先打开资源管理器,显示所有文件

  1. 找到Modules并右键,创建2个新的文件

  2. 其中一个后缀为cpp,一个为.h

  3. 例如,我们现在要skid一个packet的animation

  1. 然后同理,我们打开另外一个端子的源码,找到你要抄的功能

2,如何ctrl+a 复制并粘贴到你的端子里

3,请让cpp和.h文件内容一一对应

4,我们可以看到,或多或少有些报错,但是不急,现在修复


5,我们根据include的文件的路径位置,可以做以下修改(小白看,会c++跳过)


例如,module.h和刚刚创建的animations.h在同一个文件里,我们直接删掉../即可

可百度include的用法,一一找到对应的头文件(.h)

修复头文件完成,接下来修复cpp


报错一

可以看到,这是由于module里面enumsetting写法不同引发的错误,我们可以观察你的端子的这个函数

找到一个有EnumSetting的功能例如killaura,我们可以看到有两种不同的写法,都可以用,我们选一种对animation进行更改

好的,改完了,下一个报错


报错二

由于sdk名字或者其他差异,或者不全,就会缺少函数导致报错

这时候我们将目标客户端的sdk也复制粘贴到自己客户端的同样位置即可

  1. 找到目标客户端该函数的位置,右键,点击转到声明

我们可看到,调到Centity.h来了.我们复制getswingstate这一条函数,搜索我们客户端的CEntity.h,并粘贴到里面

注意{}的使用,一定要对应

修复了


错误三:

未定义标示符,对于getmodule这个函数来说,就是没有这个功能,这可能是由于名字不对导致的,也可能是真的没有

这也可能是sdk确实某个函数导致的,看后面

我们可以看到,其实是有的,只是名字不一样

如果没有这个功能,那我们就要添加,这个后面讲


错误四

这是我们的端子hooks不全导致的,我们可以看到缺少了isThirdPerson这个判定是不是第三人称的函数。

其实这个没用,所以直接删掉

如果有用,你就去hooks里加【同sdk的加法】


好的修好了,后面我们添加标识符


添加功能标识符:

我们每每添加一个功能,添加到modulemanager.h和.cpp里面

下面来操作:

  1. 打开modulemanager.h,写入你刚刚添加的功能的头文件

2,打开modulemanager.cpp

写入添加功能的标识符

尾声:

生成即可,如果发现没有效果,可能是hooks里面没有调用

我们在目标客户端里搜索animation,发现是有调用它的,所以要复制到我们的端子的hooks里

记住,我们仅需复制有关于animation的代码,不要讲重复的,其他的,无用的代码复制过来

又报错了,这就是缺少几个函数。我们回到目标客户端的hooks,右键转到定义或者声明,找到这几个函数的定义(同上文)

将他们复制到自己的客户端的同样位置

复制完毕后,报错消失了

最后,生成一个debug(方便调试),上游戏注入即可

【Minecraft基岩版】客户端Skid教程 #3 如何Port其他端的功能到自己的客户端的评论 (共 条)

分享到微博请遵守国家法律