左右分栏
战网首页
封禁账号自查
注册游戏账号
游戏密码找回
社区服务
银行
道具中心
统计排行
基本信息
到访IP统计
管理团队
管理统计
在线会员
会员排行
版块排行
帖子排行
标签排行
角色技能模拟器
用户名
密 码
记住登录
登录
找回密码
注册
快捷通道
关闭
您还没有登录,快捷通道只有在登录后才能使用。
立即登录
还没有帐号? 赶紧
注册一个
网站首页
战网论坛
暗黑2下载
战网注册表
增值服务办理
战网交易集市
战网聊天室
暗黑2资料库
帖子
用户
版块
帖子
搜索
91D2战网官方QQ群: 〖 一群:907473582 〗 〖 二群:289990050 〗 〖 三群:6713328 〗
91D2战网-暗黑破坏神2-暗黑2战网
>
『 暗黑资料库 』
>
文件内部使用的一些计算公式
发帖
回复
返回列表
新帖
2918
阅读
0
回复
文件内部使用的一些计算公式
[复制链接]
上一主题
下一主题
离线
铃铛
UID:83661
注册时间
2009-08-31
最后登录
2021-02-27
在线时间
3431小时
发帖
59624
搜Ta的帖子
精华
4
金钱
6311
91币
0
信誉
0
访问TA的空间
加好友
用道具
关闭
个人中心可以申请新版勋章哦
立即申请
知道了
发帖
59624
金钱
6311
91币
0
信誉
0
资产
0 IST
在线时间
3431 小时
注册时间
2009-08-31
最后登录
2021-02-27
加关注
发消息
只看楼主
倒序阅读
使用道具
楼主
发表于: 2010-12-09 16:50:46
文件内部使用的一些计算公式
文件内部使用的一些计算公式
by:悄然花开
1. 哪些文件使用这些公式?
ItemStatCost.txt (ISC), Skills.txt (SK), Missiles.txt (MS) for
identifiers (string entries) plus MissCalc.txt (MSC) 和 SkillCalc.txt
(SKC)里都包含公式。
2. 公式的具体形态
1) 一个整数或者实值。
2) 对SKC或MSC中预定公式的引用(这些引用只能分别用在SKC和MSC中)。这些公式的详细解释参看附录A
3) 对技能、状态或者Missile属性的引用。这种引用可以使用以下两种方式之一描述:
stat(''.)
skill(''.)
其中引号中跟圆点后面代表 ISC, MS和SK的字符串,(需要注意的是,圆点之前必须要单个的引用。例如stat('level'.accr) ,或者skill('Holy Shock'.edmn))。它还需要是一个保留字,表示我们要引用的状态、技能或missile的特定属性。具体列表和详细描述可以参看附录B。
更多一般情况下的复杂公式是由简单公式、数学运算符号(包括:
'-'
, :
'+'
, :
'-'
, :
'*'
, :
'/'
and :
'^'
. 其他符号无效)、标准函数(参阅附录C)以及括号组成的。
例如:
Skill(‘FireStorm’.clc1)*(Skill(‘FireStorm’.edmn)+ Skill(‘FireStorm’.edmx))/2
代表火风暴技能的平均有效伤害。(火蛇的数量*平均伤害)
[Default value]/((100+Skill(‘Fire Mastery’)*5)/100))
如果把这个式子放到delay列和适当的某个技能一行,那么该技能的CD将提升 火支配技能级别*5%
Stat(‘nextexp’.accr)-Stat(‘experience’.accr)
代表你的升到下一级所需要的经验值。
但是如果我们不能使用条件公式,公式的语法是没有那么灵活的。让我们继续研究它们。
3. 带条件的公式
条件公式是公式的一种,不过有一点很重要的区别:它们的值使用一种特定的方法来解释的:0表示否,1或者其他非零值表示是。不论是条件还是公式本身都可以以非常复杂的形式出现,它们包括一些简单的部分。简单的条件如下:
1) 一个简单的数字(0表示否,其他非零数字表示是)
2) 由两个表达式组成。之间使用‘>=’, ‘<=’,’>’,’<’,’==’ (意为相等) 和‘!=’ (意为不等于)这些符号连接。
复杂的条件是由简单条件使用逻辑符号组成的(+表示或,*表示与)。简单数学告诉我们,复杂条件涵盖了txt文件中的所有可能的条件。比如:
(stat(‘level’.accr)>=54)*(stat(‘strength’.accr)>=25)*(stat(‘dexterity’.accr)>=136))
如果此表达式为真,则角色可以装备幻化之刃(要求达到至少54级,25力量并且136敏捷)
(skill(‘Cold Mastery’.blvl)!=0)+(skill(‘Fire Mastery’.blvl)!=0)+(skill(‘Lightning Mastery’.blvl)!=0)
条件若为真,则至少
女巫
的某一系支配技能不为0
条件公式具有以下格式
condition?cfla1:cfla2.
condition表示条件。若条件为真,则公式值为cfla1,否则为cfla2. 例如:
(stat('item_cannotbefrozen'.accr)!=0)?(dm34+50):dm34
将此公式放入aurastatcalc1列,Resist Cold技能行,则如果角色装备上带有无法冰冻属性,抵抗冰冷光环将给角色提供额外的50%冰冷抗性。
(lvl<3)?3:((lvl<5)?4:((lvl<7)?5:((lvl<9)?6:((lvl<11)?7:((lvl<13)?8:((lvl<15)?9:((lvl<17)?10:((lvl<19)?11:12))))))))
此公式放到skpoints列和某特定技能行,此公式将使得该技能从0~20级,每级需要的技能点依次为3, 3, 3, 4, 4, 5, 5, 6, 6, 7, 7, 8, 8, 9, 9, 10, 10, 11, 11, 12, 12…
附录A MS和SC中的公式
这些公式可以分别被Missiles.txt和Skills.txt中的特定列所引用。
SkillCalc.txt 公式
par#
调用技能函数参数(Skills.txt中的“param#”列)。其中#代表数字。
ln##
线性公式。ln##=(par#1)+[slvl]*(par#2)。例如:ln12=par1+lvl*par2.
dm##
结果递减。dm##=(110*[slvl] * (par#2-par#1))/(100 * ([slvl]+6)) + par#1。例如:dm34=(110*lvl*(par4-par3))/(100*(lvl+6))+par3.
lvl, blvl
lvl=技能实际等级(受到物品加成之后)。blvl=技能基础等级(技能实际投入的点数)。
ulvl
某单位等级。可以表示人物或怪物的等级。 ulvl = stat('level'.accr);
clc#, ast#, pst#
分别引用的是Skills.txt中的“cltcalc#”, “aurastatcalc#”和“passivestatcalc#”列
skpt
需求技能的属性 (skills.txt中的“skpoint”列 ). 允许调整使技能增加一级需要投资的点数(参考上文条件公式的举例)。
附录B "stat"关键字的修饰符
"stat"关键字可以使用以下修饰符
base
属性的基础数值(没有经过物品加成的). 更多信息可查询ItemStatCost.txt
accr
实际数值(经过物品属性加成后的)
mod
变动数值. mod=accr-base
这些修饰符在SK和MS中可以找到。更多细节参阅附录A
附录C 标准函数
rand(#,#)
两个数值中随机挑选一个。
min(#,#)
两个数值中较小的一个。
max(#,#)
两个数值中较大的一个。
附录D 公式计算的特点
整数值.
公式计算的每一步都只是用整数值进行计算。如果中间结果非整数,将向下取整. 例如:"1/3*lvl"是不正确的,它将永远等于0. 正确的写法应该是"lvl/3"
整数溢出.
计算时的中间结果在游戏中以带符号位的Dword类型变量存储(范围-2147483648…2147483647)。
1) 如果数值不在这个范围内,将发生溢出 (例如“2147483647/1000000000”= 2, 但 “2147483648/1000000000” = -2).
1) 计算出最终结果之后,游戏引擎将它存储在适当的变量中。如果该变量的范围小于dword类型的范围,同样可能会发生溢出。
公式中出现的错误
1) 如果游戏发现错误公式, 例如把“min”写成了“man”,将不改变该公式的参数,返回上一次的参数结果。
2) 如果游戏不认识某个操作符(例如:使用了C语言的操作符号"++"), 将会把整个公式视作错误公式,并返回0。
3) 除数为0的话,结果为0.(例如:50/0 = 0; 50/0+10 = 10)。
4) 公式中的循环引用 (例如: “aurastatcalc1”列的数值设为“10+ast1”) 将造成游戏崩溃。
附件E 已知bug
1)D2中的公式总长度不能超过255个字符,超出的部分将被自动忽略。
2)某些情况下会发生溢出(参看附录D).
3)txt文件中的某些单元可能无法识别正确识别公式 (例如:MS中的“Vel”列).
4)有时候被公式修改过的属性可能不会正确的刷新, 重设技能或者保存退出可以解决此
问题
。
附录F txt文件中可以正确识别公式的列(1.10版)
文件名 列
missiles SrvCalc1
missiles CltCalc1
missiles $HitCalc1
missiles CHitCalc1
missiles DmgCalc1
missiles DmgSymPerCalc
missiles EDmgSymPerCalc
skills prgcalc1
skills prgcalc2
skills prgcalc3
skills auralencalc
skills aurarangecalc
skills aurastatcalc1
skills aurastatcalc2
skills aurastatcalc3
skills aurastatcalc4
skills aurastatcalc5
skills aurastatcalc6
skills passivecalc1
skills passivecalc2
skills passivecalc3
skills passivecalc4
skills passivecalc5
skills petmax
skills sumsk1calc
skills sumsk2calc
skills sumsk3calc
skills sumsk4calc
skills sumsk5calc
skills cltcalc1
skills cltcalc2
skills cltcalc3
skills perdelay
skills skpoints
skills calc1
skills calc2
skills calc3
skills calc4
skills ToHitCalc
skills DmgSymPerCalc
skills EDmgSymPerCalc
skills ELenSymPerCalc
skilldesc ddam calc1
skilldesc ddam calc2
skilldesc p1dmmin
skilldesc p1dmmax
skilldesc p2dmmin
skilldesc p2dmmax
skilldesc p3dmmin
skilldesc p3dmmax
skilldesc desccalca1
skilldesc desccalcb1
skilldesc desccalca2
skilldesc desccalcb2
skilldesc desccalca3
skilldesc desccalcb3
skilldesc desccalca4
skilldesc desccalcb4
skilldesc desccalca5
skilldesc desccalcb5
skilldesc desccalca6
skilldesc desccalcb6
skilldesc dsc2calca1
skilldesc dsc2calcb1
skilldesc dsc2calca2
skilldesc dsc2calcb2
skilldesc dsc2calca3
skilldesc dsc2calcb3
skilldesc dsc2calca4
skilldesc dsc2calcb4
skilldesc dsc3calca1
skilldesc dsc3calcb1
skilldesc dsc3calca2
skilldesc dsc3calcb2
skilldesc dsc3calca3
skilldesc dsc3calcb3
skilldesc dsc3calca4
skilldesc dsc3calcb4
skilldesc dsc3calca5
skilldesc dsc3calcb5
skilldesc dsc3calca6
skilldesc dsc3calcb6
skilldesc dsc3calca7
skilldesc dsc3calcb7
weapons len
weapons calc1
weapons calc2
weapons calc3
weapons spelldesccalc
armor len
armor calc1
armor calc2
armor calc3
armor spelldesccalc
misc len
misc calc1
misc calc2
misc calc3
misc spelldesccalc
magicsuffix mod1param
magicsuffix mod2param
magicsuffix mod3param
magicprefix mod1param
magicprefix mod2param
magicprefix mod3param
automagic mod1param
automagic mod2param
automagic mod3param
uniqueitems par1
uniqueitems par2
uniqueitems par3
uniqueitems par4
uniqueitems par5
uniqueitems par6
uniqueitems par7
uniqueitems par8
uniqueitems par9
uniqueitems par10
uniqueitems par11
uniqueitems par12
sets pparam2a
sets pparam2b
sets pparam3a
sets pparam3b
sets pparam4a
sets pparam4b
sets pparam5a
sets pparam5b
sets fparam1
sets fparam2
sets fparam3
sets fparam4
sets fparam5
sets fparam6
sets fparam7
sets fparam8
setitems par1
setitems par2
setitems par3
setitems par4
setitems par5
setitems par6
setitems par7
setitems par8
setitems par9
setitems apar1a
setitems apar1b
setitems apar2a
setitems apar2b
setitems apar3a
setitems apar3b
setitems apar4a
setitems apar4b
setitems apar5a
setitems apar5b
gems weaponmod1param
gems weaponmod2param
gems weaponmod3param
gems helmmod1param
gems helmmod2param
gems helmmod3param
gems shieldmod1param
gems shieldmod2param
gems shieldmod3param
runes t1param1
runes t1param2
runes t1param3
runes t1param4
runes t1param5
runes t1param6
runes t1param7
共
条评分
回复
举报
发帖
回复
返回列表
https://bbs.91d2.cn
访问内容超出本站范围,不能确定是否安全
继续访问
取消访问
快速回复
限100 字节
您目前还是游客,请
登录
或
注册
进入高级模式
文字颜色
发 布
回复后跳转到最后一页
上一个
下一个
隐藏
快速跳转
〖 暗黑破坏神综合讨论大区 〗
『 暗黑综合讨论区 』
『 新人培训区 』
『 增值服务/特色系统专区 』
『 技术资源区 』
〖 暗黑破坏神FZ/HC/PVP区 〗
『 非资料片讨论区 』
『 非资料片物品交易/拍卖区 』
『 PVP专区 』
『 专家模式讨论区 』
〖 暗黑破坏神物品交易大区 〗
『 物品估价区 』
『 物品交易区 』
『 物品拍卖区 』
『 极品博物馆 』
〖 暗黑资料/活动/技术大区 〗
『 赛事活动专区 』
『 天使辅助专区 』
『 暗黑文化专区 』
『 暗黑资料库 』
『 人物角色区 』
『 凭水相逢 』
〖 暗黑破坏神2重制版:狱火重生专区 〗
『 暗黑2重制版讨论区 』
『 暗黑2重制版交易区 』
『 暗黑2重制版拍货区 』
〖 战队/部落/联盟 〗
『 TOP战队 』
『 BT战队 』
『 IF战队 』
『 DX弟兄联盟军团 』
『 部落级战队联盟专区 』
『 战队综合管理区 』
〖 暗黑战网管理办公室 〗
『 战网游戏事务/投诉专区 』
『 论坛(BBS)人事/投诉专区 』
『 论坛管理办公室 』
关闭
关闭
选中
1
篇
全选