【mod教程】骑砍2自制mod教程,图文实例讲解。(含游戏报错说明)
前排提示:内容为手打+部分复制自己文件里的代码,如果打字有错,请脑补,实在看不懂就留言,如果发现没图,那就是回头再补。一、首先以个人连懵带猜的经验和愚见来说明一下,骑砍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怎么做的内容等有时间了会继续更。
本帖最后由 ars5217 于 2020-6-6 16:50 编辑
二、这一部分准备写一下xml文档相关的东西,这部分内容应该要写很多,能写多少先写多少,写不完回头再编辑补充。
1.前面说过,每个mod在打开启动器时都需要用到该mod的SubModule文件,那么自己怎么做一个SubModule文档呢?最简单的方法是找一个mod,拿里面的SubModule改名改信息就可以了,做xml型的mod须要把做好的xml文档放在ModuleData文件夹下,需要dll文件的时候再创建bin文件夹也可以,建了bin文件夹空着也没事。然后说一下SubModule文件里的注意事项:
(1)<?xml version="1.0" encoding="utf-8"?>,SubModule文件里有的开头有的会有这样的标头,这个代表的意思是:声明这个文件是个xml类型,1.0版,用的utf-8编码。(其实这句话在SubModule文件里带不带都无所谓,它默认就按这个执行,你不带这句话把mod名称打成中文都可以。)另外,紧跟着会有个<Module>,这个<Module>和文件结尾的</Module>是一对,一个是开始标记,一个结束标记,无论隔多远,这两个符号之间的都是一个段落,所以这两个少一个就出错。还有一些标记是这样的:<Name value=" "/>,标记<之后找它后面最近的/>配对,这之间的语句是一个封闭的语句(不知道专业名称用的对不对,反正是这样用的)。
(2)<Name value=" "/> 这是mod在启动器里显示的名称,可以打成中文或英文,和id没关系,可以随便起。
(3)<Id value=" "/>这个对应mod文件夹名称,不区分大小写。
(4)<Version value="v1.0.0"/> 这个讲就是在启动器里显示的mod版本,你填什么那里显示什么,但要用v开头,用e开头之前试过,会报错。
(5)<SingleplayerModule value="true"/>是单人模式的mod吗?是的话填true,不是填false,我们这里填true。<MultiplayerModule value="false"/>不是多人模式mod,直接填false。
(6)<DependedModules>和</DependedModules>之间这几个=""里是需要依赖哪些mod,一般填官方这几个就可以,最少也要填一个,不能空,不然会报错。
<DependedModules>
<DependedModule Id="Native"/>
<DependedModule Id="SandBoxCore"/>
<DependedModule Id="Sandbox"/>
<DependedModule Id="CustomBattle"/>
<DependedModule Id="StoryMode" />
</DependedModules>
(7)<SubModules>和</SubModules>之间的放所有mod所需的dll文件,如果不需要dll文件,就把<SubModules>和</SubModules>之间的内容全部删除。如果有dll文件,就要把每个dll文件的各个属性都要放在一对<SubModule></SubModule>之间的。接着说下每个dll的属性内容填写:①<Name value=" "/>,随便起名,中文英文都可以,但最好别和别的dll文件名字重名。
②<DLLName value="xxx.dll"/>,这里就是所需dll文件在bin\Win64_Shipping_Client目录下的文件名,要填写正确,复制粘贴过来就好。
③<SubModuleClassType value="xxx.xxx"/>,这里在一楼讲过,对应的是dll文件里的“空间名.类型名”。
④<Tags></Tags>,这之间填mod的类型属性,主要起个标识作用,只要用到dll,就一定要有这对标记,不然会报错,但这之间的内容可以不填,假如想填可以把别人mod里的复制过来,至于填什么没实际影响,总之有dll,<Tags></Tags>这对标记就要有,但之间的内容可填可不填,保证文件格式正确就行了。
(8)<Xmls></Xmls>,这对标记之间放mod需要的所有xml文档,每个xml文档要用一对<XmlNode> </XmlNode> 括起来,这之间填每个xml文档的属性。
①<XmlName id=" " path=" "/>,id=" "里填mod需要加载的xml文档的命名空间名称,例如你创建了一个新人物,人物属于NPCCharacters这个命名空间里的,这个文档里都是新建人物,所以这里填NPCCharacters,假如是新增武器,就要填Items。path=" "这里填需要加载的xml文档名称,不需要带后缀名,比如你新建人物的xml文档的名称是hero.xml,那这里就填hero。
②<IncludedGameTypes></IncludedGameTypes>这对标记之间填xml文档对应游戏类型,只要也是标识作用,不填也不要紧,甚至连这对标记都可以不要,想填可以把别人的复制过来,填什么没影响,但要注意文件格式正确。
这次先写这么多,主要都是些注意事项和说明,明天有时间继续在二楼写,准备说一下如何制作一个自制流浪者mod。
-------------------------------------------------------------------------------------------------------------------------------------------------------------------
继续更......
2.准备说一下怎么做一个流浪者mod,但在说流浪者mod前首先要说一下创建人物和人物的属性,首先看一下下面的代码:
<?xml version="1.0" encoding="utf-8"?>
<NPCCharacters>
<NPCCharacter id="NPC_wanderer_1"
name="侍卫"
voice="ironic"
age="21"
is_template="true"
default_group="Infantry"
is_female="true"
is_hero="false"
culture="Culture.empire"
battleTemplate="NPCCharacter.npc_companion_equipment_template_empire"
civilianTemplate="NPCCharacter.npc_companion_equipment_template_empire"
occupation="Wanderer">
<face>
<BodyProperties version="4" age="25.84" weight="0.1" build="0.1"key="00051C088070300F1B72130266747492968B77267585A3278B44FF1178394B3701A776130A8B67500000000000000000000000000000000000000000575410C3"/>
</face>
<Traits>
<Trait id="WandererEquipment" value="1" />
<Trait id="RomanHair" value="1" />
<Trait id="HopliteFightingSkills" value="1" />
<Trait id="Valor" value="1" />
<Trait id="Calculating" value="1" />
</Traits>
</NPCCharacter>
</NPCCharacters>
(1)首先说一个这个文件的结构,二楼第一部分说过一些文件结构的规则,在这个文件里<NPCCharacters>和</NPCCharacters>是一对,这之间的可以创建很多人物,而<NPCCharacter和后面离它最近的>以及</NPCCharacter>,这是一对,首先要搞清楚这个问题。
(2)再来说一下创建人物的属性都有哪些:
①id="",这里面是人物id,具有唯一性,不能和别的人物重复,不可以打中文,一般由字母、数字、下划线组成。
②name="",这是人物在游戏里的名称,如果是新建的领主,这里的内容对应游戏里领主的名字。但如果创建的是流浪者,那就是流浪者的后缀名,比如“白柳树皮”、“盗马贼”、“王子”、“勇者”等后缀名对应的就是这个里面的内容,这里可以打中文。
③voice="",这是人物的声音,人物的声音一共有4中,分别是:
curt (粗鲁的)
earnest (认真的)
softspoken (温柔的)
ironic (讽刺的)
在这里填上这4种中的一种就行,印象中这里也可以不填,不填就由系统随机生成。
④age="",人物的初始年龄,填数字,应该不能低于0,具体范围没试过,按正常填就行了。
⑤is_template="",是不是人物模板,是填true,不是可以将此项属性省略,做领主我们不当模板,做流浪者我们带上true,可以生成多个这样后缀名的流浪者。
⑥default_group="",默认是哪个兵种,一共有4种:
Infantry (步兵)
Ranged (弓箭手)
Cavalry (骑兵)
HorseArcher(骑射)
选填一个,当然也可以写别的,不过要去dll里把对应的代码也加上,这里不提,因为我也不会,只是知道可以这样。
⑦is_female="",是女的吗?如果想让角色是女的就填ture,男的填false,做士兵mod时同理。
⑧is_hero,按游戏原文件里的规则,领主填ture,其他人物填false。
⑨culture="",这里时人物的所属文化,游戏里自带的一共有7种文化,分别是:
Culture.empire 帝国文化
Culture.vlandia 瓦兰迪亚文化
Culture.sturgia 斯特吉亚文化
Culture.battania 巴坦尼亚文化
Culture.aserai 阿塞莱文化
Culture.khuzait 库塞特文化
Culture.looters 抢劫犯文化
当然文化也是可以创建新的。
⑩battleTemplate="",这里面填战斗装备模板名,这里说几个原文件里常用的装备模板:
NPCCharacter.npc_companion_equipment_template_empire (帝国同伴装备)
NPCCharacter.npc_companion_equipment_template_sturgia (斯特吉亚同伴装备)
NPCCharacter.npc_companion_equipment_template_battania (巴坦尼亚同伴装备)
NPCCharacter.npc_companion_equipment_template_vlandia (瓦兰迪亚同伴装备)
NPCCharacter.npc_companion_equipment_template_aserai (阿塞莱同伴装备)
NPCCharacter.npc_companion_equipment_template_khuzait (库塞特同伴装备)
NPCCharacter.empire_lord_lady_battle_equipment (帝国领主装备)
NPCCharacter.aserai_lord_lady_battle_equipment (阿塞莱领主装备)
NPCCharacter.vlandia_lord_lady_battle_equipment (瓦兰迪亚领主装备)
NPCCharacter.sturgia_lord_lady_battle_equipment (斯特吉亚领主装备)
NPCCharacter.battania_lord_lady_battle_equipment (巴坦尼亚领主装备)
NPCCharacter.khuzait_lord_lady_battle_equipment (库塞特领主装备)
这些选填到该属性里面,当然也可以自建模板。
①①civilianTemplate="",这里是便装模板,这里也说一些原文件里常用的便装模板:
NPCCharacter.npc_companion_equipment_template_empire (帝国同伴便装)
NPCCharacter.npc_companion_equipment_template_sturgia (斯特吉亚同伴便装)
NPCCharacter.npc_companion_equipment_template_battania (巴坦尼亚同伴便装)
NPCCharacter.npc_companion_equipment_template_vlandia (瓦兰迪亚同伴便装)
NPCCharacter.npc_companion_equipment_template_aserai (阿塞莱同伴便装)
NPCCharacter.npc_companion_equipment_template_khuzait (库塞特同伴便装)
NPCCharacter.npc_wanderer_equipment_template_empire (帝国流浪者便装)
NPCCharacter.npc_wanderer_equipment_template_aserai (阿塞莱流浪者便装)
NPCCharacter.npc_wanderer_equipment_template_vlandia (瓦兰迪亚流浪者便装)
NPCCharacter.npc_wanderer_equipment_template_sturgia (斯特吉亚流浪者便装)
NPCCharacter.npc_wanderer_equipment_template_battania (巴坦尼亚流浪者便装)
NPCCharacter.npc_wanderer_equipment_template_khuzait (库塞特流浪者便装)
NPCCharacter.empire_unarmored_noble_equipment (帝国贵族无甲装备)
NPCCharacter.aserai_unarmored_noble_equipment (阿塞莱贵族无甲装备)
NPCCharacter.vlandia_unarmored_noble_equipment (瓦兰迪亚贵族无甲装备)
NPCCharacter.sturgia_unarmored_noble_equipment (斯特吉亚贵族无甲装备)
NPCCharacter.battania_unarmored_noble_equipment (巴坦尼亚贵族无甲装备)
NPCCharacter.khuzait_unarmored_noble_equipment (库塞特贵族无甲装备)
其实还有一种无甲贵族装备,这里只提一个NPCCharacter.noncombatant_template_empire_noblewoman_elegant,其他的只要把文化名换掉就可以了。
①②occupation="Wanderer",职业属性,这个属性可以把人变流浪者、变成领主、商人、甚至土匪,我们要做流浪者,这里就填Wanderer,还有很多人物职业,把发现的都贴一下:
occupation="" 职业
Mercenary 雇佣兵
Soldier 士兵
Wanderer 流浪者
Townsfolk 镇民/市民
Villager 村民
Lord 贵族
Merchant 商人
Preacher 传教士
Artisan 工匠
GangLeader 黑社会头目
RuralNotable 乡村名人
Outlaw 不法之徒
Headman 头人/酋长
NotAssigned 未分配(中立人物)
Bandit 强盗
Companion 同伴
PrisonGuard 狱警
Judge 法官
Blacksmith 铁匠
Weaponsmith 武器匠
RansomBroker 赎金经纪人
ShopKeeper 店主
ShopWorker 店员
Tavernkeeper 酒馆老板
TavernGameHost 酒馆游戏东家
Musician 音乐家
TavernWench 酒馆女招待
Armorer 军械师
HorseTrader 马商
GoodsTrader 货物贸易商
ArenaMaster 竞技场大师
CaravanGuard 商队警卫
BannerBearer 旗手(测试人物)
Special 特别的(教程人物)
目前各种mod里用的最多的应该就是Wanderer吧,其次是Lord。
好了,到这里我们又见到了>标记,这个标记只是代表人数基本属性的结束,相当于创建人物开头<NPCCharacter标记的一个分号,但人物创建还没有结束,只有到</NPCCharacter>标记才是这个人物的结束。
先写到这里,回头继续更。。。
----------------------------------------------------------------------------------
继续更....
①③上次忘了说一个属性,就是人物的百科文本属性,也就是在游戏里按N找到某个角色的人物介绍,这个属性就是在人物基本属性内(<NPCCharacter到>之间),加一个text="这里面写人物介绍"。
到这里,上面的内容就把一个人物的基本属性都介绍完了(<NPCCharacter标记到>标记),但除此以外还有一些其他属性,基本属性加上这些属性,就构成了一个完整的人物(一直到</NPCCharacter>标记结束)。
①④继续说一下<face></face>属性,这个属性里面包含大致3个组成部分。
第1部分是身体外貌特征属性,最常见的就是<BodyProperties version="4" age=" " weight=" " build=" "key=""/>这样的格式。
version=""开发人员可能用过1、2、3版本的,但我们一般就填4就完了。
age=" "这里填人物的样貌对应的年龄,假如你这里填25,前面人物基本属性里的age=""填的是18,那么只有人物长到25岁才会和你捏的人物一样,不然会感觉没长开。
weight=" "和build=" "代表体重和身材,但是实测这里的数值好像没什么实际影响,但一般数值都是小于1的。
key=""属性,这个属性是一个重要属性,人物外貌有关的东西全在这里面,一般是游戏里捏完脸复制出来的。
我们在开始游戏(或游戏里按v)给人捏脸的时候,按CTRL+C就可以把人物这个格式的<BodyProperties/>属性复制出来,同样也可以把填好的属性在捏脸界面按CTRL+V复制进去,在游戏里得到这样数据的人物。
注意:
当人物作为家族中的领主时:直接把<BodyProperties version="4" age=" " weight=" " build=" "key=""/>这样的属性填好就可以了,不需要再加一个<BodyPropertiesMax />的属性。
但假如是其他NPC,如流浪者、士兵的模板之类的,还需要限定一个最大值,不然系统大概率会随机出不是你捏出来的人物样貌,也就是说那个Key实际是变化的,而你只给了一个值。
所以,当创建人物是流浪者、士兵之类的模板时,需要在<BodyPropertiesBody/>属性后再加一个<BodyPropertiesMax/>属性,里面的值可以和<BodyPropertiesBody/>属性的值完全一样,这样就相当于你设置了一个人物外貌的“常量”,只设置一个,或者两个不一致就相当于“变量”。
第2部分是头发属性,一般是<hair_tags> <hair_tag name=" " /> </hair_tags>这样的格式,一般只有做模板时偶尔用一下,不细说,有兴趣的也可以看一下\Mount & Blade II Bannerlord\Modules\Native\ModuleData\skins.xml这个文件。(非专门制定模板只看第一个部分)
第3部分是胡子属性,<beard_tags> <beard_tag name=" " /> </beard_tags>,同头发,做模板时才用。(非专门制定模板只看第一个部分)
这里要说一点,<face></face>属性里还有一种用法,就是直接套现有的外貌模板,一般作做兵种模板时使用,系统会根据模板随机生成模板中的一种外貌,除非自己写好了模板,不然一般很少用游戏自有模板。代码格式如下:
<face>
<face_key_template value="NPCCharacter.villager_sturgia" /> (使用斯特吉亚村民模板)
</face>
①⑤<skills></skills>属性,这个属性里填人物的技能熟练度,可以省略不写,不写为系统根据模板生成。正常输入的数值应该是0-330,代码说明具体如下:
<skills>
<skill id="OneHanded" value=" " /> (单手熟练度)
<skill id="TwoHanded" value=" " /> (双手熟练度)
<skill id="Polearm" value=" " /> (长杆熟练度)
<skill id="Bow" value=" " /> (弓箭熟练度)
<skill id="Crossbow" value=" " /> (弓弩熟练度)
<skill id="Throwing" value=" " /> (抛掷熟练度)
<skill id="Riding" value=" " /> (骑术熟练度)
<skill id="Athletics" value=" " /> (跑步熟练度)
<skill id="Crafting" value=" " /> (打铁熟练度)
<skill id="Tactics" value=" " /> (战术熟练度)
<skill id="Scouting" value=" " /> (侦察熟练度)
<skill id="Roguery" value=" " /> (流氓熟练度)
<skill id="Leadership" value=" " /> (领导熟练度)
<skill id="Charm" value=" " /> (魅力熟练度)
<skill id="Trade" value=" " /> (贸易熟练度)
<skill id="Steward" value=" " /> (管理熟练度)
<skill id="Medicine" value=" " /> (医学熟练度)
<skill id="Engineering" value=" " /> (工程熟练度)
</skills>
①⑥<Traits></Traits>属性,这个属性里包括人物的技能点和性格特征,可以省略不写,不写为系统根据模板生成。简单贴几个技能点和性格特征的代码:
<Traits>
<Trait id="HorseArcherFightingSkills" value="5" />(复制老版游戏说明已失效,仅做举例)
<Trait id="BalancedFightingSkills" value="5" /> (复制老版游戏说明已失效,仅举例)
<Trait id="KnightFightingSkills" value="5" />(复制老版游戏说明已失效,仅举例)
<Trait id="Commander" value="5" />(复制老版游戏说明已失效,仅做举例)
<Trait id="Politician" value="5" /> (复制老版游戏说明已失效,仅举例)
<Trait id="Manager" value="5" /> (复制老版游戏说明已失效,仅举例)
<Trait id="Valor" value="2" /> (勇气,范围-2到2)
<Trait id="Honor" value="2" /> (荣誉,范围-2到2)
<Trait id="Mercy" value="2" /> (仁慈,范围-2到2)
<Trait id="Generosity" value="2" /> (慷慨,范围-2到2)
<Trait id="Calculating" value="1" /> (精明,范围-2到2)
<Trait id="Oligarchic" value="0" /> (独裁,范围-2到2)
<Trait id="Egalitarian" value="0" /> (平等,范围-2到2)
</Traits>
①⑦<equipmentSet></equipmentSet>,装备属性,一般制作兵种模板使用。Item0、Item1、Item2、Item3为四个装备栏,id中填武器装备的id。Head、Cape、Body、Gloves、Leg中分别填头盔、肩甲、胸甲、手套、靴子等装备的id。格式为:
<equipmentSet>
<equipment slot="Item0"
id="Item.battania_noble_sword_1_t5" />
<equipment slot="Item1"
id="Item.stronger_reinforced_kite_shield" />
<equipment slot="Item2"
id="Item.eastern_spear_5_t5" />
<equipment slot="Item3"
id="Item.eastern_javelin_3_t4" />
<equipment slot="Head"
id="Item.imperial_goggled_helmet" />
<equipment slot="Gloves"
id="Item.lamellar_plate_gauntlets" />
<equipment slot="Cape"
id="Item.imperial_lamellar_shoulders" />
<equipment slot="Body"
id="Item.imperial_scale_armor" />
<equipment slot="Leg"
id="Item.lamellar_plate_boots" />
</equipmentSet>
①⑧ <upgrade_targets></upgrade_targets>属性,这个属性也是兵种模板中使用,这个属性中填该兵种升级到下一个等级兵种的id,写一个<upgrade_target id=" " />就代表下一级的兵种只有一个,写两个<upgrade_target id=" " />就代表下一级的兵种有两个,有两个分支。具体格式如下:
<upgrade_targets>
<upgrade_target id=" " />
<upgrade_target id=" " />
</upgrade_targets>
好了,到这里,一个人物的创建(包含部分制作人物相关的模板说明)就写完了,现在我们可以马上做一个流浪者的mod去了,请转4楼看mod实例,3楼准备留着写些和dll相关的东西,2楼有时间还会继续写xml文档相关的东西。
本帖最后由 ars5217 于 2020-6-6 16:50 编辑
占楼,有时间了写dll相关的东西。 本帖最后由 ars5217 于 2020-6-6 18:06 编辑
4楼准备写一些做mod的实例教程,其实就是把前面的楼层里的东西融合起来,这里先接二楼说一下流浪者mod怎么做。
---------------新增流浪者mod实例-----------------------
一、在\Mount & Blade II Bannerlord\Modules目录下创建一个文件夹,名称随意(字母、数字、下划线),我建的是qqq,进文件夹再创建个文件夹取名ModuleData,再创建个文本文档取名SubModule.xml(没显示后准名的去把文件扩展名调出来,方法自行百度一下,很简单。)
二、进ModuleData目录,新建个文本文档,名称随意(字母、数字、下划线),后缀名要变为.xml(没显示后准名的去把文件扩展名调出来,方法自行百度),然后用npp(Notepad++)打开这个xml文件,没npp右击,编辑,用记事本打开也行,然后复制下面代码粘贴进去。(也可以去\Mount & Blade II Bannerlord\Modules\SandBox\ModuleData下打开lords.xml文件复制一个人物的代码出来,或者找个NPCCharacters类的模板找一段类似代码复制出来)如果想改人物属性,就改变相应的值,不知道怎么改的话,可以去看一下2楼。
--新建流浪者代码如下--
<?xml version="1.0" encoding="utf-8"?>
<NPCCharacters>
<NPCCharacter id="xinzengliulangzhe" name="侍卫" voice="ironic" age="25" is_template="true" default_group="Infantry" is_female="true" is_hero="false" culture="Culture.empire" battleTemplate="NPCCharacter.npc_companion_equipment_template_empire" civilianTemplate="NPCCharacter.npc_companion_equipment_template_empire" occupation="Wanderer">
<face>
<BodyProperties version="4" age="25.84" weight="0.5" build="0.5"key="00051C088070300F1B72130266747492968B77267585A3278B44FF1178394B3701A776130A4B67500000000000000000000000000000000000000000575410C3"/>
<BodyPropertiesMax version="4" age="25.84" weight="0.5" build="0.5"key="00051C088070300F1B72130266747492968B77267585A3278B44FF1178394B3701A776130A4B67500000000000000000000000000000000000000000575410C3"/>
</face>
<skills></skills>
<Traits>
</Traits>
</NPCCharacter>
</NPCCharacters>
复制到自己建的xml文档里之后保存关闭。这段代码的意思就是新增一个25岁的女流浪者,后缀名是侍卫,不明白的可以去2楼补课,2楼说的很细致了。可以多复制几个该人物,改个id就又是一个新人物,我这里创建了4个人物,除了id名称不一样,其他都一样,当然,也可以每个人都不同。
三、再回到ModuleData的上一级目录(也就是你自己刚才创建并起名的目录),用mpp打开刚才新建的SubModule.xml文件(没有npp就右击点编辑,用记事本打开),然后复制下面的代码,或者找Modules目录下其他mod(官方的mod也行)里的SubModule.xml复制粘贴过来再删减没用的代码。
--SubModule.xml的代码如下--
<Module>
<Name value="xin zeng liu lang zhe"/>
<Id value="qqq"/>
<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>
<SubModules>
</SubModules>
<Xmls>
<XmlNode>
<XmlName id="NPCCharacters" path="aaaa"/>
<IncludedGameTypes>
<GameType value = "Campaign"/>
<GameType value = "CampaignStoryMode"/>
<GameType value = "CustomGame"/>
</IncludedGameTypes>
</XmlNode>
</Xmls>
</Module>
然后保存关闭,开启动器,把新建的流浪者mod选上,进游戏看一下效果图。当然,这样的流浪者去酒馆招募时对话是缺少对白的(可以招募入队),怎么加对白又要涉及到其他的文件,这里先不写啦,有需要回头再补。
占楼,有时间继续更 占楼,有时间继续更 感谢楼主,尽管不怎么啃的动教程
不过还是感谢楼主 wangmeng198223 发表于 2020-6-3 14:38
感谢楼主,尽管不怎么啃的动教程
不过还是感谢楼主
不用谢,想做但又看不懂、感觉无从下手可以留言 我不知道为什么自动交易的mod无法使用,单独的也无法使用,用的N网最新下载下来的,跑马后跳出错误 膜拜大神啊 明天也是未来つ 发表于 2020-6-3 22:50
我不知道为什么自动交易的mod无法使用,单独的也无法使用,用的N网最新下载下来的,跑马后跳出错误 ...
先检查版本对不对,再看下这个mod有没有需要支持的mod,有的话就下载一起勾上用。
大佬,我做好了新增兵种,如何才能让他在村庄和城市里出现招募?已经做了SubModule.xml和config,进游戏在百科能看到,但不出现招募。 自制武器怎么不作弊获得啊 或者商店或者身上等怎么做啊大佬! 楼主,我玩的1.6.0,以女剑士为基础修改了一个小兵种树,起初把改好的参数粘贴进原版士兵文档里面,进游戏点沙盒读取时崩溃,然后按照你的方法做成MOD,依然崩溃,参数都是按照原版士兵改的,主要修改的也是技能和装备,NPP里面除了兵种样貌的<face>是红色的,其他类似的语句都是蓝色的,而且原版里面兵种这一段也是蓝色的,但外貌里面的参数也是女剑士自带的,会不会是这个出问题导致崩溃? 新版本是不能用吗?我试了几遍都不行 楼主,能出一期关于武器mod的设定属性方面的介绍么?就是修改单双手什么的那种,谢谢啦
大佬,可以出一个自制装备的教程吗,建完模型之后不知道该怎么让它在游戏里出现了 感谢大神分享 辛苦了,希望有空修改一个减速mod,那个各种匪徒的速度降低的mod,最新1.10现在的用不了,报错
66666666666666666 想问一下 怎么把某些很久没更新的mod自主进行更新 这个能做到吗?
页:
[1]