游戏狂人
 
- 贡献度
- 142
- 金元
- 13359
- 积分
- 1904
- 精华
- 0
- 注册时间
- 2008-11-14
|
本帖最后由 六荒北辰 于 2013-10-12 17:46 编辑
0.此MOD制作较复杂,新手请从宠物MOD入手.
1.添加新职业单位(MEDIA\UNITS\PLAYERS):
完整的添加需要三个文件:BASE,FEMALE,MALE.我们可以从别的职业那里先拷贝一组文件.以Necromancer为例,我们从法师(MEDIA\UNITS\PLAYERS\ARBITER)处拷贝三个文件.
BASE文件包括单位技能,技能树,被动等.我们暂且不修改技能和被动等.我们需要修改的内容有:
<STRING>NAME:Hum_Necromancer_Base 内部调用名
<STRING>UNIT_GUID: GUID,随便写一个吧,注册文件用
<STRING>UISKILLTREE:MEDIA/UI/MENUS/SKILLTREEOVERRIDES/SKILL_TREE_NECROMANCER.LAYOUT 技能树layout,改改名字就行
<TRANSLATE>DISPLAYNAME:Necromancer 显示名字
FEMALE和MALE文件直接定义男,女角色的外观,UNITTYPE等.同样我们暂且不修改过多的东西.以FEMALE文件为例,我们需要修改的内容有:
<STRING>BASEFILE:media/units/players/necromancer/hum_necromancer_base.dat 缺省参数文件路径,需要指向base文件
<STRING>NAME:Hum_Necromancer_F 内部调用名
<STRING>UNIT_GUID: GUID,注册文件用
<STRING>UNITTYPE:NECROMANCER_FEMALE 单位类型,命名其实随意,不过需要可以区分职业和性别
<TRANSLATE>DISPLAYNAME:Necromancer 显示名字
添加完这三个文件后需要注册这三个单元,建议使用RAW2TXT,论坛里可以下载.
这个是我添加的内容,TXT文件命名为UNITDATA.txt,冒号后的内容都要注意大写:
<
然后生成UNITDATA.RAW,修改名字为UNITDATA_XXX.RAW放入MEDIA文件夹根目录下,XXX可以随意写,用于兼容UNITDATA.RAW.
2.添加新职业UNITTYPE(MEDIA\UNITTPYES):
仿照其它职业的UNITTPYE定义文件,以法师(EMBERMAGE)为参考,找到相关的三个文件,分别定义了EMBERMAGE,EMBERMAGE_FEMALE,EMBERMAGE_MALE的UNITTPYE.
拷贝一份进行修改.
先修改EMBERMAGE.DAT.txt,以修改成Necromancer为例,改成如下结构.
[XXX]
...
[/XXX]定义了名为XXX的UNITTPYE.
<STRING>NAME:NECROMANCER 为该UNITTPYE的名字
后面一串CHILD为继承关系.以XXX-CHILD-CHILD1-CHILD2-CHILD3...的顺序继承,表明XXX属于CHILD中的一类,CHILD又属于CHILD1中的一类,以此类推.
上面的代码可以看见最后有个CHILD2,它前面是CHILD3,这时候就需要继续往前搜索到第一个CHILD1: PLAYER,也就是说PLAYER属于PLAYERS_AND_PETS中的一类.
这里将NECROMANCER作为EMBERMAGE的一类主要是为了可以穿法师的职业装备.
对于NECROMANCER_FEMALE,使用如下方法添加:
<其实主要是多定义了性别而已,直接使用原文件修改过来即可.NECROMANCER_MALE也类似.
改完并不能立即转换(新版本的DAT2TXT我不确定是否可以),此时我们需要根据hash公式计算NECROMANCER的hash值.(同理这边应该也可以提高最多附魔次数)
hash公式:
hash = string.length
foreach(char in string)
hash = (hash >> 27) ^ (hash << 5) ^ char
这是老外给出的.
可以使用py版的dat2txt完成转换.
首先打来dat2txt目录下的tl2_dat_strings.txt,在其中新建一行,写入你要转的关键字,比如此处是NECROMANCER.
然后运行tl2_dat_strings.py,这样就会自动更新hash表了.
现在就可以使用txt2dat.py进行转换了.
3.Layout文件初步修改(MEDIA\UI\MENUS):
我们首先需要添加一个技能树的layout,由于我们当前的新职业是从法师改过来,所以我们先把法师的技能树(SKILL_TREE_ARBITER.LAYOUT)拷贝,并修改名字.
路径为MEDIA\UI\MENUS\SKILLTREEOVERRIDES\
名字改为之前在BASE文件里定义的技能树名字,这里是SKILL_TREE_NECROMANCER.LAYOUT
此外还需要稍微修改一下MEDIA\UI\MENUS\MAINMENUS\MAINMENU.LAYOUT.这个文件是新建游戏选择职业用的,其实功能都有,只是RUNIC根本没好好制作职业翻页,箭头太小而且位置难看难点击.
这里放上我已经改好的:
MAINMENU.LAYOUT
(46.3 KB, 下载次数: 304)
按照前面提到的路径放置就可以了.
到这里,基本的添加工作就做好了,我们可以进游戏看看.
职业选择画面(图标,模型什么的你们自己搞定吧):
可以看见有翻页的箭头,并且确实可以选择之前添加的死灵法师.
描述我没有改,三个文件中都有描述,这里显示的是FEMALE文件里的描述,最后完善的时候你们自己改吧.
游戏画面:
用控制台调出了法师的靴子,可以看见这个职业是可以使用的.
4.技能修改:
技能修改涉及到3个方面,新技能的制作与添加,技能面板的修改和职业文件中技能的修改.
首先是新技能的制作与添加,由于技能的写法很多,所以我不打算仔细介绍,你们可以参考已有技能来进行制作.
以法师的ICEBLAST为例:
<
新建好了技能,需要将其注册到SKILLS.RAW中,这个文件暂时还没有兼容方案.
以RAW2TXT为例,首先将原有的SKILLS.RAW转成txt文件.
然后你需要添加以下[SKILL]...[/SKILL]内的代码:
<添加完再转回RAW文件,并放入MEDIA文件夹根目录下.
技能面板的修改:
使用layout编辑器打开之前的技能树layout,这里以SKILL_TREE_NECROMANCER.LAYOUT为例.
比如我们需要用新做的技能替换MAGMA SPEAR(这是法师火系第一个技能的内部调用名),我们只需要搜索这个名字,找到对应的位置,如下图:
把右侧的MAGMA SPEAR替换成你做的技能名即可.
这里说一句,在这个节点的同级节点中定义了和此技能同系的所有技能以及一些其它显示,在上一级节点中还有另外两系技能以及标签的定义.
最后我们需要在职业文件中修改这个技能.
技能定义在BASE文件内,搜索MAGMA SPEAR,将其替换成你所改的技能内部调用名即可.
其中的LEVEL是初始等级,LEVEL_REQUIRED不太确定是否起效.
5.其它
其实上面几步已经基本把新职业做完了,还需要做的只是把所有描述的文字都重写,包括技能和职业文件内的.
想优化界面的话自行修改layout吧,里面用到的贴图资源也都在UI文件夹内,DDS文件为贴图,对应IMAGESET文件为其进行定义.
附上我试作的半成品,技能只改了一个:
MEDIA.rar
(71.65 KB, 下载次数: 354)
感谢hmpt制作的PDF版:
[MOD] 就由我来抛砖引玉吧~新职业MOD教程.part1.rar
(299 KB, 下载次数: 667)
[MOD] 就由我来抛砖引玉吧~新职业MOD教程.part2.rar
(299 KB, 下载次数: 907)
[MOD] 就由我来抛砖引玉吧~新职业MOD教程.part3.rar
(48.75 KB, 下载次数: 495)
|
评分
-
10
查看全部评分
-
|