注册 | 登录

游侠NETSHOW论坛





查看: 103860|回复: 70
打印 上一主题 下一主题

[原创] 英雄无敌5MOD初级教程  关闭 [复制链接]

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

跳转到指定楼层
楼主
发表于 2008-2-16 07:24:37 |只看该作者 |倒序浏览
介绍

我知道有些朋友在概念上有个误区,就是习惯把mod和cheat等同起来,而畏之如虎,记得小时侯玩红白机游戏,许多朋友会悄悄地买些杂志抄点秘籍到学校来炫耀,虽然现在网络上几乎到处是作弊码,内存修改器,存档修改器,无敌引导,金山游侠,fpe,游戏修改至尊,全存档之类的东西,但随着网游代替单机游戏的趋势越演越烈,游戏作弊几乎沦落到一种被鄙视的行为,而连带的有些论坛甚至到了禁止讨论一切单机游戏修改的话题,我觉得这是游戏产业发展的一种悲哀。其实除了网游和对战,任何游戏的作弊都是正当的,很多人因为工作原因没有足够的时间在rpg游戏练级,但想看情节而讨厌剧透;很多人喜欢在变态的地图体验大战场的杀敌乐趣;很多人厌烦了一遍遍的通关而只是为了看几张cg图片;更多人想尝试下敌人boss无敌的特技。。。其实,单机游戏很单纯地是为了娱乐,如果作弊能带来快乐,又何苦为了游戏而痛苦不堪呢。。。

mod全名modification, 和作弊完全不同,它的目的是为了完美化游戏本身。它可以修改游戏规则的平衡问题,它可以修正角色的造型外观,它可以替换你喜欢的音乐,它可以增加全新的战役和剧情(记得最早接触的mod是kof格斗游戏的mod,我自己把发大招的按钮方式给改了),它可以无所不能,但事实上会被游戏公司本身的封装加密而限制,对于英雄无敌5,它能做到许多事情,但绝对不是所有事情。好,废话结束了,下面正式教程。

计划

计划里,我一共会写三篇教程,第一篇是关于所有mod的理论基础。。。第二篇是关于各种应用这些基础的特色教程。。。最后篇是希望大家一起参与来不断钻研探讨的h5 mod未知探索教程。我会在第一篇中包含生物和英雄的所有文件相关mod技巧,mod必须软件,音乐等很多英5mod的基础知识。第二篇不知道哪天会写,但现在我会的比如换局部身体,换武器等技术我会在那里谈。第三篇教程则先会是对179mod平台的制作来介绍,有几个值得探索的领域,包括RefTables下文件的意义比如defaults.xdb,texture PS的编辑技术,各兵种的平衡方案,还有所有大家都不明白的mod方法(包括我)等等。。。制作时间也是待定。

学做MOD前必须掌握的知识

英雄无敌5的MOD可以有以下几种格式:h5u,h5m,h5c,pak,mod。虽然后缀名不同,但是性质完全相同,他们都是zip格式,里面包含着一些文件夹和文件,这些压缩包里面的文件修改日期是至关重要的,因为英雄无敌5游戏里可以被mod的文件只有两个,一个是在根目录(Heroes of Might and Magic V - Tribes of the East为默认)data文件夹下的data.pak(所有数据),另一个也是在同目录名为texts.pak(语言文件,汉化包其实就是改这个pak里的文本文件为中文),而这些诸如h5u的mod就是通过里面修改日期比较新的同名文件来代替本身pak包里的文件来达到游戏新机能的作用。

          举例

在这个幽灵龙无实体的mod里,你用winrar去打开它,可以看到里面有如下的路径:幽灵龙无实体MOD.h5u\GameMechanics\Creature\Creatures\Necropolis\3rd\HorrorDragon.xdb 其中HorrorDragon.xdb的修改日期是2007-11-20 11:43。同时,请先找到Heroes of Might and Magic V - Tribes of the East\data文件夹,然后用winrar打开data.pak,你按着和mod里同样的路径GameMechanics\Creature\Creatures\Necropolis\3rd\HorrorDragon.xdb,在data.pak里找到这个文件,你会发现它的修改日期是2007-8-3 12:57,所以呢,游戏程序就知道,开始游戏时要读取的文件是mod包里的幽灵龙文件,因为日期比较新。

不同格式的mod必须放在不同的文件夹中h5u格式应该放在根目录下的UserMODs文件夹中,如果没有这个文件夹,请自己建一个。h5u是东方部落开始才有的独有mod后缀名,所以如果你从网络上下到的是这个后缀名的mod,通常表示你不用太过担心修改日期的问题,他应该和东方部落相兼容的,但同时表示它和锤子还有原版兼容的可能性不大。h5m格式应该放在根目录下的Maps文件夹下,在东方部落,这个通常都是网友自制的地图,而如果你下的h5m是从锤子兼容的mod下的话,那么它的意义就和h5u差不多,因为当时做mod的朋友会把mod做成h5m的格式。这种mod存在修改时间的问题,如果你想在东方部落用,请用推荐软件介绍的软件把修改日期更新到今天。h5c的格式比较少,应该放在根目录的UserCampaigns下,他们通常是自定义战役,比如我昨天发的兽人英文战役,就是这个格式的。pak文件比较特别,它们必须被放在根目录的data文件夹下,任何在data文件夹下的mod文件会在地图编辑器H5_MapEditor.exe打开的时候自动载入(但是却不会读其他mod类型的文件),这也是为什么我自己做的179mod必须做成pak文件的原因,而游戏执行文件H5_Game.exe会自动读取全部pak和其他格式mod文件。pak文件从原版5开始就存在了,所以存在修改时间和兼容性的问题,大家如果想用在TOE必须注意。mod文件通常只在某些英文论坛能下到,这种后缀名是不能在游戏里被读取的,请先把它重命名后缀到其他mod格式,然后再放到相应文件夹。最后,rar文件是winrar压缩格式文件,请大家千万别把它直接放到以上mod专属文件夹,一定要先解压后,才能把解压的mod文件移过去。要卸载这些mod是很方便的,直接删除就好。

          举例:h5u mod制作方法

我推荐的方法: 首先请先下载任何一个论坛上的h5u mod,比方我在上面举例里的幽灵龙无实体MOD.h5u,请先用winrar打开,然后把自己做好的mod文件(自己的mod文件通常是先把data.pak里你想要改动的原始文件解压出来,然后用记事本进行编辑后的文件,必须是以正确的路径名联系的文件夹,比如GameMechanics\Creature\Creatures\Necropolis\3rd\HorrorDragon.xdb,另外请注意,GameMechanics是第一个文件夹,一定不要把比如data来做为第一文件夹,文件路径联系一定要和data.pak或texts.pak里的同名路径对应)拖到幽灵龙无实体MOD.h5u,然后会出现,点击确定就好,最后把幽灵龙无实体MOD.h5u里原来的文件GameMechanics\Creature\Creatures\Necropolis\3rd\HorrorDragon.xdb给删除,方法是按delete。。剩下的文件就是你想要的新mod,你把文件重命名后就完成了制作。

英雄无敌5可以进行mod的文件:一般来说,可以进行mod的文件包括txt,xdb,dds,lua这4种。txt文件是真正意义的文本文件,用记事本打开,里面的内容多为游戏文本和某些文本的格式,对于游戏文本,你可以用汉字来代替,但请千万记住你汉化后,一定要测试一下,因为英雄无敌5的字库不是完整的gb字库,而是好多个图片的字体,所以很多汉字游戏是不认的,会出现个空格,因为是图片,所以字体也是不能改变的,图片的字体就是显示的字体,样式如下:xdb文件是游戏主要的语言文件,也是用记事本打开,具体的编辑方法会在下面慢慢介绍。dds文件是游戏的贴图默认格式文件,虽然是一个后缀名,但它具体的表现形式有好几种,而这种表现形式则是xdb文件来定义的,具体会在下面介绍,可以用photoshop的dds插件来编辑。lua文件是游戏的脚本文件,也就是script,是比较困难语言,这里不会谈如何进行脚本编辑。。。但打开方式却也是记事本。最后一类文件是没有办法编辑的,也就是那些没有后缀名的文件,大多数都在data.pak/bin文件夹下。

英雄无敌5其他可以编辑的目录介绍:这些文件之前已经有很多人介绍过了,这里就不再累述了,里面具体有一些游戏中的个人自定义设置,战役全开存档,名人堂记录,存档文件和录象文件。根目录video文件夹下面的xdb可以用来设定游戏开始和结尾动画,比如我在全战役mod里把原版的动画设定加入到了东方部落里,intro_a1.xdb是开头动画设定,outro_a1.xdb是结尾动画设定。比如intro_a1.xdb<FileName>../video/logo-ubi6</FileName>里面的是一开始那个旋涡一样的ubi logo动画,而<FileName>../video/logo-nival</FileName>里面的是nival的logo动画,最后<FileName>../video/intro</FileName>里面的是原版的动画而
        <Item>
                        <CanSkipMovie>1</CanSkipMovie>
                        <CanSkipSequence>1</CanSkipSequence>
                        <FileName>../video/intro</FileName>
                </Item>
这几行是我加的,目的就是为了让这段动画在那两个动画之后,值得注意的是这里<FileName>../video/logo-nival</FileName>里的<FileName>和之后要讲解的data.pak下xdb文件提到的路径是不同的(那里的都是以data.pak为根目录的路径),这里的../video/logo-nival是真实的路径,也就是硬盘的路径,而..意思就是根目录(Heroes of Might and Magic V - Tribes of the East)。

推荐软件

1。winrar 这个地球人都知道,是必须的

2。修改文件修改时间的小工具2.1动易通用版 这个工具可以批量修改文件的时间,非常方便,你甚至可以修改到2090年,那么你做的mod在兼容性的优先程度是会无可挑剔。具体使用方法很简单,先选择你要的文件夹,再选择时间,再按执行,再回答是。
          下载地址:
          安装方法:已经破解

3。UltraCompare 这个工具可以比较两个文本的差异,是非常方便的工具,只要在左右两边窗口分别打开文件就可以比较了。他主要用于分析大文本文件比如defaults.xdb。你可以从网络上下别人做的mod来用它比较原始文件,看哪些被修改了,是怎么修改的。
          下载地址:
          安装方法:请先导入注册表文件,reg文件

4。ViceVersa Pro 英文软件,但是非常有用。是用来比较文件夹之间的区别,甚至硬盘的,可以同步好多个文件夹。当你下了某个mod后,他有了更新,你可以用这个软件找出更新的文件。关键是他有好多种比较方法,可以通过最后修改日期,更可以通过CRC,我建议后者,因为修改日期在英5不是很准。
          下载地址:
          安装方法:keygen算号器在里面,算号先。

5。拖把更名器 以前自己用来做mp3更名用的,但用在英5也很方便,你可以给大量文件批量增加某些字或修改后缀名,你也可以指订某些规则,或者替换掉某些特定字符,当然只限文件名。
          下载地址:
          安装方法:完全免费。

6。DDS Thumbnail Viewer 这个是nival 公司推荐的,可以在文件夹里浏览dds图片的软件,建议安装:http://download.nvidia.com/developer/NVTextureSuite/DDS_viewer.exe

7。Photoshop 7.0 迷你版 网络上暴多,就不提供了,请自行搜索下载。要编辑dds贴图文件是必须的。

8。DDS 插件 这个是必须的,光有photoshop是无法编辑dds文件的,必须在装好photoshop后,再安装这个nival公司提供的插件。http://download.nvidia.com/developer/NVTextureSuite/Photoshop_Plugins_7.83.0629.1500.exe

9。Mod 管理器 也是英文的,是英雄无敌5专用的mod管理器,以前是著名论坛elrath做的,现在倒了。作用是检查mod之间的冲突,它会告诉你所有pak文件之间重复的子文件,因为是给锤子做的,所以不支持h5u文件,使用前请先选择mod所在文件夹,再用拖把命名器把所有h5u文件改成pak文件后,再运行conflict checker冲突检查。
          下载地址:

10。最后的利器是英雄世界制作的电子书 里面的心得体会部分有关控制台名是必须参考的,因为之后的教程一定会用到许多计算机名,请各位一定要先仔细看上一遍。最近英雄世界无法上去,所以可能下不了,但迅雷一定可以下的,所以以下的地址推荐用迅雷来下:http://www.eepic.net/heroes5site/SarNote.rar
或者http://www.heroworld.net/heroes5site/downloads/tools/SarNote.rar

生物相关文件联系

无论你是想新建一个生物还是替换一个原有生物还是重新修改已经有的生物,你都需要大概掌握每个生物相关的一整套文件,这是比较复杂的,前面花了点时间做了个关系图,希望帮大家弄清这些联系,接下来会主要解释这些文件内部的意义和修改可达到的效果,当然所对应的版本是东方部落。锤子和原版有一些连接的区别,比如锤子以前,模型文件(Model文件)和角色文件(Character文件)被分为普通版和LOD版(就是文件名里有LOD)。普通版是针对战斗的,LOD版是针对冒险地图的,差异就是普通版拥有更多动作定义,比如说打击,比如说魔法,因为在冒险地图上这些动作用不到。到了东方部落,这样的区分已经被消除了,现在你完全可以用普通版的一套文件来代替LOD文件,因为它含有比较全的动作定义,所以对于做mod的人,你只需要掌握我下面关系图列的文件,它完全包含了构成一个生物的全部文件,即使你完全不懂普通版和LOD版的区别也没有关系。而当你去研究第一级升级的生物,就是东方部落前的生物,你会发现有些连接里有LOD这也就是说他始终用比较少的动作定义的模型,但是这个连接一定指的冒险界面的模型,所以你也不用特意去换全动作的定义文件。

这是关系图:

这次准备来示范的生物是大尸巫(Archlich)

从关系图可以看到,有4个文件是最高等级的文件,也就是在流程图里,箭头是从他们源起的,他们分别是Any文件,Level文件,AdvMapObjectLink文件和Gamemechanics文件。每个生物只有这4个文件所在的位置是绝对的,而其他剩下的所有文件都是由他们一点点指路的,所以你要定位其他文件必须从他们开始找。

Any文件:该文件的路径是data.pak\MapObjects\_(AdvMapSharedGroup)\Monsters\Any.xdb。这个文件是所有生物最原始的注册文件,里面什么数据也没有除了每个生物的定义数据,也就是一排排类似<Item href="/MapObjects/Necropolis/Demilich.(AdvMapMonsterShared).xdb#xpointer(/AdvMapMonsterShared)"/>这样的东西。这行的意思是大尸巫现在成为这个游戏的生物了。。。xdb的文件都是以一个项目的开头和一个项目的结尾组成的<links>和</links>构成了一组,如果不存在这样的一组,就会表示为<links/>,注意/的位置是在右边而一组的话是在左边。里面的<Item>则是它的子项目,现有的是<Item href="/MapObjects/Necropolis/Demilich.(AdvMapMonsterShared).xdb#xpointer(/AdvMapMonsterShared)"/>其中,href=意味着后面的是data.pak下的路径,而#xpointer(/AdvMapMonsterShared)则告诉你他所连接的对象组是(/AdvMapMonsterShared)的文件。如果你注意流程图,Any文件所指的这个MapObjects文件夹下的文件就是AdvMapMonsterShared文件。这些东西的命名规则都必须完美,绝对不能漏了某个双引号或者括号,斜杠的方向也不能错,也就是唯一你能修改的就是路径。当然对于Any文件,你不允许修改任何东西,除非你想新加注册生物(也只能在超越官方179mod的平台下才可以,游戏本身无法超越这个限制)。

Level文件:该文件的路径和上面的完全一样。对于大尸巫,因为他是5级兵,所以你要看的文件是Level_5.xdb。里面的内容和在Any文件里的完全一样,他告诉你的是只有放在Level_5.xdb的项目才可以被随机产生,所以如果你想凤凰被随机出来,你就一定要改这里的相关文件。

AdvMapObjectLink文件: 该文件的路径是在data.pak\MapObjects\_(AdvMapObjectLink)\Monsters\之后有每个种族的子文件夹,我想找的是墓园,所以是Necropolis文件夹,进去后,看到和lich尸巫有关的有两个,而升级的很明显就是Demilich.xdb。这个文件是和地图编辑器有关,Link的项目就是告诉你和他相关的是MapObjects文件夹下的文件就是AdvMapMonsterShared文件。(从关系图可以看到) <IconFile>里面的文件是地图编辑器显示的图标文件,不用管他,他的地址是隐含的,应该只有nival才知道在哪<HideInEditor>false</HideInEditor>的意思是说他没有在地图编辑器里被隐藏,也就是你可以在地图编辑器编辑这个生物。

Gamemechanics文件: 这个是重中之重,绝大多数的朋友都会先学mod这个文件。它的路径是在data.pak\GameMechanics\Creature\Creatures\之后有8个种族的子文件夹或许还有中立生物文件夹Neutrals。我们要找的大尸巫是在Necropolis子文件夹,进入后,就看到Demilich.xdb。下面将说明每行的意思:

<?xml version="1.0" encoding="UTF-8"?>
<Creature ObjectRecordID="75">这个75绝对不建议你改了,改了的话有可能会和原记录重复,他是为了分开不同的生物。        <AttackSkill>19</AttackSkill>攻击力
        <DefenceSkill>19</DefenceSkill>防御力
        <Shots>6</Shots>是否射手,0不是,0以上就是,另外代表弹药
        <MinDamage>17</MinDamage>最小伤害
        <MaxDamage>20</MaxDamage>最大伤害
        <Speed>3</Speed>速度
        <Initiative>10</Initiative>主动
        <Flying>false</Flying>是否飞行生物,true就飞,false就是爬的。。。
        <Health>55</Health>生命
        <KnownSpells>
                <Item>
                        <Spell>SPELL_CURSE</Spell>
                        <Mastery>MASTERY_EXPERT</Mastery>
                </Item>
                <Item>
                        <Spell>SPELL_PLAGUE</Spell>
                        <Mastery>MASTERY_ADVANCED</Mastery>
                </Item>
                <Item>
                        <Spell>SPELL_WEAKNESS</Spell>
                        <Mastery>MASTERY_ADVANCED</Mastery>
                </Item>
        </KnownSpells>这个是魔法,任何生物都可以变成会使用魔法,但必须按照以上规则命名,KnownSpells里有三个项目,每个项目代表一种魔法,SPELL_CURSE;SPELL_PLAGUE;SPELL_WEAKNESS是游戏里的魔法控制台名,xdb文件里只认控制台名,所以请去英雄世界的电子书里寻找。而下面的MASTERY_ADVANCED等,是魔法的等级,MASTERY_BASIC是基础,MASTERY_ADVANCED是高级,而MASTERY_EXPERT是专家。除了魔法这里还可以设定某些主动技能,因为在英5的电脑思考下,魔法和技能根本没有区别,只是一种特殊本领。
        <SpellPoints>16</SpellPoints>这个是魔法值,如果他等于0就不能用魔法,所以要用魔法一定要大于0。
        <SpellPoints1>0</SpellPoints1>这个是主动技能,0表示没有任何主动技能,而如果你要设定一些,必须大于0,可以设置大于1的,这个叫表示使用次数,你设置10就有10次主动技能。
        <SpellPoints2>0</SpellPoints2>这个同样也是主动技能,只是有些主动技能它占用的是这一行而不是上面一行。对于任何主动技能,如果你想赋予给没有的生物,请一定考虑三个因素。一个是先去检查原始拥有主动技能的生物,去看看他们的相关数据是怎么样的,是这一行还是在上一行,有没有被设定成魔法,有没有在最后的Abilities下被重复,尽量让你被赋予的生物在数据设定上和原始的正牌一样。第二个是你要考虑动作。因为并不是每个生物都拥有自带的主动技能动作或者魔法动作,你一定要在动作文件(也就是BasicSkelAnim文件)里设定相关动作,这个步骤是必须的,如果没有设定就根本不能在游戏里使用这些技能,具体设定方法会在谈这个文件的时候说明。第三个你要考虑的是你要赋予给你的生物什么主动技能,游戏其实允许两个以上的主动技能,但是如果都占同一行,那么他们合在一起的次数是一定的,比如,你在<SpellPoints1>里设定它为10,那么你两个技能加在一起总共能用10次。但是并不是所有技能都能兼容的,有些技能很特殊,这个要靠实验。
        <Exp>100</Exp>生物打败后的经验
        <Power>1539</Power>生物的power能力
        <TimeToCommand>15</TimeToCommand>动态模式下的使用时间
        <CreatureTier>5</CreatureTier>生物的等级
        <Upgrade>true</Upgrade>是否是升级生物,true表示他是升级后的生物或他根本不能升级,false表示他没有升级但是可以升级。
        <PairCreature>CREATURE_LICH</PairCreature>这个表示和他对应的未升级生物是尸巫,记住如果你是东方部落里的第三级的新升级形态生物,那么这里你要写的是CREATURE_UNKNOWN
        <CreatureTown>TOWN_NECROMANCY</CreatureTown>这个是所属的种族,注意这个数据同时决定种族属性,比如如果你选择了墓地种族,同时你在defaults.xdb里设定了把它招魂,那么你就确实可以在游戏里招魂它,但如果你没设置墓地种族,就算你设置了defaults.xdb,你也招不出魂,对其他种族同样有效。
        <MagicElement>
                <First>ELEMENT_FIRE</First>
                <Second>ELEMENT_EARTH</Second>
        </MagicElement>这里设置的是种族的元素属性,ELEMENT_FIRE表示火,ELEMENT_EARTH表示土,ELEMENT_AIR表示气,ELEMENT_WATER表示水,ELEMENT_NONE表示无属性,记住只能设定两行。        <WeeklyGrowth>3</WeeklyGrowth>周基本产量
        <Cost>
                <Wood>0</Wood>
                <Ore>0</Ore>
                <Mercury>0</Mercury>
                <Crystal>0</Crystal>
                <Sulfur>0</Sulfur>
                <Gem>0</Gem>
                <Gold>850</Gold>
        </Cost>上面的是招募生物的价格,分别是花费多少木头,矿石,水银,水晶,硫磺,宝石和黄金。
        <SubjectOfRandomGeneration>true</SubjectOfRandomGeneration>这个是是否允许以随机形式出现,如果是true,在地图里只要有标5级生物随机标签的地方,就有可能随机出大尸巫。
        <MonsterShared href="/MapObjects/Necropolis/Demilich.(AdvMapMonsterShared).xdb#xpointer(/AdvMapMonsterShared)"/>这个地方就是流程图标明的从Gamemechanics文件里指向的文件之一,也是以上的其他三个文件指向的文件,如果你修改新的生物,必须改动这里来指向新生物。
        <CombatSize>2</CombatSize>这个是战场体形,如果是2的话,在战场它会占据4个格子,如果是1的话,在战场它会占据1个格子,本身尺寸不会改变。
        <PatternAttack/>这个是攻击范围的定义之处。大尸巫是默认的射手,但是会因为死亡云特技的影响而改变,但本身它的攻击范围却是默认的射手1格攻击。这个地方是可以mod的,具体方法我会在这个小标题的最后讲解,因为比较复杂。
        <flybySequence/>几乎用不到。
        <Visual href="/GameMechanics/CreatureVisual/Creatures/Necropolis/Demilich.xdb#xpointer(/CreatureVisual)"/>这个地方是流程图标明的从Gamemechanics文件里指向的另一文件,等下会讲这个文件的作用,visual文件总体上说是对一些视觉效果进行定义。
        <Range>-2</Range>这个是射程,0为没有射程,-1为不受远程惩罚,-2为受远程惩罚。
        <BaseCreature>CREATURE_LICH</BaseCreature>这个是他基于哪个生物的升级,这里的是尸巫。
        <Upgrades/>这行只对未有升级的生物开放,比如尸巫,在这里他会告诉两个不同形态的升级,一个大尸巫,一个是尸巫大师。因为大尸巫已经升级所以斜杠在右边关闭了这个项目。
        <Abilities>
                <Item>ABILITY_UNDEAD</Item>
                <Item>ABILITY_DEATH_CLOUD</Item>
        </Abilities>这里是所有特技的定义,比如吸血,锤子是不能定义的。nival只有这个开放值得称道。具体的命令请参阅phoenixfuking做的生物技能内部名表。这里允许你加很多行,但如果是主动技能,请根据上面说的做相应修改。
</Creature>

攻击范围设定介绍:攻击范围既可以直接在Gamemechanics文件里找到,也可以从<PatternAttack>来连接一个单独的攻击范围xdb文件。每一个攻击范围都是有n个小方格组成,每个方格是用两个坐标来表示的,比如<Item>
                                <x>0</x>
                                <y>0</y>
                        </Item>

X 0, Y 0可以表示两种不同的意思。如果生物是一个射手,那么0,0这个坐标点就是生物攻击对象所站的点。如果生物只能近距离攻击,那么0,0这个坐标点就是生物站着的点。许多不同个坐标点的项目就构成了一个大方块,也就是一个攻击范围。要注意的是如果生物是大型的,就是占据4格的那种,那么0,0坐标所在的位置就是生物的右上角,如果是小型生物,那么0,0的坐标就是生物站的那点。x会增大1个单位假如格子向右一个单位。y会增加一个单位假如格子向上一个单位。反之亦然。具体的坐标点,请参照下面的图,左边的是小生物,右边的是大生物:
除了坐标点外,攻击范围设定文件一般还包括另外4行,分别是:
        <RotateToMainTarget>false</RotateToMainTarget>
        <DamageToMainTargetCoefficient>1</DamageToMainTargetCoefficient>
        <DamageToOtherTargetsCoefficient>1</DamageToOtherTargetsCoefficient>
        <DamageAll>false</DamageAll>

第一行如果是false的话就表示你要分别设置从0度到315度所有攻击方向的攻击范围(你同样可以参考上面的图表)。。。这个是比较麻烦的,如果你把它设置为true的话,那么所有方向你会假设他是默认的0度然后发起攻击,一般远程的都会自动设置为0度,只有近程攻击,你有时需要设置角度。
第二行是对攻击目标的伤害函数,而第三行则是会攻击目标周围的目标的伤害函数,你可以设定任何数字从0.5,1,2等等,如果2就是双倍伤害,而1就是普通伤害。
第四行是是否伤害你自己的同伴,要是你设置true了那么就是不分敌我。

          举例

这里面的两个文件分别是Cerberius.xdb和CrossAttack.xdb。第一个是和Gamemechanics文件整合在一起的攻击范围举例,而第二个文件是单独的攻击范围文件。第一个是近程攻击并且设置了角度的攻击范围举例。第二个是远程攻击而且无法设置角度的举例。第一个是对任何方向两排内呈三叉戟形状的攻击范围。第二个是巨型十字的远程攻击范围。大家可以把每个方格和图表进行比对来掌握范围攻击的mod方法。

CreatureVisual文件:从大尸巫的Gamemechanics文件里可以知道( <Visual href="/GameMechanics/CreatureVisual/Creatures/Necropolis/Demilich.xdb#xpointer(/CreatureVisual)"/> )CreatureVisual文件的路径是在data.pak\GameMechanics\CreatureVisual\Creatures\Necropolis\Demilich.xdb里。 这个文件最主要的功能是连接到名字描述的文本文件,生物头像图标和角色(Character)文件。大尸巫的文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<CreatureVisual ObjectRecordID="1001160">
        <CreatureNameFileRef href="/Text/Game/Creatures/Necropolis/Demilich.txt"/>这个是生物的名字文件,这个路径不是在data.pak下的,而是在texts.pak下的,他也是lijingxing游侠汉化版的一部分,所以这个指向告诉你如何mod生物的名字。
        <CreatureAbilitiesFileRef href="/Text/Game/Creatures/Necropolis/Demilich_Abilities.txt"/>这个是生物的技能描述文件,这个路径也是在texts.pak下的,对于这个文件mod员可以忽略它,因为东方部落对于技能的描述主要是从Gamemechanics文件里的设置来调用的,所以即使你不改这个文件而只改了生物的技能,描述应该会自动改正。
        <DescriptionFileRef href="/Text/Game/Creatures/Necropolis/Demilich_desc.txt"/>这个是生物的列传文件,这个路径也是在texts.pak下的,这个指向告诉你如何mod生物的列传。
        <Icon href="/Textures/Interface/CombatArena/Faces/Necropolis/ico_Demilich.xdb#xpointer(/Texture)"/>
        <Icon32 href="/Textures/Interface/CombatArena/Faces/Necropolis/Ico_Demilich_32.xdb#xpointer(/Texture)"/>
        <Icon64 href="/Textures/Interface/CombatArena/Faces/Necropolis/Ico_Demilich_64.xdb#xpointer(/Texture)"/>
        <Icon128 href="/Textures/Interface/CombatArena/Faces/Necropolis/Ico_Demilich_128.xdb#xpointer(/Texture)"/>以上4种对Texture文件的连接分别对应55*55,32*32,64*64,128*128尺寸大小的图标定义文件。值得注意的是英雄无敌5对任何贴图的连接都不是直接而是间接的,也就是说比如在这里,CreatureVisual文件没有直接连dds格式的贴图文件,相反它先连接了一个xdb的文件,为什么要那样做呢,因为dds有许多种不同的表现方式,而这些不同的表现方式需要由xdb文件来定义,比如说他是否是DXT3格式的dds还是A8R8G8B8格式的dds,xdb文件会先定义这个贴图dds的特性,再由xdb的Texture文件来指向dds。另一个值得注意的是,英雄无敌5确实具有把大解析度的图片自动缩小的功能,也就是说这上面4个图标指向,如果你完成了128*128的图标,并且正确在这里给予了指向,那么你无须做其他三种尺寸的头像图片和定义,游戏会自动放缩来适合头像这个目的。当然这里必须申明的是你一定要在游戏选项里把画面开到最好,因为如果你不开到最好就不会自动缩放而会出现悲剧,看贴图:,我在179mod里偷懒,没把所有4种文件自定义头像,所以发生以上悲剧,当然解决方法很简单,请把画面开到最好。还有一个需要提醒大家的,就是做新生物一定要把所有和生物相关的文件全部都重新命名,也就是我所说的一整套文件,因为只要有一些和老文件重复,那么老生物就会全利用了新生物的文件,肯定会出现错误。所以请到利用拖把更名器。
        <AnimCharacter href="/Characters/Creatures/Necropolis/DemiLich.(Character).xdb#xpointer(/Character)"/>这个指向的就是角色文件了,请看流程图。他是模型和动作的中转定义文件。
        <DeadCharacter/>
        <AnimShot href="/GameMechanics/Shot/Creatures/Necropolis/Lich.xdb#xpointer(/Shot)"/>这个不在初级教程当中,通过这个文件的指向你可以修改死亡银云的射击效果,和其他的一些特效处理,请期待时间未定的中级教程。
        <SummoningEffect/>
        <DamageEffect href="/GameMechanics/CreatureDamage/Necro_Hits2.xdb#xpointer(/CreatureDamage)"/>这个同样也不在初级教程当中,通过这个文件的指向你可以修改亡灵攻击的特效。        <TeleportingMove>
                <Use>false</Use>
                <StartEffect/>
                <FinishEffect/>
        </TeleportingMove>传送不被允许,但如果你在这里设置了true你就可以在战场传送,只是没效果和动画,依旧不在本教程,请等待。
        <Win3DView href="#n:inline(Win3DObj)" id="item_2c76b6a1-04b1-49e6-90f1-8eb8a99e18d9">
                <Win3DObj ObjectRecordID="34">
                        <Model/>
                        <placements>
                                <Item>
                                        <SizeDesc href="/GameMechanics/Win3DObjSizeDesc/creatureInfo.xdb#xpointer(/Win3DObjSizeDesc)"/>
                                        <Matrix>000647be431e7b3f0000000000000000494f20bf401bfebd460c453f3cdf4fbf544a413f2231193e186d233f000000000000000000000000000000000000803f</Matrix>
                                        <Shift>
                                                <x>0</x>
                                                <y>-0.812</y>
                                        </Shift>
                                        <RollY>-1.7664</RollY>
                                        <RollX>-0.8784</RollX>
                                        <Scale>1</Scale>
                                </Item>
                        </placements>
                </Win3DObj>
        </Win3DView>这段我不知道是关于什么的,但应该是关于生物放置的位置,但不能改变大小尺寸,所以其实没有什么用。
        <MountPoint>
                <x>-0.000549219</x>
                <y>-0.217282</y>
                <z>1.3436</z>
        </MountPoint>
        <MountBone>L_Shoulder</MountBone>这个是说战斗动画从哪里开始特写,不用管他,一般不用修改。</CreatureVisual>

128图标文件和dds图标:根据上面的文件显示,大尸巫的图标文件路径是在data.pak\Textures\Interface\CombatArena\Faces\Necropolis\Ico_Demilich_128.xdb。而xdb文件所指向的dds贴图文件在同一目录下,文件名是Ico_Demilich_128.dds。以下是xdb文件:
<?xml version="1.0" encoding="UTF-8"?>
<Texture ObjectRecordID="1003308">
        <SrcName href="/UI/Icons/Creatures/Necropolis/demilich_128.tga"/>这个是nival公司电脑内的生物图标源文件,所以这个地方是不需要mod的,完全没有意义。
        <DestName href="Ico_Demilich_128.dds"/>这里就是指向dds贴图文件的地方,也是最为重要的。
        <Type>TEXTURE_2D</Type>这个是dds文件的种类,所以请在用photoshop保存dds文件的时候,一定要选择相同的种类。
        <ConversionType>CONVERT_TRANSPARENT</ConversionType>
        <AddrType>CLAMP</AddrType>
        <Format>TF_8888</Format>这个是dds的格式。一般来说所有头像图标都要选择TF_8888,在phtoshop里就是A8R8G8B8或者8.8.8.8 ARGB。而所有的模型贴图就要选择TF_DXT3,在photoshop里就是DXT3或者DXT3 ARGB。
        <Width>128</Width>
        <Height>128</Height>这两个分别是宽和高,原始dds的尺寸必须和这两个定义相同,要不然会出现花屏的。
        <MappingSize>0</MappingSize>
        <NMips>1</NMips>
        <Gain>0</Gain>
        <AverageColor>-1676207856</AverageColor>
        <InstantLoad>false</InstantLoad>
        <IsDXT>false</IsDXT>
        <FlipY>false</FlipY>
        <StandardExport>true</StandardExport>
        <UseS3TC>false</UseS3TC>其他的数据不重要,不要修改就是。
</Texture>
关于头像和模型贴图具体的编辑方法,请自行参考photoshop教程。本人在ps上也是个菜鸟,只会扣扣图,描描边,改改颜色,做做映射,并没有什么创造的能力,就不在这里献丑了。

AdvMapMonsterShared文件和Character文件:Gamemechanics文件已经告诉了你它的路径在data.pak\MapObjects\Necropolis\Demilich.(AdvMapMonsterShared).xdb。这个文件和角色文件(Characters)类似,它也是一个中转意义的文件,用来指向模型和动作集文件。该文件只有几行是比较有mod意义的:
        <Model href="/_(Model)/Creatures/Necropolis/DemilLch_LOD.(Model).xdb#xpointer(/Model)"/>
        <AnimSet href="/_(AnimSet)/Creatures/Necropolis/DemilLch_LOD-arena.(AnimSet).xdb#xpointer(/AnimSet)"/>
                <Item href="/Text/Game/Creatures/Necropolis/Demilich.txt"/>
        <Creature>CREATURE_DEMILICH</Creature>

第一行是用来指向模型文件(Model)的,之前我已经说过DemilLch_LOD.(Model).xdb里面的LOD是用在锤子等旧版冒险界面模型的,所以完全可以用普通模型的连接文件来代替。
第二行是用来指向动作集文件的(AnimSet)的,同样可以忽略LOD。
第三行是指向生物名字文本的,文件在texts.pak。
第四行是生物的控制台名,该名字已经在common.lua里面定义了,所以你可以用控制台来添加该生物。
Character文件的路径是CreatureVisual文件里发现的,位置在data.pak\Characters\Creatures\Necropolis\DemiLich.(Character).xdb。他里面的数据如下:
<?xml version="1.0" encoding="UTF-8"?>
<Character ObjectRecordID="211">
        <Model href="/_(Model)/Creatures/Necropolis/DemiLich.(Model).xdb#xpointer(/Model)"/>这个同样指向的是模型文件(Model),位置和上方的一样,LOD除外。
        <ArenaAnimSet href="/_(AnimSet)/Creatures/Necropolis/DemiLich-arena.(AnimSet).xdb#xpointer(/AnimSet)"/>这个同样指向的是动作集文件的(AnimSet),位置和上方一样,LOD除外。
        <AdvMapAnimSet/>
        <ColourModels/>
</Character>

Model文件:文件的路径是在data.pak\_(Model)\Creatures\Necropolis\DemiLich.(Model).xdb。该文件可以直接包含Material文件里的全部数据来直接指向Texture文件,也就是模型贴图dds的定义xdb文件。或者有些Model文件指向许多Material文件(也就是很多个模型部件的中转文件),再由这些部件Material文件来连Texture文件(也就是xdb定义文件),再指向dds贴图文件。这个大尸巫显然是前者,他省略了单独的Material文件。以下是所有能够指向Texture文件的路径相关行:
<Texture href="/Textures/auto-imported_____18951/Creatures/Necropolis/DemiLich/DemiLich.tga.xdb#xpointer(/Texture)"/>
<Texture href="/Textures/auto-imported_____18951/Creatures/Necropolis/DemiLich/DemiLich_add.tga.xdb#xpointer(/Texture)"/>
<Texture href="/Textures/auto-imported_____18951/Creatures/Necropolis/DemiLich/DemiLich.tga.xdb#xpointer(/Texture)"/>
<Texture href="/Textures/auto-imported_____18951/Creatures/Necropolis/DemiLich/DemiLich_add.tga.xdb#xpointer(/Texture)"/>

而通过找到这些Texture文件,就会发现最后的贴图dds所在,这和头像贴图原理完全相同,就不重复了
关键是大家可以看到里面还有些数据指向了名为Geometry,Skeleton和Geometry AI的项目,这些项目都是不可修改的,至少在现有的知识情况下,也是nival最不厚道的表现。他们都是在bin文件,都是没有后缀名的,没有任何软件可以编辑他们,他们代表的分别是生物模型的外在框架也就是骨骼和模型的3D几何形状。因为5代限制死了这些模型,所以任何有能力mod的朋友都无法自己导入新的模型,比如比蒙,比如那迦,比如美人鱼。。。大家都不得不在现有模型的贴图上进行颜色处理,或者把现有模型象积木一样的拆开,实施再组合,这些都是迫不得已啊,所以当有朋友问为何179mod只是换了颜色而不换模型,原因就在这里,问nival的限制去。

AnimSet文件:通过Character文件,我们可以知道它的路径是在data.pak\_(AnimSet)\Creatures\Necropolis\DemiLich-arena.(AnimSet).xdb。他包含所有战斗动画和冒险界面动画相关动作设定文件的指向。里面包含数据如下:
<?xml version="1.0" encoding="UTF-8"?>
<AnimSet ObjectRecordID="304">
        <animations>
                <Item>
                        <Kind>idle00</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/idle00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是静止的动作动画指向。
                <Item>
                        <Kind>attack00</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/attack00.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是近身攻击的动作动画指向。
                <Item>
                        <Kind>cast</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/cast.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是释放魔法的动作动画指向。
                <Item>
                        <Kind>hit</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/hit.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是挨打的动作动画指向。
                <Item>
                        <Kind>move</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/move.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是移动的动作动画指向。
                <Item>
                        <Kind>death</Kind>
                        <Anim href="DemiLich-arena-death.xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是死亡的动作动画指向。
                <Item>
                        <Kind>rangeattack</Kind>
                        <Anim href="DemiLich-arena-rangeattack.xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是远距离攻击的动作动画指向。
                <Item>
                        <Kind>happy</Kind>
                        <Anim href="DemiLich-arena-happy.xdb#xpointer(/BasicSkelAnim)"/>
                </Item>这个是胜利后快乐的动作动画指向。
        </animations>
        <ExpSrcScene href="/models/Creatures/Necropolis/DemiLich.mb"/>
        <ExpSrcClipFolder href="/Animations/Creatures/NECROPOLIS/DemiLich/Clip/"/>
        <ExpRootTransform>Global</ExpRootTransform>
</AnimSet>
对于指向的文件本身(比如idle00.(BasicSkelAnim).xdb)并不需要修改,因为同样骨骼和几何在nival的限制下是无法修改的。但是值得注意的是如果你之前给没有主动技能的人设定了主动技能,比如大尸巫,你会无法使用,因此你必须在这个AnimSet文件新设定一个主动技能的动作动画:主动技能的控制台名是specability,你可以把大尸巫放魔法的动作动画设定成主动技能的动画,具体方法是增加这个specability的项目如下:
                <Item>
                        <Kind>specability</Kind>
                        <Anim href="/_(BasicSkelAnim)/Creatures/Necropolis/DemiLich/cast.(BasicSkelAnim).xdb#xpointer(/BasicSkelAnim)"/>
                </Item>

另外假如你要给没有射箭能力的人射箭的能力,你必须在AnimSet文件新加一个远程攻击的动作动画:主动技能的控制台名是rangeattack,在这里大尸巫已经有了这个项目,所以不用加:
                <Item>
                        <Kind>rangeattack</Kind>
                        <Anim href="DemiLich-arena-rangeattack.xdb#xpointer(/BasicSkelAnim)"/>
                </Item>

如果没有,你通常可以考虑把攻击动画或者释放魔法的动画设置成远程攻击。
另外假如你要给没有魔法的生物添加魔法,同样必须的是给他们释放魔法的动作,要不然是用不了魔法的,大尸巫同样已经有了,所以不需要再加,而如果设定,你甚至可以把静止动画设成魔法动作。。。这个就是我179mod里狼死亡凝视的由来。。释放魔法的控制台名是cast。

结语:生物文件联系教程就到这里结束,所要注意的是mod千万要仔细,不要把文件连接错,那样不但很难找到你自己的错误,最后新生物一定是功亏一篑的。另外和生物联系文件相类似的,比如战争机器,比如魔法设定文件,都在Gamemechanics文件夹里,里面的设定非常简单直接。。。所以就不累述了,大家可以在研究中找点乐子。

英雄相关文件联系

英雄文件的定义联系和生物定义本质上没什么区别,就是连接上有点不同,这次应该可以说得简略点,首先大家请看下英雄文件的流程图,这次只有两个文件是最高级的文件,所有箭头的最早源起,也就是Any文件和种族文件。

这次会用亡灵族的英雄拉雯来做例子

Any文件:Any文件的位置同样是固定的。路径是在data.pak\MapObjects\_(AdvMapSharedGroup)\Heroes\Any.xdb。和生物里的Any文件意义相同,也是为了注册游戏里所有的英雄。战役英雄全开mod就必须在这个文件里添加所有的战役英雄。对于拉雯文件里的相关数据是<Item href="/MapObjects/Necropolis/Effig.(AdvMapHeroShared).xdb#xpointer(/AdvMapHeroShared)"/> 。它所指向的位置也是英雄相关文件里最重要的定义文件。和生物的文件不同的是,英雄文件没有Gamemechanics文件。

种族文件:种族文件的路径和Any文件所在地相同。该文件夹剩下的9个文件,8个分别是相关的种族,还有一个是红色圣堂,就是东方部落后来加的圣堂升级兵种。拉雯的相关文件应该是Necropolis_Standart.xdb。该文件的作用和生物的Level文件完全相同,也是为了让注册在这里的生物可以在酒馆被招募,这个地方也是我在战役英雄全开补丁里修改的,使得战役英雄可以随机出现。

AdvMapHeroShared文件:之前的文件已经指向了拉雯AdvMapHeroShared文件的所在路径也就是data.pak\MapObjects\Necropolis\Effig.(AdvMapHeroShared).xdb。以下是该文件的解释:
<?xml version="1.0" encoding="UTF-8"?>
<AdvMapHeroShared ObjectRecordID="58">
        <Model href="/_(Model)/Heroes/Knight_LOD.(Model).xdb#xpointer(/Model)"/>这个地方的指向非常特殊,大家可以看到它指的文件是Knight_LOD.(Model).xdb,翻译好就是在冒险界面的骑士模型,而另外一种就是DemonLord_LOD.(Model).xdb(恶魔领主的模型)。所以也就是说这个数据只是告诉电脑你用的角色是骑着什么的或是步行的。压根和英雄真正的模型无关,所以除非你把骑马的换成了步行的,这个地方你都不需要改,这个地方的后继指向文件你也不需要改。
        <AnimSet href="/_(AnimSet)/Heroes/Knight_LOD-adv.(AnimSet).xdb#xpointer(/AnimSet)"/>和上面的相同,是骑马的或步行的动作文件指向,可以忽视。
        <blockedTiles/>
        <holeTiles/>
        <activeTiles>
                <Item>
                        <x>0</x>
                        <y>0</y>
                </Item>
        </activeTiles>
        <passableTiles/>
        <PossessionMarkerTile>
                <x>0</x>
                <y>0</y>
        </PossessionMarkerTile>
        <Effect/>
        <EffectWhenOwned/>
        <messagesFileRef/>
        <WaterBased>false</WaterBased>
        <ApplyHeroTrace>false</ApplyHeroTrace>这个是特殊英雄光环是否应用,false就是没有特殊英雄光环。
        <SoundEffect/>
        <flybyMessageFileRef href=""/>
        <ObjectTypeFileRef href="/Text/Visibility_Types/Units.txt"/>
        <TerrainAligned>false</TerrainAligned>
        <FlyPassable>true</FlyPassable>
        <AdventureSoundEffect/>
        <RazedStatic/>
        <Icon128/>
        <InternalName>Effig</InternalName>这个是该英雄的控制台名,电脑只认这个,具体的控制台名请去参考英雄世界的电子书
        <Class>HERO_CLASS_NECROMANCER</Class>这个是英雄所属城镇,这里是墓园英雄,和墓园初始特技有关。
        <Specialization>HERO_SPEC_MALEDICTOR</Specialization>这个是英雄专属技能,改这里就可以改变他的技能,技能代码同样需要参考英雄世界电子书。
        <PrimarySkill>
                <Mastery>MASTERY_BASIC</Mastery>
                <SkillID>HERO_SKILL_NECROMANCY</SkillID>
        </PrimarySkill>这个是亡灵英雄初始拥有的特殊特技,这里是招魂术初级,具体的项目增加方法和代码可以参考上方谈论增加生物魔法的方法。在这个游戏技能和魔法没有本质区别。当然同样需要参考英雄世界电子书。
        <SpecializationNameFileRef href="/Text/Game/Heroes/Specializations/Necropolis/Maledictor/Name.txt"/>这个是指向技能名字文本文件,是在texts.pak下的,记住只是文本,会改变特技显示,但是绝对不会改变真正拥有的特技,要改的话在上面。
        <SpecializationDescFileRef href="/Text/Game/Heroes/Specializations/Necropolis/Maledictor/Description.txt"/>这个是指向技能描述文本的文件,同样是在texts.pak下。
        <SpecializationIcon href="/Textures/HeroScreen/Specializations/Necropolis/Maledictor.xdb#xpointer(/Texture)"/>这个是指向技能图标的xdb定义文件,和之前介绍图标dds的本质一样,都是先连xdb,再由xdb连dds的。
        <FaceTexture href="/Textures/Icons/Heroes/Necropolis/Necropolis_Raven_128x128.(Texture).xdb#xpointer(/Texture)"/>这个是拉雯128*128尺寸头像图标定义文件的位置。
        <FaceTextureSmall href="/Textures/Icons/Heroes/Necropolis/Necropolis_Raven_128x128_64.(Texture).xdb#xpointer(/Texture)"/>这个是拉雯64*64尺寸头像图标的定义文件位置,这里和上面不同,一定不能偷懒哦,两个尺寸的图片头像都必须做。
        <HeroCharacterArena href="/Characters/Heroes/Necromancer.(Character).xdb#xpointer(/Character)"/>这个是指向角色文件(Character)的位置。那里是真正定义模型和动作集的中转文件,所以很重要。
        <HeroCharacterArenaMelee/>这个地方只有对那些用近身攻击的英雄才有指向,比如骑士,恶魔领主。也是指向到角色文件,所以只要你角色文件包含近身攻击动作,也就没必要担心这里的指向。
        <HeroCharacterAdventure href="/Characters/Heroes/Necromancer_LOD.(Character).xdb#xpointer(/Character)"/>这个地方是角色文件(Character)的LOD文件,之前已经讲过,如今LOD和普通版已经没有区别了,你完全可以放普通版的角色文件在这。
        <HeroIndividualCamera/>
        <CombatVisual href="/GameMechanics/CreatureVisual/Heroes/Necromancer.xdb#xpointer(/CreatureVisual)"/>这个地方指向的是CreatureVisual文件,这里的visual没有生物里的那么重要,只有很少的定义。
        <TownType>TOWN_NECROMANCY</TownType>这里也是英雄所属城镇,和墓地的特殊系统有关。
        <Editable>
                <NameFileRef href="/Text/Game/Heroes/Persons/Necropolis/Effig/Name.txt"/>这个指向的是英雄名字文本,是在texts.pak下的。
                <BiographyFileRef href="/Text/Game/Heroes/Persons/Necropolis/Effig/Bio.txt"/>这个指向的是英雄列传文本,也是在texts.pak下的。
                <Offence>0</Offence>初始攻击力
                <Defence>1</Defence>初始防御力
                <Spellpower>3</Spellpower>初始魔法威力
                <Knowledge>1</Knowledge>初始知识
                <skills>
                        <Item>
                                <Mastery>MASTERY_BASIC</Mastery>
                                <SkillID>HERO_SKILL_DESTRUCTIVE_MAGIC</SkillID>
                        </Item>
                        <Item>
                                <Mastery>MASTERY_BASIC</Mastery>
                                <SkillID>HERO_SKILL_DARK_MAGIC</SkillID>
                        </Item>
                </skills>这个是英雄拉雯一开始学会的初始特技。具体的项目增加请参考之上的生物增加魔法的方法和英雄世界的电子书。
                <perkIDs/>
                <spellIDs>
                        <Item>SPELL_CURSE</Item>
                        <Item>SPELL_ANIMATE_DEAD</Item>
                </spellIDs>这个是英雄拉雯一开始就学会的魔法。你可以增加你想要的魔法。
                <Ballista>false</Ballista>这个是一开始英雄是否自带弩车
                <FirstAidTent>false</FirstAidTent>这个是一开始英雄是否自带帐篷
                <AmmoCart>false</AmmoCart>这个是一开始英雄是否自带弹药车
                <FavoriteEnemies/>这个是夙敌的设置,应该只有森林才有效。
        </Editable>
        <ArrowButtonState>0</ArrowButtonState>
        <Decal/>
        <Selection href="/_(Model)/Heroes/Necromancer_Path/Symbol.xdb#xpointer(/Model)"/>这个指向的是光环设置,等会不会再列新标题解释后来的指向。反正后面就一直连连到个dds的光环贴图文件。
        <Trace href="/MapObjects/_(AdvMapHeroTraceSet)/Necropolis.xdb#xpointer(/AdvMapHeroTraceSet)"/>这个指向的是英雄踪迹设置,也就是军队多了英雄后面的屁。。。等会不会再列新标题解释后来的指向。反正后面就一直连连到很多效果的顺序文件,一般朋友是不会去ps的。
        <RaceTraitIcon/>
        <RaceTraitDescFileRef href=""/>
        <ScenarioHero>false</ScenarioHero>这个满重要的,这里是false,表示拉雯不是剧情英雄,如果你设置为true就有可能在游戏里没法选他。战役英雄全开补丁很重要的修改,就是每个英雄这里都必须为false。
        <AdventureMusic/>有些特殊英雄在冒险时有特殊音乐,拉雯没有,如果有的话,这里会有音乐文件的指向,你也可以自己mod。
        <HideInEditor>false</HideInEditor>这个是是否在编辑器里隐藏他,false就是不隐藏。
</AdvMapHeroShared>

CreatureVisual文件: 从上面得知,该文件的路径是在data.pak\GameMechanics\CreatureVisual\Heroes\Necromancer.xdb。这个里面没有其他重要的定义,只有一行有个指向:<AnimShot href="/GameMechanics/Shot/Heroes/necromancer.xdb#xpointer(/Shot)"/> 。他指的地方是亡灵巫师射击的效果,所以如果你精通ps,可以尝试去修改。

Character文件和它后继指向的文件:因为Effig是没有任何特殊模型和动作的角色,Nival的懒可想而知,继续讲他的后继文件没有意义。我之所以列表所有角色相关文件,是希望感兴趣的朋友能够把任何生物乃至其他任何现有的模型通过这一整套文件来代替毫无新意的普通英雄造型。Character文件和生物的Character文件后续连法几乎完全相同,本质也一样,就是对英雄的造型和动作集进行定义,同样连到几何和骨骼,同样因为nival的限制无法修改。但一个很重要的不同是英雄的Character文件有一个ColourModel的概念。如果大家去看看我做的英雄全造型mod,就会发现有很多新的造型,在用不同旗的颜色的时候,模型的微小部分颜色也会变的不同,比如某些亡灵英雄的镰刀。这个就是ColourModel的意义。如果你想为英雄设定ColourModel,你必须在这个项目里设置8个不同的指向文件来代表不同的旗色,比如:
<Item href=“Hero-White.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Red.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Blue.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Green.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Yellow.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Orange.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Teal.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Purple.(Model).xdb#xpointer(/Model)"/>
<Item href=“Hero-Tan.(Model).xdb#xpointer(/Model)"/>

然后再通过这些模型文件来直接定义材质贴图文件(Texture文件)或者先连到Material文件再定义材质贴图文件(Texture文件)。其他的数据包括动作集文件的定义都已经在上面生物的相关地方讲的很详细了,就不重复了。

结语:英雄角色造型可以用任何生物模型代替,只要满足之上文件之间的联系,具体的各种实践过程还需要大家自己摸索,mod的提高本来就是从不断研究里才有的。我建议大家先去看看我做的英雄全造型mod,去仔细分析下文件联系的关系,然后大家可以到外国mod置顶网站去找到一些好的mod ,但因为比较旧无法与TOE兼容,但大多ps材质都已经改好,不需要ps技术,只是需要对文件的重新连接。大家可以尝试来做点代替原始英雄的mod。

音乐mod的方法

最后再为大家介绍一个可以不用替代原始音乐,就可以改变游戏主题音乐的小办法。大家应该知道,要改变英雄无敌5的音乐是很方便的,只要到游戏根目录下的music文件夹里,找到你想要替换的ogg音乐文件,然后找到任何你喜欢的mp3文件,只要先把它重新命名为ogg文件,再覆盖原始文件,音乐就会改变了。

我的方法如下:你先找到你喜欢的音乐文件然后改成ogg,再把他移动到music文件夹,但是不要覆盖,随便取个名字,比如a.ogg。之后你再做个mod,让游戏在某个主题下只读取这个a.ogg,而当你不要这个音乐的时候,你可以直接删除mod,旧音乐就又回来了。当然备分文件可能更方便,我只是想让大家大概了解音乐文件在data.pak下的定义:具体是先找到data.pak\Sounds\_(Music)\TableRaceMusic.xdb。我来解释一下圣堂的部分:
<TownMusic href="Towns/Haven.(Music).xdb#xpointer(/Music)"/>这个是圣堂城镇主题音乐的指向
<TavernMusic href="Tavern-Themes/Haven.xdb#xpointer(/Music)"/>这个是圣堂酒馆音乐的指向
<DwellingMusic href="Dwellings/Haven.xdb#xpointer(/Music)"/>这是圣堂招募生物音乐的指向
<MagicGuildSound href="/Sounds/_(Sound)/Interface/Ingame/MageGuild.xdb#xpointer(/Sound)"/>这个是圣堂魔法行会界面的音乐指向
<TownHallSound href="/Sounds/_(Sound)/Interface/Ingame/Constr.xdb#xpointer(/Sound)"/>这个是圣堂建筑的音乐指向
<MarketplaceSound href="/Sounds/_(Sound)/Interface/Ingame/Marketplace.xdb#xpointer(/Sound)"/>这个是圣堂市场的音乐指向。
<ShipyardSound href="/Sounds/_(Sound)/Interface/Ingame/Shipyard.xdb#xpointer(/Sound)"/>
这个是圣堂船坞的音乐指向
<BlacksmithSound/>
<UpgradeTownBuildingSound href="/Sounds/_(Sound)/Interface/Ingame/Constr.xdb#xpointer(/Sound)"/>这个是圣堂建筑升级的音乐指向
<combatMusics>
<Item href="Battle-Themes/Haven.xdb#xpointer(/Music)"/>这个是圣堂战争界面的音乐指向
<Item href="Battle-Themes/Haven2.xdb#xpointer(/Music)"/>这个是圣堂另一战争界面的音乐指向
</combatMusics>
<SiegeMusic href="Seige-Battle/Haven.xdb#xpointer(/Music)"/>这个是圣堂攻城界面的音乐指向。
<WinCombatMusic href="Win-Battle/Haven.xdb#xpointer(/Music)"/>这个是战争胜利的音乐指向。
<LooseCombatMusic href="Lose-Battle/Haven.xdb#xpointer(/Music)"/>这个是战争失败的音乐指向。
<RetreatCombatMusic href="Retreat-Battle/Haven.xdb#xpointer(/Music)"/>这个是战争撤退的音乐指向
<WaitMusic href="AI-Themes/Haven.xdb#xpointer(/Music)"/>这个是圣堂等待ai的音乐指向。
各位然后可以根据以上指向来找到音乐定义文件了,比如我想修改圣堂城镇主题音乐,我找到data.pak\Sounds\_(Music)\Towns\Haven.(Music).xdb。里面的文件如下:
<?xml version="1.0" encoding="UTF-8"?>
<Music ObjectRecordID="19">
        <FileName>..\Music\Town-Themes\Town-Haven.ogg</FileName>这个就是你要修改的地址,比如之前你把新文件放在了\Music\Town-Themes\里的a.ogg,你只要把这里的指向改成到a.ogg就可以了。然后打包做成mod。要注意的是这里的抬头是..,之前已经解释过了,意思是真正硬盘上的根目录,而不是data.pak或texts.pak里的文件。
        <FadeIn>2000</FadeIn>
        <FadeOut>2000</FadeOut>
        <MinPausedTime>1000</MinPausedTime>
        <MaxPausedTime>10000</MaxPausedTime>
</Music>

总结

写了远比自己想象的长啊。。终于是完了。。中级教程不知道何时才会有心情写,不过如果有跟多的人对h5修改有兴趣,我一定会为大家再认真写次的。真诚希望越来越多的朋友加入到mod的行列来,英雄无敌5到现在这个阶段也就等待地图,mod和新战术来增加生命了。另外也希望喜欢擅长ps的朋友能来参与完成英雄角色全造型mod,还剩下最后十几个人没有独一无二的造型,自己的ps能力已经不能帮助完成它了。最后再谢谢所有能坚持着看完的朋友,欢迎各位大侠提出问题或指正。

[ 本帖最后由 yche2990 于 2008-6-22 22:06 编辑 ]
附件: 你需要登录才可以下载或查看附件。没有帐号?注册
已有 3 人评分金钱 人气 收起 理由
霸气外漏的天坑 + 1 楼主辛苦了
fengzhiyan + 60 + 5 感谢授教~~ ^_^
unicornxp + 60 感谢发表优秀文章!

总评分: 金钱 + 120  + 5  人气 + 1   查看全部评分

使用道具 举报

帖子
102
精华
0
积分
51
金钱
275
荣誉
0
人气
0
评议
0
沙发
发表于 2008-2-16 11:02:35 |只看该作者
终于等到教程了~ 谢谢 yche2990  无私奉献~期待你更好的MOD。。。  很好 。。很强大 的教程~

使用道具 举报

战略游戏工作组专长成就勋章

帖子
212
精华
0
积分
157
金钱
984
荣誉
5
人气
0
评议
0
板凳
发表于 2008-2-16 11:20:41 |只看该作者
终于等到了, 继续等峡一部分喽

使用道具 举报

色 狼
★★★

战略游戏工作组专长成就勋章

帖子
1704
精华
0
积分
1192
金钱
7615
荣誉
34
人气
0
评议
0

地板
发表于 2008-2-16 11:21:39 |只看该作者
神作终于出现了,期待完整版的到来

使用道具 举报

战略游戏工作组专长成就勋章

帖子
797
精华
0
积分
449
金钱
2054
荣誉
5
人气
0
评议
0
5#
发表于 2008-2-16 11:35:39 |只看该作者
很好很强大,很囧很可怕~
学习了~
顶一个~

使用道具 举报

色 狼
★★★

战略游戏工作组专长成就勋章

帖子
1704
精华
0
积分
1192
金钱
7615
荣誉
34
人气
0
评议
0

6#
发表于 2008-2-16 11:36:39 |只看该作者
不知道文件夹比较的软件有没有中文版的……

使用道具 举报

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

7#
发表于 2008-2-16 11:38:40 |只看该作者
没有,我当时找了很久汉化,但是这个是同类我用的最好的

使用道具 举报

果果小时候 花仙子

帖子
12
精华
0
积分
6
金钱
113
荣誉
0
人气
0
评议
0
8#
发表于 2008-2-16 14:50:32 |只看该作者
真是千呼万唤使出来啊。。。。这个教程超详细。。。

你是做老师的吗?
我要买个蒙蒙!从小培养吃蔬菜的好习惯!

使用道具 举报

谜幻の舞 风舞者
就不给过路费 超时空军团兵

帖子
1812
精华
0
积分
1427
金钱
2608
荣誉
52
人气
4
评议
0
9#
发表于 2008-2-16 15:04:35 |只看该作者
赞个先..幸好我看得懂..       
  嗯,我很想说点什么,可是又不知道该说点什么,好吧,我不说了……
 
_____________________________________________________________┠Realm of Psyche┨

使用道具 举报

帖子
92
精华
0
积分
46
金钱
591
荣誉
0
人气
0
评议
0
10#
发表于 2008-2-16 20:02:03 |只看该作者
我就懶得改了,不過我很喜歡你用的那些小軟件,收下了!

使用道具 举报

色 狼
★★★

战略游戏工作组专长成就勋章

帖子
1704
精华
0
积分
1192
金钱
7615
荣誉
34
人气
0
评议
0

11#
发表于 2008-2-16 20:52:59 |只看该作者
现在才发现虽然目前写出来的我都会,但是解释起来原来这么复杂
辛苦Y兄了,还是期待你的中级教程了。
哎~本人PS超级菜鸟一个,所以到现在都没有去改过贴图

使用道具 举报

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

12#
发表于 2008-2-16 21:01:16 |只看该作者
所以我才一直懒的写啊。。。写的我晕死了,但是理论不解释清楚,很难整合起来。。。其实自己研究mod才是最快捷的,当然中级应该会有点崭新的东西。。。不过寥寥无期,写了这个后我才发现教程好讨厌。。不过我会坚持把这个完成的,但估计今天是没希望了

使用道具 举报

战略游戏工作组专长成就勋章

帖子
212
精华
0
积分
157
金钱
984
荣誉
5
人气
0
评议
0
13#
发表于 2008-2-16 21:32:35 |只看该作者
我真的好想对nival说一句话(英语)You are really a son of a bitch!
连模型都不能加入啊
我学过PS,不过我可不太随便改

使用道具 举报

帖子
441
精华
0
积分
221
金钱
1692
荣誉
0
人气
0
评议
0
14#
发表于 2008-2-17 02:53:32 |只看该作者
支持下先,谢谢LZ..另外我想问下,一个兵的魔法最高是只有三种还是能有很多种?...谢谢....

使用道具 举报

帖子
1364
精华
0
积分
682
金钱
1529
荣誉
0
人气
0
评议
0
15#
发表于 2008-2-17 03:11:33 |只看该作者
想问一下如果自己做了新生物的3d模型(包括相应动画),该怎么加入游戏?
CPU  Intel Q6600 3.2G(OC)
主板  技嘉EP35-DS3
内存  威刚红龙800+ 2GB X2
LCD   DELL US2208WFP
显卡  丽台8800GT加强版
硬盘  希捷 500G/32MB/SATA
机箱/电源  金河田9001B/航嘉冷静王至尊版(2.3版)

使用道具 举报

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

16#
发表于 2008-2-17 07:04:46 |只看该作者
原帖由 daddy 于 2008-2-17 02:53 发表
支持下先,谢谢LZ..另外我想问下,一个兵的魔法最高是只有三种还是能有很多种?...谢谢....


这个应该只有三种的,但是魔法系数是可以修改的。我不准备放教程里了。。。因为假如每个已知文件修改都放了。。我要写到明年去了。而且生物和英雄修改是所有其他修改的基础。。。魔法系数位置是在data.pak\GameMechanics\Spell\,然后选择你要修改种类的魔法,比如,我要修改末日审判。那么就去Combat_Spells\DestructiveMagic\Armageddon.xdb。打开后,你看到如下的东西:

<?xml version="1.0" encoding="UTF-8"?>
<Spell ObjectRecordID="3">
        <NameFileRef href="/Text/Game/Spells/Combat/Armageddon/Name.txt"/>
        <LongDescriptionFileRef href="/Text/Game/Spells/Combat/Armageddon/Long_Description.txt"/>
        <Texture href="/Textures/SpellBook______2618/Spells/Spell_Armageddon.xdb#xpointer(/Texture)"/>
        <EffectTexture href="/UI/Common/Icons/Spell_Buff_Icons/Armageddon.(Texture).xdb#xpointer(/Texture)"/>
        <SpellBookPredictions>
                <Item href="/Text/Game/Spells/SpellBookPredictions/DirectDamage.txt"/>
                <Item href="/Text/Game/Spells/SpellBookPredictions/DirectDamageMasterOfFire.txt"/>
        </SpellBookPredictions>
        <CombatLogTexts/>
        <Level>5</Level>
        <MagicSchool>MAGIC_SCHOOL_DESTRUCTIVE</MagicSchool>
        <RequiredHeroLevel>0</RequiredHeroLevel>
        <TrainedCost>20</TrainedCost>
        <damage>
                <Item>
                        <Base>9</Base>
                        <PerPower>9</PerPower>
                </Item>
                <Item>
                        <Base>12</Base>
                        <PerPower>12</PerPower>
                </Item>
                <Item>
                        <Base>15</Base>
                        <PerPower>15</PerPower>
                </Item>
                <Item>
                        <Base>30</Base>
                        <PerPower>30</PerPower>
                </Item>
        </damage>这个应该就是每一级魔法的威力系数。分别是没有学破坏魔法的系数,初级,高级和专家的系数
        <duration>
                <Item>
                        <Base>5</Base>
                        <PerPower>5</PerPower>
                </Item>
                <Item>
                        <Base>10</Base>
                        <PerPower>10</PerPower>
                </Item>
                <Item>
                        <Base>15</Base>
                        <PerPower>15</PerPower>
                </Item>
                <Item>
                        <Base>20</Base>
                        <PerPower>20</PerPower>
                </Item>
        </duration>这个我猜应该是对周围的伤害系数。        <sSpellCost>
                <Wood>0</Wood>
                <Ore>0</Ore>
                <Mercury>0</Mercury>
                <Crystal>0</Crystal>
                <Sulfur>0</Sulfur>
                <Gem>0</Gem>
                <Gold>0</Gold>
        </sSpellCost>
        <IsAimed>false</IsAimed>
        <IsAreaAttack>false</IsAreaAttack>
        <CanSelectDead>false</CanSelectDead>
        <Target>TARGET_NEUTRAL</Target>
        <Element>ELEMENT_FIRE</Element>
        <DamageIsElemental>true</DamageIsElemental>
        <visuals>
                <Item href="Armageddon.(SpellVisual).xdb#xpointer(/SpellVisual)"/>
                <Item href="Armageddon_Hit.(SpellVisual).xdb#xpointer(/SpellVisual)"/>
        </visuals>
        <PresetPrice>0</PresetPrice>
        <AvailableForPresets>true</AvailableForPresets>
</Spell>

使用道具 举报

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

17#
发表于 2008-2-17 07:09:33 |只看该作者
原帖由 atlus 于 2008-2-17 03:11 发表
想问一下如果自己做了新生物的3d模型(包括相应动画),该怎么加入游戏?


里面说了啊。。。你不知道nival用的3d文件格式,你没法导入啊,现在的新生物,能做到的极限就是局部模型交换,再加换贴图样子。

使用道具 举报

帖子
12
精华
0
积分
4
金钱
12
荣誉
0
人气
0
评议
0
18#
发表于 2008-2-17 15:26:11 |只看该作者
楼主绝对是个人才,高级专家级别,向你学习职业精神啊

使用道具 举报

帖子
441
精华
0
积分
221
金钱
1692
荣誉
0
人气
0
评议
0
19#
发表于 2008-2-17 16:01:45 |只看该作者
原帖由 yche2990 于 2008-2-17 07:04 发表


这个应该只有三种的,但是魔法系数是可以修改的。我不准备放教程里了。。。因为假如每个已知文件修改都放了。。我要写到明年去了。而且生物和英雄修改是所有其他修改的基础。。。魔法系数位置是在data.pak\GameMecha ...




谢谢LZ的解答,这个就先收下了,不过我要问的是兵的魔法添加数,不是修改魔法的属性....不过还是谢谢LZ先....

使用道具 举报

问世间情是何物,直教生死相许
爱抱抱的 远古巨兽
★★

荣誉勋章

帖子
3005
精华
6
积分
4414
金钱
16267
荣誉
171
人气
10
评议
0

20#
发表于 2008-2-17 16:23:22 |只看该作者
哦。。。。你的意思是说每个兵种是都能有很多魔法啊,当然可以,整个游戏的mod都没有限制任何的数量,无论是特技还是魔法,随便你想要几个

使用道具 举报

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

手机版|Archiver|游侠NETSHOW论坛 ( 苏ICP备2023007791号 )

GMT+8, 2025-11-22 05:38 , Processed in 0.361644 second(s), 13 queries , Gzip On, Memcache On.

Powered by Discuz! X2

© 2001-2011 Comsenz Inc.

分享到