[逆大天] Aegisub内置的lua的random种子竟然是固定的
本帖最后由 Lambholl 于 2025-9-7 20:57 编辑首先,我们可以证明在正常情况下,lua的math.random种子不是每次启动都固定的:
直到今天我发现我用了一堆random的歌词脚本,启动后点击第一次Apply Karaoke Template后,整个文件都没有变,点击第二次才会改变,
于是我启动了两次aeg,比较了按第二次生成时生成的文件:
创建新文件进行尝试,发现每次启动后第一次生成,都是固定的数字序列,而且所有版本都是这样:
查看logger的代码,其中基于计时器设置了种子:
可以推测其本意为基于随机生成一个种子,但是很明显这个函数返回值由于某种原因,变成了0,
因为当我们尝试在脚本中加入math.randomseed(0),不管生成多少次,都变成了和上面截图中一样的结果:
因此,可以确定这是一个logger导致的bug
把 logger 中的 math.randomseed(timer\timeElapsed!*1000000) 改为 math.randomseed(1) 也没有效果
0.794... 是 seed 0 的第一个值,logger 中重设 seed 后 math.random, math.random, math.random
所以如果 logger 中重设的 seed 在脚本中运用了,得到的结果也不应该是 0.794,感觉应该是其他脚本覆盖了 logger 重设的 seed 为 0
页:
[1]