※ 引述《allen20937 (旅行者)》之铭言:
: ※ 引述《seer2525 (月月)》之铭言:
: : 标题: Re: [FGO] 石头回收完了 会显示负数
: : 时间: Fri Dec 27 12:57:25 2024
: : 你跟这张图的主角应该比FGO工程师还厉害
: : https://i.imgur.com/BTC2EYz.png
: : 明明就写得很清楚
: : 抽之前有偿26 无偿-149
: : 抽下去会变有偿23 无偿-149
: : 这就是扣有偿啊 看不懂有偿无偿意思就算了
: : 不会连有跟无都分不出来吧
: 首先我要先澄清这篇文章不是在说实际上FGO就是这样,我没玩宇宙神游也不在乎这件事
: 情到底是真是假。
: 我只是想解释当某种情况下出现免费石变负数后还越扣越负这种Bug在游戏程式逻辑上
: 是完全说得通,实际上也有可能会发生。
: 但我没有说FGO就是这种情况
: 但我没有说FGO就是这种情况
: 但我没有说FGO就是这种情况
: 很重要所以说三次,免得有人乱扣帽子说我就是在指宇宙神游
: 首先要先解释的是通常这种结果预测的UI显示出来的数字是工程师预期玩家做了某些动作
: 之后会产生这样的结果。
: 因为实际上玩家还没行动,所以一切的数字都只是预测,而不是已成事实的结果。
: 有做过实验的人都知道吧,预测跟实际出来的结果有差别根本是家常便饭
: (我没有说这种差别在手游上很普遍,只是提出这种情况有可能会在现实中发生)
: 假设你身上有免费石A颗,课金石B颗,抽一次要花费X颗好了
: ・UI逻辑
: {
: 如果玩家的免费石A < X
: 显示:A数量不变,B-X → 免费石数量不够,消耗课金石
: (这边实际上还要加入检查课金石数量的条件判断,但我省略了)
: 否则显示:A-X,B数量不变 → 满足一抽需要的数量,优先消耗免费石
: }
: 但像我刚才所说的这充其量只不过是预测,不是实际行动后的结果,实际上要等到玩家按
: 下了按钮后才会执行转蛋抽取的程式。
: 10个公司可以写出11种不同的程式码,如果有间公司把UI跟转蛋执行的处理分开来写的
: 话,可能出现下面这种东西
: ・抽取逻辑
: {
: 如果玩家免费石A >= 0,且 A < X
: 执行:扣除课金石X颗,且抽取转蛋 → 免费石数量不够,消耗课金石
: (一样省略了课金石的数量判断)
: 否则执行:扣除免费石X颗,且抽取转蛋 → 不考虑负数的情况下,A肯定会大于等于X
: }
: 上面两种逻辑在正常情况下都是可以运作也不会出错,但如果像这次一样工程师没事先
: 考虑到石头变负数的情况,下面的情况就有问题了,因为免费石A是负的,所以直接执行
: 了下面的扣除免费石X颗且抽取转蛋的处理。
不好意思小弟是文组,可能不太了解工程师的逻辑
想问一下如果工程师没有考虑到石头有负数的可能
为什么要在判断式写if(免费石A >= 0)?
: 所以我说这种情况是“有可能”,不表示宇宙神游的程式就是这样写
: 会不会发生端看工程师怎么写,但要说一定不会发生的话那就太过武断了
: 解Bug的时候自认绝对不会出问题的地方就是问题所在的情况我实在见得太多了
: : 推 nineflower: 笑死,还在凹,你职业是检察官喔 12/27 13:14
: 不是,我的职业是游戏工程师。
: 文章有错误的话欢迎指证,绝对不会凹