|
|

楼主 |
发表于 2010-5-22 11:12:54
|
显示全部楼层
奇穴重数究竟靠什么判定?时间: 2010-03-05 11:38:32 文章来源:多玩《剑网3》专区 作者:暗|殇 ; x) `1 D# @3 {4 k
; C# X- }. ^& T- N! X4 K2 w2 K5 P 首先声明,我只是简单介绍几个常用判定方法,里面所提举的例子不保证完全符合事实,但保证是游戏里会出现的判定方式。具体用的哪个大家自己考虑吧,我没那个能力反编译程序,我只是给大师们提个醒。" y2 Y8 ^; x o0 l6 E8 g5 Z3 F/ i
对于这种无法预知结果的乐透,我们通常称作它是一个随机数。
: J, ~) c5 Y f5 H5 ?; ` 比如掷骰子,丢硬币,乃至现在的点奇穴,我们都可以认为它是一个随机的过程。) _0 A" `# I' S; \( l9 l& x I% z
1.简单的随机函数. ]4 w3 P k) I7 g" y' ?
首先呢计算机里是没有绝对的不可预知的随机过程的
/ U4 {, w) t, s. V! g* X& K" c 我们通常玩游戏丢点数(-roll),虽然每次出来的结果都不同,但都属于JS编制的一个函数数列
1 i1 m7 X: b/ ^/ `2 `9 L) C: u (数列满足条件:均值=50,方差足够大,具体意思不清楚也没事,就是表示数列里1-100每个数字出现的次数是基本相同的)
% Q9 j: h" X* l9 B9 v 也就是说,我们如果知道这个函数,就能知道下一次我们会得到多少点,这个点是确定无法改变的
$ ~5 `, v/ G- b; z$ L* s( } 2.游戏里的判定
, `2 P, y5 h s8 B( w 当我们有了这个数列,我们就可以做其他函数来计算游戏中的数据
, S% F0 T! M! e 举例1:暴击8 E; I0 e/ \0 R: E
假设我们的暴击率为25%! ^: }7 y- O% q) p5 v9 U* z1 @2 W
那么这次攻击是否暴击呢?具体判定方式如下:
! d# U0 R4 k* b! ^, ^8 u 首先取数列里的下一个数,假设为20
8 ^! _. Z0 M' a8 R4 p" O5 l/ } 判定其是否在1-25之内(是或否)0 @% b3 \) }1 Q1 c/ l' h
判定为是,则玩家本次攻击打出暴击效果/ P6 R5 p' @3 q
3.伪随机
0 {$ p3 q- V" W! o' u 如果经常玩魔兽争霸3或者dota的同志们也许会了解这个东西$ i6 K# G( e& C/ ~9 d, H7 M& |
在dota里所有英雄的暴击或者闪避数据都是一个“伪随机”过程
- r" \$ H) F, q5 ? z6 k& N) C 它也是使用的上面的判定方式,但是它有个数据补偿,据说在一些有强化的游戏里,为了避免玩家强化失败损失过大,也会有这个补偿措施、
' l' W" y5 o% i* J 举例2:暴击(伪随机)' R9 H( r' } k) `
假设我们的暴击率仍旧是25%" y& H2 \" M' ~; `2 T: x) e6 ?) _
那么下面几次攻击是否会暴击呢?具体方式如下:8 S$ w4 u q. m& u3 p; ?
第一次攻击' E( Q" o# D8 b/ a- L
首先取数列里的下一个数,假设为72
3 v+ W C$ V" i6 ?% u: M# C( \ 判定其是否在1-25之内(是或否)1 C, e; t+ ~5 p( {0 G3 _; R, j6 r+ V y
判定为否,则玩家本次攻击不暴击
/ I; v* @4 Y" A9 S6 N \) U 第二次攻击; S2 J. A; V5 t- L L
仍旧使用这个数,即72
" y' I/ ^) W! \ 判定其是否在1-(25+25),也就是1-50之内
( t. B2 G& {- q& S/ x3 f, L 判定为否,则本次玩家不暴击1 n- V) g8 \6 Z4 T
第三次攻击9 @& t7 N w8 K @1 G
仍旧使用这个数,即72
. { R1 m, A* P( B1 a3 Y4 }; x S( v5 q 判定其是否在1-(25+25+25),也就是1-75之内
3 f! c! t8 h& A+ a' S7 n 判定为是,则玩家在第三次攻击中暴击
2 x9 s! G8 J% A% w 伪随机通过这种补偿,保证你一定能在1/p次内达到目的(p为暴击,ROLL点,闪避的概率)' K; L" h& _! W* t% h
这也是很多游戏里某些所谓强化大师用的垫刀流(找便宜东西连续强化失败,再强化需要的装备)理论依据 |
|