magic_dmwx 发表于 2021-5-21 11:56

【0基础教程】D2R如何添加自制物品并添加图标

本帖最后由 magic_dmwx 于 2021-5-25 11:04 编辑

【修改目的】
首先你要明确添加这个新物品是做什么用的
本次教程以我准备最终实现让菠菜商店售卖随机符文为例进行讲解
我是D2R出来后才开始从0摸索的,参考了很多大佬的资料
如果你有兴趣投入研究甚至制作自己的MOD,可以由此入门






















magic_dmwx 发表于 2021-5-21 11:57

本帖最后由 magic_dmwx 于 2021-5-21 16:59 编辑

【准备工具】
D2R数据文件解包工具cascview
txt文本编辑器AFJ Sheet Edit
DC6和Sprite图标修改工具
在线png转pcx工具




magic_dmwx 发表于 2021-5-21 11:57

本帖最后由 magic_dmwx 于 2021-5-21 17:46 编辑

【游戏解包】
正式进入添加物品的过程
首先你需要打开解包工具
选择open storage
选中D2R文件夹


解包后是这个样子



【提取文件】
提取出如下文件备用
D2R\data\global\excel\itemtypes.txt(物品类型)
D2R\data\global\excel\misc.txt(杂物配置)
D2R\data\global\excel\gamble.txt(菠菜配置)
D2R\data\global\items\invrel.dc6(旧版艾尔符文图标)
D2R\data\hd\global\ui\items\misc\rune\el_rune.sprite(重制版艾尔符文图标)
D2R\data\hd\items\items.json(重制版物品配置文件)
D2R\data\hd\items\misc\rune\el_rune.json(重制版艾尔符文配置文件)
D2R\data\hd\items\misc\rune\el_rune文件夹(重制版艾尔符文模型&动画文件)



magic_dmwx 发表于 2021-5-21 12:01

本帖最后由 magic_dmwx 于 2021-5-21 17:01 编辑

【修改文件】
到这走出自制物品第一步,为新增物品定义一个类型(如需)
物品类型总的分为三大类,armor防具、weapon武器、misc杂物
又分为无数小类如misc有:amulet护符、ring指环、gem宝石、rune符文等
比方说我要新建一个类型的物品,专门用于合成公式,不想让它具备已存在类型的功能
(如果我新增物品类型填写rune或gem,则它可以被镶嵌到孔里,通过编辑相关txt文件可以为其选择镶嵌效果或自制符文之语)

【itemtypes.txt】(如需)
用AFJ Sheet Edit打开上一步提取的itemtypes.txt
先点一下右键Resize To Fit(自动调整行距)
然后按alt+1冻结第一行
再选Row Operations -> Add Rows(添加一行)


如果之前没修改过itemtypes.txt文件,此时应该是在第106行新增了一行空白的数据

接下来为新增类型赋值
itemtype:给新建物品类型填个名字,英文版中显示的类型名字,也就是翻译时tbl中的键名,我填的是Random Rune
Code:为新物品建立一个4字(字母或数字)代码方便其他文件调用,我填的是rand(也可以是3位,itemtypes原文件中就有orb类型的物品)
Magic:意为是否一定是魔法物品(或以上级别)。0代表不是,1代表是。如戒指类此列就为1,表示不会有白色的戒指。此处填1,方便后面为其添加合成隐藏属性(类似roll点)达到随机合成的目的
Rare:是否能有稀有级别的物品,如护身符此列为0,表示不可能出现稀有(亮金)的护身符,填0或空着就行
Normal:是否只能是普通(白色)物品。0代表不是,1代表是。如回城卷轴此列为1,武器此列为0,填1填0好像都不影响,我填的1
Rarity:稀有度,在同一TC中出现的概率,值越大掉落的概率越大。请参考物品掉落原理,不确定这个是否影响菠菜刷新概率,我填的3
Storepage:此类别下具体物品的信息存储在哪个文件里,或者说此类别属于哪个大类。只有3个大类,防具armo,武器weap,杂物misc。填misc
*eol:文件结尾,必须填0
其余留空就行,其他列参数意义可以参考ItemTypes.txt文件分解
现在已经为新建物品设置好了类型

【misc.txt】
下一步就是打开misc.txt文件,编辑具体的物品信息,同样下面新增一行
name:起名字环节,我填的Random Rune
compactsave:1=压缩存档,0=不压缩存档。通常可以使存档更加小,但是诸如与物品有关的“数量”、“魔法前后缀”、“耐久度”等数值将被忽略(主要用于“药水”一类的物品)。填0,后面随机合成的时候需要未赋值的前后缀作为隐藏属性(类似roll点)继而实现根据roll点结果决定合成随机结果的目的
version:填100,资料片版本
rarity:稀有度,我填的1,。与网上的解释不同,我感觉此列数值越大出现概率越低,我主要是拿菠菜试验的,此列数值为1的el符文明显比23的26号vex符文出现概率高的多(参照我菠菜帖刷符文实例)
spawnable:是否可被npc出售,如填1需后面的列定义由哪个npc出售多少,填1填0都可以
nodurability:1,无法破坏
cost:影响售价和菠菜价格,由npc.txt等配置文件决定售卖/回收价格,比如此列填100不改其他文件意味着npc卖它100块,回收50块,菠菜价格没找到具体控制文件,但此列数值与菠菜价格正相关,大致比例约为增加1cost,菠菜价格增加3.6(四舍五入或向上取整)
code:3字代码(数字或字母),我随便起了个r66
alternategfx:16,。dcc代码,当角色使用此物品时所采用的动作,制作动画时使用,可以使用其他符文的比如r01。有些dcc文件用于控制角色施法动作,比如TP有个对应的dcc文件
namestr:我填的r66,用于tbl文件定义相关说明文字,由于我还没改tbl文件,所以新建物品名称就一直默认为“一股邪恶势力”
component:16
invwidth:1
invheight:1
flippyfile:flprun(借用符文掉落影像,没必要自己做)
invfile:重点来了,此列决定着新增物品在旧画面的图标,指向data\global\items\下同名dc6文件。我提前制作好dc6文件并命名为invrRand.dc6,所以这里填的invrRand,制作方法后面说
type:rand,填前面编辑的itemtypes.txt文件中的类型
unique:0
其余数值照着前面几行填一样的数就行了或者空着就行了

【gamble.txt】(如需)
主要作用是让奸商在菠菜游戏中出售这个物品
新增一行,name我填的Random Rune,code填的r66(misc.txt中code那列3字代码)

到这一步,你已经可以让奸商出售你刚才新建的自制物品了,但目前它没有自己的图标,在游戏中是透明的



magic_dmwx 发表于 2021-5-21 12:03

本帖最后由 magic_dmwx 于 2021-5-21 16:42 编辑

【旧版图标】接下来我们给旧版画面添加图标,这个相对简单一些
用DC6编辑器打开之前提取的invrel.dc6文件,这个是艾尔符文的图标
可以看到旧版界面物品图标的尺寸是28*28,透明通道显示为黑色


那我们做张28*28的图标文件导入进去就行了
我提前在网上下好了一些素材,比如这个,128*128的


给它改一下尺寸成28*28


接下来这步比较关键,DC6 Creator只能导入bmp、gif、tif、jpg和pcx文件,不支持png格式,众所周知bmp、jpg是不带透明通道的
如果直接导入png文件会报错


而把png直接转成bmp或者jpg格式,透明通道就没了,导入这个到DC6里就会有一圈白色,再把这个dc6应用到游戏里,格子里就会出现一圈惨白。。


正确做法是,通过在线png转pcx工具把带透明通道的png转成pcx文件再导入dc6文件里,就很完美啦


保存或另存为invrRand.dc6(与misc.txt文件invfile列名称相同),放入游戏\data\global\items\里就能被调用啦

magic_dmwx 发表于 2021-5-21 12:03

本帖最后由 magic_dmwx 于 2021-5-25 11:18 编辑

【新版图标】
需要用到我们之前提取的这些文件:
D2R\data\hd\items\items.json(重制版物品配置文件)
D2R\data\hd\items\misc\rune\el_rune.json(重制版艾尔符文配置文件)
D2R\data\hd\items\misc\rune\el_rune文件夹(重制版艾尔符文模型&动画文件)

相对于旧版图标,新版图标的添加稍微有些麻烦
不像DC6文件有明确的指向性,我感觉是通过文件关系和命名来确定调用.sprite图标的

因为暂时还没找到打开.model和.texture模型、动画的方法
使用现有文件改名等方法变通实现(模型和动画相对图标来说重要性低一些)

首先打开items.json文件(这个用记事本打开就行)
最后面加上一行{ "r66": { "asset": "rand/random_rune" } }
重点:注意上一行的末尾加个英文半角的逗号,,不然会出错


改好的items.json文件放到data\hd\items\文件夹下
再新建一个misc文件夹


进去再新建一个rand文件夹,把之前提取出来的下面两个文件和文件夹拷贝到这个目录下并改名random_rune
D2R\data\hd\items\misc\rune\el_rune.json(重制版艾尔符文配置文件)
D2R\data\hd\items\misc\rune\el_rune文件夹(重制版艾尔符文模型&动画文件)


接下来打开random_rune.json文件(原el_rune.json文件)
把原先所有涉及路径的地方通通从data/hd/items/misc/rune/修改为data/hd/items/misc/rand/
所有涉及文件名el_rune的通通修改成random_rune
两个id后四位通通改成6666(如果和原来一样,可能这个新建物品会调用艾尔符文的属性,比如说可以镶嵌)



接着打开random_rune文件夹,把里面的文件名el_rune部分通通替换成random_rune


到此,配置文件都修改完了,该制作sprite图标了
用sprite修改器打开之前提取的el_rune.sprite文件,可以看到重制版物品图标大小为98*98
把之前那个图标素材做个98*98的版本


Sprite Edit里点Import导入素材,这个不用转格式直接导入png就行


Save As保存为Random_rune.sprite


文件放到Data\hd\global\ui\items\misc\rand\文件夹下




magic_dmwx 发表于 2021-5-21 12:04

本帖最后由 magic_dmwx 于 2021-5-21 17:52 编辑

【成果展示】
至此,可以进入游戏检查成果了
如果你完全按照上面的操作步骤,不出意外的话
这个时候基德就会在菠菜游戏中出售这个物品
https://att.3dmgame.com/att/forum/202105/21/164232lscfb4wjw2q4b9qw.jpg

并且它还拥有重制版图标了!



magic_dmwx 发表于 2021-5-21 12:04

本帖最后由 magic_dmwx 于 2021-5-21 18:01 编辑

研究了很久如何添加重制版图标,不断的试错才试出来
目前还没有修改tbl文件给r66 rand等物品类型添加说明
所以目前显示的是“一股邪恶势力”
接下来还要不断试错如何让箱子能合成随机物品达成我菠菜随机符文的最初目的
路漫漫其修远兮


magic_dmwx 发表于 2021-5-21 12:07

本帖最后由 magic_dmwx 于 2021-5-25 11:02 编辑

【添加名字】
可以用这个工具添加自建物品的名称和说明
【工具】D2RStrEdit-1.0.4(修改物品名和说明)
https://att.3dmgame.com/att/forum/202105/25/004103r2t8nq4t8p42nv8t.png
https://att.3dmgame.com/att/forum/202105/25/004258nav0zpy2gdpe4zvj.jpg

magic_dmwx 发表于 2021-5-21 12:08

占楼备用.texture

magic_dmwx 发表于 2021-5-21 12:08

占楼备用.model

magic_dmwx 发表于 2021-5-21 12:10

占楼备用.pcx

magic_dmwx 发表于 2021-5-21 12:12

占楼备用.txt

magic_dmwx 发表于 2021-5-21 17:58

教程结束可以插楼了

ancientdoom 发表于 2021-5-21 19:06

:loveliness:

magic_dmwx 发表于 2021-5-21 19:15

@ancientdoom可以开始自制mod了

ancientdoom 发表于 2021-5-21 20:14

需要模型查看工具{:3_195:}

magic_dmwx 发表于 2021-5-24 12:44

@ancientdoomreddit上面有个模型查看工具,但是给的链接里没有exe文件,你看过那个帖子了吗

ancientdoom 发表于 2021-5-24 13:11

magic_dmwx 发表于 2021-5-24 12:44
reddit上面有个模型查看工具,但是给的链接里没有exe文件,你看过那个帖子了吗 ...

还没有,看贴吧也好像都不热心重制版。。。。

magic_dmwx 发表于 2021-5-24 16:48

@ancientdoom那我找找发给你,要架小梯子的

ancientdoom 发表于 2021-5-24 20:45

magic_dmwx 发表于 2021-5-24 16:48
那我找找发给你,要架小梯子的

就发个新帖子,大家可下载如何。。。{:3_192:}

magic_dmwx 发表于 2021-5-25 00:21

ancientdoom 发表于 2021-5-24 20:45
就发个新帖子,大家可下载如何。。。

可以,我找找,还得翻墙

magic_dmwx 发表于 2021-5-25 01:39

ancientdoom 发表于 2021-5-24 20:45
就发个新帖子,大家可下载如何。。。

发了,似乎是个unity的插件

ancientdoom 发表于 2021-5-25 04:46

楼主的工具都是神器啊

41612149 发表于 2021-5-31 03:55

LZ。问个问题。我用老版本jp111的mod内容,就是可以把装备与护符合成,比如放一个大护身符,再放一个军帽,点合成,护身符的名字就会变成暗金军帽,属性也和暗金装备一模一样。然后我把这件装备拿到1.13里,是完全可以读取到的。(这样可以把所有暗金装备都“带在身上”)

但如果转化成重置版存档,读档必定闪退。我怀疑是d2r没有这方面的数据,这能通过修改解决吗?要怎么改?

magic_dmwx 发表于 2021-5-31 11:41

41612149 发表于 2021-5-31 03:55
LZ。问个问题。我用老版本jp111的mod内容,就是可以把装备与护符合成,比如放一个大护身符,再放一个军帽, ...

闪退的话调参数啊,加大一些延迟可能会好点或者你把老mod的合成公式copy到重制版里就行了

暗黑惟我独尊 发表于 2021-5-31 12:07

感谢大佬分享,重置版和经典版mod都能学习

41612149 发表于 2021-5-31 19:51

magic_dmwx 发表于 2021-5-31 11:41
闪退的话调参数啊,加大一些延迟可能会好点或者你把老mod的合成公式copy到重制版里就行了
...

应该不是参数的问题,怎么调都进不到游戏,直接门一开就跳出

请问如何调老mod的公式?

在哪些txt里改?

magic_dmwx 发表于 2021-6-1 09:28

41612149 发表于 2021-5-31 19:51
应该不是参数的问题,怎么调都进不到游戏,直接门一开就跳出

请问如何调老mod的公式?


cubmain.txt

ancientdoom 发表于 2021-6-1 11:07

等待texture和model工具。其他算是基本搞清了。。。{:3_56:}
页: [1] 2
查看完整版本: 【0基础教程】D2R如何添加自制物品并添加图标