ItemStatCost.txt文件导引。 翻译整理:01cwm
资料来源:Phrozen Keep
A.Stat = 属性名。
B.ID = 属性ID。
C.Send Other = 很可能用来决定在联机游戏时,此属性是否发送给其他人,只针对那些对图象要求较高的属性(faster attack/cast/gethit rate)。由于某些原因,敏捷(dexterity)和力量(strength)也同时被发送。留意一下txt文件即知。
D.Signed = 该属性值是否为有符号数。也就是说该属性是否能为负值(negative)。
E.Sendbits = 在客户端和服务器之间传送此值时所用的位长。
F.Send Param = 与客户端和服务器有关的参数。
G.UpdateAnimateRate = ???。可能情况:取布尔值,告诉客户端更新角色动画的速率。
H.Saved = 角色存档时该属性是否同时被保存。物品上的属性随物品一起保存。
I.CSvSigned = 在角色存档是否采用有符号数来保存该属性。1=是,0=否。
J.CSvBits = 存储位长,在角色存档中采取多少位保存。能够保存的最大值为''2^CSvBits-1''。
K.CSvParam = 存储参数,与保存某些属性的参数有关。
L.fCallback = ???
M.fMin = ???
N.MinAccr = ???
O.Encode = 与编码方式有关。
P/Q/R.Add/Multiply/Divide = 计算物品价格时的参数值。(其他txt文件同)
S.ValShift = 决定值以多大的精度变化?。’1‘表示有2^1=2阶精度,’2‘则有2^2=4阶精度,’8‘具有2^8=256阶精度,比如生命点就按1/256的精度进行计算。
T/U.1.09-Save Bits/1.09-Save Add = 在1.09版中的存储位长/相对1.09的增加值。可能与角色转换有关,即1.09的存档导入1.10。
V/W.Save Bits/Save Add = 用来处理物品上数值的保存。同时也决定了该属性可能的最小和最大值。其中,‘’Save Bits‘’决定了属性值的存储位长,‘’Save Add‘’决定了最小值,且和''Save Bits'一起决定最大值。
结果为:stat最小值 = - [Save Add];
stat最大值 = 2^[Save Bits] - [Save Add] - 1;
比如:"Save Add'' = 32,"Save Bits = 8"
则有:最小值 = - 32;
最大值 = 2^8 - 32 -1 = 256 - 33 = 223
X.SaveParamBits = 决定参数以多少位(bits)保存(???)。
Y.keepzero = 布尔值,控制该属性能否出现负值(或者理解为有消极效果)。1=不能。
Z.op = 操作数ID。用来计算该属性产生的效果。
已知的ID及其效果:
1 : op 状态按 [statvalue] 百分比增加(op stats are increased by [statvalue] percent)
2 : op 状态按 [statvalue] * [op base] / 2^[op param]增加(op stats are increased by [statvalue] * [op base] / 2^[op param])
3 : 未使用,效果未知(not used, effect unknown)
4 : 似乎是和2的效果相同(seems to have the same effect as 2)
5 : op 状态按 [statvalue] * [op base] / 2^[op param]百分比增加(op stats are increased by [statvalue] * [op base] / 2^[op param] percent)
6 : op 状态按时间增加(op stats are increased by time)
7 : op 状态按时间和百分比增加(op stats are increased by time and percent)
8 : 用来计算法力值基于能量值的增加(used to calculate the mana based on energy)
9 : 用来计算生命力和体力值基于活力值的增加(used to calculate the hitpoints and stamina based on vitality)
AA.op param = 见’op‘。
AB.op base = 见’op‘。
AC/AD/AE.op stat1-op stat3 = 控制状态,见’op‘。
AF.direct = 如果该属性能加成到其他属性上,此处设置为1。比如当装备上一个+30mana的物品时,你的最大mana值也会同时增加。
AG.maxstat = 当‘’direct=1‘’时,该属性能加成到的最大属性。
AH.itemspecific = 该属性是否为某类(个)物品独有(且只能影响此类/个物品),比如耐久度,孔数等。比如你可以在这里设置使你的第二件武器不会增加第一件武器的攻击速度。
AI.damagerelated = 该属性是否与‘’伤害‘’(damage)有关。1=是。(效果未知)
AJ.itemevent1 = 当事件(event)发生时,触发‘’intemeventfuc1‘’(见下)。
AK.itemeventfunc1 = 作用在‘’itemevent1‘’上的函数。使用的函数如下:
6:attacker takes damage of [statvalue] // 攻击者获得伤害
7:knockback // 弹回
8:howl effect // bar的吼叫效果
9:stupidity effect // 致盲效果
10:attacker takes lightning damage of [statvalue] // 攻击者获得闪电伤害
14:freeze effect // 冰冻效果
15: openwounds effect // 撕裂伤口效果
16:crushing blow // 一击致命(或者’粉碎性打击‘?!)
17:get mana (after kill) // 每杀死一个怪物得到魔法值
18:get life (after demon kill)
19:slow effect // 迟缓效果
20:skill is released // 技能释放,触发事件:被围攻&杀死怪物等
21:skill is released //类似20?!
28:get life (after kill) // 每杀死一个怪物得到生命值
29:slain monster rests in peace // 杀死怪物回复平静
30:skill is released // 释放技能,触发事件:被杀死&升级
31:reanimate slain monster // 杀死怪物后被鼓舞
AL.itemevent2 = 当事件(event)发生时,执行‘’intemeventfuc2‘’
AM.itemeventfunc2 = 作用在‘’itemevent2‘’上的函数。
AN.descpriority =控制该属性在物品上显示的优先级。值越高,在物品上出现得越早。(尚不能确定)
AO.descfunc = 控制属性显示方式的函数。以下是其中的一些:
1 : + [数值] [字符串](+[value] [string])
2 : [数值]% [字符串]([value]% [string])
3 : [数值] [字符串]([value] [string])
4 : + [数值]% [字符串](+[value]% [string])
5 : [数值/1.28]% [字符串],野蛮人的吼叫技能使用([value/1.28]% [string] // used for howl)
6 : + [数值] [字符串] (基于角色等级)(+[value] [string] (based on character level))
7 : [数值]% [字符串] (基于角色等级)([value]% [string] (based on character level))
8 : + [数值]% [字符串] (基于角色等级)(+[value]% [string] (based on character level))
9 : [数值] [字符串] (基于角色等级)([value] [string] (based on character level))
10 : [数值/1.28]% [字符串] (基于角色等级)([value/1.28]% [string] (based on character level))
11 : 每 [100/数值] 秒自动修复1点耐久度(Repairs 1 durability in [100/value] seconds)
12 : + [数值] [字符串],致盲和冰冻使用(+[value] [string] // used for stupidity, freeze)
13 : + [数值] 到 [角色] 技能等级(+[value] to [class] skill levels)
14 : + [数值] 到 [角色技能页] (仅限[角色])(+[value] to [skilltab] skills ([class] only))
16 : 装备时显现等级 %d %s 灵气(Level %d %s Aura When Equipped)
AP.descval =
0:不显示值。
1:值先显示,即显示顺序为‘’值+字符串‘’。比如“+5 to strength‘’(加5到力量)。
2:字符串先显示,然后才是值,即‘’字符串+值‘’。比如‘’strenght +5‘’(力量加5)。
AQ.descstrpos = 值为正时使用的描述性字符串。
AR.descstrneg = 值为负时使用的描述性字符串。
AS.descstr2 = 第二个显示字符(与’‘attributes/per level’‘有关--随等级增长属性,如’‘item-resist-cold-perlevel,ID=230’‘)。
AT.dgrp = 显示组。同一显示组中的相同属性将一起显示。
说明:该txt源文件中一共只有两组,每组含四个属性。
组一:’‘dgrp=1’‘,包括’‘strength(力量,ID=0)’‘,’‘energy(精力,ID=1)’‘,’‘dexterity(敏捷,ID=2)'',''vitality(生命,ID=3)''。
组二:''dgrp=2'',包括’‘fireresist(抗火,ID=39)'',''lightresist(抗闪电,ID=41)'',''coldresist(抗寒,ID=43)'',''poisonresist(抗毒,ID=45)''。
AU.dgrpfunc = 与‘’descfunc‘‘同,控制显示组(display groups)的显示方式。
AV.dgrpval = 与‘’descval‘’同,针对显示组。
AW.dgrpstrpos = 与’‘descstrpos’‘同,针对显示组。
AX.dgrpstrneg = 与’‘descstrneg’‘同,针对显示组。
AY.dgrpstr2 = 与’‘descstr2’‘同,针对显示组。
AZ.stuff = ???
BA.*eol = 行结束符’0‘。
注: op参数和显示方式参考了Sloovy的帖子,在此表示感谢!