作者laechan (小太保)
看板mud_sanc
标题Re: [抠顶] 盾挡调整
时间Wed Aug 1 10:58:15 2012
接着是後续的部份。事实上以上面的公式来看它其实并不
利於降低系统的负担。
理想的做法应该是..
if(n > random(100))
完全格挡;
else
伤害减伤;
(以前则没有减伤的部份)
然後 n 的计算要尽量简单,减伤的部份也要尽量的单纯。
再依程式来看,底下几个数值是一定会读取的..
skill=me->query("skill/shield"); // 盾牌技能值
s1=shield->query("mass"); // 盾牌重量(同义於盾牌大小)
s2=shield->query("armor"); // 盾牌防御值(同义於盾牌抵挡能力)
str=me->query("stat/str"); // 玩家力量值
而减伤则有两种,一种是减%,一种是直接扣减值,我刚
刚看了 watershield 它是用减%,所以一般盾挡就用直接
扣减值的方式,目前最简易的做法是...
扣减值 = s1 x s2 x 某值
比方以八卦镜为例,重量 450、防御值 600,相乘为 27
万,那麽就有一个问题,就是新手 VS 老手,拿八卦镜都
能得到相同的减伤值吗?答案是否定的,那麽,影响其防
御值的因素为何?就是 skill。
那简单的公式就是扣减值 = s1 x s2 x (skill / 4000)
= ((s1 x s2) / 100) x (skill / 40)
(实际公式不会照上面,但是会很类似)
若减伤公式 follow 上面,则格挡机率的计算部份我就倾
向使用 skill 及 str 两个,公式大抵是..
格挡机率 = skill x 某值 + str x 某值
然後 skill 会占较大的比重,例如 skill/100 为盾牌技
能影响的格挡机率(以後最大 40%),然後 str/200 为额外
的机率,例如 str 5000 的人额外增加 25%。
==================================================
这样设就有几个好处..
一、力量高、盾牌技能值高的人,不管拿什麽盾,完全格
挡机率都很高(即盾牌本身不再影响格挡机率)。
二、力量低、盾牌技能值低的人,几乎无格挡机率,但是
因为有盾牌扣减伤害,所以此时拿盾就可以减伤,甚
至达到完全减伤的效果。
三、但实际上还要再读取两个值
lv1 = me->query("level");
lv2 = tar->query("level");
然後在格挡机率部份再加上 lv1、lv2 的相互影响,
比方说若我们承认当你跟怪物的等级差距 < 30 时,
你的盾牌格挡机率是直接再加上某值的,那麽理想的
公式是..
a = lv1+30 - lv2
if(a>0)
格挡机率 = a + 盾牌技能值影响 + str 影响
else
格挡机率 = 盾牌技能值影响 + str 影响
这样就可以确保你在对抗等级跟你差不多的敌人时有
良好的格挡率。
以上看今天有没有办法实装。
Laechan
--
※ 发信站: 批踢踢实业坊(ptt.cc)
◆ From: 210.61.157.53