3DMGAME 3DM首页 新闻中心 前瞻 | 评测 游戏库 热门 | 最新 攻略中心 攻略 | 秘籍 下载中心 游戏 | 汉化 购买正版 论坛

注册 登录

QQ登录

只需一步,快速开始

查看: 16523|回复: 20
打印 上一主题 下一主题

[原创] 【mod教程】骑砍2自制mod教程,图文实例讲解。(含游戏报错说明)

[复制链接]

123

主题

1826

帖子

7925

积分

游戏精英

Rank: 8Rank: 8

贡献度
1081
金元
36013
积分
7925
精华
0
注册时间
2011-6-9

3DMer(永久)

跳转到指定楼层
主题
发表于 2020-6-3 13:04 | 只看该作者 |只看大图 回帖奖励 |倒序浏览 |阅读模式
前排提示:内容为手打+部分复制自己文件里的代码,如果打字有错,请脑补,实在看不懂就留言,如果发现没图,那就是回头再补。

一、首先以个人连懵带猜的经验和愚见来说明一下,骑砍2的mod是怎么样运作的(含游戏部分无法启动和报错的说明)。

        1.当游戏打开启动器的时候,启动器程序首先会扫描Modules这个文件夹下所有文件夹下一层的所有具有的SubModule文件,连官方自己的mod下也都带着SubModule文件,所有没有例外。如果所有的SubModule文件如果格式都是正确的,那么才能够进入到启动器窗口。这一步只扫描检测SubModule文件的格式和读取SubModule里的基本内容,而不检测SubModule文件里该mod要加载的dll和xml文件的内容。

        也就是说打开启动器的时候,只检测SubModule.xml的整个文件的格式是否正确,以及检测并读取SubModule文件中的下列代码=" "中用英文双引号括起来的内容。
<?xml version="1.0" encoding="utf-8"?>
<Module>
    <Name value="zzz"/>
    <Id value="Zzz"/>
    <Version value="v1.0.0"/>
    <SingleplayerModule value="true"/>
    <MultiplayerModule value="false"/>
    <DependedModules>
        <DependedModule Id="Native"/>
        <DependedModule Id="SandBoxCore"/>
        <DependedModule Id="Sandbox"/>
        <DependedModule Id="CustomBattle"/>
        <DependedModule Id="StoryMode" />
    </DependedModules>
</Module>

<--如果连启动器都打不开,以个人的经验来说,大概率是因为SubModule文件里的格式有错(假如SubModule.xml文件的文件名不正确,启动器是可以打开的,但是不显示(没读取到)该mod能勾选的名称)。那么,如何用最简单的方法测试一个SubModule文件的格式是否正确呢?那就是直接双击SubModule.xml文件,用默认的网页格式打开,如果打开文件显示有文档本该有的内容,说明格式应该没问题,如果打开是一片空白,那这个SubModule文件格式就是有问题。(这里大家可以自己做个实验,去SubModule删个>或者加个>符号,或者其他错误修改,打开启动器是什么结果,然后把内容再还原回来。)-->


        2.当在游戏启动器选上要用的mod之后,我们点play进入游戏,这时游戏程序会检测和读取SubModule.xml文件里mod要加载的dll的基本内容和显示信息(如下),但不加载执行dll中的mod功能代码程序,也不检测和加载mod中xml文档中的格式和内容。
<SubModules>
    <SubModule>
            <Name value="zzz"/>
            <DLLName value="Abc.dll"/>
            <SubModuleClassType value="Abc.abc"/>
          <Tags>
               <Tag key="DedicatedServerType" value="none" />
               <Tag key="IsNoRenderModeElement" value="false" />
          </Tags>
    </SubModule>
</SubModules>

        假如代码<DLLName value="Abc.dll"/>和<SubModuleClassType value="Abc.abc"/>中=“ ”里的内容有误时,会在开启游戏后,当你看着右下角骑兵举着小旗跑啊跑的时候蹦出yes or no的报送错误信息的对话框报错。解决办法:
①这时首先就要检查SubModule.xml文档里mod要加载的dll文件名称是否有误(非<Name value=" "/>),也就是检查一下bin\Win64_Shipping_Client文件夹里.dll前的名称Abc是否与SubModule.xml文档中的信息一致。
②如果文件名没问题,再看一下<SubModuleClassType value="Abc.abc"/>中的=“ ”里的内容是否有问题,这里"Abc.abc"里的Abc是dll文件代码里的空间名,abc为类名,如果对应有误,也会在“跑马旗”读条的时候报错。
③其他还有一种报错的可能,是两个dll文件名称相同,mod用错了dll文件。

        3.当我们打开启动器,在看完“跑马旗”读条后,顺利的来到了游戏主菜单,然后点新建战役蹦出来yes or no的报错对话框,甚至连“跑马旗”都见见到它动就报错了,这是因为到这时游戏程序才会检测mod需加载的xml文件的格式,以及加载mod里xml文档的内容信息。解决办法:
①如果点新建战役马上报错,基本就是xml文档的格式有问题,可能在写xml文档时没太注意格式,检测办法和上文提到的方法一样,双击用默认网页格式打开,看看是不是空白的,如果是,那就是格式有问题。
②看着“跑马旗”读条跑了两下才报错,基本上是xml文档里的内容用程序执行时出现了错误,这种错误的范围很广,不好一下子断定,只能慢慢排除。举个例子(代码如下):比如xml文档里,我在NPCCharacters空间下用NPCCharacter类型创建了一个新人物,又在Factions空间下用Faction类型创建了一个新的家族,然后在Faction类的owner=""属性里(意思是这个家族属于谁或谁是家族领导者),不小心输入错误,实际输入了一个不存在的人物ID,这时就会在看着“跑马旗”动两下之后报错。

新建人物(看人物id=""里的id内容):
<NPCCharacters>
  <NPCCharacter id="hero_ybt_tz" name="乔纳斯" age="26" voice="earnest" is_female="false" is_hero="true" battleTemplate="NPCCharacter.vlandia_lord_lady_battle_equipment" civilianTemplate="NPCCharacter.vlandia_unarmored_noble_equipment" default_group="Cavalry" culture="Culture.vlandia" occupation="Lord">
    <face></face>
    <skills></skills>
    <Traits></Traits>
    <equipmentSet></equipmentSet>
  </NPCCharacter>
</NPCCharacters>

新建家族(看owner=""里Hero.后面的id):
<Factions>
  <Faction id="clan_vlandia_ybt"
           name="瓦兰迪亚佣兵团"
           tier="6"
           owner="Hero.hero_ybt_tz111"
           culture="Culture.vlandia"
           super_faction="Kingdom.vlandia"
           banner_key="11.148.148.1536.1536.768.768.1.0.0.102.155.155.487.487.773.729.0.0.0"/>  
</Factions>  

        上面新建人物和新建家族这两段代码应该都看到了,创建人物的id是hero_ybt_tz,实际上是因为打错字,在家族引用里面引用了一个不存在的id名hero_ybt_tz111,这样在“跑马旗”的时候动两下再报错(程序执行这些参数时产生的错误),而不是一点新建战役就报错,和xml文档格式错误不一样,做mod的时候,注意区分找准问题在哪儿再解决。

4.其他时候的游戏报错。在这里说一下报错时间点的总结,基本上有一个规律,你在哪个地方(或程序执行时间点)报错,就去哪里找问题。
①比如昨天发现我那个mod合集里面的军械库mod和驻军增强mod冲突,就去把军械库mod代码删了,然后就好了。我是怎么一下就知道时军械库mod和驻军增强mod有冲突的?因为这俩mod都在城市堡垒里放了菜单按钮,除了这俩mod外,其他用的mod没有在这里放菜单按钮的。

②再比如前几天玩打造武器,改游戏原文件,把某个武器部件的Guard(护手)属性改成了Blade(刀刃),又给它加上伤害属性,结果就是进游戏一直到铁匠铺该部件所在菜单都没事,看着这个部件模型变了,但把鼠标放上去会报错,这个错误应该是读取部件属性是程序上产生了错误,做mod道理一样,当你的mod程序或游戏程序读取xml文档数据并执行的时候,数据和程序代码之间对应关系错误的时候就会报错。我开了个屠宰场,雇了一个屠夫,他每天需要的是肉(动物),但是我天天给他送刀他就不干了,要报错。

好了,第一部分“骑砍2游戏是怎么运作的个人愚见”就先写这么多,其他具体mod怎么做的内容等有时间了会继续更。

评分

1

查看全部评分

回复

使用道具 举报

3

主题

143

帖子

201

积分

中级玩家

Rank: 3Rank: 3

贡献度
0
金元
2008
积分
201
精华
0
注册时间
2014-11-24
舒服的沙发
发表于 2021-7-5 22:15 | 只看该作者
楼主,我玩的1.6.0,以女剑士为基础修改了一个小兵种树,起初把改好的参数粘贴进原版士兵文档里面,进游戏点沙盒读取时崩溃,然后按照你的方法做成MOD,依然崩溃,参数都是按照原版士兵改的,主要修改的也是技能和装备,NPP里面除了兵种样貌的<face>是红色的,其他类似的语句都是蓝色的,而且原版里面兵种这一段也是蓝色的,但外貌里面的参数也是女剑士自带的,会不会是这个出问题导致崩溃?
回复 支持 反对

使用道具 举报

0

主题

16

帖子

16

积分

新手玩家

Rank: 1

贡献度
0
金元
155
积分
16
精华
0
注册时间
2021-9-13
硬硬的板凳
发表于 2021-9-13 18:43 | 只看该作者
新版本是不能用吗?我试了几遍都不行
回复 支持 反对

使用道具 举报

0

主题

8

帖子

8

积分

新手玩家

Rank: 1

贡献度
0
金元
80
积分
8
精华
0
注册时间
2020-3-14
冰凉的地板
发表于 2021-11-22 00:24 | 只看该作者
楼主,能出一期关于武器mod的设定属性方面的介绍么?就是修改单双手什么的那种,谢谢啦
回复 支持 反对

使用道具 举报

0

主题

7

帖子

9

积分

新手玩家

Rank: 1

贡献度
0
金元
85
积分
9
精华
0
注册时间
2021-10-14
5#
发表于 2021-12-8 20:31 | 只看该作者
大佬,可以出一个自制装备的教程吗,建完模型之后不知道该怎么让它在游戏里出现了
回复 支持 反对

使用道具 举报

16

主题

2139

帖子

2424

积分

游戏达人

Rank: 7Rank: 7Rank: 7

贡献度
16
金元
23597
积分
2424
精华
0
注册时间
2010-10-23
6#
发表于 2022-11-2 12:19 | 只看该作者
感谢大神分享
回复 支持 反对

使用道具 举报

2

主题

293

帖子

462

积分

高级玩家

Rank: 4

贡献度
0
金元
4623
积分
462
精华
0
注册时间
2012-3-13

3DMer(永久)

7#
发表于 2022-11-10 10:05 | 只看该作者
辛苦了,希望有空修改一个减速mod,那个各种匪徒的速度降低的mod,最新1.10现在的用不了,报错
回复 支持 反对

使用道具 举报

0

主题

152

帖子

255

积分

高级玩家

Rank: 4

贡献度
0
金元
2547
积分
255
精华
0
注册时间
2012-3-16
8#
发表于 2023-3-18 13:34 | 只看该作者
66666666666666666
回复 支持 反对

使用道具 举报

0

主题

10

帖子

73

积分

初级玩家

Rank: 2

贡献度
0
金元
730
积分
73
精华
0
注册时间
2015-11-1
9#
发表于 2024-5-9 20:58 | 只看该作者
想问一下 怎么把某些很久没更新的mod自主进行更新 这个能做到吗?
回复 支持 反对

使用道具 举报

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

本版积分规则

Archiver|手机版|3DMGAME ( 京ICP备14006952号-1  沪公网安备 31011202006753号

GMT+8, 2026-3-23 14:08 , Processed in 0.030972 second(s), 17 queries , Memcached On.

Powered by Discuz! X3.2

© 2001-2013 Comsenz Inc.

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