admin 发表于 2020-1-15 02:01:12

States.txt                By Nefarius

State:状态ID指针:在诸如skills.txt等文件中需要指明状态的地方会用到这个值,但表达状态属性时一般会写入其ID(行序号)

ID:无用值,仅作参考:各个状态的内部ID均为其在txt文件中的行序号(排除首行和expansion行之外的序号)

Group:组号码,同组的几种状态无法并存(例如法师的三种冰甲);需要注意程序不会总是做类似的检测,因此,由技能产生的状态会是正常的,但通过其他方式所获取的状态可能会出现点小问题

Remhit:单位所拥有的该状态会不会因受到攻击而驱散:此值仅作用于怪物,对玩家无效(并未测试,但从程序代码上来看是这样的)

Nosend:暂时不详

Transform:该状态是否会改变单位的图像(例如变形状态)

Aura:该状态是否属于光环类:多个光环类状态不会同时显示于游戏中(同时拥有多个光环将循环显示),另外原本在光环作用下的怪物,在被转化后其光环将驱散

Cureable:与拥有治疗能力的NPC对话时,该状态是否能够被驱散

Curse:该状态是否属于诅咒类:多个诅咒类状态不会并存,新的诅咒将取代原先的诅咒;该列值也将决定此状态的持续时间是否受到净化光环和抗诅咒属性的影响

Active:该状态是否有其StateActiveFunc(状态运行函数):这个函数和各个技能所调用的CltDoFunc(客户端行为函数)是一致的,当该状态被激活时此函数会每桢被调用一次

Immed:暂时不详

Restrict:该状态是否会限制某些技能的使用(例如变形状态)

Disguise:是否为拥有该状态的单位加载其他图像(作用时与Transform列取逻辑“与”)

Blue:该状态是否会以最高优先级改变单位颜色

Attblue,dmgblue,armblue,rfblue,rlblue,rcblue,rpblue:这些列分别用于控制人物状态栏里的命中率、伤害、防御、抗火、抗电、抗冰、抗毒属性是否以蓝色字符显示

Stambarblue:耐力条是否以蓝色显示(如耐力神殿的效果那样),而并非决定角色是否拥有无限耐力(事实上耐力神殿的效果也只是给予角色极快的耐力回复速度而不是无限耐力值)

Attred,dmgred,armred,rfred,rlred,rcred,rpred:这些列分别用于控制人物状态栏里的命中率、伤害、防御、抗火、抗电、抗冰、抗毒属性是否以红色字符显示

Exp:用于判定当某具有该状态的仆从杀死了敌人,其主人是否会得到经验值(事实上该状态的仆从死亡时,其主人也应该获得经验值,但这个算法被某些代码屏蔽掉了)

Plrstaydeath,Monstaydeath,Bossstaydeath:用于判定单位死亡时,该状态能否被驱散;最后一列可以避免boss的尸体被打碎

Hide:单位死亡时,其尸体将不会显示出来,同时死亡动画将不播放

Shatter:拥有该状态的单位死亡时是否会变成碎片或者爆开;这里主要由硬代码所限定,因此除了超级金怪之外,其他都以冰冻碎片的形式产生

Udead:该状态的单位死亡后,其尸体是否可以被技能或者其他单位的AI所使用

Life:若此值不为零,则拥有该状态的怪物将无法以正值回复生命

Green:该状态是否会以最高优先级改变单位颜色

Pgsv:该状态是否以渐进的方式作用,并且当其聚气效果最终被激发时会否提升某些状态

Nooverlays:涉及到该状态被覆盖的一项参数,目前还不太清楚

Noclear:和上一列雷同,并且也仅作用于上一列值为1的状态

Bossinv:具备该状态的仆从是否始终使用其主人的物品状态(例如亚马逊的诱饵会始终与其本人的装备样子保持一致)

Meleeonly:具备该状态时仅能使用近身攻击,例如德鲁伊在变身后将无法用弓/十字弓射箭

Notondead:暂时不详

Overlay1-4:该状态具体在游戏中的表达方式,以及代码的实现方法(采用何种图像效果),不过常用的是Overlay1列

Pgoverlay:渐进式技能的聚气效果最终被激发时作用于敌人身上的图像效果

Castoverlay:该状态初始产生时游戏显示的图像效果(之后被Overlay1或者其他代码规定的实现方式所取代)

Removerlay:与前一列相类似,状态将结束时的图像效果

Stat:拥有该状态的人物所具有的属性,主要用于显示效果(要想为各个状态分配实际属性一般应使用Skills.txt)

Setfunc:该状态产生时于客户端调用的函数

Remfunc:该状态消失时于客户端调用的函数

Missile:某些情况下该状态所用到的飞射物,至于如何用到则完全取决于其依存的函数

Skill:某些代码中该状态所需要用到的技能,但这明显与技能指定状态的原则相悖……

Itemtype:该状态能够改变其颜色的物品类型

Itemtrans:这里填写颜色代码,表示被该状态变为何种颜色(该色彩不作用于物品栏文件,仅作用于人物实际的装备)

Colorpri:该状态使其单位变色的优先权,此值限于0-255之间,最终的物品颜色采用优先权最高的状态色;假如有两个优先权一样的状态并存,则ID小的优先

Colorshift:该状态下单位具体色彩调配的索引,具体色彩取自pl2文件

Light-r,Light-g,Light-b:将具备该状态的单位颜色改为此处规定的颜色(RGB)

Onsound:该状态产生时的音效文件

Offsound:该状态消失时的音效文件

Gfxtype:该状态的单位使用哪一类动画文件(1 = 怪物,2 = 角色)

Gfxclass:该状态的单位使用具体哪个动画文件,此列值取自Monstats.txt(对于怪物)或者Charstats.txt(对于角色)的ID

Cltevent:于客户端可触发该状态的事件(似乎非常不同于服务器端的触发事件)

Clteventfunc:该状态被客户端事件触发时所调用的函数

Cltactivefunc:该状态处于激活态时每桢所调用的CltDoFunc(客户端行为函数)

Srvactivefunc:该状态处于激活态时每桢所调用的SrvDoFunc(服务器端行为函数)

admin 发表于 2020-1-15 02:01:31

SuperUniques.txt        By 54x & Red Havoc

前言:
该文件用以定义各个超级金怪及其属性,各个超级金怪均作为boss出现于固定的场景,并且拥有一些固有属性

本文件需要用到的txt文件有:
Monsounds.txt
Monstats.txt
Monumod.txt
TreasureClassEx.txt

本文件将在以下文件中被引用:
MonPreset.txt

各列功能说明如下:

SuperUnique:超级金怪的ID;各个超级金怪的ID不可重复,它被用于其他一些txt文件中,例如MonPreset.txt里的Place列

Name:各个超级金怪的命名字串,用于TBL文件中,如果没有写入TBL文件,则怪物名称将显示“一股邪恶力量”

Class:该列定义了超级金怪所属的怪物类型,这里的值引自Monstats.txt里的ID列

HcIDx:该列是硬代码索引:游戏中原有的各个超级金怪的HcIDx值为0-65,程序会根据此ID来寻找对应的硬代码,从而实现此超级金怪的硬代码属性
假如在这里新建一个超级金怪,利用HcIDx的值,我们可以使其获得一些独特属性,例如:新建一个超级金怪,在其HcIDx列里填入42(督军山克的HcIDx值),那么无论其怪物类型被设置成什么,他周围都会出现20个山克的仆从
如果不需要这些特效的话,那么在此填入0-65之外的数值,程序会因找不到此ID对应的硬代码而作罢,这个超级金怪也将不拥有什么特殊效果

MonSound:该列使特殊的超级金怪在其攻击、咆哮、死亡时使用一组独特的音效,典型例子就是女伯爵;该列引自MonSound.txt中的ID列

Mod1/Mod2/Mod3:这三列定义了超级金怪的各种特殊属性,例如“火焰强化”、“皮质硬化”等等,各个ID值所对应的具体属性引自Monumod.txt,以下列出一些已经修正过的各属性具体作用内容:
0 – 无属性
1 – 为怪物随机命名
2 – 增加怪物的生命值,并将其生命恢复设定为0
3 – 增加怪物光照范围,并且给其赋予一种随机颜色(1.10及以上版本有bug)
4 – 怪物等级加3,经验值乘以5
5 – 特别强壮:增加怪物的物理伤害值
6 – 特别快速:增加怪物的移动/跑步速度
7 – 特别诅咒:当击中敌人时随机释放伤害加深诅咒
8 – 魔法抵抗:所有抗性增加40%(火焰、冰冷、闪电、毒素)
9 – 火焰强化:攻击中附加火焰伤害,并且增加75%火焰抗性,死亡时尸体爆炸
10 – 死亡时会放出毒雾,如第二幕的木乃伊那样
11 – 尸体上将爬出许多小虫,如督瑞尔那样
12 – 仅作用于血鸟,可能和其死亡动画序列有关
13 – 无视敌人防御,近战时总会击中你
14 – 未知
15 – 死亡后,身边的仆从全部一起死亡
16 – 增加其伤害和命中率(仅作用于冠军级怪物)
17 – 闪电强化:攻击中附加闪电伤害,增加75%闪电抗性,并且在被击中时释放充能弹
18 – 冰冷强化:攻击中附加冰冷伤害,增加75%冰冷抗性,死亡时释放霜之新星
19 – 为其雇佣兵附加额外的伤害,如会复活尸体的怪物,其造成的伤害值有bug
20 – 被击中时释放充能弹,如第二幕的甲虫
21 – 代码还在,但似乎没有效果
22 – 与任务有关,但对于既定任务之外的超级金怪无效
23 – 拥有毒素光环,当接近时将受到毒素攻击
24 – 代码还在,但似乎已被挪为它用
25 – 法力燃烧,偷取敌人的法力同时给自己加血,附加25%的魔法抗性
26 – 传送,随机进行一次传送并给自己加血
27 – 幽灵一击:在进行攻击时随机附加一种元素伤害
28 – 皮质硬化:增加50%物理抗性并增强防御
29 – 多重射击:远程攻击的怪物将会一次射出多个飞射物
30 – 随机附加一种光环
31 – 当被杀死时尸体发生爆炸
32 – 死亡时释放火焰闪光(仅为视觉效果)
33 – 自爆并冰冻敌人,如第五幕的自爆仆从,其boss的生命值将大幅削弱
34 – 自动复活,例如复活尸,但对其他怪物有bug
35 – 被杀死后变成冰冻碎片,不留尸体
36 – 增加物理抗性并减少行动速度(仅作用于冠军级怪物)
37 – 使防御变为-70(仅作用于冠军级怪物)
38 – 增加100%生命值,且不会被诅咒(仅作用于冠军级怪物)
39 – 减少75%生命值,增加其伤害及命中率(仅作用于冠军级怪物)
40 – 死亡时产生痛苦之虫
41 – 控制仆从是否一哄而散
42 – 死亡时释放新星

MinGrp/MaxGrp:这两列控制此超级金怪周围喽罗的最小/最大数量,游戏将从这个区间内抽取一个随机数作为其最终的喽罗数量

EClass:是否为资料片怪物:0 = D2原版怪物,1 = D2资料片怪物

AutoPos:决定该超级金怪是否出现于其初始位置附近,1 = 位置随机,在初始位置中心的一个较大的半径内变动,0 = 出现在精确的初始位置处

Stacks:该暗金怪物能否在同一个游戏中出现多次,1 = 可以出现多次,0 = 不可以

Replaceable:未知参数

以下三列表示该怪物在三个难度下所拥有的财宝阶层,决定了当超级金怪被杀死时掉落何种物品,该处值引自TreasureClassEx.txt中的TreasureClass列
TC:普通难度
TC(N):噩梦难度
TC(H):地狱难度

EoL:行结束符
不要移除此列,并且最好确保此列值非空

admin 发表于 2020-1-15 02:01:47


TreasureClassEx.txt        By Nefarius



Treasure Class:各个财宝阶层(TC)的ID指针,其他文件或者本文件的一些地方在指定TC时会引用这里的值;该值具有唯一性,并且区分大小写;用到这里的ID指针的文件有:MonStats.txt,SuperUniques.txt和TreasureClassEx.txt本身

Group,Level:这两列共同作用,Group用于将几个TC组合成一个TC组,Level用来赋予组里每个TC的等级;游戏会自动使物品掉落等级与Level列中的TC等级相匹配;例如,赋予一个10级的怪物TC,则该怪物在实际掉落物品时会选择与其怪物等级最接近的TC等级,即在12与13之间选择的话,它会选择12

Picks:该列的作用取决于这里填入的数值是非负数(范围为0-6)还是负数(范围为-1到-6);如果这里的值非负,则游戏将以该值作为掉落选择循环次数,如果这里为负值,则这个值就确定了最终掉落的物品数量和物品种类;修改这里的值并不能使一个怪物掉落6件以上的物品(只能通过其它txt修改方式或者直接编辑硬代码)

Unique,Set,Rare,Magic:这四列分别填入暗金,套装,黄金,魔法物品的掉落参数,用以控制各种品质的物品的掉落几率;以下列出这四列的具体作用方式:
·当某品质物品的掉落参数小于1024时(chance代表初始掉落几率因子,chance*代表修正过的掉落几率因子,由ItemRatio.txt及角色MF值决定):
Chance* = chance * (1-掉落参数/1024)
·当某品质物品的掉落参数大于等于1024时,该TC始终掉落该品质的物品(对于暗金/套装物品而言,假如某物品不存在对应的暗金/套装形态,则降格掉落出增加耐久度的黄金/魔法物品)
例如:
(chance) * (1 – 768 / 1024) = 25% * (chance) = 掉落几率提升4倍
(chance) * (1 – 512 / 1024) = 50% * (chance) = 掉落几率提升2倍
(chance) * (1 – 256 / 1024) = 75% * (chance) = 掉落几率提升1.33倍

NoDrop:此处定义了该TC不掉任何物品的几率

Item1-10:这10列定义了该TC可掉落的各种物品,这里的值支持物品代码、物品指针(对于暗金和套装物品而言)以及各种TC的ID;1.10版本中引入了一些新支持的参数,例如对于金币,这里支持填写"gld,mul=2048"之类的值,以实现各个Boss掉落更多的金币数量

Prob1-10:与其前一列相对应,代表各个物品掉落几率

SumItems,TotalProb,DropChance:这些列不被游戏读入,仅作为注释

Term:行结束符,此列始终为0以防游戏崩溃


附录:
Gold行不可删除或者重命名,游戏使用这一行来定义金币掉落(包括往地上扔金币)

所有Chest行都定义于硬代码中,虽然不清楚具体的方式,但是通过实验可以验证:它们并非通过其ID指针来引用,删除它们不会对游戏带来任何影响

自动TC用来将指定类型的物品自动分到相应的TC组里,例如armo3,armo85这种TC就是这样定义的;1.10版本中自动TC由ItemTypes.txt文件的TreasureClass列控制

各个物品的掉落率由Prob1-10列以及NoDrop列决定,举例说明:
假如某TC的NoDrop=100,Prob=25,Prob2=50,Prob3=100,Prob4-10无用

总几率Sum = 100+100+25+50 = 275
不掉物品的几率NoDropChance = 100/275 = 36.5%
掉落Item1的几率Item1Chance = 25/275 = 9%
掉落Item2的几率Item2Chance = 50/275 = 18%
掉落Item3的几率Item3Chance = 100/275 = 36.5%

当Picks列值为负数时,其后Prob1-10列的值之和必须等于Picks列的绝对值,并且最终掉落的物品数量与Prob1-10中所填写的数值相同
例如:
Picks = -6
Item1 = 2
Item2 = 1
Item3 = 3
则三种物品分别掉落的数量为2,1,3

admin 发表于 2020-1-15 02:02:00

UniqueItems.txt        By Nefarius

Index:此列是暗金物品的ID指针,为TreasureClassEX.txt以及CubeMain.txt文件所引用,同时也决定了游戏中暗金物品的显示名称

Version:该暗金物品所可以出现的游戏版本,0 = 可见于旧版D2的非资料片中(1.00-1.06),1 = 见于新版D2的非资料片中(1.07-1.11),100 = 见于D2资料片中,并且无法在非资料片里掉落

Ladder:该暗金物品是否仅会在天梯模式或者单机游戏里掉落:0 = 非天梯也能掉落,1 = 仅在天梯模式或单机游戏里掉落

Rarity:此列决定了当同一件物品有多种暗金形态时,选中该暗金形态的几率,具体算法沿用“个体/总体”的简单比例关系:例如假使暗黑中有且仅有两种暗金戒指,一种的Rarity值为100,而另一种为1,那么前者将有100/101的几率出现,而后者仅有1/101;该值介于1-255之间,任何小于1的值将被系统默认为1

NoLimit:此列决定了该暗金物品是否可以在同一个游戏中掉落两次或更多:0 = 只能掉落1次,1 = 掉落次数不限;作用机理如下:游戏中每掉落一个暗金物品,系统都会在内存中将其对应的一个标志位置1,以记录该事件;因此当同一个游戏中该暗金物品刚好又一次掉落时,系统就会检测到该暗金已掉落过,这时假如NoLimit的值为0,则游戏将掉落一件三倍耐久的黄金物品来取代本应第二次出现的该暗金

Lvl:该暗金物品的品质等级(Quality Level):怪物或者游戏中的箱子等级必须大于等于该值,才有能力掉落该暗金物品,否则游戏将在本应掉落该暗金时用一个三倍耐久的黄金物品来取而代之

Lvl Req:装备该暗金物品所需的最低人物等级

Code:此列表示该暗金物品所对应的基础物品代码,引自Weapons.txt,Armor.txt和Misc.txt中的内容

Carry1:角色是否仅能携带一个该暗金物品:1 = 仅能携带1个,0 = 无限制

Cost Mult:在计算该暗金物品的出售、修理价格时,将用此列值乘以该暗金物品所对应的基础物品的出售、修理价格

Cost Add:在上一列的乘数作用之后,还将与此列值相加,以得到该暗金物品最终的出售、修理价格

ChrTransform:用于更改该暗金物品装备在人物身上时调用DCC文件、以及掉落时使用DC6文件所应用的颜色,引自Colors.txt的ID指针

InvTransform:用于更改该暗金物品放置于物品栏时调用DC6文件所应用的颜色,引自Colors.txt的ID指针

FlipyFile:用于更改物品掉落时所调用的动画文件,默认为该暗金物品其基础形态定义于Weapons.txt,Armor.txt,Misc.txt中的掉落动画

InvFile:用于更改该暗金物品放置于物品栏中所调用的图像文件,默认为其基础形态定义于Weapons.txt,Armor.txt,Misc.txt中的图像

DropSound:用于更改该暗金物品掉落时调用的声音文件(物品落地时播放),默认为其基础形态定义于Weapons.txt,Armor.txt,Misc.txt中的音效;引自Sound.txt文件中的ID指针

DropSfxFrame:用于更改该暗金物品掉落动画的播放桢数,默认为其基础形态定义于Weapons.txt,Armor.txt,Misc.txt中的播放桢数

UseSound:用于更改该暗金物品装备上或放入物品栏时的音效,默认为其基础形态定义于Weapons.txt,Armor.txt,Misc.txt中的音效,此处值引自Sound.txt中的ID指针

Prop1-12:这12列分别用于描述该暗金物品最多能具有的12个属性,其值引自Properties.txt中的ID指针

Par1-12:这12列分别是其所对应的属性的参数,会用到诸如技能ID、属性ID、怪物ID、怪物类型ID等值,这里同时支持计算表达式

Min1-12:这12列分别用于表示其对应可变属性的最小值

Max1-12:这12列分别用于表示其对应可变属性的最大值

*EoL:行结束符

*Type,*Uber:不加载

admin 发表于 2020-1-15 02:02:16

Weapons.txt        By Kingpin & Ric Faith

本引导文件基于Ric Faith的1.09x版引导文件
——增加了一些关于component列如何作用的新发现
——增加了一些关于alternativegfx列的说明(这里感谢Paul);本文件同样适用1.10版

Name:物品参考名称,仅作注释用

Type:第一基础类型(使用itemtype.txt中的物品代码)
Type2:第二基础类型(使用itemtype.txt中的物品代码)

Code:由三个字母/数字组成的物品代码,且各物品的代码不能雷同;此代码与物品显示所需的TBL文件无关

Alternategfx:游戏中人物动画所引用的DCC文件代码,详见Armor.txt文件引导

Namestr:如果这一列并未被写入TBL文件,则游戏将直接以此列的内容作为物品名称,反之游戏读入TBL文件;不过要想显示空格,就必须将此列写入TBL文件去编辑。

Version:0 = D2原版,100 = D2资料片(置为100的物品将无法在D2原版中出现)

Compactsave:1 = 压缩存档,0 = 不压缩存档。所谓压缩存档是用来获取较小的存档文件,同时也意味着关于物品的属性:诸如数量、魔法词缀、伤害、防御、耐久度等等,将不被保存(压缩存档一般仅用于一些无须属性的物品例如治疗药剂、各阶宝石等)

Rarity:0 = 该物品不会从武器架上掉落,置为1或者更高的数值则将决定此物品从武器架上掉落的几率,此值越高,越不容易掉落(这里必须有至少一种物品的值为1,否则当你在游戏里点击武器架时游戏将崩溃)

Spawnable:1 = 可以由NPCs出售,0 = 无法由NPCs出售(无论你怎么修改其他列)

Mindam:此武器的最小单手伤害值
Maxdam:此武器的最大单手伤害值

1or2handed:用来决定该武器是否可以被野蛮人既能单手又能双手使用(1 = 是,0 = 否)
2handed:1 = 双手武器;0 = 单手武器

2handmindan:此武器的最小双手伤害值
2handmaxdam:此武器的最大双手伤害值

Minmisdam:此武器的最小远程伤害值
Maxmisdam:此武器的最大远程伤害值

Rangeadder:此武器用于近战时的攻击范围增量(空手攻击范围 = 1)

Speed:正值 = 减慢武器攻击速度值;负值 = 增加武器攻击速度值。当然这个速度值还会被武器类型、人物类型等因素所修正

StrBonus:持该武器时力量对最终伤害的加成系数,例如100表示每点力量 = 1%增强伤害, 75则表示每点力量 = 0.75%增强伤害
DexBonus:持该武器时敏捷对最终伤害的加成系数,例如100表示每点敏捷 = 1%增强伤害, 75则表示每点敏捷 = 0.75%增强伤害

Reqstr:使用该武器所需力量值,取值于0-65535之间(假如置入一个小于0或者大于65535的值,将循环计数)
Reqdex:使用该武器所需敏捷值,取值于0-65535之间(假如置入一个小于0或者大于65535的值,将循环计数)

Durablity:基础耐久度(最大取到255,再大的话将循环计数,例如置入257,则系统将把该武器的耐久度取为1)

Nodurablity:1 = 无法破坏;0 = 拥有耐久值

Level:基础物品等级(也叫做物品品质等级——QLvl,但并不是物品等级——ILvl;这列用于游戏生成诸如“weapXX”、“armoXX”此类的财宝阶层——即TC系统)

Levelreq:使用该武器所需的最小人物等级

Cost:基础价钱
Gamble Cost:无用值,仅作为参考

Magic Lvl:魔法等级增量;例如:如果此值置为10,则一件10级(ILvl = 10)的该武器将可以获得20级的魔法词缀

Auto Prefix:该物品可自带的词缀,调用automagic.txt中Group列的编号

OpenBetaGfx:无用参数(在D2测试版中用于参照该物品使用的alternategfx值)

Normcode:该物品的普通形态代码(在升级物品时用到)
Ubercode:该物品的扩展形态代码(在升级物品时用到)
Ultracode:该物品的精华形态代码(在升级物品时用到)

Wclass:单手武器类型,用于决定攻击类(如1HS、1HT等)
2handedwclass:双手武器类型,用于决定攻击类

Component:该物品装备在人物身上时,游戏所使用的图层(引自composit.txt中);取值为0-15,16表示不使用任何图层,详见Armor.txt文件引导

Hit Class:用来决定敌人被该武器击中时,将产生何种音效和动画

Invwidth:在物品栏中所占用的宽度
Invheight:在物品栏中所占用的高度

Stackable:此物品是否可以多个叠放为一堆;1 = 可以,0 = 不可以
Minstack:一堆叠放物品的最小数量
Maxstack:一堆叠放物品的最大数量
Spawnstack:随机出现该种物品时,一堆的数量

以下四列分别是不同情况下程序对物品所调用的DC6文件名称
Flippyfile:物品掉落时的动画文件
Invfile:物品栏里的图像文件
Uniqueinvfile:暗金物品所使用的物品栏图像文件
Setinvfile:套装物品所使用的物品栏图像文件

以下三列用于描述物品上孔数的属性
Hasinv:该物品是否可以拥有孔,以镶嵌入宝石/符文,1 = 可以打孔,0 = 不能打孔
Gemsockets:该物品上可能出现的最大孔数,但一件物品不可能拥有多于其物品栏占用格子数量的孔数
另外,ItemType.txt中还有三个根据物品等级高低限制其孔数的列——MaxSock1、MaxSock25、MaxSock40
Gemapplytype:镶嵌物镶嵌进此物品后所获得的效果,0 = 武器,1 = 装甲/头盔,2 = 盾牌(其他值将使物品上无法出现孔)

Special:无用参数,仅作为注释列

Useable:0 = 无法通过右键点击来使用它,1 = 可以右键点击来使用它

Dropsound:物品掉落时的音效。此列引自sound.txt中的Sound列值
Dropsfxframe:音效持续的桢数
Usesound:该物品被装备上时/放入物品栏里时的音效。此列引自sound.txt中的Sound列值

Unique:1 = 仅存在暗金形态,0 = 未必总是暗金(此列用于一些暗金形态的任务物品)

Transparent:未知函数

Transtbl:未知函数(值一般为5)

Quivered:该物品是否作为弹药存在,1 = 是,0 = 否

Lightradius:无用参数

Belt:引自belts.txt里的数字ID,定义了腰带上放置物品的空间

Quest:任务物品所使用的任务ID

Questdiffcheck:该任务物品是否通用于所有难度,置为1,则该任务物品仅作用于当前难度

Missiletype:假如投掷该物品的话,所形成的飞射物ID(引自missiles.txt中的ID)

Durwarning:当物品耐久度达到或小于这个值时,游戏会显示耐久警报图标
Qntwarning:当投掷物数量剩余值达到或小于这个值时,游戏会显示数量警报图标

Gemoffset:未知参数

Bitfield1:1 = 皮革制物品,3 = 金属制物品

以下部分用Vendor来代指所有的商人名称,如VendorsMin代指CharsiMin、AkaraMin等
VendorsMin:该商人能够出售的该类物品最小数量
VendorsMax:该商人能够出售的该类物品最大数量
VendorsMagicMin:该商人能够出售的该类魔法物品最小数量
VendorsMagicMax:该商人能够出售的该类魔法物品最大数量
VendorsMagicLvl:该物品可获取的最高级词缀的魔法等级

Source Art:未知参数
Game Art:未知参数

Transform:该物品在人物身上装备时所使用的颜色代码
InvTrans:该物品在物品栏时所使用的颜色代码

SkipName:是否不显示该物品的基础名称(用于诸如蝮蛇护符这种任务暗金物品,不会显示“蝮蛇护符”两次)

NightmareUpgrade:噩梦难度的商人售出物品时将以此处代码对应的物品来取代原物品,xxx = 不变
HellUpgrade:地狱难度的商人售出物品时将以此处代码对应的物品来取代原物品,xxx = 不变

Nameable:用于安亚的任务奖励,控制物品能否被个人化:1 = 可以,0 = 不能

PermStoreItem:物品是否能够始终出现于商人的货架上:1 = 可以,0 = 未必

admin 发表于 2020-1-15 02:03:59

Events.txt


“Events”简单翻释过来就“事件”之意,Events.txt文件中记录了13个“Events(事件)”。


hitbymissile — 发出发射物打击敌人(被动性质)

damagedinmelee — 使混战范围内的敌人受到伤害(被动防御性质)

damagedbymissile — 使敌人受到发射物伤害(被动性质)

attackedinmelee — 对混战范围内的敌人进行攻击(主动防御性质)

doactive — 激活技能状态

domeleedamage — 使自身受到的伤害返回给对方(主动性质)

domissiledamage — 使敌人受到发射物攻击伤害(主动性质)

domeleeattack — 对近身敌人攻击(主动性质)

domissileattack — 对附近敌人进行发射物攻击(主动性质)

kill — 杀死敌人后得到治疗

killed — 被杀死

absorbdamage — 吸收伤害(主动性质)

levelup — 等级增加

admin 发表于 2020-1-15 02:04:52


Experience.txt

Level - 角色获得相应的经验值后所提升至的级别;

Amazon - 亚玛迅战士提升至相应级别所需要的经验值;

Sorceress - 女巫提升至相应级别所需要的经验值;

Necromancer - 亡灵法师提升至相应级别所需要的经验值;

Paladin - 圣骑士提升至相应级别所需要的经验值;

Barbarian - 野蛮人提升至相应级别所需要的经验值;

Druid - 徳鲁依提升至相应级别所需要的经验值;

Assassin - 刺客提升至相应级别所需要的经验值;

ExpRatio - 经验值的除数,一般为2的倍数,否则容易出现无法正常升级的现象;

MaxLvl - 角色所能提升的最高级别(需要相应的经验值)。

admin 发表于 2020-1-15 02:07:05

RarePrefix.txt
name = 该稀有物品前缀的字符串键值(string key),tbl文件的左端入口.
version = '0'-diablo2原版,‘1‘-破坏之王。
itype1-7 = 包含物品类型(见附录)。
etype1-4 = 排除物品类型(见附录)。
add = 卖给NPC时价格增加因子(和因子?),与skills.txt中类似。
multiply = 价格增加因子(乘因子?),与skills.txt中类似。
divide = 卖给NPC时的价格减少因子(除因子?)。

附录:itype & etype
itype = Inclusion TYPE(包含类型) & etype = Exclusion TYPE(排除类型)
这个决定了一个给定的词缀可以在{itype}所包含的物品类型上产生,而不能产生于{etype}所包含的物品类型。
比如:itype = {weap,armo} etype = {axe,helm,belt}
这个表示该词缀可以产生在所有的武器和盔甲上,但是在斧子,头盔和腰带上不能产生。
通过这种方法(在‘itype’和‘etype’里面设定物品类型),你可以控制某类物品是否能产生(或者说接受)该词缀,比如让某个(些)词缀只能在剑(swords)上产生,或者不能让它在剑上产生。当然,首先你必须知道该物品的代码。
注意:以上的说明同样适应于其他有‘itype/etype’的.txt文件,如automagic,rareprefix/suffix。





RareSuffix.txt
name = 该稀有物品后缀的字符串键值(string key)。
version = '0'-diablo2原版,‘1‘-破坏之王。
itype1-7 = 包含物品类型(见附录)。
etype1-4 = 排除物品类型(见附录)。
add = 卖给NPC时价格增加因子(和因子?),与skills.txt中类似。
multiply = 价格增加因子(乘因子?),与skills.txt中类似。
divide = 卖给NPC时的价格减少因子(除因子?)。

附录:itype & etype

itype = Inclusion TYPE(包含类型) & etype = Exclusion TYPE(排除类型)

这个决定了一个给定的词缀可以在{itype}所包含的物品类型上产生,而不能产生于{etype}所包含的物品类型。

比如:itype = {weap,armo} etype = {axe,helm,belt}
这个表示该词缀可以产生在所有的武器和盔甲上,但是在斧子,头盔和腰带上不能产生。

通过这种方法(在‘itype’和‘etype’里面设定物品类型),你可以控制某类物品是否能产生(或者说接受)该词缀,比如让某个(些)词缀只能在剑(swords)上产生,或者不能让它在剑上产生。当然,首先你必须知道该物品的代码。

注意:以上的说明同样适应于其他有‘itype/etype’的.txt文件,如automagic,rareprefix/suffix。

admin 发表于 2020-1-15 02:08:36

Sounds.txt
sound = 描述性字段。

index = 记录ID,使用于其他txt文件。如Levels.txt,SoundEnviron.txt。

filename = 解释栏。该声音文件在mpq文件里面的文件名,注意Act1-4的路径为data\global\music\act*\***.wav,在d2music.mpq内;Act5的路径为data\global\music\act5\***.wav,在d2xmusic.wav内。替换或增加声音文件时注意路径。另外,改变文件名无效。(见附录)

volume = 解释栏。音量控制,取值0-255;是否起作用取决于music vol栏值,见下。

group size = 当音乐文件有多个时(一组),随机播放。有点类似于随机地图。当一组只有一个时,值为0,其他的在该组的第一个文件的该栏填入文件个数,其他取值为0。也就是说只有一个音乐组的第一个文件\值不为0。(我好罗嗦!)

loop = 是否循环播放。1=循环播放,0=播放一次。

fade in/fade out= 音乐淡入或淡出所经历的时间,即声音从消失到指定音量所需要的时间。

defer inst = 未知

stop inst = 未知

duration = 播放时间。意义不清楚,似乎除了几个有关白天和晚上的的声音外,如Act2和Act3(在ID为171和189的声音文件附近),其他均取值0。

compound = 控制同时播放的声音数量??不清楚。

reverb = 0/1控制是否增加回音效果到声音。

falloff = 取值0-4,控制声音随距离减弱的快慢。

cache = 0/1控制是否经常在缓存中播放。

async only = 0/1控制是否跳过播放不重要的声音如果装载不及时。

priority = 取值0-255,控制声音的变弱次序如果同时有多个音乐播放。换句话说就是控制播放的优先级。

stream = 0/1控制声音是否边装载边播放,否则先装载再播放;只对音乐文件有效。

stereo = 布尔值,控制立体声,只对音乐文件有效。注意:16bits(位)wav格式,采样率22,050Hz。

tracking = 0/1控制声音是否随所依附的音乐组移动,如果组的声音文件数>=2则取值1。

solo = 0/1控制该声音文件是否单独播放。

music vol = 0/1控制是否使用volume栏的音量值。

block 1 = 循环音乐在声音文件中的偏移量。

block 2 = 同上。

block 3 = 同上。
页: 1 2 3 4 [5]
查看完整版本: TXT源码文件全面解读