|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy
+ y* q" P' q# q5 F
( G! k( c: x: P# L* U- ~' L/ Q前言:5 t% j1 c H9 F3 l( J6 n7 H
Armor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……
* m( H- d/ I0 v$ E$ [& U. b
9 x4 H1 a9 n0 s( {% m因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。
( |. a& T E- g- T. t* w3 E
5 f. K0 M i3 k+ }. K注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。 `& Y( H7 F4 f: R/ D( h
: G2 P/ \+ L6 ]# K- i, g- `
本文件需要用到的txt文件有:
( ~ w2 P; Y& [; R·AutoMagic.txt
- L# s* u2 I& a7 y4 n! D( y·Belt.txt
& ~) G) z T4 S( q/ U2 [& @·Composit.txt
) s" b7 f5 B7 g" k1 s·ItemTypes.txt
* E9 p8 i7 d1 J3 l5 U1 g·Missiles.txt9 n& s9 _8 a6 w4 R! k3 Y. u
·Sound.txt0 h! X6 ^' O/ K( H" O! I
7 Q( N# Q) H) R$ \ E: e0 p( h l
本文件将在以下文件中被引用:
' z* F/ N0 u/ D+ J" S0 h* z·CharStats.txt6 {* X4 O3 Q3 _9 `
·CompCode.txt `) D; m1 B5 ]6 `# h+ T0 u
·CubeMain.txt; Y9 |5 q% v" Q- n# B# M6 w
·SetItems.txt
. I9 @, W. x3 Z- K·UniqueItems.txt
- b( v$ A- _" u3 |·……
" N* b5 f0 n+ A, D2 f
3 W1 ~( _5 c/ m5 ` n1 n8 W各列功能说明如下:# h: E0 @, u' B7 X- G
9 V+ A- N* ~1 xName:物品参考名称,仅作注释用: K0 S- {# K% L' P/ q
4 C1 W6 k$ R% SVersion:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)( _& i* q/ ?& v- b c
: z+ f7 t: i# f% J2 a$ w
Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)6 |2 m1 A7 P: M% _% t, E; p: w
7 M+ ~; k1 |0 J: Y/ f9 H4 k% M3 E2 h
Rarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃)/ y& u3 L& G# t, i1 I- a
+ Y: z/ k* R+ ]9 [
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售3 K* j( z' x4 E; `" q$ U
8 I( |! Y0 y- s" _/ ]
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限& m e8 @- Y# m
8 [1 M1 F: y# c$ G6 R
Absorbs:无用参数,以前的作用与“伤害减少X”类似5 S% Y( c7 X6 }: t5 `
- a- r' }( I" Y3 t% A
Speed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度: q! a. W1 ^% A3 D+ k A
+ Y7 O" w6 X- W( d/ Y$ r; C/ ?; U; U
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2
# G0 z* i- u0 a& s# m# U7 | Q, q5 K* U0 }; X, q- F, p
Levelreq:装备物品所需的最低人物等级
! w6 e6 N/ J- q: q6 V0 M' R0 `* g; L4 ]! ^% ?
Block:格档几率,总的格档几率上限为75%
/ @! y( h/ e. B9 ]1 F- k# Y2 m+ x: ?! L3 q7 w
Durability:基础耐久度,最大值为255,超出范围则循环计数1 G, Z1 [, D; z0 T
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度
* k' _+ i" h+ G! X' J, }假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性
8 m# |6 _1 p$ W& s l) IDurwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。% k) V4 ?6 N, a& `
- J' f, o: f4 ^" yCost:基础价钱
) g' o, c; T3 }/ CGamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用; T' ^) e( y% w7 C) o2 z
, p5 Z9 M0 |1 Y. j' ACode:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件1 ]$ Y$ Z0 `1 X& I- w4 j; c$ F
Namestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称6 b" E/ Y% \2 H: p8 A1 C
注意:如果需要显示空格的话,使用TBL文件是唯一的途径( c$ p! d5 j; \6 b
+ I3 }0 f" j8 i5 c8 ]Normcode:该物品的普通级代码
r2 @# a2 |; KUbercode:该物品的扩展级代码& }; }- M0 |- t' s5 k
Ultracode:该物品的精华级代码
5 [" y; o. U7 ^这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照/ M2 ~/ e1 L1 p4 J- a3 Z: M! t) }- r6 l
举例说明:狮头尖盔(Lion Helm)的属性为 s+ u4 {: l7 K( X, C
·Code = ba7
7 h" `( b5 v- f$ ~·Normcode = ba2: u5 [9 z A6 ~2 d D, m/ R
·Ubercode = ba7
) o0 C ?6 Y- W r·Ultracode = bac
' e% ]. @- J/ {: L3 T! c. D所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用
3 s8 s' n: X5 \' T3 L( v
! R7 q8 u6 _! FLevel:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲; { u S* B1 h8 ?( g S0 Q6 K% F
1 g; S, A4 W& g: q* xMagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级* Z4 [! F+ I) v7 P
c! S# R/ S, `! J, `3 {6 N
Auto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值; q0 \4 R" P: Y6 C( R+ X
/ j* E+ g. L" u1 i7 P* o6 ~5 P2 nAlternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件
- ]" u4 x5 O/ P% L G& E5 s7 ?& E7 w$ ^- x
OpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值! f" r" s& ]+ X6 m( r' O
/ ~9 U+ A* i8 n8 Z7 x0 ASpelloffset:未知参数,仅在Armor.txt中出现
* w) T6 o1 Y8 k+ A( X. Q: W) s6 O1 h: ~2 R, }/ |; D
Component:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:, z1 a, |1 \6 y
0 - HD(Head)头部3 {4 S! i% x' C" U4 X6 m- k8 b: R: a
1 - TR(Torso)躯干
- P% O; Z4 U, ~; w, J( M- X2 - LG(Legs)腿部
+ i! ^& J* w" P3 R3 - RA(Right Arm)右臂0 N$ B1 \% m5 c
4 - LA(Left Arm)左臂 b7 j1 a2 T# a8 c" J7 ?
5 - RH(Right Hand)右手- f0 D7 O- k9 s$ ~, A/ p; j
6 - LH(Left Hand)左手
- |7 k+ _. [! i5 b) a; I) a7 - SH(Shield)盾牌
* ?" c) ~, t2 X j# Y8 - S1(Right Shoulder)右肩) k) O: z3 Q% s' u' K+ H
9 - S2(Left Shoulder)左肩- f% Z- I+ D. _4 Q4 O# z* f
10 - S3(Necro Shield)死灵法师盾牌* C! j: x2 T- P5 k, m% p: g! E
11 - S4(Special 4)特47 V, Y$ R( k. W- c3 p
12 - S5(Special 5)特52 N7 S! v$ _/ e6 {* ^6 m
13 - S6(Special 6)特6+ G3 a0 ^5 j. ^+ T$ }# |; G
14 - S7(Special 7)特74 ^% @$ U/ {9 v+ S. E% d9 N+ _" d
15 - S8(Special 8)特84 s& ?/ E9 |# N
16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
2 w' X1 g1 c3 H7 g5 C: o. T* a+ ~: y) ^2 s
以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度" A! w: [- q0 c$ g- ]
0 = LIT(Light)浅
. _3 S. V* u: M8 _: P1 = MED(Medium)中7 x8 t9 Y. {( {$ m0 [0 h3 l
2 = HVY(Heavy)深
" o5 j$ t0 ^: g' P2 prArm:RA图层(Right Arm)右臂
; c5 c# Z& m* l3 ~7 O4 IlArm:LA图层(Left Arm)左臂
' E# T9 B# B* Y+ y( cTorso:TR图层(Torso)躯干8 b8 m' z. [+ X. f0 J2 g
Legs:LG图层(Legs)腿部
3 R. i1 Y# R2 b) z2 s7 X" drSPad:S1图层(Special 1 – Right Shoulder)右肩
6 h% ]& E+ x* M( \$ u3 ?7 y" DlSPad:S2图层(Special 2 – Left Shoulder)左肩) K2 Q" S1 i6 U8 L" P
例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)
) @- Y* ?2 L8 ]4 W, f" v4 v% G5 g; _ K! r; B/ q1 t, i
以下四列分别是不同情况下程序对物品所调用的DC6文件名称
3 t( [" E7 V' i4 JFlippyfile:物品掉落时的动画文件
# A$ U) K5 X3 oInvfile:物品栏里的图像文件
9 q( u3 ~2 \4 f0 MUniqueinvfile:暗金物品所使用的物品栏图像文件
4 }" d) T0 g9 @% D1 sSetinvfile:套装物品所使用的物品栏图像文件' ?4 U5 X0 U) T4 ~' P& S, `# k
DC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件" P; g* h: G+ o# l, s
$ c" \$ R0 ?- j/ R, B5 U9 g
Invwidth/Invheight:物品在物品栏中占用的宽/高格数. H; y7 k P5 C! x4 O# e! `7 Z
- ~- n9 U h! G L* P以下三列用于描述物品上孔数的属性# X' I) d4 t& ~/ m- K: g
Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔$ a: i2 f0 ?9 f" X0 S
Gemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数
8 l' w/ X3 ~( m k. z另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40
9 {2 J# |+ X6 E& [; k% W例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是23 t1 w' n# P9 o) B# z _ u
Gemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔2 w- P/ `, A' ]7 Y
) }2 e% S- }7 j) O$ k# [Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴
- w: h& w2 Z8 t9 k8 Q0 q# Z注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。 F# Q% B) g7 H" G0 O9 e
: i6 |2 n$ A% K7 W d/ SThrowable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列
/ w, s* {$ d! T
% [, A0 ?- ?1 ~6 h: S( RMissiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列2 L- J! g- K% j
! f( w$ [, L; b, c
Stackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以
3 j" E1 i5 U' c; W: i3 Z5 EMinstack:一堆该物品的最小数量
9 y8 @. _; }) Y0 j8 ]( m4 p# A) A. [. `$ B& OMaxstack:一堆该物品所能拥有的最大数量" g5 N; U% o' W* P( j) ^1 N, B1 u
Qntwarning:警告标志出现的数量临界值
$ o! S" u- s1 H# U当该物品的数量小于等于临界值时,屏幕上将出现警告标志
+ b B' V6 n* j2 G* I9 Z这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)2 h* L* k, X! N8 a o* A* I
^ ^; |5 D% _4 wType/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列. V- D% ^6 r. d
. ^1 V. x7 D9 Y7 e6 v! Q7 b8 Q3 CDropsound:物品掉落时的声音,引自Sound.txt中的Sound列
7 A0 B, M6 q0 DDropsfxframe:物品掉落声音播放的桢数* g: p5 j8 {0 b. s# E
Usesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列. o, T5 J& l) W8 j# Y
+ m+ |7 w/ n; J2 l1 b' u6 q
Quest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC
1 h- Z! V% `2 d! z' t u# |Questdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中
+ F4 N' W, B: e* O" {- o
, V5 i x4 z1 e* _$ W5 ]Unique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
# K1 J' d7 R0 D
3 ~; F2 J) l' A) j3 TTransparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?
2 d/ D- H6 o( X, u/ q7 X X: I0 e4 g# _4 i9 m; ]
Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……
6 ]! |& J0 K% {3 C0 K" _& C
3 o+ U! D% r' Y! v: x/ ?9 NQuivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用/ s2 f$ b6 C$ ?0 E
! b7 c' I* M6 v
Lightradius:无用参数+ U8 ~" f# L8 B+ Q
9 k. |: c) \: `3 s5 t; hBelt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类5 x' H5 {6 S* g0 g' t1 V1 K. ?5 @
0 – 无用/无腰带 – 1行
- p% I2 c B) N9 d0 {: ]8 O: Z1 – 饰带 – 2行
9 V/ M& t# K6 ], E1 @2 – 无用 – 1行6 H7 U6 C1 C2 F. \6 ^5 K5 [$ \
3 – 束带 – 4行! g( A/ b- i @1 e
4 – 轻扣带 – 2行9 e. @+ r" Q6 F6 h$ D
5 – 重扣带 – 3行
6 X/ K( o5 r; B) l2 G4 P6 – 高级腰带 – 4行
3 x7 l3 }6 S( Y" F' ^- W以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带
) e/ [% E& ^6 L% v1 R3 c; N, I6 Q/ tBelt:在Misc.txt中的意义与Armor.txt中完全不同
+ d- T) T" t# y% N5 o, r/ `0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏
" R9 |1 w2 @' g# V) z6 r由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途
+ a* B F- O- p) p7 l
7 X1 O3 F1 ~# A6 K/ wMindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:
) ]0 i5 {1 t& g% _对于盾牌 – 盾击伤害5 @5 ?1 y" z9 b& o/ P- B
对于鞋子 – 踢击伤害# g3 g' o( U- g5 E" P4 K8 E
对于武器 – 单手近战伤害
( x u2 u0 {+ M) c, W. X
- B% A2 P0 }( L/ E$ i7 ZStrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害
9 ]1 d- C, z6 M" S8 E0 I" \% FDexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害( e0 l: @/ i8 }5 [
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成& l3 Y% { s) I7 E) x# y2 h
% c( j6 Q, V4 o; @/ |- [: AGemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑8 P8 `6 L/ ^/ s9 a; k1 S$ `9 G
8 t) u" f+ W- p* S9 C
Bitfield1:主要用于区分不同材质的物品,目前已知的是:: s# U E" v* q& p1 m" B
1 = 皮革制# K$ Q/ r: f# w: m: C7 d
3 = 金属制
0 f1 d8 R% o! t$ L仅有金属制物品可以用来召唤钢铁石魔
. T9 H( K2 @5 m' @( G7 `# \6 j( o
% H7 P2 [& ^! m0 B以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人1 N) v- A Z7 e9 @
VendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃
+ O# @8 H' q7 J' q; q3 uVendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量
) q0 n* M3 q9 M* u. z; t. xVendorMagicLvl:该物品所能获得的最高魔法词缀等级
2 ?& f7 d5 \' i' N: a
0 t( B5 a) Z8 dPermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定8 V n- T' V' m s+ }* s
0 I5 O8 l' F! w9 v/ t- u% Q
Source Art:无用参数' P0 G. |2 i' _9 u% ^* Y( `8 w
Game Art:无用参数
B8 l. n9 k4 k3 N7 O: }7 F
' n/ t! R6 s3 R& ?Transform:有关该物品的动画所使用的颜色
5 W, M, ]9 {9 U0 \" n P" z1 c; O1 WInvTrans:该物品在物品栏中所使用的颜色
9 p3 ~& b( K& ^% j7 d9 _4 C: V. O4 B
& o% }0 N: ~# @. E% m- NSkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样+ Y( v L& q* c) \
- W( T' S; f# u7 t. o+ MNightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变8 q5 q( u, G9 g4 f# t$ H+ \
; n0 x- z# N6 ]1 }7 ~Nameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行
( Z J& n4 P2 F2 }/ r1 f! _ |
|