首页 | QQ空间 | QQ个性 | QQ技术 | QQ宠物 | QQ游戏 | QQ贺卡 | QQ下载 | QQ皮肤 | QQ场景 | QQ头像 | QQ表情 | QQ桌面 | QQ乐园 | QQ搞笑 | QQ工具
QQ游戏首页QQ华夏 - QQ三国 - QQ幻想 - QQ音速 - QQ堂 - QQ飞车 - QQ凯旋 - QQ飞行岛 - QQ自由幻想 - QQ游戏大厅 - QQ对战平台
→您现在的位置: 中国QQ天空 >> QQ游戏 >> QQ幻想 >> 文章正文

关于大攻卡和小攻卡的争论

更新时间:2006-8-14 0:43:19 
我程序虽然学的不怎么样,但是对于一般建立在数学模型上的程序,还是能做到心领神会的.

  今天我想给大家从程序的角度,从数学模型的角度去说说"大攻击卡和小攻击卡的问题."

  大攻击卡和小攻击卡的争论到现在始终也没有得到太大的定论,基本都是各执一词.说的也是在情在理的.

  但是在最基础的数据语言里面,大攻击卡和小攻击卡的概念到底又是怎么样给于定义,描绘的呢?

  我不知道幻想的源程序.所以只能大概的猜测里面的程序段.通过程序段给大家一个通俗的说法吧.如果程序猜测错误,那就是另外一回事了.不过按照我的经验(对<热血传奇><奇迹>等出现私服的,有源程序外泻的游戏的研究,用VC来说就只是那么一个公式罢了.)

  记得很久以前有人发过关于小攻击卡和大攻击卡的测试数据.我去找找给大家个连接,下面我也会引用到该作者的一些观点.

  在上文中提及的观点,有可取之处,也有不当的地方.

  首先我想说的就是,幻想里面的怪物,基本上是不存在防御的,即使存在也就是魔法防御特别加强的特殊怪物,物理防御特别加强的怪并不多,(基本上不存在的意思,就是怪物的级别越高,但是对应的防御缺并没有提升太多,微呼其微,几乎是怪物每高一级,只会比低级的怪多一,二点物理防御),有加强的也就是会用技能盾的BOSS级的怪物,当然,那种怪物也不算是物理防御加强了,只不过是技能的强化,而使物理防御"增强"罢了.最熟悉的莫过于21级的'地藏小妖'.这个怪,当魔法系的人打它的时候就会觉得很奇怪,这小东西明显比差不多等级的其他怪物皮厚,其实不然,TX只是给他特别加强了魔法防御而已,不过物理防御并没有增加.物理攻击系的人打它就觉得很痛快,就两下.

  法师系的人打怪就是最好的证明,基本除了BOSS,除了特别强化的怪,魔法攻击都是稳定一个数字输出的.

  说到这里也许会有人不服气,"法师打怪稳定,那只是说明怪物的魔法防御没有改变而已,但是物理防御改变了."其实很好证明的,拿个CK就可以了,10级左右的,拿把双刃,给双刃上几张小攻击卡,反正就是要把小攻击提高到跟大攻击一样,甚至超过大攻击.你试一下拿这个刺客去打怪?你会发现,除了特殊怪物,你打任何怪掉血的数字几乎都是一样的.(这个几乎的意思就是当怪物级别比你实在超越太多了,怪物的防御还是会体现出来的.)

  怪物的防御几乎可以忽略,怪物唯一赖以生存的只不过是高血量,高繁殖(刷新怪速度,呵呵)

  再说上面那篇文章中的观点吧,该作者说,"假设减少2点最大相当于减少1点最小"首先这个假设就相当不合理,这不明摆着嘛,+1的最小攻击卡是(1,2),+1的最大攻击卡是(3,6),哎呀,这个比例,小学都知道是3倍吧.怎么能说是2倍呢?

  也就是说,你要是做那个试验,比较的前提就是你弄那么多小攻击,你就得再弄三倍的大攻击卡来比较,不然没有可比较的余地嘛.

  再研究一下作者说的,"44最大→9.2630最小→18.72

  平均每1点最大攻击提升0.21平均伤害,平均每1点最小攻击提升0.624平均伤害."

  这个公式错就错在没有对比标准,就象物理所说的动和静的定义需要参照物.

  这里要做比较的话,应该先把双方同化成同一个标准.

  那么我来给他算算吧,就把小攻击同化到大攻击去吧,按照三倍的比例标准,30点的小攻击在镶嵌原则上是等于90点大攻击的,那么用18.72除以90,得到0.208

  这个还不明显吗?不过另外还需要强调的是上面引用文章的统计合理性,统计的数据还是太少,不具有相对的客观性。

  好了说了这么多,还是说回程序这个重点吧.

  根据我上面的一段分析,我再给大家分析程序,相信大家会容易明白很多的.

  对于一个人物属性有最小攻击和最大攻击体现的游戏来说,要实现这一个运算过程其实简单的不得了.说来说去就是一个rand()函数,学过VC的人会比较明白我说什么.当人物的大攻击和小攻击确定时,为了下面好说明,我就打个例子吧,比如一个角色物理攻击是100--200,rand()函数起到的作用就是,在100--200里面随机取一个值,然后"攻击"怪物,减掉怪物的防御,然后得到一个伤害值.

  过程就是rand(100--200)-f(怪物防御)=伤害

  那么这又跟最小攻击和最大攻击卡有什么关系呢?

  其实你最小攻击卡加上去,或者最大攻击卡加上去,无论怎么加,都是不能脱离rand()函数的取值的,因为,人物的攻击就是这个函数有定义的变量X.而小攻和大攻只是定义域的范围罢了.

  在统计学上来说rand()所取得的值,无论怎么变化,只要取值次数越多,所得到的平均值,就会越趋向于定义域的最小变量和最大变量的和的平均值.

  这就是我立的命题的根本依据,rand()的随机性以及趋向性可以说是一个不变的规律吧.我想这里没人敢站出来否定rand()的规律吧.

  我说个实际的运算例子吧,比如刚才那个角色100到200的攻击,我假设有两把同样的武器(为了方便计算,把武器的攻击假设为0),都带五孔,没卡.

  现在要测试的就是小攻击卡和大攻击卡的区别.

  首先我给他镶嵌一张10的小攻击卡.那么rand()的定义域变成110--200,按照上面所说的平均观点,得到攻击是155.

  然后我用另一把武器,镶嵌大攻击卡10的(事实上幻想里面是没有10的大攻击卡的,方便计算我就假设有吧.)那么rand()的定义域变成100--210.按照平均观点,得到攻击155

  再换武器,拿刚才的小攻击武器,再加张11的小攻击卡,同理,得到攻击160.5

  再换武器,拿刚才的大攻击武器,再加张11的大攻击卡,同理,得到攻击160.5

  ......

  这里无论取多少次数据,得到的效果都是一样的

  很明显,小攻击加多少和大攻击加多少,效果完全是一样的.这就是rand(),你不能否认.

  不过话说回来,在数学原理上,小攻击加多少和大攻击加多少所得到的效果是一样的.

  但是实际上,玩家真正去镶嵌卡片的时候就不是这样的了,就象我刚才的例子,事实上最大攻击10点的卡是不存在的.

  所以,比如刚才那个五孔武器,小攻击卡能镶嵌10,11,12,13,14,一共是60点小攻击.

  而大攻击卡对应10,11,12,13,14小攻卡的是30,33,36,39,42.一共是180点大攻击.

  实际上做比较的话,就象我上面的上面所提及的那位玩家的文章,那个加红的计算数字,看出来了吗?

  实际上还是一样的.

  最后得出结论:小攻击卡和大攻击卡加的攻击数值一样的话,效果完全是一样的.

:::::: 收藏本站关于我们版权申明联系我们广告服务友情链接网站地图 ::::::
© CopyRight 2006 - 2008, QQskycn.com, Inc. All Rights Reserved
鄂ICP备06009991号