Windows Version: Windows 10 22H2
Java Version: JDK 17 ×64
Mirai Version: 2.14.0
Mirai Native Version: 2.0.5-cp
DiceDriver Version: 0.6.0(10)
Dice Version: 2.7.0alpha3(641)

今日因部分原因异常重启后,所有UserToday配置的number变量全部被识别为boolean值,复现步骤未知….

我无法回答为什么,因为我无法得知你是怎么调用函数的,甚至不知道你用的是哪种脚本语言

  • haha 回复了此帖

    安研色Shiki 嗯…抱歉造成了困扰,因为并不清楚反馈需要提供的内容

    function trycat(msg)
        local str = ""
        local todaytime = getUserToday(msg.fromQQ, "todayCat", 0) + 1
    
        if (todaytime > 3) then
            str = "她懒洋洋地趴着,尾巴一晃一晃,已经懒得计算积分和偷你的钱了"
        else
            local star = ranint(-4, 18)
            star = star * 4.9
    
            local favor = getUserConf(msg.fromQQ, "favor", 0) + star
            setUserConf(msg.fromQQ, "favor", favor)
    
            str = drawDeck(0, msg.fromQQ, "摸摸Koishi") .. "\f那么{nick}意识变动了『" ..
                star .. "』,为『" .. favor .. "』"
    
            setUserToday(msg.fromQQ, "todayCat", todaytime)
        end
    
        return str
    end

      haha 很明显你的脚本和你反馈现象的截图不是同一件事,我也复现不出来你的效果

      • haha 回复了此帖

        haha ……可是你的代码片段怎么看都不像是对应这个截图的……而且报错已经说明了是在第345行,也没人知道第345行是什么

        • haha 回复了此帖

          haha

          我的建议是清除todayCat字段后重试,毕竟我只能保证从没有记录开始复现是没有问题的

          • haha 回复了此帖

            安研色Shiki 从没有记录开始复现是没有问题的

            您说的的确是对的…好像复现失败了

            12 天 后

            Uh oh,看起来问题在2.7.0alpha4(642)又一次出现了

            Koishi调用D:\Stuff\KOISHI2\DICE231\plugin\tarot.lua函数tarot失败!
            D:\Stuff\KOISHI2\DICE231\plugin\tarot.lua:15: attempt to concatenate a boolean value

            function tarot(msg)
                    local sub = getUserConf(msg.fromQQ, "activesub", false)
            	local userTarot = getUserToday(msg.fromQQ, "userLastTarot", 0)
            	if (userTarot == 0) then
            		local lastTarot = drawDeck(0, msg.fromQQ, "塔罗牌全单卡")
            		setUserToday(msg.fromQQ, "userLastTarot", lastTarot)
            	end
            	if (sub == true) then
            		str = "命运流转,这里是{nick}今日的占卜结果\n" ..
            			getUserToday(msg.fromQQ, "userLastTarot", 0) .. "\n这个结果,希望能对你有所帮助"
            	else
            		str = "{nick}似乎还没有激活意识订阅服务呢,无法享受娱乐功能的快乐哦"
                end
                return str
            end

            已经确认不论是从未被使用过的UserToday变量还是已经使用的UserToday变量都会出现这个问题,即所有UserToday存在的变量都会被Dice识别为boolean值进行比较

            • haha 回复了此帖
              haha 将标题更改为 「UserToday所有存在的的变量均被Dice转义为boolean值比较」。

              haha 被Dice识别为boolean值进行比较

              在回滚到2.7.0alpha2(640)后可以确认问题未出现,同时另一点可以确认的是写入变量是没有问题的
              能够得出以上结论的依据如图,旧变量是我在2.7.0alpha4(642)写入的,然而却被转义为了boolean值

              4 天 后
              说点什么吧...