※ 引述《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
: 不是,我的職業是遊戲工程師。
: 文章有錯誤的話歡迎指證,絕對不會凹