|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy7 E# p7 Y% G# M% v" v
V" s/ f9 z8 [: F; }. }- `. b
前言:
; p" A" w3 }9 R9 z6 b. z ~+ Y4 CArmor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……$ p) d# c I/ s. f/ C- I$ y' d4 w" W3 Q
2 j! ]2 h4 v' N2 Y0 s1 N6 E
因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。% C5 C$ ^. {. K; x6 T: S: j# l6 e
6 B+ l, q! q1 o1 z注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。8 i9 s' g3 q `7 [2 G/ l
3 l! O5 {$ T, x0 h- q/ k% M) A本文件需要用到的txt文件有:
: `1 \& }6 ?5 J/ _·AutoMagic.txt
4 o a6 a2 b3 E6 O# {6 K- r·Belt.txt5 P2 S9 F* ~" D; P" o/ @8 B
·Composit.txt* |/ H3 ^# F# b! E+ \% d" }" N
·ItemTypes.txt$ g/ l6 t" N/ ~4 d" F2 G, |
·Missiles.txt7 P& `- z2 u4 N3 i6 z1 X3 Q/ U
·Sound.txt
0 X2 V& Y9 V/ F: h5 S9 [& P8 {: e! }
8 c) t* E! t4 b- e本文件将在以下文件中被引用:
3 Q$ }/ S- E, I+ H5 H* [8 D·CharStats.txt
5 _% w' [, x' ^9 X6 D+ W" ^3 c·CompCode.txt
) P7 u" I4 n' ]·CubeMain.txt, E: q5 C$ O2 l
·SetItems.txt. S. M7 f6 s a: w) i" D
·UniqueItems.txt
R3 X+ \0 F, f' y·……4 p! e) [+ A; h" Y
8 y- H, E3 H% l6 a* O; F; L S各列功能说明如下:
. q8 F5 t7 u7 g) D- t/ q; K% q9 T: w- G9 X8 @1 `
Name:物品参考名称,仅作注释用
/ m4 D- ^) H& w! s! Q# Q' @) }1 T5 ?0 s3 j
Version:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)
4 Q. n3 C& h! p. q7 k4 \' ]3 m+ E7 k; _& ] T6 d
Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)
; a$ u# ~8 Y5 O" k7 I
$ ?/ t9 w/ H! B7 dRarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃); P4 f p6 V, O" Q# `
0 q4 i6 n7 e* f% R
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售
% G, d- C }& M, q: A: ^; O, m; p5 D: D$ J8 s
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限- u* f# G$ P( ^: u# U1 h
5 D/ B8 E+ @( }1 \
Absorbs:无用参数,以前的作用与“伤害减少X”类似
t1 D* x5 a& j* C6 ^: G( X) R5 o! U6 e& ?$ G6 U, I& H
Speed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度
- o* e( ?4 h- X% d \1 |( t' R3 q4 H9 }6 g! J/ ?
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2
# y) j( a5 `6 ~" I9 t9 Y- ], A6 u% y
Levelreq:装备物品所需的最低人物等级& ^' |, n* G) O2 M% N! h0 |
- h$ v, Y6 J& vBlock:格档几率,总的格档几率上限为75%
" Y O1 L+ ?1 W
% [( M5 Y5 c) `% C- ^Durability:基础耐久度,最大值为255,超出范围则循环计数- c# h+ ^" g: Q# x* R5 i
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度; [% \. W9 A0 i1 |
假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性
1 g+ K8 ^6 u( S/ ~7 @Durwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。' X' |9 W( F3 m' Z; o$ n
( }3 z9 \, Q0 h: B R/ [Cost:基础价钱7 |' S- w9 J1 x) U" {0 @
Gamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用
, L9 s) ~" S+ T. w3 _+ p* J
% o9 z X: ]$ ^% zCode:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件& w6 Y* l1 `6 a
Namestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称
' z. h, u# y. {4 |0 P注意:如果需要显示空格的话,使用TBL文件是唯一的途径# m/ j: w9 X) ^3 V. S5 l- I6 J& C7 [
+ w8 c; n" |) w$ J' J+ Q oNormcode:该物品的普通级代码
1 s9 o7 I7 N2 l, J: P( i" DUbercode:该物品的扩展级代码
' P9 D3 l% @5 E! F/ N) V PUltracode:该物品的精华级代码
! V: V2 w: M- Z0 ?这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照
; R4 h$ B0 F& J- C, m举例说明:狮头尖盔(Lion Helm)的属性为4 H$ m4 k' `6 K: I, t
·Code = ba74 O! ~" T! i( H1 K- N u6 K
·Normcode = ba2. Q. h6 V3 z; G: z6 ]
·Ubercode = ba7
) K1 u5 ^+ u8 [0 ?. F7 e* D+ o·Ultracode = bac. k* V6 K" I; b9 @
所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用
; m. h; e. W6 |" t
4 |1 p/ g( |! {" X, v& h* {; V" BLevel:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲
9 A- W% d1 g" c& ?& R
3 }" F* ~! T. k, m+ [8 y0 vMagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级
" ^& a6 w" i/ i5 O* J; ~+ `3 c' }/ x0 e `) E2 M* V s
Auto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值
) o. @3 d1 H7 q( B" Y1 F& @" ^7 [% |/ P# O: C) e* K9 C3 R
Alternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件) K6 t/ S6 N) t: m( D9 ]0 f) C J: J
$ @6 N5 r. W& l$ t1 k2 b# ?4 tOpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值
* ^, _. v- {/ u# |2 t- u! c. ]' n- s4 S/ E7 E/ a; p
Spelloffset:未知参数,仅在Armor.txt中出现
( ~: ^4 q) B/ M7 f% B, A1 n/ Q7 q, e* z
Component:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:
/ i* ] r! J, `: O0 - HD(Head)头部
! I4 _) }: I1 F0 }- {- v1 - TR(Torso)躯干6 C8 N' g7 M& z
2 - LG(Legs)腿部
) n5 i# ]$ F8 V' f2 y/ ~7 X1 U3 - RA(Right Arm)右臂& F# c- ?1 [4 y$ H* C$ y
4 - LA(Left Arm)左臂
# A, @" F0 o7 z5 - RH(Right Hand)右手6 w" }% a# T' U1 _$ G: b3 `
6 - LH(Left Hand)左手
; u7 S$ }2 @- V0 l2 A! K# o7 - SH(Shield)盾牌
3 _5 A u, m; s8 - S1(Right Shoulder)右肩5 h h; M3 T8 K. R9 e3 {
9 - S2(Left Shoulder)左肩
' }/ F) u0 a0 M& J+ C10 - S3(Necro Shield)死灵法师盾牌
( y3 _ h0 O2 N! ~% O11 - S4(Special 4)特4( M' c" N6 v6 n7 \
12 - S5(Special 5)特5. d. G c1 L7 z
13 - S6(Special 6)特6/ s9 O: s+ {' x: o' @+ S
14 - S7(Special 7)特7
! w2 p, ^. ]) _6 n' y/ i* t15 - S8(Special 8)特8
: z+ @5 ^+ n0 c- j4 ^; a9 i16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
: j" X5 p6 m _/ {$ c1 ?: e1 b$ G$ W8 Y
1 E) Y7 K N0 ^: x$ [% k以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度
: D/ w# F- s2 A, O0 = LIT(Light)浅' j* L4 A7 M* K# Q
1 = MED(Medium)中, U. g+ M q. n$ J
2 = HVY(Heavy)深7 ~3 }1 j5 B2 D7 c9 |
rArm:RA图层(Right Arm)右臂
+ B9 ]% W! f# z# k1 GlArm:LA图层(Left Arm)左臂
1 F$ r3 _; M" ^- _9 I% q0 P6 ]Torso:TR图层(Torso)躯干
5 Z l3 j" Q3 b8 p6 z) e" WLegs:LG图层(Legs)腿部( i2 b2 q. E1 X6 i
rSPad:S1图层(Special 1 – Right Shoulder)右肩
: z8 ~; l8 z8 Q0 WlSPad:S2图层(Special 2 – Left Shoulder)左肩& E( f* W$ _, Z- O) j
例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)1 `, A$ j5 _3 D. x5 ]: |+ ^
6 M( v+ Z; V% {) `6 t" Z* v以下四列分别是不同情况下程序对物品所调用的DC6文件名称$ ^0 ~: A. n3 m; D' U, V: I
Flippyfile:物品掉落时的动画文件
* ~' R1 _2 K0 X5 ?Invfile:物品栏里的图像文件. U! c) @- O5 ~# V. e1 f+ E2 ?8 o
Uniqueinvfile:暗金物品所使用的物品栏图像文件
8 X) n; {4 V9 q6 J% S* `Setinvfile:套装物品所使用的物品栏图像文件: d/ B4 V& Z9 v8 i+ _
DC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件7 `' l+ F8 V( V+ J' e q. j
: b2 T4 F0 \( v6 y: t% XInvwidth/Invheight:物品在物品栏中占用的宽/高格数3 E F2 p1 U5 z& h) @' u7 M4 `; q" b
2 X! l" F/ }' o, V/ W: x# o9 J3 W7 o
以下三列用于描述物品上孔数的属性# N& V+ ~1 {( s
Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔
$ j# C0 R+ X V! ^Gemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数3 W$ G8 F9 K7 ` w n' a1 U/ K! J8 o
另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40+ c: x3 J$ o, o# b( ?7 S" x) H V. X- b
例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是27 M, C& N! ?8 Y1 d
Gemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔
6 g; r0 x# n% h7 J! w7 c2 N& T+ r3 t6 K! r n
Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴# A0 L9 Y, s, P& I& _
注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。/ e4 D7 H- H+ ?; O+ ]4 d
, `6 I9 M& z- l! @2 sThrowable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列! s: U4 L6 s y
0 c! u1 V( M7 e, X" a9 k' Y5 d
Missiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列# [7 t! C3 x" {# h" g6 y1 A
' b- q5 b% H) c6 u
Stackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以& m/ r* g2 d) }( F
Minstack:一堆该物品的最小数量5 H6 x. n7 p& Y1 f) ]3 f
Maxstack:一堆该物品所能拥有的最大数量
- t1 p8 F* l# d- g& Z8 f$ Y4 W( {2 |Qntwarning:警告标志出现的数量临界值$ k: D6 i/ o+ H! R
当该物品的数量小于等于临界值时,屏幕上将出现警告标志
8 V! X( k% C; j+ _% w9 r% w6 C0 p这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)
# {/ M$ u8 D2 I, V# B$ V
$ I5 N, }! d4 V0 j% yType/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列4 M% k* c( c Q% M) Y& W
& M2 i% u i! p- G3 xDropsound:物品掉落时的声音,引自Sound.txt中的Sound列- q2 A1 b7 t' n& D8 g# s3 u; y
Dropsfxframe:物品掉落声音播放的桢数: n3 Q6 ~$ P0 c! g* \5 O
Usesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列
0 s X M% C( E( ~" @
/ X# `. p P5 p) H& s L" \Quest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC
+ x/ O8 d! o# x; JQuestdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中
; z! Y' `, P5 T
. _5 M" |* e8 ^% }- fUnique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
! F) n1 a1 W+ P( I; d- K( j5 e1 R6 a" E8 l% N# v( U
Transparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?
/ c% u" u9 |3 S, }( v7 |7 ~% Z- E2 d
Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……
L$ B+ r ^; w! G% N
" x _+ i5 w: [. ^1 P# m$ X7 {' EQuivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用/ j, ~* d( I6 O/ {0 c
' ]5 Q# n) k ]% kLightradius:无用参数. Q }2 |# O/ k$ g e: [* M( S2 K
$ F4 h* G3 T1 K+ }
Belt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类
. g; r5 b: s9 H* @0 – 无用/无腰带 – 1行
7 \+ L. r. e& ]! B5 a& U& u; L- ^+ x1 – 饰带 – 2行
, ^9 W" a* B% v* |. d! u. S2 – 无用 – 1行" M$ a: `7 m, [; d `& J& I6 o: z" `
3 – 束带 – 4行
: q/ j, _) L r* q! N; J" k J4 – 轻扣带 – 2行
, p7 O( ^6 f+ u9 O2 t# j _2 f3 B, p5 – 重扣带 – 3行1 a3 l* e1 F- @8 j: Z- f
6 – 高级腰带 – 4行
. t$ n! Y. T* R以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带; {6 S) K, H1 [0 t/ O0 t# G2 H
Belt:在Misc.txt中的意义与Armor.txt中完全不同9 w( V6 r" o0 C2 x0 s! l" h
0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏( x6 y6 a. |7 \- b# h0 O5 `
由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途
' `+ a& O, g5 W* m# d- @0 h+ Y/ ^5 y0 S# ^' ]; V- L- p
Mindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:
5 c r! e, W) b0 F: `1 ]& h1 ~对于盾牌 – 盾击伤害
3 h' o; L5 o6 O p# m# d" Q对于鞋子 – 踢击伤害
" H7 r: N; K/ ], I9 h对于武器 – 单手近战伤害8 _- |1 t' c& U9 ~0 P( W* V1 m
, i" \ U [9 { K
StrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害 N3 ~2 c# D6 F! ?
DexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害( t" L. i, l3 ~
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成
0 L8 V! Y3 c) d' `- ~4 r0 `( f* X' c- G
Gemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑2 E" \ Y9 s; }% {" ^
4 P8 n: I4 S# j. g$ i/ ]9 PBitfield1:主要用于区分不同材质的物品,目前已知的是:
: l2 I5 x) ]7 [& ?1 = 皮革制
& ~" x' K! F$ C& S& v3 = 金属制
/ [" l+ }" M! @6 U* y7 D2 X8 B, z ?仅有金属制物品可以用来召唤钢铁石魔# _9 M9 k2 ~6 x8 g
# w s- Y+ q0 ?! [; c# H/ h( f
以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人5 b. n4 B% S) W) z9 i
VendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃
* B' q" r- k2 p8 c; GVendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量* c3 j, s, F1 \# y( f
VendorMagicLvl:该物品所能获得的最高魔法词缀等级
7 I5 l( Z9 C1 H
( W' p1 F2 v3 X0 qPermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定7 y( ^' }7 _9 K4 u
' @3 S* L/ O1 \1 W" g; lSource Art:无用参数" Y' l* t( ?. H, H9 n; k8 w; n
Game Art:无用参数
( j+ E0 X9 q) t+ L0 j+ `; l& F% S) |( r
Transform:有关该物品的动画所使用的颜色2 z3 `& D) Y3 n) ?$ R
InvTrans:该物品在物品栏中所使用的颜色
/ O j; `; K Z! Z1 S3 s5 p
/ G' Z5 m% {- {SkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样
" {5 Z" _' p: Y8 B# U( @! R3 k
6 G- W9 }; A* v3 u7 C7 S' f# ZNightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变
# P4 y0 F7 E. o9 I r& Z! y) l% A5 M. L; M! Z) W2 q8 ~# A' k
Nameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行
+ e2 k& k' Z" E; J! u: w |
|