找回密码
 注册

QQ登录

只需一步,快速开始

搜索
查看: 7981|回复: 10

【原版引擎】【常识科普】使用可玩战役的客户端方法

[复制链接]
发表于 2021-10-8 15:59:28 | 显示全部楼层 |阅读模式
本帖最后由 trsdy 于 2022-12-2 18:07 编辑




cncnet集成了copyprotection的那几个hook,所以不用特意单独弄一个了
现在cncnet也开源了,如果有微改原版引擎需求的也直接在那上面弄就可以
拿VSINI举个例子,比方说可以在命令行里加一个参数从而切换所要使用的mod:
https://tieba.baidu.com/p/8169258388
正如https://bbs.ra2diy.com/forum.php?mod=viewthread&tid=18515 这个帖子中提出的方法
然后就可以在客户端里调整了



2022.4.7

用原版的CNCNET的话,就算通过改客户端ini把战役界面调出来,遇到的一个大问题是如果战役里面有多个所属方的话那么不是[Basic]Player= 的那些所属方必然控制不了。这样的话我就想还是想办法运行gamemd而不是gamemd-spawn。刚刚我测试出来的一个可行的方法是在Build 0版的PHOBOS里面直接复制ares里面有关防复制的代码进去,这样的话一个卵用没有但是能够绕开copy protection的phobos就可以直接被syringe注入进去了,而且可以做到一点新功能和bug修复都没有。多可控所属方的问题也解决了,同时也能兼容DTA客户端

我自己大致写了个例子,目前我还没有看到什么bug,但bug可能确实是有,不过我也没有什么精力去测试了。我还是希望懂引擎修改的人帮我指点一下,看看是不是少了什么,或者这样做到底行不行。


2021.10.8 原帖
首先解释一下为什么还用原版玩而不是ares,我只是遇到这样一个小问题,目的仅想把cncnet客户端被删减的功能加回来,还原其本来的面目,让普通玩家既可以玩战役又可以玩遭遇战对战之类的。而且有些仅基于原版的mod像vs_ini使用了ares之后效果反而会不好。

cncnet.org下载到的CNCNET客户端和目前众多使用DTA的ARES MOD一样都是基于类似的XNA CNCNET Client,但官版CNCNET的游戏的最终执行文件是gamemd-spawn.exe而不是gamemd.exe,由于我不懂这种可执行文件怎么分析,我只能猜测是像已经把cncnet.dll类似的东西注入进去了。

和诸多ares mod一样,使用cncnet只需要langmd.mix language.mix ra2.mix ra2md.mix binkw32.dll blowfish.dll,(已经不需要gamemd.exe了),同时其读取的mix文件格式也变成了expandspawn%02d.mix。

为了调出战役界面,在Resources文件夹里制作CampaignSelector.ini,简单起见直接复制链接里这个这个进去即可,然后在每个xxx Theme文件夹里面的MainMenu.ini里面将btnNewCampaign启用,简单起见将其名字与btnProfiles或btnForums之类的调换一下即可。最后在Resources文件夹里面的ClientDefinitions.ini里要[Settings]下面添加CopyMissionsToSpawnmapINI=no。

为了调出尤复的战役,在INI文件夹里面制作BattleE.ini,比如直接把这个复制进去。至于原版的则可以直接使用模板,不过要把expandmd改成expandspawn。然后再补充好BattleE.ini里面的战役列表即可。

我这样做遇到的问题是有几次在运行一些盟军战役时调出的是尤里的UI,之前在这看到双杀步枪还是谁说过CNCNET的国家列表顺序是不对的,可我不知道是哪里的问题。刚才又去重新试了一下发现这个问题又不见了。如果有人有兴趣用我这些步骤测试的话,如果你也遇到了类似的问题希望能反馈一下,如果有知道怎么回事的解释一下也再好不过了


评分

参与人数 1威严 +1 收起 理由
Safari + 1 神乎其技!

查看全部评分

发表于 2021-10-15 20:30:51 | 显示全部楼层
“我们新式的DTA客户端已经全面超越了老式的原版启动器”
回复

使用道具 举报

发表于 2021-11-6 14:28:55 来自手机 | 显示全部楼层
Safari 发表于 2021-10-15 20:30
“我们新式的DTA客户端已经全面超越了老式的原版启动器”

“我们新式的ares兼容DTA已经完全超越了老旧的RUNARES”
回复

使用道具 举报

 楼主| 发表于 2021-12-10 14:18:27 | 显示全部楼层
我最新发现的是如果用gamemd-spawn.exe启动战役的话,在战役中如果设置了多个玩家可控的所属方,那么除了[Basic]Player=的那个之外别的其实是控不了的
回复

使用道具 举报

发表于 2022-3-10 14:07:51 | 显示全部楼层
好棒!
回复

使用道具 举报

 楼主| 发表于 2022-4-7 15:16:54 | 显示全部楼层
刚刚测试了个可以解决的方法,就是借助第0版的phobos直接用类似ares的方法注入进去,目前看来之前的问题都解决了,还没有发现什么明显的bug
回复

使用道具 举报

发表于 2022-4-8 23:01:46 | 显示全部楼层
trsdy 发表于 2022-4-7 15:16
刚刚测试了个可以解决的方法,就是借助第0版的phobos直接用类似ares的方法注入进去,目前看来之前的问题都 ...

神乎其技!不过为什么开个新帖发呢。CNCNet玩战役我会了,只加了防复制的Phobos哪里领
在Build 0版的PHOBOS里面直接复制ares里面有关防复制的代码进去
可以做到一点新功能和bug修复都没有

但Build 0其实是有新增功能的
回复

使用道具 举报

 楼主| 发表于 2022-4-9 15:19:59 | 显示全部楼层
Safari 发表于 2022-4-8 23:01
神乎其技!不过为什么开个新帖发呢。CNCNet玩战役我会了,只加了防复制的Phobos哪里领
CNCNet玩战役我会了,只加了防复制的Phobos哪里领

我把我这个意思刚编译了一下传上来了,有人方便的话可以帮我测试一下,我自己这边有没有客户端(cncnet5.dll)都是正常运行的,游戏体验这块我就没细测试。你可以看到我里面仅仅包含一个CopyProtection文件,其余的什么都没有
回复

使用道具 举报

发表于 2022-4-11 19:03:50 | 显示全部楼层
trsdy 发表于 2022-4-9 15:19
我把我这个意思刚编译了一下传上来了,有人方便的话可以帮我测试一下,我自己这边有没有客户端(cncnet ...

我先用自己编译的dll测试了一下,不过只测了一次,第二关载过程中炸了,就没再测...今天才换用你编译的这个dll。我刚通关一遍,也算正常,只发生过一次问题,在盟军第一关,我方单位移动到科技电厂附近时突然IE,不过这两次IE后来没再能复现成功过,应该可以归类为灵异事件
回复

使用道具 举报

 楼主| 发表于 2022-4-11 23:48:12 | 显示全部楼层
Safari 发表于 2022-4-11 19:03
我先用自己编译的dll测试了一下,不过只测了一次,第二关载过程中炸了,就没再测...今天才换用你编译的这 ...

我不套客户端有一次也是加载之后不行,但是整个删掉重新弄又好使了。目前我用客户端测试过几把VS_INI,目前来看我还没炸过,但是战役我就没试过了。或许可能还少了点什么,光这几个HOOK或许不太够。还是希望有个懂行的人解答一下
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

小黑屋|Archiver|手机版|管理员邮箱|红警DIY论坛 |网站地图

GMT+8, 2026-4-30 08:48 , Processed in 0.067296 second(s), 18 queries .

Powered by Discuz! X3.5

© 2001-2025 Discuz! Team.

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