Armor.txt
Armor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……
因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。
列名 | 作用 |
Name | 物品参考名称,仅作注释用 |
Version | 0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现) |
Compactsave | 1 = 压缩存档,0 = 不压缩存档; 所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等) |
Rarity | 0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有; 这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃 |
Spawnable | 0 = 无法由NPC出售,1 = 可以由NPC出售 |
Minac/Maxac | 该防具的最小/最大防御值; ItemStatsCost.txt中定义了这些取值的上限 |
Absorbs | 无用参数,以前的作用与“伤害减少X”类似 |
Speed | 正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度 |
Reqstr | 装备物品所需的力量,取值范围是0-65535; 假如超出这个范围,将依据循环计数的原则; 例如,在这里填写值65538,则系统会认为是2 |
Block | 格档几率,总的格档几率上限为75% |
Durability | 基础耐久度,最大值为255,超出范围则循环计数 |
Nodurrability | 是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度 假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性 |
Level | 基础物品等级(亦即物品品质等级——QLvl); 并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品; 例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲 |
Levelreq | 装备物品所需的最低人物等级 |
Cost | 基础价钱 |
Gamble Cost | 赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用 |
Code | 由3位字母/数字组成的代码,每样物品对应一个且不得重复; 此代码为许多txt文件所引用,但不必将其写入TBL文件 |
Namestr | 物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称; 反之,则使用TBL文件中此字串所对应的名称 注意:如果需要显示空格的话,使用TBL文件是唯一的途径 |
MagicLvl | 魔法等级增量; 例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级 |
Auto Prefix | 物品自带的词缀,引自AutoMagic.txt中的Group列值 |
Alternategfx | 人物动画所使用的DCC文件代码; 例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件 |
OpenBetaGfx | 无用参数,D2测试版中用于参照使用了何种alternategfx值 |
———- | ———- |
Normcode | 该物品的普通级代码 |
Ubercode | 该物品的扩展级代码 |
Ultracode | 该物品的精华级代码 |
备注 | 这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照; 举例说明:狮头尖盔(Lion Helm)的属性为 Code = ba7 Normcode = ba2 Ubercode = ba7 Ultracode = bac 所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用 |
———- | ———- |
Spelloffset | 未知参数,仅在Armor.txt中出现 |
Component | 该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引: 0 – HD(Head)头部 1 – TR(Torso)躯干 2 – LG(Legs)腿部 3 – RA(Right Arm)右臂 4 – LA(Left Arm)左臂 5 – RH(Right Hand)右手 6 – LH(Left Hand)左手 7 – SH(Shield)盾牌 8 – S1(Right Shoulder)右肩 9 – S2(Left Shoulder)左肩 10 – S3(Necro Shield)死灵法师盾牌 11 – S4(Special 4)特4 12 – S5(Special 5)特5 13 – S6(Special 6)特6 14 – S7(Special 7)特7 15 – S8(Special 8)特8 16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引 |
Invwidth/Invheight | 物品在物品栏中占用的宽/高格数 |
———- | ———- |
Hasinv | 该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔 |
Gemsockets | 该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数 |
Gemapplytype | 镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔 |
备注 | 另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40; 例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是2; :镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔 |
———- | ———- |
———- | ———- |
Flippyfile | 物品掉落时的动画文件 |
Invfile | 物品栏里的图像文件 |
Uniqueinvfile | 暗金物品所使用的物品栏图像文件 |
Setinvfile | 套装物品所使用的物品栏图像文件 |
备注 | DC6文件的路径为data\global\items; 例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件 |
———- | ———- |
———- | ———- |
rArm | RA图层(Right Arm)右臂 |
lArm | LA图层(Left Arm)左臂 |
Torso | TR图层(Torso)躯干 |
Legs | LG图层(Legs)腿部 |
rSPad | S1图层(Special 1 – Right Shoulder)右肩 |
lSPad | S2图层(Special 2 – Left Shoulder)左肩 |
备注 | 例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等) |
———- | ———- |
Useable | 是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴; 注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。 |
Throwable | 无用参数; 其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以; 但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列 |
Stackable | 该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以 |
Minstack | 一堆该物品的最小数量 |
Maxstack | 一堆该物品所能拥有的最大数量 |
Type/Type2 | 物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列 |
Dropsound | 物品掉落时的声音,引自Sound.txt中的Sound列 |
Dropsfxframe | 物品掉落声音播放的帧数 |
Usesound | 当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列 |
Unique | 1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态 |
Transparent | 如果等于1,则该物品将在玩家模型上透明绘制(类似于空灵模型); 如果等于0,则该项目将在玩家模型上显示为实心 |
Transtbl | 根据启用的“透明”字段控制要使用的透明度类型; 0 = 透明度为25% 1 = 透明度为50% 2 = 透明度为75% 3 = 黑色Alpha透明度 4 = 白色Alpha透明度 5 = 无透明度 6 = 深色透明度(未使用) 7 = 高亮显示透明度(鼠标悬停在设备上时使用) 8 = 已混合 |
Quivered | 1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用; 此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用 |
Lightradius | 控制此项目可以应用于怪物的灯光半径的值; 这只会影响装备该物品的怪物,而不会影响其他类型的单位; 如果怪物上的物品组件是“lit”、“med”或“hvy”,则会忽略此选项 |
Belt | 在Armor.txt中作为一个索引,来说明物品所代表的腰带种类; 0 – 无用/无腰带 – 1行 1 – 饰带 – 2行 2 – 无用 – 1行 3 – 束带 – 4行 4 – 轻扣带 – 2行 5 – 重扣带 – 3行 6 – 高级腰带 – 4行 以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用; 高级腰带包含了所有的扩展/精华级腰带 |
Quest | 专门为任务物品定义的硬代码ID; 任务物品一次只能携带一件且无法交易给NPC; 任务代码见附录 |
Missiletype | 投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列 |
Durwarning | 耐久警报图标出现的临界值; 当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这东西快坏了 |
Qntwarning | 警告标志出现的数量临界值; 当该物品的数量小于等于临界值时,屏幕上将出现警告标志 |
Mindam/Maxdam | 该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义: 对于盾牌 – 盾击伤害 对于鞋子 – 踢击伤害 对于武器 – 单手近战伤害 |
———- | ———- |
StrBonus | 装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害 |
DexBonus | 装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害 |
备注 | Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成 |
———- | ———- |
Gemoffset | 此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的; Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑 |
Bitfield1 | 控制可能影响项目的不同标志。使用整数值通过使用“&”运算符检查不同的位字段。例如,如果值等于5(二进制=101),则对于4(二进制=100)和1(二进制=1)位字段值都返回true; 具体见附录 |
———- | ———- |
备注 | 以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人 |
VendorMin/VendorMax | 某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃 |
VendorMagicMin/VendorMagicMax | 某商人所能出售的该种魔法物品最小/最大数量 |
VendorMagicLvl | 该物品所能获得的最高魔法词缀等级 |
———- | ———- |
Source Art | 无用参数 |
Game Art | 无用参数 |
Transform | 有关该物品的动画所使用的颜色 |
InvTrans | 该物品在物品栏中所使用的颜色; 0 = 无颜色变化 1 = 灰色 2 = 灰色2 3 = 金 4 = 棕色的 5 = 灰褐色 6 = 库存灰色 7 = 库存灰色2 8 = 库存灰褐色 |
SkipName | 控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样 |
NightmareUpgrade/HellUpgrade | 在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变 |
Nameable | 用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行 |
附录
Quest(任务代码)
代码 | 内容 |
0 | 非任务 |
1 | A1序言 |
2 | 邪恶洞穴(A1Q1) |
3 | 修女埋骨之地(A1Q2) |
4 | 交易的工具(A1Q5) |
5 | 凯恩的搜寻(A1Q3) |
6 | 遗忘之塔(A1Q4) |
7 | 屠杀的修女(A1Q6) |
8 | A2序言 |
9 | 罗达门特的巢穴(A2Q1) |
10 | 赫拉迪克之杖(A2Q2) |
11 | 堕落的太阳(A2Q3) |
12 | 神秘避难所(A2Q4) |
13 | 召唤者(A2Q5) |
14 | 七个古墓(A2Q6) |
15 | A2过场 |
16 | 蓝·伊森的古书(A3Q4) |
17 | 克林姆的意志(A3Q3) |
18 | 古代宗教之刃(A3Q2) |
19 | 黄金鸟(A3Q1) |
20 | 转为黑暗的神殿(A3Q5) |
21 | 守护者(A3Q6) |
22 | A4序言 |
23 | 堕落的天使(A4Q1) |
24 | 恐怖的结局(A4Q3) |
25 | 地狱熔炉(A4Q2) |
26 | 罗格的警告 |
27 | 城镇中守卫者的警告 |
28 | 荒漠中守卫者的警告 |
29 | 看到的黑暗流浪者 |
30 | 天使的警告 |
31 | 阿卡拉的洗点-A5序言 |
32 | 哈洛加斯围城战(A5Q1) |
33 | 亚瑞特山的救援行动(A5Q2) |
34 | 冰之囚(A5Q3) |
35 | 哈洛加斯的反叛行动(A5Q4) |
36 | 通道的祭典(A5Q5) |
37 | 毁灭的前夕(A5Q6) |
Bitfield1代码
十进制 | 二进制 | 内容 |
1 | 1 | 允许物品具有魔法品质 |
2 | 10 | 该物品被归类为金属 |
4 | 100 | 该物品被分类为施法者物品(当前不执行任何操作) |
8 | 1000 | 该物品被分类为基于技能的物品(当前不执行任何操作) |