|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy
* u4 S% h u( W
7 }7 u$ y/ O* O" C: j( S/ L( d前言:7 U# j* i* i- @ T; f: ^5 R( ?
Armor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……
! d% |6 R5 x- z3 m& K1 z" E1 ^6 Y1 m3 E& t5 i- \( H2 n
因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。# l6 M2 V4 R8 ?: n+ [$ V
9 X( @, O+ ^5 @
注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。
+ I5 m0 f$ M0 n, _6 D3 {% J: R! s! v4 I# W3 B* n
本文件需要用到的txt文件有:
2 L0 }+ L3 u& S& u8 N- h·AutoMagic.txt4 _- V0 ^3 ]' [/ I4 K
·Belt.txt
: T' J! N% K2 U0 P, z/ Q* W1 {1 s·Composit.txt6 D( D- D4 y3 C4 a" M2 k" O
·ItemTypes.txt
6 }6 A( I" g6 I" n; B+ S·Missiles.txt5 Z/ c3 K0 S/ z) r7 i* Z& X4 ?+ m
·Sound.txt2 v X& _5 X9 x- L5 ~
( ~. {+ I! k) g/ e9 q
本文件将在以下文件中被引用:( X% _7 C8 r2 R4 r, M
·CharStats.txt3 k0 D5 d1 U3 e/ e! v) j) F
·CompCode.txt
2 o* ~$ n4 q5 w% t2 L* i( s2 q·CubeMain.txt1 H5 R% T+ w. J& M$ C% _( s
·SetItems.txt- C' h) g) P5 e5 j7 P! B
·UniqueItems.txt
6 M; x I1 z% d4 K& k/ U4 F·……3 m$ D; C! d$ C' a: ~4 S
1 t) K& u! i9 @; ~" W) [各列功能说明如下:9 r+ J% x) G4 _8 {% p; V; l
. A, n; a% @5 c: ^Name:物品参考名称,仅作注释用' G0 |2 T5 A, T, x
7 w, D# W$ Y5 m+ \6 L6 a, F
Version:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)
* |. H2 I. o N$ k2 z' y, w9 | p; h! P) n4 {
Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)5 M' a! H' X/ t, i
9 u: o( O* H& B5 @& w# YRarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃)
. m% H- @) B4 O( `! q5 G N: f& k0 w0 M" p
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售
1 G: v* U8 r, @( Y9 B! a& I+ c! U. r# u' }6 l0 u* T4 a+ a6 `
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限
2 e3 C) S& z/ Q8 J* X
- |7 u P2 n. h' }0 W' X, qAbsorbs:无用参数,以前的作用与“伤害减少X”类似3 n3 D. C% G( F& d3 n6 f+ [
0 }# j) ~5 f9 N% o4 f9 E- T
Speed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度
2 n* i# h* M4 o) S1 P$ C4 B$ \" |8 ?3 e9 D- S9 T V
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2+ t/ }% X4 r9 g/ |* r$ @# B5 H
. _$ u% K$ z7 t) `6 H4 g2 b
Levelreq:装备物品所需的最低人物等级7 r+ a0 Y/ z7 c( I3 n
7 f3 |9 K8 X- p2 l" y% h4 f: A$ k) kBlock:格档几率,总的格档几率上限为75%. E: X- t* E. }3 F1 _; K3 C
3 |& Q. p- w9 n/ s8 _
Durability:基础耐久度,最大值为255,超出范围则循环计数( a$ b1 M( d$ ?5 r
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度1 i% Q, v0 P* W0 A; W
假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性2 {7 }. ~0 u2 [: q* G$ N9 E% A
Durwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。
. K# f6 [0 G; S# n( |- d5 }& M$ H% Y f+ l( I
Cost:基础价钱
; o; r4 q. |4 X2 n C/ q! N# PGamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用
: X* _) U$ A. @ D7 }; X- a: B- B6 E! L9 ?
Code:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件- n9 A- m4 G- A. w; v( H
Namestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称3 s9 T: S8 r0 g6 W
注意:如果需要显示空格的话,使用TBL文件是唯一的途径- Z- M; k4 \# p- t. }% q* P; F: I5 c: z
/ P1 C; e1 e; G2 U4 G8 uNormcode:该物品的普通级代码' Z' y# n' L$ d: _( }5 N2 r: j: z6 r
Ubercode:该物品的扩展级代码
$ O) q' P6 x9 B/ A' M& P) q2 MUltracode:该物品的精华级代码5 y" @$ v& g8 H3 [& v$ b g
这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照5 y. C; b# V U- S8 i
举例说明:狮头尖盔(Lion Helm)的属性为0 S. Q; F& F. W& R C
·Code = ba7
( H/ F8 B9 S/ r/ f$ }; e·Normcode = ba24 f8 C7 X z6 r' M' `* f
·Ubercode = ba7
; }# G, ? N1 V5 c·Ultracode = bac
& U) ]9 W9 v% v; Y( [6 Y9 M所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用! {. P$ y' u! i3 B: |
" ?9 ^5 k' e. B1 l9 x$ }7 V! rLevel:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲
# f% a5 y2 E1 t7 R$ h& Y0 {
/ N5 d( P# J' @" r1 FMagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级' d2 x* m6 Y E; |, `' w; C
1 C1 B8 B! B" D3 F& qAuto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值* Q' a! u( D8 [- u {
0 R1 g7 c& e9 a8 j! ]+ EAlternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件' c1 n/ Z: ~$ K0 p9 W2 t6 l7 H
5 V- q$ {% ?# y/ G: [
OpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值& A. i! \1 ]3 A
3 z: w: A, U# ^, \7 b8 p) L7 jSpelloffset:未知参数,仅在Armor.txt中出现
+ A# \2 D. q7 J* ]# W, B$ p
" \. Q6 l4 I) J4 V4 Y9 pComponent:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:& u. Q/ T8 R1 N
0 - HD(Head)头部
9 ~5 a8 j. l+ `/ k) O- T5 k* R% L1 - TR(Torso)躯干
1 d$ t8 ~% C' L( B% G0 ]3 T2 - LG(Legs)腿部) ?" v" D( G9 Y/ d. M
3 - RA(Right Arm)右臂" g0 |5 j/ k% K
4 - LA(Left Arm)左臂
) W4 t0 \; W. q( p$ Z3 ^5 - RH(Right Hand)右手2 U; e9 Z- M5 y
6 - LH(Left Hand)左手- z) _+ R( e! R0 ]- O
7 - SH(Shield)盾牌& P- B* n, F4 w( ^& u3 l9 \
8 - S1(Right Shoulder)右肩1 `* R$ q9 `, e# {1 d
9 - S2(Left Shoulder)左肩" e" g) H7 p G4 A& O
10 - S3(Necro Shield)死灵法师盾牌
5 }6 t# v. C5 f$ z! W- v1 ~11 - S4(Special 4)特47 M( k" A% o# j1 E
12 - S5(Special 5)特5 i0 \% t# V3 D# ?
13 - S6(Special 6)特6+ w' M8 X, I# }$ z: F
14 - S7(Special 7)特7
6 C1 r4 h7 k* Y15 - S8(Special 8)特8
, y/ k8 F* c! |* F# p3 m2 n8 C* {16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
4 h! h* ]+ {8 v- f: c' Z3 x4 J$ z8 u) E' y6 n
以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度9 s2 [$ f- G x- J% P; P5 { u1 I- |
0 = LIT(Light)浅
9 w$ T% u2 t7 @1 = MED(Medium)中
9 E/ r m- Y1 G9 M7 I$ [2 = HVY(Heavy)深; W& p. W! M2 s
rArm:RA图层(Right Arm)右臂
2 b2 x/ d9 C' p( F" XlArm:LA图层(Left Arm)左臂
3 c4 w# i5 _$ n! @! ]4 j2 q/ `$ eTorso:TR图层(Torso)躯干
( ^. b6 x3 P" LLegs:LG图层(Legs)腿部. J6 F, Y6 W: e9 r2 R6 C4 [. ^1 E
rSPad:S1图层(Special 1 – Right Shoulder)右肩- A2 Q, n! W* l
lSPad:S2图层(Special 2 – Left Shoulder)左肩
; A+ A4 J7 o- {: z a2 O/ w5 G5 X" @例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)
7 f6 X7 g, |1 p+ G! O" m
5 {) Y) @7 p# k以下四列分别是不同情况下程序对物品所调用的DC6文件名称& i" A5 X6 w: W
Flippyfile:物品掉落时的动画文件
. _5 D% J, m2 jInvfile:物品栏里的图像文件
2 k! G9 k7 B2 @" D4 t3 i8 DUniqueinvfile:暗金物品所使用的物品栏图像文件
* c8 w4 s$ s* m4 G, OSetinvfile:套装物品所使用的物品栏图像文件
' S8 J& S. v# A, ^, C7 u7 x& M# U. }DC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件" s" ^8 ~( S0 F) _% Z
6 C3 e3 U1 |7 U
Invwidth/Invheight:物品在物品栏中占用的宽/高格数
! g. a2 [0 |( ^0 D* h* C+ [2 f, e' S2 v1 Y3 v9 W1 _
以下三列用于描述物品上孔数的属性
" G& t3 }; b4 W- a2 O _Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔
& _6 u {* i) Z4 U6 Z5 GGemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数
, S; f* k$ L4 y6 ?. R另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40! T" c- o B. d7 ~# C8 e
例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是2) q {1 E1 [- L
Gemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔8 ]! H9 _9 N* T# N! N
, N6 p9 A0 D) W6 h
Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴
, w' y3 q. J1 {0 r+ y! p! A) M注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。, t1 I: g0 L, l4 ` l2 A; y2 h
9 Q8 J, }4 e) g k8 g0 {( Y
Throwable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列6 [" b2 W0 _9 |( d% z% ?( c
) t' }: N1 |! |8 A7 \' A, NMissiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列
" y) m* h4 Q, S; C: {& T- d% r z y! B* r
Stackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以
! d" @( ~2 j$ BMinstack:一堆该物品的最小数量' E, e6 J% @0 T
Maxstack:一堆该物品所能拥有的最大数量6 V6 ^1 G5 [* E9 c: P" ~
Qntwarning:警告标志出现的数量临界值( y: [+ J3 _0 Q- u
当该物品的数量小于等于临界值时,屏幕上将出现警告标志( b7 B. v' W, l& N3 w9 v5 H& W* @4 _
这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)' x/ n! i2 @3 d% K# {! `- b- I* R) R
& N0 m: ^: z& S A2 cType/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列
; W+ t* v. N9 f0 K/ |
$ o6 y2 q8 \4 d; \ L: tDropsound:物品掉落时的声音,引自Sound.txt中的Sound列
+ c9 @" l2 B8 D# lDropsfxframe:物品掉落声音播放的桢数
' f) e; C0 }- K0 U1 o/ V( n& X0 DUsesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列
% w3 @; y- b/ @
g- `# ]; I7 c. p3 X( jQuest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC
: {! |1 ~* W- \1 ^Questdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中7 P* a% Z/ m/ q7 E) _; r: ~
: ?9 o+ Z; J! ?! R xUnique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
0 W6 m( `3 X4 J0 m' G
" S7 B1 l4 R7 iTransparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?
% ?/ x! ~5 D U$ U2 W1 z/ u1 W( G% Q: h' @9 e5 I8 ^6 ]: ~
Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……9 \( ?. ]8 M1 y1 o8 z
F: t2 v( {! F; Q- EQuivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用
3 c6 T8 ^ g- A! z
; m" }/ @: X4 I, b# nLightradius:无用参数$ N1 {/ w' b( n$ q0 i8 Z) B
- P6 b4 q: l$ F
Belt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类7 d/ N. i7 ~1 V, z t
0 – 无用/无腰带 – 1行/ Z) N% ~) l2 O7 d; P* D1 @
1 – 饰带 – 2行; g9 i4 Z6 w: O8 H' i# \+ s1 g
2 – 无用 – 1行0 r6 h% t k: r6 g0 b3 _2 X
3 – 束带 – 4行6 W, H; y5 B+ t8 {. z+ P
4 – 轻扣带 – 2行
3 R# b# x- ~- \( H2 |. j5 – 重扣带 – 3行
1 d6 x4 @$ ^; p) e" O/ J6 – 高级腰带 – 4行# k, @0 _) A. w' s/ I/ h
以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带' [! Q2 q' H! j9 \4 L+ |$ H
Belt:在Misc.txt中的意义与Armor.txt中完全不同
0 w0 b* A% q( Q# \ v" v0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏
: q1 W3 ]3 P) R+ Y: I由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途, ^; h4 B5 B* o0 |8 D, S
$ W' I/ {+ ^! |9 G( q- |Mindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:# ?' l0 ]) `- G5 `+ b/ c4 M, ]
对于盾牌 – 盾击伤害
% R. C7 F: S; t" @0 ~$ I/ ^对于鞋子 – 踢击伤害1 r" V- C0 A* o0 H) X
对于武器 – 单手近战伤害
1 M- j& p, w; N8 _1 B: j' f( e5 i3 u# L: x# |
StrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害
# \( {1 F( C. X- ~+ S3 ODexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害" {) C0 h$ d8 w; N4 U b1 Y3 l8 G/ B
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成
# Z! E6 K: r% k* d" m% k2 B( p
7 G' B2 m7 K) q7 |" x# Y' ]$ a: c: NGemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑
9 e/ h. ?$ G* o) f+ t1 n/ {$ l$ u- B
Bitfield1:主要用于区分不同材质的物品,目前已知的是:
; |7 ^* T/ V: R/ o' M/ K9 a1 = 皮革制
) m j6 Z8 T7 y; `# `# k3 L3 [3 = 金属制
/ m( O) _ x9 f' N, c& J! O仅有金属制物品可以用来召唤钢铁石魔
* k; B* [2 d. N$ [
) I4 J$ Y- V5 q: I" k1 Q' _" b1 i# T以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人
" D* ~! [" w+ |! x( v2 i; X, b& XVendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃. V( I E! W; |' O; T3 }
VendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量9 J, ]6 Z* S7 |6 P) Y1 g
VendorMagicLvl:该物品所能获得的最高魔法词缀等级+ ], G0 j. ]4 G: P% }& e: S0 V
; O5 f3 Q7 ]! I& ]' ~3 fPermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定, _, o0 S6 b: M4 ]
8 g; T5 q5 b3 F) @. `# h1 e) R
Source Art:无用参数0 P1 G8 T, H* p2 f. e# x+ z
Game Art:无用参数
8 D0 {7 C" j& g% R& m
. e9 F) v7 H- n* B V' r5 X. FTransform:有关该物品的动画所使用的颜色
+ C+ q- Y0 ?3 T) O3 O' n. T5 U& zInvTrans:该物品在物品栏中所使用的颜色3 _3 m; P3 W. y5 [) p! c
& T$ M8 n8 U( h4 ~1 y
SkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样( H5 u! S g8 h! D( ?0 M% ]& m+ a
4 C' g' p5 |# d* ?6 cNightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变' d L5 G! ~. s
% n6 f9 l+ @6 ~8 c/ T8 V
Nameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行
6 y5 e6 ?$ Q4 ^! t |
|