|
|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy
: D3 q/ R% W o: D1 K, k8 l2 U6 |/ p; D" j0 n
前言:# a! d* @- ?9 `% Y7 c1 i
Armor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……- ^ Y$ Q( Z! @( X/ C/ i2 |# S _
5 w5 [; y, X& R, R$ u5 Q因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。
$ K V* W3 Q* J( j* U
+ C7 C$ G( [/ W' w% I0 V注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。; v2 c# P9 k6 B0 j
2 ], M, O8 ]& L' l本文件需要用到的txt文件有:
! c! J x2 Y. d" a·AutoMagic.txt
6 c* I7 q' K4 f) R9 i% a' m6 o·Belt.txt5 O' V( j t5 c# V
·Composit.txt
) ` ^1 S' A( j·ItemTypes.txt. c# O& \7 l2 B+ W
·Missiles.txt9 e% Y( F7 `) c; Y( B: [' j4 C
·Sound.txt
+ m1 s* O# |. F' @8 b+ l. V) Q* F: a
本文件将在以下文件中被引用:: o2 M- e6 g! ^: {0 B2 X
·CharStats.txt
; ~, {" q( s1 `2 F1 O1 Q·CompCode.txt4 _, F' R L* J- N# |
·CubeMain.txt
& _, O" s7 R6 K·SetItems.txt
3 S2 b, {& R7 n. v·UniqueItems.txt4 M$ ?$ R* e' C$ }! m5 {6 F
·……" Y+ n1 f! I* P; I& e/ W
4 ~, M9 L( d& x- _
各列功能说明如下:* f, c# u! C5 {6 \- @* Y
# {: m) g, t0 B/ q% x+ p
Name:物品参考名称,仅作注释用
: g, h A- i3 a! ~4 ]$ V' K& k( K2 @4 {" {$ o! `1 K8 c
Version:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)+ G1 \, F& v9 w4 J0 C2 r# I
. k, u! D# V; l3 L
Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)
q. L. }# G3 r: j. @
8 U) D! U3 S, C y5 `Rarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃)+ F# U! X# |, r$ w
! M. L' _7 A: o) S! k
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售- p- X0 [. u, |4 k6 ]
0 B" F$ V1 U8 U! s
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限( s% w7 x$ q- M* ^/ V
! R1 O" N8 x3 n. k- K) _" y$ M
Absorbs:无用参数,以前的作用与“伤害减少X”类似
* E4 x7 E; u- A) b; Z3 n! V
$ o8 S, w+ m! WSpeed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度
# e# s5 n6 P9 s3 H9 W; ^2 I& U* p8 U
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2
( E5 h) B/ m+ S ], D6 y& O( d. Z3 d7 a- q
Levelreq:装备物品所需的最低人物等级
1 z6 m( `! `2 _6 [* e V/ ?# u$ e1 P2 M0 {4 T
Block:格档几率,总的格档几率上限为75%8 ~/ g0 o" Q% ^
0 S4 Q+ E1 T3 _, e9 FDurability:基础耐久度,最大值为255,超出范围则循环计数( E! |! W- T1 H( O
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度
/ Q) U4 ?* ]' U% l8 B3 F' y假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性1 i: e4 }9 E3 t; L2 Q5 @, m& l
Durwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。+ \+ o9 O `' L* o2 b* V) O6 v
% x5 s2 M" U2 G" Q
Cost:基础价钱) W2 P; M# y" W0 |. f" Z v
Gamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用/ ?$ ]1 Z* g' ^9 ?% E- y3 z' W
. l7 G6 t( c: K, u0 Q& ]Code:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件
" D3 _: ^# K) I) M. _% B/ u9 P4 @1 ]Namestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称3 a' H7 J7 S, a/ y0 W1 `
注意:如果需要显示空格的话,使用TBL文件是唯一的途径. M. @, c) c! T4 A/ ^4 H/ u
: T ?3 g/ u) S. U* JNormcode:该物品的普通级代码
8 C* X" U2 U( i( f/ C4 {7 yUbercode:该物品的扩展级代码/ w8 U9 p8 v2 p1 d
Ultracode:该物品的精华级代码
, z4 o5 m" v5 O5 J# \* f2 |这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照) m1 x3 L3 [6 W9 M) {
举例说明:狮头尖盔(Lion Helm)的属性为8 g/ ?2 @3 u8 h6 g
·Code = ba7
/ J1 V. r. Z4 \9 [; y·Normcode = ba2
' j; t0 E- Z( R& ~6 U# o. Q) Y2 a0 ?·Ubercode = ba7 v. S# V6 \% M4 t! V' M. k; q' C
·Ultracode = bac7 ^* [) Q. {6 P" |6 n3 g! k
所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用( f3 x, A& @; t, f0 l( P
2 B: [2 n6 {" m" P$ P+ p2 @Level:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲% o! M* s4 V% O6 I5 P
4 G! C' D. A% {( B! f9 I# _
MagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级
/ E( m" |6 K! x& W4 ^0 m9 D
/ P7 u, {& a7 x7 ~+ aAuto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值
- N& B. Q0 ~0 ^' i2 C4 \
d7 m! K1 f2 A# RAlternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件# \6 f' b' m+ h+ l3 o! u1 l1 S9 A8 R
8 N+ h! Z& t; u! F, f( [
OpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值8 N) b$ J b+ T! H* ]2 S
& _5 B; Y# R' ~
Spelloffset:未知参数,仅在Armor.txt中出现2 { ^# F7 t! n+ h
5 @8 g: f9 {0 g! w* Q8 uComponent:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:
2 N; d v4 q, b. U# @6 G, ^" ^0 - HD(Head)头部& ~5 m; c; `8 V% m$ ~0 E! o
1 - TR(Torso)躯干: s: d$ F7 Z3 R/ p5 H2 R1 M) q
2 - LG(Legs)腿部; x% Q3 Z; C7 L
3 - RA(Right Arm)右臂
9 ^3 `6 G/ E }: C9 M- b4 - LA(Left Arm)左臂8 r. _6 [& U% T3 ~# d" Z" I& L
5 - RH(Right Hand)右手
- P& N6 R N$ t; E6 - LH(Left Hand)左手
. i9 h' D- U- f; x8 X# H1 o7 - SH(Shield)盾牌
" S$ h7 |9 ]0 f) I+ R! b+ p8 - S1(Right Shoulder)右肩) H$ C8 v% ~4 q# r8 q+ C. m2 m- X$ s
9 - S2(Left Shoulder)左肩2 N! ]. I7 w1 g& U
10 - S3(Necro Shield)死灵法师盾牌4 ^( t" t% M h- _
11 - S4(Special 4)特4
9 J# ~& G9 n9 p6 T; V12 - S5(Special 5)特5- A {6 W3 ~; p6 {, F
13 - S6(Special 6)特62 [" T2 b+ } H% O) \( ^: A. T
14 - S7(Special 7)特7
" B9 c9 G. a! F15 - S8(Special 8)特8
8 X* T' g' F- Q! {16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
" |$ s% x+ o e
5 w) z/ N; U, o& B3 K B以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度
, t+ s: K( P$ l/ b0 = LIT(Light)浅2 x; S% s, w2 z2 q% V
1 = MED(Medium)中
* X5 B! B; T2 u$ w0 U2 = HVY(Heavy)深0 x$ J2 S. a& @* F
rArm:RA图层(Right Arm)右臂
' W1 {- T" y: i: ?lArm:LA图层(Left Arm)左臂" d% N. F) f& F; c F& p; ?
Torso:TR图层(Torso)躯干1 s$ Q, c5 U; {4 N% e, z* O# Q M
Legs:LG图层(Legs)腿部3 D& G! \$ c7 U3 Q) ]5 l- R
rSPad:S1图层(Special 1 – Right Shoulder)右肩' [ b4 s8 C' Q
lSPad:S2图层(Special 2 – Left Shoulder)左肩
' U5 Z/ D$ j5 M; f7 X* `例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)0 J+ q- X5 R' ~1 X- @4 T
/ Z a; q `% H
以下四列分别是不同情况下程序对物品所调用的DC6文件名称2 [' E u4 K4 U, x7 W+ ~
Flippyfile:物品掉落时的动画文件
; X- v6 c7 J0 ?# |Invfile:物品栏里的图像文件2 I. G, e5 `$ m% D5 K) c" S/ c
Uniqueinvfile:暗金物品所使用的物品栏图像文件
% b2 ]- ]/ H: f* BSetinvfile:套装物品所使用的物品栏图像文件
/ D* h& A& V5 M; |$ i4 ^2 Z9 nDC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件
N9 \' r8 V7 Y. U* Q( S6 D& K. S7 P2 t2 K- B. }8 d% b& f
Invwidth/Invheight:物品在物品栏中占用的宽/高格数
" c% a" O! C$ ]2 m+ m" ~
$ t8 B% ~& T- v以下三列用于描述物品上孔数的属性' |3 M( T% l7 I
Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔
% W4 k9 H& Z4 L+ L+ v6 y& ]Gemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数! d9 C. X: l u M+ o. b
另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40' h, B# H1 V0 u
例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是2% N* o- o/ P1 |6 W V+ u+ t
Gemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔
2 S. y# h7 s9 Y( q* M3 h" u2 y7 q" @$ G0 o! b! E
Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴
# h9 _: h8 f% w& m注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。% M3 K* o3 o- i4 e
9 f$ }9 q4 [1 [* Q7 ~# M2 zThrowable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列
: K' Y# [ z# l$ ?
* v) o6 F1 @1 Y( R/ }/ TMissiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列
4 {+ p8 J. i$ `/ s5 w! o5 c
I9 M. t& K7 M' pStackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以' X0 D! W+ z( e$ _# h* Z6 _
Minstack:一堆该物品的最小数量& ]( r# [5 d1 H f! X- a
Maxstack:一堆该物品所能拥有的最大数量1 x- f! L7 O: W) j
Qntwarning:警告标志出现的数量临界值) m( l' d0 I, y; j
当该物品的数量小于等于临界值时,屏幕上将出现警告标志, @5 w* `( e7 B5 I+ O
这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)
. x; `, @) z/ r" J& W H1 |( S
Type/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列6 I* h/ F1 x4 S- h! s8 h+ f
& v+ [ U. s8 e2 w# G8 [Dropsound:物品掉落时的声音,引自Sound.txt中的Sound列
/ ?8 z; [1 X" r+ wDropsfxframe:物品掉落声音播放的桢数
$ \9 c4 J0 i) {0 q- g) a% [Usesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列" G+ w! T0 O5 i: v- a' Q3 q3 ]( k
7 c! h* B, W5 v0 G3 x
Quest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC' w) |0 ?' U6 ?
Questdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中
/ }& h T& S) V4 Z0 t) q
9 P% T! Q; y: O# N4 nUnique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
5 ]7 x6 Y |( X. \ D! w! i1 X# C7 Z. z' s5 t) ~& U- D2 q% Q: S" O
Transparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?
2 n1 q6 M% m8 D" R+ I1 |0 ?$ C K: B+ k3 \6 b
Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……
- W9 H' e3 V- R7 g# h: m* @! a0 Q9 i" N5 ^* A
Quivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用5 z0 P$ ~* |1 c/ l0 p
( F: F1 Q+ e4 ~Lightradius:无用参数: ^7 Y" J! { q7 P
3 X5 N& `* N5 E3 h6 U" R9 K
Belt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类, s2 [7 G2 L, ^
0 – 无用/无腰带 – 1行
" ]0 b3 v j% H1 – 饰带 – 2行8 M; b3 z r) {) Q V" |
2 – 无用 – 1行
' y! M/ g- o. v; w3 – 束带 – 4行+ K$ Y0 g. E- l
4 – 轻扣带 – 2行, e4 |5 O! h' Q; y9 i) g
5 – 重扣带 – 3行$ Q7 E& V/ l2 B: n$ R
6 – 高级腰带 – 4行
2 E# I0 d4 G6 f9 {以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带( F+ E7 K0 e( e" _) L4 S( J
Belt:在Misc.txt中的意义与Armor.txt中完全不同
0 t1 H0 c( C' p0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏
' C( t9 g* F& x& P: L% J: O, u/ i由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途
, C0 L6 \9 E, L# A9 a5 L! ?! t! G' @: l# c" v( S# u' ~
Mindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:) D7 f+ C7 O; O
对于盾牌 – 盾击伤害
8 {7 c7 O+ S% h& v" T# l1 O对于鞋子 – 踢击伤害% _& b4 D9 G2 ?# K+ i) N9 @$ {6 S
对于武器 – 单手近战伤害3 j# w4 A, U' H5 Z
: B1 b4 c2 r; k- b2 dStrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害$ S# M1 h" _8 O6 J
DexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害$ ]* R8 K! U' n0 k" U
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成& i- K j+ [) V; P, x* V' E
) ?6 a6 [1 |0 M+ a# T0 tGemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑& |* S1 g5 M1 L6 S9 w" i, d
5 [. A3 m# a1 h4 b7 z/ W* @! bBitfield1:主要用于区分不同材质的物品,目前已知的是:. k7 ^" _$ E% P- ?! Q5 q
1 = 皮革制0 j' E; M! e3 P
3 = 金属制4 j% e9 } W3 F& h8 B
仅有金属制物品可以用来召唤钢铁石魔1 z' f: ~, X; i& p# U( b! W% X
: R1 O+ y( d$ l9 [/ G以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人+ r9 ]# }8 k7 e5 @8 I7 p
VendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃5 A7 |9 k7 C( L
VendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量4 n. h' R, J- p' b1 {
VendorMagicLvl:该物品所能获得的最高魔法词缀等级) z* h4 y0 p8 F; }2 s9 T
8 f& ]- F0 x1 w: f) r0 x' f
PermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定' }) S+ _- A, I7 m( b' L" C
3 M9 N! p3 X3 ~. L+ a1 {3 o: e- t. TSource Art:无用参数# i; X8 B) ?* I( _, b" I0 b
Game Art:无用参数: D. |8 H3 A" t) c) Z" k" F) k
. t' N; H9 j8 HTransform:有关该物品的动画所使用的颜色
: t. o9 N, e; p3 b/ hInvTrans:该物品在物品栏中所使用的颜色4 H c+ s' i: U
" W: X1 \6 I3 e# _ d& W1 N/ ASkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样9 q+ {* ?( c/ a8 w( b v
$ d7 G I9 S6 i$ \* D% UNightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变
6 Y& e9 M6 j& a4 [
/ {0 t; K) ]: y2 A" {3 U, fNameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行
1 c2 r, k1 ^) ? |
|