找回密码
 立即注册
查看: 181|回复: 2

[逆大天] Aegisub内置的lua的random种子竟然是固定的

  • TA的每日心情
    无聊
    2023-3-18 18:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    24

    主题

    317

    回帖

    1056

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    407125
    Lambholl 发表于 前天 20:43 | 显示全部楼层 |阅读模式
    本帖最后由 Lambholl 于 2025-9-7 20:57 编辑

    首先,我们可以证明在正常情况下,lua的math.random种子不是每次启动都固定的:
    9a4f26fb-659d-4051-adc7-d008bbae2df7.png

    直到今天我发现我用了一堆random的歌词脚本,启动后点击第一次Apply Karaoke Template后,整个文件都没有变,点击第二次才会改变,
    于是我启动了两次aeg,比较了按第二次生成时生成的文件:
    屏幕截图 2025-09-07 203938.png

    创建新文件进行尝试,发现每次启动后第一次生成,都是固定的数字序列,而且所有版本都是这样:
    1c4cd875-aaf9-415d-a2fa-af7cb6bab98a.png 47a7721c-aaab-474c-b931-25d4f9b5a5cd.png

    查看logger的代码,其中基于计时器设置了种子:
    b70b70d9-d6bf-42d6-b373-2e4330ff1553.png
    可以推测其本意为基于随机生成一个种子,但是很明显这个函数返回值由于某种原因,变成了0,
    因为当我们尝试在脚本中加入math.randomseed(0),不管生成多少次,都变成了和上面截图中一样的结果:
    4aec1254-4e89-4f08-887f-8b8807908979.png

    因此,可以确定这是一个logger导致的bug
    回复

    使用道具 举报

  • TA的每日心情
    慵懒
    昨天 12:36
  • 签到天数: 533 天

    [LV.9]以坛为家II

    18

    主题

    119

    回帖

    20

    VC币

    至尊会员

    Rank: 16Rank: 16Rank: 16Rank: 16

    积分
    170991
    op200 发表于 昨天 13:33 | 显示全部楼层
    把 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
    回复

    使用道具 举报

  • TA的每日心情
    无聊
    2023-3-18 18:33
  • 签到天数: 3 天

    [LV.2]偶尔看看I

    24

    主题

    317

    回帖

    1056

    VC币

    星辰大海

    Rank: 20Rank: 20Rank: 20Rank: 20Rank: 20

    积分
    407125
    Lambholl  楼主| 发表于 昨天 19:54 | 显示全部楼层
    op200 发表于 2025-9-8 13:33
    把 logger 中的 math.randomseed(timer\timeElapsed!*1000000) 改为 math.randomseed(1) 也没有效果

    0.794 ...

    目前我也不太能找到其他脚本改的地方,能找到的都试了没效果
    回复

    使用道具 举报

    您需要登录后才可以回帖 登录 | 立即注册

    本版积分规则

    快速回复 返回顶部 返回列表