如果你尝试过修改MOD,那么这个MOD的制作对你来说将很简单.如果你没尝试过,那么这个MOD的制作过程比起之前的准备工作要简单很多.
0.发这个教程主要是觉得每个人的审美都不一样,改成什么怪物,体型大小,是否需要调整平衡性等要求都不一致,虽然我有空会尽量帮忙做,但是多了的话确实挺麻烦的,我想偷懒.而且与其拿别人做的,自己不是很满意的MOD,不如自己动手做一个.改MOD其实比玩游戏有趣多了.
1.这次不逐行分析了,直接第一步就把大概的方案搞定(上次地图的修改弄得太复杂,估计基本没人看).
以初始的猫为例,这个文件在MEDIAUNITSMONSTERSPETS下,名字是PET_CAT.DAT. 假如我们要将它替换成War Titan,那么我们需要找到这个怪物所在的文件: MEDIAUNITSMONSTERSBOSSESBOSS_ROBOT.DAT . 所有BOSS的文件都在这个BOSSES文件夹内.
当然这两个文件都需要转换成txt格式.
先看PET_CAT.DAT.txt:
找到这样两行:
<STRING>RESOURCEDIRECTORY:media/models/Pets/cat
< STRING>MESHFILE: Pet_Cat
再从BOSS_ROBOT.DAT.txt下找到同样的两行:
<STRING>RESOURCEDIRECTORY:media/models/bosses/boss_robot
< STRING>MESHFILE:Boss_Robot
把下面这两行替换掉上面的.
然后? 没有然后了!我们已经搞定了!
把这个文件(PET_CAT.DAT.txt)按照其它教程的方法做成MOD,实际测试一下:
宠物已经被替换成了BOSS!而且从下图来看可以正常攻击!
不过你是否发现这个宠物尺寸不合心意?而且不会使用技能?外观也有点怪?
请继续往下看.
2.添加技能:
还是这两个文件,都翻到最后.我们发现BOSS的文件底部有一大堆的SKILL定义,而猫则没有.这也就是为什么我们的宠物只会普通攻击的原因.
现在把这些东西拷贝过来.
所有以这种形式包括出来的代码都要拷贝(每一组是一个技能):
[SKILL]
...
[/SKILL]
放在[/UNIT]的上面.
这样,我们的技能也初步修改好了!简单吧!
做成MOD实际测试一下:
宠物用一个AOE把一群小怪KO了!
3.外观和声音:
首先是尺寸,这个直接决定了宠物是否讨喜.
找到这一行:
<FLOAT>SCALE:0.650000
这个浮点数代表的是缩放比例,0.650000也就是说你的宠物将是原模型0.65倍大. 所以自行调节吧.
其次是材质:
找到这一组数据:
[TEXTURE_OVERRIDE_LIST]
< STRING>TEXTURE:media/models/pets/cat/pet_cat.dds
< STRING>TEXTURE:media/models/pets/cat/pet_cat_02.dds
< STRING>TEXTURE:media/models/pets/cat/pet_cat_03.dds
[/TEXTURE_OVERRIDE_LIST]
删掉它们,这个材质是给猫的,所以如果你仔细看的话,最初宠物的身上有猫的花纹. 最后是声音:
用Ctrl+F找到所有带有SOUND的行,用原BOSS文件中的相同内容替换掉就可以了.BOSS
文件中可能会缺少某些行,不过无所谓,你不改,或者改成空白都没问题的.
我们把SCALE改到0.2,把材质代码删掉,再来实际测试一下:
宠物变成迷你War Titan了,身上的颜色也正常了.
4.宠物属性(平衡性):
涉及到平衡性,那我们还是只能逐行分析了,因为每一行代表一个属性.
<FLOAT>MINHP:160.000000
< FLOAT>MAXHP:160.000000 :最小生命,类似于一个参数,实际初始生命会以此为参数随等级增加
<INTEGER>ARMOR:100 :护甲,应该也会随等级增加
<INTEGER>MINDAMAGE:60
< INTEGER>MAXDAMAGE:80 :基础伤害上下限,对技能有效,随等级增加
<FLOAT>WALKINGSPEED:2.500000
< FLOAT>RUNNINGSPEED:6.500000 :走路和跑步的速度,实际起效果的是两者比值?我不确定.
<FLOAT>WALK_ANIM_MULT:0.600000
< FLOAT>RUN_ANIM_MULT:1.000000 :走路和跑步的一个参数,没测试出来用处,如果你们测试出来了,请告诉我.
<FLOAT>ATTACKSPEED:100.000000 :攻击速度
<FLOAT>REACH_BONUS:0.750000 :这个我没试过(从来没注意过这个参数)

<INTEGER>ARMOR_FIRE:75
< INTEGER>ARMOR_ICE:75
< INTEGER>ARMOR_ELECTRIC:75
< INTEGER>ARMOR_POISON:75 :四种属性的抗性,具体是数值还是百分比,我不确定,没改过
<FLOAT>DAMAGE_REACT_RADIUS:20.000000 :攻击反应半径,应该和宠物主动攻击怪物有关,我对距离不敏感,没测试过
5.其它:
<STRING>ICON:lynxicon
< STRING>ICONLIT:lynxiconhover
< STRING>ICONSELECTED:lynxiconselected :各种位置的图标,暂时改不到合心意的吧
<STRING>UNITTYPE:STARTING PET :类型,这个是初始宠物
<STRING>NAME: Pet_Cat :名字,是用于别的文件调用的,现阶段不能增加东西(或者是我不会),先不要改了,如果改了你就得把所有调用到它的文件都改了,麻烦,而且后患无穷.反正从游戏内部是看不到这个变量的.
<INTEGER>RARITY:0 :稀有度....应该没用....宠物也需要稀有度么....
<BOOL>CANMATCHSPEED:true :没试过什么用
<BOOL>INVINCIBLE:true :无敌,虽然不知道为什么原始文件是true,但是只有改成false才会掉血
<STRING>UNIT_GUID:-8880591480184383566 :万恶的GUID
< TRANSLATE>DISPLAYNAME:Cat :显示名字,不知道在哪里显示,改不改随意吧,不过最好用已有的单词组合,不容易出问题
<STRING>ARMOR_GRAPH:Armor_Minion_byLevel
< STRING> DAMAGE_GRAPH: Damage_Minion_byLevel
< STRING>HEALTH_GRAPH:Health_Minion_byLevel :成长曲线?不了解
<STRING>
PARTICLE_TELEPORT:MEDIA/PARTICLES/EVENTS/PLAYERTELEPORT.LAYOUT
< STRING> PARTICLE_DESUMMON:MEDIA/PARTICLES/EVENTS/PLAYERTRANSFORM.LAYOUT :一些相关的贴图,通用的东西
[INVENTORY]
< STRING>CONTAINER: PLAYER_BAG_ARMS
< STRING>CONTAINER: PLAYER_BAG_CONSUMABLES
< STRING>CONTAINER: PLAYER_BAG_SPELLS
< STRING>CONTAINER: PetBody
< STRING>CONTAINER: Pointer
[/INVENTORY] :宠物界面内容,包括装备包,消费品包,咒语包,宠物身体和point?(我不知道这是啥) 我觉得我宠物身上东西丢失就是因为有一次误删了这些项,所以保留着吧. 说句题外话,看到这个,我觉得说不定可以做个扩充容量的储物箱,有志者请自行尝试.
[EFFECT]
...
[/EFFECT] :猫的文件里没有,是被动技能,不知道是否可以同时存在多个
6.其它一些说明:
如果一个模型没有攻击动作的话,你把它替换的结果就是做出个摆设,它只能当个木桩站在怪物旁边看着你.所以小吵闹和指挥官 河谷只能做成观赏性的宠物.
或者你会自己做模型...反正我不会...