作者laechan (小太保)
看板mud_sanc
标题[wizs] ready_attack
时间Fri Jul 22 06:48:00 2011
目前可以考虑回复这个设定。
ready_attack 的概念简单的说就是「普攻/en 攻击n回合後
会强制休息 1 回」。
1.不管连击几次都算一回合。
2.受阵法影响而多增加的1+1回合攻击,也算一回合。
3.最多强制休息一回合。
所以这个东西基本上是写在 execute_attack 函数、而且是写
在风阵前的。
再来的话,比较简易的算法就是让它跟 1+dex/10 有关。
一、每一回合的自然增加值
与所拿的武器所对映的使用 en 级数成正比。不使用 en
时,这个值就不会增加。
二、额外的增加值
只要施展特攻,就固定增加多少(这样比较好改),其增加
的值与特攻的施展级数等可以相关。
三、每一回合的自然减少值
与 1+dex/10 有关。另外也可以与所拿的武器所对映的基
本技能值有关,技能值越高,就减少越多。
四、然後不要订定「可以在该回合多增加一次攻击」的设定
以前很多 bug 就是从这里来的,比方以前是这样..
while(ready_attack++t < 240)
execute_attack(); // 再执行一次攻击
结果因为 ready_attack 出现「负很多」的情况,造成上
述的回圈瞬间执行多次,以前有玩家就利用过此 bug。
五、一定要非常明确定地界定出「会增加或减少 ready_attack
」的来源,这样才能做 ready_attack 的有效控制。
所以不被允许的来源都不能修改 ready_attack 值。
(这里就给出一个重点,就是 ready_attack 值不能是采用
me->add 的方式去更动,而必须呼叫特定的函数)
这样的好处是,新手一开始的 dex 不高,但 ready_attack的
增加值亦不高,要非常多回合後才会中止攻击一次。
反过来说,如果有某新手,明明 dex or 基本技能还没很高、
但 en or 特攻的 lv 却使用很高时,可能攻击的几次就会中止
攻击一次。
上面三个都很好定,唯一难定的就是「一回合基础攻击时间值」
if(ready_attack > T)
{
中止攻击一次;
ready_attack=BASIC_READY_ATTACK;
}
以前也发生过另一种情况,就是 ready_attack 回归基本值後,
下一回合的攻击「又让 ready_attack > T」,例如玩家一直狂
发 lv 非常高的特攻,导致玩家的 en 一直发动不出来。
然後就有玩家认为这是 bug。
所以这里就提到一个重点,两种情况..
一、玩家的 en 可能会一直发动不出来
但是这麽一来 dex 的价值、及部份辅助法术、阵法的效果
就会非常被突显出来,而且高 dex 与低 dex 的种族也会产
生基本的差异。
它还有额外的好处,就是突显「一回合连击数」的重要性。
二、玩家的 en 只会偶尔一次(机率最高25%)没有发动
但是这麽一来高 dex 的人跟低 dex 的人会没有差异
我个人当然会选一这样的做法,因为选二的话跟现在的做法其实
是没有差异的(现在n回攻击时本来就会停止一回,随机的),选
二的话就不用改了。
wiz 们,或玩家也可以,不妨就这个议题讨论看看。以前可能不
适合做而现在可以做的原因,我想其实大家也都很清楚。
(简单的说就是无感的玩家变多,所以现在要改啥会比以前方便)
它还有其它的设定法,例如增加的是「值」,减少的是「比例」
,这样就一定能确保该值「有可能」会被增加到某一值,而且该
值不会有变负的情况,这时 BASIC_READY_ATTACK 就可设为 0。
因为有这个设定法的出现,ready_attack 就变成是确定可以做
的东西。
Belldandy.
--
演艺圈十大谎言
ψlaechan
01.我跟他只是朋友 06.我好傻好天真
02.我还是处女 07.我绝对不是奉子成婚
03.我全身上下都是真的 08.整型的事情,我会坦然面对
04.我从没交过男朋友 09.我真的不是照片里面的那个女生
05.我真心祝福他(前男友,前夫) 10.大家好,你们真的好热情,我爱你们~
--
※ 发信站: 批踢踢实业坊(ptt.cc)
※ 编辑: laechan 来自: 122.117.9.179 (07/22 06:51)