真正的随机

If you liked this item, please rate it up on Steam Workshop page.

Author: Ventulus

Last revision: 3 Mar, 2023 at 20:29 UTC

File size: 9.22 KB

On Steam Workshop

Description:

【注意】似乎官方又又又搞出bug来了,建议还是订阅着本模组吧
【注意】本模组已升级2.0版本,提供“伪随机”“强随机”“原版随机”三种方法自由选择
伪随机方法足够使用且较原版能提高些许性能,强随机方法相较会轻微降低性能。
原版随机会造成“复制克隆人”,已经生成的人本模组也没有办法修改了,所以建议提前订阅好本模组再开档。
可使用“BepInEx插件管理器”F1键切换,即时生效。

很久以前就有玩家发现,游戏中自己看中的随机NPC竟然会有很多同名同姓还长得一模一样的,但是有不同身份经历的“克隆人”。这个问题很早就反馈给了官方但是迟迟未能解决。

最近我仔细研究了下NPC生成的过程,发现主要问题就在于,官方程序里写了一个叫QuikeGetRandom的方法。
但是它其实本质是,启动时生成500个随机数的池子,然后按顺序、一个接一个地取数,用完后竟然循环继续用。
而给NPC生成姓、名、外貌各个部件、背包物品等,都用了这个方法,所以就必定会有生成NPC时,姓名外貌物品按特定几个连在一起的数字进行“生成”,而且会循环重复好几遍。所以有同名同姓还必定同外貌的人就一点也不奇怪了。
要我说这500个数的池子也太小了,连“伪随机”都算不上,简直可以叫“排排坐吃果果”。
官方写了几个功能一样的随机函数,有用强随机的,有用“排排坐吃果果”的。
一般正常的软件程序,除非有特殊的加密或者线程要求,一般使用系统给的“伪随机”函数就足够用了,在数学的分布上是有足够的随机性的。

模组作者:Ventulus

Download
Required items:

Click the title to search on this site.


基础框架-BepInEx(必须安装)Steam Workshop