楼主:
meowyih (meowyih)
2021-02-10 16:34:56※ 引述《siscon (e-diot)》之铭言:
: 影片原标题
: 终于露出马脚?网易游戏概率欺诈或成实锤,明日之后近二十万充值证明概率不合理,“
: 网易概率门”或成网游史上第一次被实锤的概率欺诈!
: https://www.bilibili.com/video/BV1hy4y1H7rz
: 竟然有游戏公司敢做出机率做假这种事
: 不知道该说游戏公司可怕
总之结论就是没保底不要玩,
你认为几抽内一定要中,那就是保底啊...
回到实作面好了,今天我说抽卡机率1%,
然后我的 server code (pseudo-code) 这样写
global int wins, total_roll;
bool is_win()
{
total_roll ++; // 抽卡总数+1
// 目前已中奖的总机率
float curr_win_rate = (float)wins / total_roll;
if ( curr_win_rate > 5 ) // omg, 机率>5%?
return false; // 大失血不能再让人中了
// 省效率不查机率表,直接用系统时间(millisecond)
// 除100的余数当机率
if (get_millisecond() % 100 == 1)
{
wins++;
return true;
}
else
return false;
}
然后某个人要抽的时候正好是前面几万抽欧气大爆发,
中奖机率超过 5% 所以进入保护码再也抽不到了,
玩家去告,游戏公司说请去看我们的纪录,
不但超过 1%,还高达 4.x% 勒,
怎么办? 先不说法院到底有没有人会去看 code,
妳真的说这算非独立机率,
那实体的抽奖活动不也都是这样吗?
再来一个更蠢的
bool is_win()
{
// 取地目前时间的秒数值
int second = get_current_sec_in_min();
if (second == 59)
return true;
else
return false;
}
懒惰又想减少 server loading 的工程师说,
本来是 1%,但是我们大放送变 1.67%! 爽吧!
然后某个虽小的玩家从 0:00:00 开抽,
每隔 2 秒抽一次,
然后永远都不会有 59 秒的时机,
因为 59 不是 2 的倍数! (爆笑XD)
这种的你要怎么告的赢?
说人家没有用 network security level 的乱数算法?
(ps:C标准的的rand()没有达到那种安全等级喔)
人家有保证过这点吗?
如果游戏公司真的愿意做到这么完美,
那直接给个保底不就好? 对 server 负担还比较轻勒
劝世文,看到没保底就要默认那是在骗人的,
不要再玩了啦