|
|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy3 E( ~( w. f8 h" X" v
; f) e7 d g7 N; }前言:
4 m! `. G. X; YArmor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……" W% M( m: Z1 g* v5 ~! X
& F' c3 n7 M0 p因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。
( N5 w& r0 ?" F+ p, u
0 q1 ]* |3 E8 m+ B- H+ c& i: L注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。
8 A( A/ Q K8 e! [
+ p! J, J6 M2 q; B6 { X本文件需要用到的txt文件有:1 N7 p( g( b/ u; }1 ]6 f
·AutoMagic.txt
- s& |0 F% r& H2 ^5 c8 y·Belt.txt8 B0 q" f2 V$ C/ d
·Composit.txt- ^% [* ?0 W$ I, r2 z5 q# O+ F
·ItemTypes.txt+ p" G- ~3 S/ O- n- e/ J
·Missiles.txt! V, o$ A5 x; j
·Sound.txt
% q3 Q1 Y: V; T
* A @0 H3 C! ?: S4 ]* k本文件将在以下文件中被引用:0 I' z- K8 Z I' h; _
·CharStats.txt
6 f: J# n6 G- W3 q' ]7 O" Y·CompCode.txt
4 J8 u( X0 P( I C4 }3 b·CubeMain.txt
5 e' V* K% L; U3 i% H3 e* {" `·SetItems.txt. q* V) s& R" k& W [% x/ `4 C
·UniqueItems.txt& P3 S" E }- T* C2 o6 @6 Y2 ~
·……7 K! s* S9 s! r& P
# W* T% D4 N3 e7 k& O' l
各列功能说明如下:3 }5 c( h* L6 E& t3 w! T
& G* M9 Y2 Z0 r, O: s
Name:物品参考名称,仅作注释用
6 L8 s* E! D- J$ j* b0 e7 x
6 Q) |/ @$ L( Z/ i# F# r; XVersion:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)
3 [, ~/ }! ~, Q0 E' r
" V- G: u0 b% h5 H2 \; n8 P; eCompactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)$ s$ H7 R) h+ W3 N/ F
. M- ~! B6 P2 q3 |Rarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃)
# z2 K' I9 a6 O- U# K4 n \( V% Q2 p9 r7 w7 b8 v& \
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售
) c, V6 W, x( Y8 t/ A) g- W* Z0 ^9 j; u
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限# @- g2 U. }# ?6 {' d/ m3 M
, ~; u* U" A& @& k; v* OAbsorbs:无用参数,以前的作用与“伤害减少X”类似3 p& R% [! L) j# d1 r) j: f3 [7 d
3 e! j& e2 ^1 a( ]% B* i. _1 e5 S
Speed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度
* m: r, |- M; n$ I4 I4 k" h7 Z# b) e7 J4 Z
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2
% H+ k& S0 Y0 E2 c( w$ B3 \4 U7 _5 X/ R( o! y6 P9 [
Levelreq:装备物品所需的最低人物等级
6 R' l( Y! o3 T8 G1 J2 z" S
4 b+ [/ ~& W* x+ t J' u! d% lBlock:格档几率,总的格档几率上限为75%
- S/ n4 l: m+ n1 k+ Z3 j& t( v x1 S- u
Durability:基础耐久度,最大值为255,超出范围则循环计数* f @3 N$ u& J
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度
( ^* n; _- }- |' U* j- P+ V假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性
2 ]. i K/ @9 Y/ A* @/ `Durwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。
% J6 @% f W6 W5 E! {7 x' _8 W: V+ T9 M& a' C" Y
Cost:基础价钱5 ~+ }4 m; M* V& E" ^4 t1 A
Gamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用3 M, Y) B2 w( k, I6 R" i; N: S
3 ?: p+ _8 |& ]% r
Code:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件
/ R# X4 R; f% Y& K+ u" r7 QNamestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称
_, ]3 _. Z. [9 u! h" ^注意:如果需要显示空格的话,使用TBL文件是唯一的途径
8 f) D& L% j# Z, b2 u" r4 M/ [9 K! C5 t
Normcode:该物品的普通级代码
" W3 r: j5 S2 w( E& sUbercode:该物品的扩展级代码
" F: V% i8 h; ]) \$ v& [0 C( l$ LUltracode:该物品的精华级代码1 ^) ]1 Z; h/ o4 u3 \
这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照5 v) z# j0 D& {( L0 w
举例说明:狮头尖盔(Lion Helm)的属性为$ l% X0 P8 `0 i7 R: J
·Code = ba73 D2 S- [9 ?+ g0 J" D4 R+ J
·Normcode = ba2
* v! a+ X6 h/ ^·Ubercode = ba71 z9 `+ G; ~( _/ n( ^1 v5 ^0 b* i" `
·Ultracode = bac: Q; S( K. ?9 S
所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用) }) a0 D0 }, o5 J1 F. R! V9 W4 \
1 m1 t7 n! Z6 @( e: N% A: QLevel:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲
8 f3 E8 x: m9 z3 C
3 t, h7 d9 ]) z7 wMagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级
* q4 }; J, n/ Q* z& G
2 I# m4 c( @( v$ g4 I- k5 T# EAuto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值3 B. x& \ @" J% I
6 Z! j( J/ J& E! P' }' \8 qAlternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件
- z& v/ U/ H2 M9 u$ k/ M7 k3 `% l& Y
OpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值
" |+ w& c [: T7 {$ y+ Q0 }
7 B& R! O. ?8 w) O. @Spelloffset:未知参数,仅在Armor.txt中出现
0 b0 h: W0 [! v ], D
7 j6 a' c( j* J) }. { H0 c6 x3 p! rComponent:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:! O p+ |8 y A" |+ f- V+ T6 X
0 - HD(Head)头部) c. I2 V9 b9 z" Z2 M4 W
1 - TR(Torso)躯干* M& Q0 I# {( z- r) q6 s5 D
2 - LG(Legs)腿部* g; e8 S8 [# I( u7 M' {; t
3 - RA(Right Arm)右臂+ {1 G( N$ [: u
4 - LA(Left Arm)左臂9 ?5 @" v- \9 ^
5 - RH(Right Hand)右手
& v7 l4 h( z& @2 z1 Z6 - LH(Left Hand)左手( O5 E$ E8 h Z1 k
7 - SH(Shield)盾牌
" D; T. m' J& B- S* V$ l" ]% E4 U8 - S1(Right Shoulder)右肩" p8 K3 ]$ ~) Z5 f$ A( j) @
9 - S2(Left Shoulder)左肩
3 S/ Y7 {6 Q" P, _8 d10 - S3(Necro Shield)死灵法师盾牌
9 e4 {9 M( P0 _11 - S4(Special 4)特4
, N& f; M9 r [( e: g. p12 - S5(Special 5)特5
' v% A. T6 N r; R+ R6 X* U13 - S6(Special 6)特6
, K9 \2 f! M4 B14 - S7(Special 7)特7
1 {- b; H- _3 i+ M$ \3 V8 s6 |15 - S8(Special 8)特8
]$ {. ?0 b5 u! Y1 P( ^* z$ Q16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
, Y- I& [8 K/ C$ p& v q
, E) W- z1 P6 Z/ j以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度
' i% g( l2 f5 O/ O) U: }0 = LIT(Light)浅
. l+ e; _ n# z2 k1 = MED(Medium)中
8 a1 h- C# [0 s! e/ l2 = HVY(Heavy)深: x Z3 h& }, ?7 n
rArm:RA图层(Right Arm)右臂- X' E% R3 |+ W, K: X
lArm:LA图层(Left Arm)左臂& O& S4 i. a- o# L1 }+ N
Torso:TR图层(Torso)躯干
, }! v# u/ ^1 U6 I) a) ^0 P& qLegs:LG图层(Legs)腿部
4 i' U! [) O5 `$ LrSPad:S1图层(Special 1 – Right Shoulder)右肩 ?; I. b- n9 |, Z' A2 m: u
lSPad:S2图层(Special 2 – Left Shoulder)左肩' O8 o! d6 ^5 t
例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)0 Z* ~& b" S9 N4 W4 k
{" i; R* c R* s9 b2 y- g
以下四列分别是不同情况下程序对物品所调用的DC6文件名称
Y& [1 l4 _7 V7 A9 s9 e, jFlippyfile:物品掉落时的动画文件
: N; y3 K4 Z+ MInvfile:物品栏里的图像文件
- ~/ |0 D% @, h5 `Uniqueinvfile:暗金物品所使用的物品栏图像文件
5 i) h9 g5 q L7 S1 mSetinvfile:套装物品所使用的物品栏图像文件2 A7 d9 N# m& r! [0 W
DC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件
, ~* @% O- W0 z' l! P; i4 j% G# C; }/ m! b) _
Invwidth/Invheight:物品在物品栏中占用的宽/高格数: e+ ^! Z& ~. n5 U
. u6 U( \* s3 C s+ p5 d. B+ O
以下三列用于描述物品上孔数的属性
$ a/ F0 |7 ^ Z8 ?( s GHasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔
1 G" ~: Y' D2 EGemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数
: n% i$ ~9 X* h另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40
" A; c; n* w. {例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是2
% F% v; v' t' ]Gemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔' @! T, U# h) g3 z: ?
, ?4 T2 D6 _. R6 ?7 m/ F) `& z, |
Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴
# s; v8 N; p9 T注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。 E2 n5 N* \- B9 h V9 ?; S8 ~% r: g
0 o1 z( ]; W" LThrowable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列
/ O+ ?; @; W+ {" o# A$ m9 g
) I: z: X' v2 w5 j7 t; {Missiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列- c& L' A# R+ M n1 Y1 |% m( E6 \+ L
' R) O& \* l; N1 T
Stackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以1 G" H3 L& J8 F- _9 M
Minstack:一堆该物品的最小数量
8 J# |7 o7 w1 B/ D3 UMaxstack:一堆该物品所能拥有的最大数量
* ]' f; ~# H2 v- I( T; R8 XQntwarning:警告标志出现的数量临界值1 ]1 o8 H1 l* e$ Y6 ]$ m) N% e
当该物品的数量小于等于临界值时,屏幕上将出现警告标志6 x! P( {5 q$ v
这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)
) f% I) x) U0 I1 j2 q ^( V1 f/ p( r8 Z/ ~3 c, k
Type/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列6 c7 m4 b* J) }0 ~5 S O# x X$ ~. F
6 f" o8 h1 B/ `3 LDropsound:物品掉落时的声音,引自Sound.txt中的Sound列
3 T8 b$ Z/ e. K2 w6 |Dropsfxframe:物品掉落声音播放的桢数
* t3 i: g& f! O% ^+ ^Usesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列, `! {0 g1 u/ r$ J! W7 a7 p$ Y
" I) \4 k* _, S! e
Quest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC5 Y" |, b& K2 F! A9 y
Questdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中
* C! h1 W1 d$ V. v$ V' S" p/ t; u; i4 K, ]" O, P
Unique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
% j+ M* Y8 U4 H4 V5 }' U; D: _. ?1 n2 \& W) H0 U, ^2 u5 r
Transparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?2 N; o" D* Q8 l5 n
( `: d3 q2 @* ~ d3 @Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……* r0 v- U/ J1 u( @- Y
; G9 S2 R/ t, B, o/ wQuivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用
" }. @0 Z* \" F, p Y# J$ }( U: w3 t. K* Z/ \6 N
Lightradius:无用参数! p7 S: X. w7 |
y& m) p& Z. Z# ]* f) g% F
Belt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类
9 U q4 ^/ `! }2 C9 Y0 – 无用/无腰带 – 1行
/ n% a: x% \+ Q1 – 饰带 – 2行 C# z) g, s: } S1 U
2 – 无用 – 1行
* @; i1 T) I! I: x1 V, L3 – 束带 – 4行9 k1 z) b5 G0 H: R7 i: u* i) n
4 – 轻扣带 – 2行$ L: x& V% q; l. D! _
5 – 重扣带 – 3行" l2 q" {9 |6 I. f
6 – 高级腰带 – 4行5 ~' Y, u: w; @6 l
以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带
9 @! y8 V8 v( Z0 k x: l* g' J- XBelt:在Misc.txt中的意义与Armor.txt中完全不同
' n4 _- z( N6 ^3 B: B# t0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏
) R6 b2 F( `7 w- ~5 {4 M# l% _由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途; ~4 T" j) S/ q n" I. v0 I! q5 u
) f' I5 o6 K( ~8 Q' AMindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:$ J9 y. v( m$ ~( _1 ^0 V: [
对于盾牌 – 盾击伤害
. @/ e( D* i6 V/ Z+ |对于鞋子 – 踢击伤害$ N1 q; L# q; V4 t/ d/ a" O
对于武器 – 单手近战伤害' d/ q# X$ Y0 B& J7 A
1 [. v, W, ^0 h% f4 W
StrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害
! Y4 P- G& z W8 iDexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害, H5 U% d/ M4 S* A
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成
; u& R. u4 G/ ~2 [
?. e5 C2 Y% P2 B8 T- yGemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑* r4 j$ ~9 e5 y& e! c* F
) c- w. }+ G% O0 e* T Y/ wBitfield1:主要用于区分不同材质的物品,目前已知的是:
+ e; b* ?$ M6 T/ @1 = 皮革制
) n+ V' e# M2 g. Q+ q( r! H3 = 金属制* o/ O8 i8 q/ E6 F. G
仅有金属制物品可以用来召唤钢铁石魔# F0 A& M2 v/ ?- L
/ o- W& |& l* B5 G, X6 a+ X# M3 }
以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人 P. |$ b8 g. p& p$ o* Q* n
VendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃' z1 s4 L! k# v
VendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量
0 Z Y! h0 M- [VendorMagicLvl:该物品所能获得的最高魔法词缀等级
. w5 N7 D" x) @, k# Q6 F! l( m) U3 J8 X
PermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定
$ X5 Y' U9 V' P9 T
) a- e( _8 A! y! m! U2 QSource Art:无用参数
- p$ q; _% ?, Y6 dGame Art:无用参数
- t5 _6 R6 X9 P2 y8 D! J" F7 f. O/ q9 G4 X1 P3 x
Transform:有关该物品的动画所使用的颜色
' b1 p/ N+ z0 j0 F$ X% P/ @; h# c4 ]InvTrans:该物品在物品栏中所使用的颜色' Y& M( v0 G( I+ y; O* W
" A& B- i/ U* v6 VSkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样
' ?/ R' E0 ^! }' n! X/ p9 G) v. o$ o) }4 C
NightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变
- c1 t" j# |4 O+ C" n3 W4 |$ W1 g# X) C) |
Nameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行" ?/ R1 u$ D& u( z2 D6 f
|
|