|

楼主 |
发表于 2020-1-15 01:46:40
|
显示全部楼层
Armor.txt By Nefarius,Kingpin,Ric Faith & Paul Siramy; t! J4 ` p3 P4 v
# w) ]. c4 r- E/ R$ X
前言:
, u" E/ @: U2 b p. nArmor.txt,Misc.txt,Weapons.txt三者有许多共同之处。它们事实上只是一个大文件的三个小部分:游戏在读取它们的时候会将三者合而为一,全部列入一个大型表格里。这三个文件涵盖了所有游戏中的基础物品类型:普通/扩展/精华级的装甲、头盔、手套、盾牌、武器;以及各种药剂、宝石、钥匙、卷轴等等……! |, N0 M5 Y4 O4 @- `& X
* f/ o- t3 K! L9 x7 }. u2 l
因此,我们完全可以往这三个文件中添加一些列。例如把Transmogrify、TMogType、TMogMin和TMogMax四列添加到Armor.txt里面(这四列原本只在Misc.txt中),并且让某种头盔使用这四列的取值,那么这种头盔就可以变成其他物品的模样。乍看上去这似乎是不可能做到的,因为起初在Armor.txt中并无可实现此功能的这四列。
: ~5 h; Y) l1 f3 k# @' i$ M& W- v; K `2 Z$ w2 Q
注意:要想往某个txt文件中加入列,请勿使用D2Excel工具,D2Excel无法实现此功能。请使用MS Excel或者其他能够识别并输出以制表符分界的电子表格的工具。
; c, Y, {6 R; G/ i- U2 K5 f3 `' d3 T5 y
本文件需要用到的txt文件有:* L! ^; k: ^& n
·AutoMagic.txt
3 x1 q, \) N8 K# D·Belt.txt: u; }. t. |- ]3 L, C
·Composit.txt
( k9 a6 v& @) N5 Z) z" X& l. _·ItemTypes.txt
/ @0 ?; Z6 R, \1 f. D/ U" N. b·Missiles.txt- W2 e; p! u7 q, ?8 _
·Sound.txt3 h2 e0 C: I9 c, @' I/ b! D
: s6 a2 P4 l7 }' ]: f
本文件将在以下文件中被引用:
& L! F y1 b. ~" e·CharStats.txt2 q7 i" ^$ B' h4 a7 G
·CompCode.txt
7 B* F1 P4 x# x3 S% y·CubeMain.txt4 j2 W/ [! l5 x( ?7 k% m% D, S, A P
·SetItems.txt
]+ P1 F$ x- y, i" B·UniqueItems.txt) K( \8 H1 h- L
·……
) S m- N& w1 N/ z, j# r8 ?% l/ }6 o$ O, K8 [
各列功能说明如下:$ s( {6 i; u! `; h4 N
+ C' z; `' a3 U/ {
Name:物品参考名称,仅作注释用
2 C% F+ x( c. H4 Q; A# U7 _2 ~3 _0 I! H/ {4 A0 }4 m
Version:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)8 x$ V) ^: r: S( I3 _% N! m, Y
* \1 _5 I9 z. B& t9 t3 I' \
Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)
' ]0 B) m& c+ y
/ M3 G4 ]2 L( A( H) dRarity:0 = 该物品不会从装甲架上掉落,置为1或者更高的数值则将决定此物品从装甲架上掉落的几率,这个值越高,则物品越稀有(这里必须有至少一种物品的值为1,否则当你在游戏里点击装甲架时游戏将崩溃)- y" n. W* x9 I% U
, r2 u0 j' l |
Spawnable:0 = 无法由NPC出售,1 = 可以由NPC出售
" d; V0 F; K" ?$ A6 ?5 |" J+ |3 n. ?& Z Z. C" C7 z
Minac/Maxac:该防具的最小/最大防御值;ItemStatsCost.txt中定义了这些取值的上限 r2 B# U H2 V2 o1 M
; p/ J( G5 l+ J3 I- `: rAbsorbs:无用参数,以前的作用与“伤害减少X”类似. R: i) n& Z2 b! ?5 k. w
9 ^: J/ h# Z: ?7 _9 q4 s; USpeed:正值 = 减慢行走/跑步速度,负值 = 增加行走/跑步速度% E: L9 H$ p; Y' K7 P( i! b
- h4 g! L$ T# l) E5 `- i$ ]8 a( e/ X
Reqstr:装备物品所需的力量,取值范围是0-65535;假如超出这个范围,将依据循环计数的原则。例如,在这里填写值65538,则系统会认为是2
' R5 ?1 Q1 F5 I. [* Y( |! E: y6 V+ U; D, E" Z
Levelreq:装备物品所需的最低人物等级% ^* B5 V7 [7 z( A( v# M
5 w$ X4 j; n) ?; D D+ P" u' S( j6 Q
Block:格档几率,总的格档几率上限为75%
; S& W! l4 b& F' v8 N2 {! Q* M5 G8 A- k. @8 p6 O
Durability:基础耐久度,最大值为255,超出范围则循环计数8 Z' M7 o$ w8 b0 H2 u
Nodurrability:是否无耐久物品,1 = 无法破坏物品(无耐久),0 = 有耐久度
1 D3 ]2 S% h A; {1 |) W9 ]假如这里置为1,则游戏里不会显示“无法破坏”字样,而是去掉物品的耐久属性6 O' y+ l5 J9 t) e' ]- P- Y
Durwarning:耐久警报图标出现的临界值,当物品耐久度低于或等于这个值时,警报图标将出现在屏幕上以提醒玩家,这玩艺快坏了。- b% {6 E" ~9 w4 E8 m3 ~+ C
( ?" d( H& C6 C A* s& I# N" v
Cost:基础价钱
0 a$ f2 b% L: I8 }8 pGamble Cost:赌博价钱的默认值,但仅对于Misc.txt中的戒指和项链起作用1 T8 b, q! h+ ~0 N
& v+ T: m/ |2 tCode:由3位字母/数字组成的代码,每样物品对应一个且不得重复;此代码为许多txt文件所引用,但不必将其写入TBL文件
( g: K$ G; U: L+ V+ ~7 q5 \Namestr:物品的代码/名称,如果这里的字串并未出现在TBL文件中,则此字串将直接作为物品的名称;反之,则使用TBL文件中此字串所对应的名称: l+ C: B9 o% x# X, n
注意:如果需要显示空格的话,使用TBL文件是唯一的途径: s& r* }" c6 Y: a
: h) x/ W/ n% S; ~" k3 [0 X" D" n
Normcode:该物品的普通级代码, W& E. ~9 x9 h# \8 ^
Ubercode:该物品的扩展级代码
8 K/ J$ V; l/ u4 L$ ^Ultracode:该物品的精华级代码
% Q8 I9 F# V! u" X' D6 @6 J" _这三列用于确定物品的阶级,例如:需要升级一件普通级物品为扩展级,则游戏将获取此物品的代码,然后将其与这三列相对照' W4 y, n' x& x4 K5 m
举例说明:狮头尖盔(Lion Helm)的属性为
; k c6 ^9 [+ g·Code = ba7
6 c' [" s3 b! o/ B0 g·Normcode = ba2
4 o, i/ q! j( K1 ?! J7 M·Ubercode = ba7- G: G) Z& J1 ^3 D
·Ultracode = bac) o* t1 V* F( X' O4 J2 F! b) ^" X
所以游戏判定狮头尖盔为扩展级物品,则上述升级普通级物品的公式将不对其起作用! l+ c/ D5 y# \: S. A- q! r1 Y! Q
- w/ H2 H+ T1 y2 s
Level:基础物品等级(亦即物品品质等级——QLvl);并非用于决定其上出现何种词缀,而是被用于建立诸如weapXX、armoXX等财宝阶层(TC),以免任何怪物都可以掉落所有物品,例如:一个TC等级为20的怪物无法掉落一件包含于TC = armo30中的30级装甲( \3 t: M$ \5 H9 ~; f" J
Y. u) P! i0 \' K! D- `
MagicLvl:魔法等级增量,例如:某物品的这个值为5,且某玩家通过赌博得到了一件10级的该物品,则该物品上可能出现的词缀等级最大为15级
9 \/ C5 |/ ]! s" |
" ~" b$ G" {' dAuto Prefix:物品自带的词缀,引自AutoMagic.txt中的Group列值( `) |" V- ~1 d! W
) S) T0 K, f+ u" iAlternategfx:人物动画所使用的DCC文件代码,例如:哥德盾牌(code = gts)的此列值为kit,意味着假如一个野蛮人装备了这面盾牌,则他的A1(Attack1)模式动画的SH(Shield)图层将使用的DCC文件为BASHKITA11HS.DCC,而非BASHGTSA11HS.DCC或者BASHBUCA11HS.DCC文件
4 C: V. E$ w6 w% t' ^4 X6 x- ]
+ z0 A! ~" ]6 u% ]8 ~' y4 i9 hOpenBetaGfx:无用参数,D2测试版中用于参照使用了何种alternategfx值
) \3 J) p" }. L+ [3 I9 N& o9 w2 \0 t3 x" G5 z u& R9 I
Spelloffset:未知参数,仅在Armor.txt中出现0 t6 u! Q! _2 @
- N5 |: g; Q( [4 g. m) ]/ G
Component:该物品装备人物后所使用的动画图层,引自Composit.txt,以下是索引:
4 A* j/ g( I5 K1 q3 L$ V3 _0 - HD(Head)头部
7 F9 v* ]; a4 e. h0 c, g- E/ o! H1 - TR(Torso)躯干
- j) V7 w/ W5 G2 - LG(Legs)腿部& B& g6 w$ B/ Q7 P' s
3 - RA(Right Arm)右臂/ s$ j7 x. ]0 I( Q) D: a" L2 ~! m
4 - LA(Left Arm)左臂
0 E, r' h, b% a: m$ J: q- Z5 - RH(Right Hand)右手
* d+ h; v- f1 N! t; G* ?7 E6 - LH(Left Hand)左手
6 |, Y. z' w0 g7 - SH(Shield)盾牌
+ [$ I. k1 I5 ^6 f& I( M6 R8 F8 - S1(Right Shoulder)右肩
- o3 \8 b) ]# W" l/ H+ S: m9 - S2(Left Shoulder)左肩
0 |/ H. `" u4 K+ a$ g4 F5 h1 k+ v10 - S3(Necro Shield)死灵法师盾牌
" i) M& g- V8 n" p# z11 - S4(Special 4)特4 U3 h$ G- V) L+ e' I" F
12 - S5(Special 5)特5
) {9 o2 M; z, s/ B13 - S6(Special 6)特6
Y. D, X0 _$ Y: \% ]9 F14 - S7(Special 7)特7# O. F% P& s! [! b+ ~5 t6 n
15 - S8(Special 8)特81 Z# U/ Q1 o& }# l( s7 ?, I$ ^
16则意味着该物品不使用任何图层,因为在Composit.txt中没有16所对应的索引
9 Q7 c6 M; ~1 n4 z( H/ u2 ^0 J: }: ^* s9 g+ S# N. b6 R
以下六列分别是一件装甲的一个组成部分,每部分都有三种色度:浅、中、深,这六列的取值说明了该装甲在不同部位会使用何种色度
$ A, W: y8 j6 t0 = LIT(Light)浅
! x& W: z4 t8 p- p4 F1 = MED(Medium)中1 P1 f* s- n: g9 H+ \
2 = HVY(Heavy)深
/ _* D% j e' r7 jrArm:RA图层(Right Arm)右臂; w$ q0 B5 S4 [' ?+ D. M( F
lArm:LA图层(Left Arm)左臂! [$ B/ Y9 ^- x1 P; K: u
Torso:TR图层(Torso)躯干) _. _: s( c# i
Legs:LG图层(Legs)腿部( c1 I$ I9 t* I6 n! P2 `9 c. ~- y
rSPad:S1图层(Special 1 – Right Shoulder)右肩
+ A& B, w- Y: \" blSPad:S2图层(Special 2 – Left Shoulder)左肩7 W/ p2 N* |' i" g' R! y! u& Z
例如,布甲的取值为rSPad = 1,lSPad = 1,所以当布甲穿在亚马逊身上时,她的全身都是初始的红色(浅色),但左右肩变为灰白色(中等)% m0 D$ \3 k `1 d
. O" H- Q; w6 i1 l9 ]7 t. }以下四列分别是不同情况下程序对物品所调用的DC6文件名称
0 q* W4 A5 d& o% D6 oFlippyfile:物品掉落时的动画文件
, b" M. p; l7 R2 g: cInvfile:物品栏里的图像文件8 E/ }9 |" o& C( r+ ^
Uniqueinvfile:暗金物品所使用的物品栏图像文件6 `' j, @/ [; v0 e: X) m
Setinvfile:套装物品所使用的物品栏图像文件
" t) r2 [; V% i: sDC6文件的路径为data\global\items,例如:假如某物品的flippyfile列值为flpcap,则程序将在该物品掉落时播放data\global\items\flpcap.dc6文件1 y+ C6 a: d `" r# X- V7 E
! G) K7 r+ Z; Y5 e, T3 wInvwidth/Invheight:物品在物品栏中占用的宽/高格数
2 K3 c: ?9 t: ~. X6 X; D. u$ s( a" O8 @! B6 {6 P
以下三列用于描述物品上孔数的属性5 d. r1 d( _+ [3 |5 _9 k
Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔% J) P+ p- R# N& ?
Gemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数
7 L3 G6 y9 ~6 o9 x: L3 b/ U9 S另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40( ~( x j* D+ u) R& v
例如:假使某种头盔的Gamsocket = 4,但头盔的Maxsock1 = 2,因此一顶不足25级的该种头盔所能拥有的最大孔数就只能是2
3 T) x: a2 o7 W- h) pGemapplytype:镶嵌物镶嵌入该物品后所获得的属性,0 = 武器、1 = 装甲/头盔、2 = 盾牌;假如使用了其他数值,则该物品将不可能有孔2 w0 G) ~$ b* g: {/ ~& o) V& C
- e( ^! {% K( Y4 P) C$ F: |
Useable:是否可以右键单击该物品以使用,1 = 可以、0 = 不可以;这一列多用于Misc.txt里的各种药剂/卷轴2 x( e% c( J! B) f' {# A
注意:右键单击物品所获得的作用效果源于程序的硬代码。所以假设你并未编辑相应的dll文件,那么即使该值设定为1也不会有什么效果。
, z4 j- C f" u7 S2 j6 F1 G5 v+ }9 _; z! r# o0 f# ^' H
Throwable:无用参数;其本意是决定该物品是否能够投掷:1 = 可以,0 = 不可以;但这个功能定义于ItemTypes.txt中,而在Armor.txt和Misc.txt中该列值均为0,Weapons.txt中无此列, ^. b8 c# G/ E( a/ e1 P
3 F4 r: l/ E: J
Missiletype:投掷该物品的话出现的飞射物种类,引自Missiles.txt中的ID列" ]; B% U$ X% s7 E2 A5 Q) y" o
8 `) {. h, l" {4 AStackable:该物品能否多个叠放成堆:1 = 可以,并有数量属性,0 = 不可以
7 S+ m& ~5 f$ O% s ?Minstack:一堆该物品的最小数量
- V) K. F9 @6 L+ f NMaxstack:一堆该物品所能拥有的最大数量9 Q5 a# x: D/ [( ^7 w- M) M) ?* T
Qntwarning:警告标志出现的数量临界值
/ |5 {# O+ a0 H1 H; m当该物品的数量小于等于临界值时,屏幕上将出现警告标志
3 P' {3 i$ E! u6 v这些列不作用于Armor.txt,仅用于Misc.txt(钥匙、书)以及Weapons.txt(标枪、箭矢等)
4 ^& W- _ b$ W! \- W% I0 t# M( N0 J! ~
Type/Type2:物品的基础类型,主要用于合成公式、物品镶嵌物等;引自ItemTypes.txt中的Code列7 W/ T% b. ~2 z% I7 W
9 D/ U* D6 m# p y
Dropsound:物品掉落时的声音,引自Sound.txt中的Sound列) b6 ] X; F$ Z7 A' c
Dropsfxframe:物品掉落声音播放的桢数9 t* S7 }& h, U0 R
Usesound:当物品装备上或者在物品栏里放下时的声音,引自Sound.txt中的Sound列3 n* [, [* ^+ ^7 J, i& c5 T/ g7 k7 _" v
: O2 ?3 b, G! S+ U- ?Quest:专门为任务物品定义的硬代码ID;任务物品一次只能携带一件且无法交易给NPC* @) q( P. D$ H) y. }# U
Questdiffcheck:该物品是否通用于所有难度;值为1,则该物品将仅在其出现的难度适用;此列仅出现于Misc.txt和Weapons.txt中
. K% p! u7 X3 _9 U. n" W1 p- w, Z& z: n6 ?
Unique:1 = 仅存在暗金形态,0 = 无约束;这列多用于仅允许暗金形态出现的任务物品,假如某非任务物品的此列为1,那么该物品将只能出现暗金形态
5 ~) X+ h( P) A, {2 C# O, ^5 ?7 W# p! J% |$ t3 v& K- n
Transparent:未知参数,游戏中无用;或许只是一个用于表示某物品处于透明形态的标志位?
* u: V2 b- R7 c3 l
* L5 z; D: }' Y" [Transtbl:未知参数,游戏中无用;猜想是当Transparent列非0时用来表示透明度……% Z H. x8 J( ?' [6 E, M
8 P8 l0 _% I/ n
Quivered:1 = 该物品需要弹药方可使用,0 = 无需弹药也可使用;此列仅用于Weapons.txt中的弓和十字弓,在Armor.txt、Misc.txt中均无用
. O* u9 H6 `9 I1 ?( ~
3 V$ f7 ~5 V$ j8 m8 P" a7 bLightradius:无用参数" I6 t: C6 \% }8 `# x
' @5 }' {* R& b6 t* G
Belt:在Armor.txt中作为一个索引,来说明物品所代表的腰带种类2 k& ~2 N. v P
0 – 无用/无腰带 – 1行) ^0 g, p+ ]# v# Y7 d* D
1 – 饰带 – 2行
% {7 P S3 R4 H U+ p0 ^2 – 无用 – 1行$ g& g/ o$ D" k# d- @3 b
3 – 束带 – 4行# v, p# I; }2 }2 H+ p$ U
4 – 轻扣带 – 2行
7 e) ^* |% n0 h; b1 N5 – 重扣带 – 3行
' x& Y" G, b& Z, t5 U1 N- b6 – 高级腰带 – 4行
7 P" \) r: R+ O) P% Y7 G' h5 ]: N- B: C以上引自Belt.txt中的索引行(或许是硬代码规定的……),仅有Expansion行之上的部分有用;高级腰带包含了所有的扩展/精华级腰带
% H {$ a4 [" _6 X$ `6 G% ]: O- NBelt:在Misc.txt中的意义与Armor.txt中完全不同
4 e) G6 @# M0 @5 P- n3 m0 = 无法被放置于腰带栏,1 = 可以被放置于腰带栏
/ @' [- y4 O- F0 H+ z由于Misc.txt和Armor.txt同属一个大文件,所以程序大概是先判定物品的种类(是防具还是宝石药剂之类),再确定该列的用途1 h# Q9 C0 ^ V! M
" _. I4 C( m8 x9 W* u8 U ^" DMindam/Maxdam:该物品所具备的最小/最大伤害值,请注意这个值并非总会在游戏中的物品描述里显示,以下是对于不同的物品类型,该列值的具体含义:
. K+ W( u, i( M; }3 W4 Q对于盾牌 – 盾击伤害
# M/ m( ^5 e* t$ Z! w5 o对于鞋子 – 踢击伤害& z; Y# [ A9 s( V4 [
对于武器 – 单手近战伤害
9 {1 v7 n: |6 J! ^9 O6 ^2 q) G- L# X& U5 z% O9 ?7 `6 n2 y4 O
StrBonus:装备该物品时力量对伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害
; I+ ]5 C/ _! @/ \- K/ R CDexBonus:装备该物品时敏捷对伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害' Y# z) r( E9 A7 c% @
Armor.txt里这一列的伤害加成值仅对鞋子和盾牌有用,对于盾牌是对盾击伤害的加成,对于鞋子则是对踢击伤害的加成& O. K) ]7 L, u, Q! V0 ?& A+ ~1 c
W1 Q1 s* h3 e2 B2 }Gemoffset:此列作为保留位,游戏加载时将自动填充,用以链接可打孔的物品及其相应的Gems.txt文件中的内容;不过假如这里事先填写一个非零值的话,游戏是否允许这里出现双重值仍旧存疑
. H* m7 E" e* v# s0 f1 N5 r/ u- [4 m: @* ]! n" J/ C; p. B
Bitfield1:主要用于区分不同材质的物品,目前已知的是:' J2 E9 o) j. J: d- t+ N1 W: z' F
1 = 皮革制
0 l! w6 c# ^( P9 p" v1 m3 = 金属制
- [2 a0 f5 x- |7 K% a0 l仅有金属制物品可以用来召唤钢铁石魔
( t4 G* f1 i9 Z1 }- v' R* {( g9 S" R7 V
以下列用以控制不同的商人出售不同的物品,这里以Vendor来泛指Charsi、Gheed、Akara、Fara、Lysander、Drognan、Hratli、Alkor、Ormus、Elzix、Asheara、Cain、Halbu、Jamella、Larzuk、Malah、Drehya这些商人
; T3 E7 f/ D+ v* v1 lVendorMin/VendorMax:某商人所能出售的该物品最小/最大数量,这里填写的数字过大将导致游戏因无法显示过多的物品而崩溃! ^" A7 o9 R. H* D
VendorMagicMin/VendorMagicMax:某商人所能出售的该种魔法物品最小/最大数量
5 U+ M8 \* U) ^" A9 B- AVendorMagicLvl:该物品所能获得的最高魔法词缀等级
2 m5 D- n# p3 J! E) W0 z/ a& e! b8 M2 Y- K( X# q9 P
PermStoreItem:该列不出现在Armor.txt中(仅存在于Misc.txt和Weapons.txt),但你可以人为的加进去;它用来控制物品是否始终在NPC处有出售:1 = 始终出售,0 = 不一定
0 v' J3 S0 n5 A; ?* M
5 M# I4 W- P8 L6 {( D- N& n* MSource Art:无用参数
0 V8 o& v: k3 P( E+ l5 N! VGame Art:无用参数2 A& \1 m W1 ^# h
* f% O- `* Z2 o, s0 G0 x0 S: hTransform:有关该物品的动画所使用的颜色! O2 _# S6 `( @& J- y$ D7 i M8 `2 J W
InvTrans:该物品在物品栏中所使用的颜色2 z; u" @6 Q4 n$ K" C) y
: U2 R. L) b# \& h- O) d& _
SkipName:控制游戏是否不显示该物品的基础名称,例如用于蝮蛇护符,则游戏不会显示两次“蝮蛇护符”字样
' O7 F+ E# u, \" j) A! h; b5 K2 X* P1 U5 G& V) R5 W8 k1 T$ @; @
NightmareUpgrade/HellUpgrade:在噩梦/地狱难度商人将使用此处代码对应的物品来取代原物品,xxx = 不变
' S4 v7 c* B, N# u0 Z N3 s! w4 o, x: V$ a$ Z2 R/ Y2 l9 X
Nameable:用于安亚任务奖励,控制该物品是否能够被个人化:1 = 可以,0 = 不行
, j+ a9 W, z1 h' ~( I |
|