作者:
seaEPC (沒看見,我沒看見 >_<)
2017-11-16 15:18:45※ 引述《dsa3717 (FishCA)》之銘言:
: http://dbz-dokkan.bngames.net/info1116.html
: 官方出正式聲明了
: 還把出問題的程式碼貼出來www
小弟鍵盤工程師沒有玩,但是根據文章大概是這麼個意思(盡量白話):
遊戲裡面卡片是以ID來存卡片資料的
當程式因為某些緣故要展現腳色資料的時候(列出卡池啦,展示你已經有的卡片等等)
會利用卡片ID去查對應的資料然後顯示給你
而文章裡那段code就是流程
①是
傳入需求的卡片ID列表,如果該卡片是你APP啟動後已經有顯示過的卡片
那該卡片的資料會已經在你手機記憶體裡
而如果沒有顯示過的卡片呢? 就找不到,會是個空指標
於是接著②
程式利用卡片ID去資料庫查相關資料,並抓回來填進cache裡的空缺
資料都填滿後就處理完畢
邏輯上是這樣,但是這邊遇到的BUG是
他從資料庫查回來的資料並沒有排序,而程式也沒有比對ID,直接依照抓回來的順序填坑
用他給的舉例來講:
你要查詢的卡片ID是 1 3 5 7 9 (已按大小排序)
手機已經顯示過,存在記憶體裡的卡片資料是 1 3 5 空 9
所以缺了7的資料,就要用②的方式去資料庫查7的資料回來
然而他的查詢語法沒排序(估計table欄位也沒有),所以查回來的資料可能是 9 3 7 1 5
然後程式直接做比對: 1 3 5 空 9
9 3 7 1 5
好,所以他就把1的資料給放進記憶體裡的那個空白去了 (開放吐槽)
所以即使你用 1 3 5 7 9 去查,也會變成查到 1 3 5 1 9 的資料,自然顯示錯誤
而記憶體裡的卡片資料是會因為你APP啟動後的操作而變動的
所以上面這個BUG會造成不同人有不同的錯誤顯示
然而如果你去按スカウターボタン,程式會去伺服抓正確的id list回來蓋掉你手機記憶
體裡的資料,就不會有這樣的問題出現
大概是這樣,有錯請指正
作者:
noob9527 (怒伯9527)
2017-11-16 15:20:00工程師的角度來看 我信
作者:
Satoman (沙陀曼)
2017-11-16 15:22:00我信,這bug很蠢但不是不可能,因為我碰過更扯的
作者:
crazycy (LCY)
2017-11-16 15:22:00快推不然別人以為我看不懂
作者:
Satoman (沙陀曼)
2017-11-16 15:23:00以遊戲測試的角度來看,也是有可能會被漏掉沒錯
作者:
sixthday (姬[TORCH])
2017-11-16 15:24:00我看的心得也差不多 重點在為什麼DB來的是錯的沒有講
作者:
Satoman (沙陀曼)
2017-11-16 15:24:00因為不管是研發還是qa,他們手上的裝置一定都有完整的資料
作者:
GPX2020 (ㄒㄒ)
2017-11-16 15:24:00我好奇這包如果是真的 出包工程師會什麼下場
作者:
Satoman (沙陀曼)
2017-11-16 15:25:00所以才會到了玩家手上的裝置才出現問題
作者:
genesic (嗯?)
2017-11-16 15:30:00他不是去server抓喔,sqlite是client端的db他server用sqlite的話也太扯
這種寫法真的蠻奇妙的,第一次看到大概是把server資料下載後放到sqlite吧
作者:
genesic (嗯?)
2017-11-16 15:34:00如果讓app可以直連db的話就更扯,開不到一分鐘db就爆了吧這段code有點摸魚摸到大白鯊的感覺,老實一點hash map就好了,結果看起來像是sql cmd忘記加order by id
作者:
wxyz899 (這老爸有毒)
2017-11-16 15:39:00每個人看到的卡池不一樣是這次才有的還是一直都有的?
作者:
maxi326 (尋找獨立遊戲製作團員!)
2017-11-16 15:41:00這也能信, 我也只是笑笑, 連抽蛋的random部份一點都沒有是在信甚麼, 科科.
寫得看得懂 給推應該說也不是信不信這次的問題 而是之後能不能保證的問題 這次他也把石頭全數吐回來+300石了
作者:
genesic (嗯?)
2017-11-16 15:44:00又不是在討論信不信的問題,信不信是沒有答案的
作者:
wxyz899 (這老爸有毒)
2017-11-16 15:45:00抽蛋 random 的肯定是放在 server 端, client 只能收結果
這次不信也就罷了 問題是他後台是不是還是那樣很令人
作者:
genesic (嗯?)
2017-11-16 15:45:00就算他把整個server的code給你看,你也可以說他實際跑的不是這些code
作者:
sixthday (姬[TORCH])
2017-11-16 15:45:00這篇是在把官方貼的 code 翻成白話文
作者:
Satoman (沙陀曼)
2017-11-16 15:46:00大家是在討論表單出包,不是轉蛋機率問題
作者:
HETARE (茶蕪玼仁)
2017-11-16 15:46:00原文已有說空缺的資料是去裝置的儲存空間抓而非從server載
作者:
Satoman (沙陀曼)
2017-11-16 15:47:00現在就是你無法證明他轉蛋機率是錯的,他也無法證明自己沒動手腳
作者:
genesic (嗯?)
2017-11-16 15:48:00只要有人貼出來抽到不在表單內的角色,就可以證明只是顯
作者:
genesic (嗯?)
2017-11-16 15:49:00示錯誤,但這個太難了
作者:
Satoman (沙陀曼)
2017-11-16 15:49:00照這bug的結果就是純粹的表單出包,信不信由你這樣
作者:
sixthday (姬[TORCH])
2017-11-16 15:50:00@genesic 下一篇就是?
作者:
j9145 (Swordcane)
2017-11-16 15:50:00就算真的是這BUG,也不能保證它們轉蛋過去不是這樣撈資料。
作者:
andy0481 (想吃比叡的咖哩)
2017-11-16 15:53:00另一個角度想啦 官方想賺錢就用很爛的大獎率就好了 像是1%之類的 搞這種東西 要額外弄工程師去搞 還只能多騙一點抽到有的大課長的錢 還很容易被大數統計抓出來黑掉花額外成本去多賺一點點 風險大到靠杯 這麼智障我是不信啦..
作者:
j9145 (Swordcane)
2017-11-16 15:55:00人性就是抽越多越會覺得下一抽就中,所以他這樣搞很容易釣到課長。 而且如果不是出這包,想驗證還沒辦法
作者:
eddiego (zato)
2017-11-16 15:57:00這麼智障我是不信? 還是信比較好 智障沒有極限的
作者:
keerily (非洲人要認命)
2017-11-16 16:00:00風險不大呀,機率這東西就是這樣,運氣不好就是抽不到
作者:
j9145 (Swordcane)
2017-11-16 16:01:00除了痛定思痛把整個轉蛋機制重寫,設個保底機制,不然這信任度危機基本是無解了
作者:
genesic (嗯?)
2017-11-16 16:01:00其實營運最喜歡看到的是大家都抽得到而不是大家都抽不到
作者:
keerily (非洲人要認命)
2017-11-16 16:01:00今天他出這包,課長1000抽抽不到也沒辦法證實卡池沒這卡
作者:
genesic (嗯?)
2017-11-16 16:02:00最好是你抽到之後上SNS或論壇狂曬猛曬,這種營運最愛了
作者:
keerily (非洲人要認命)
2017-11-16 16:02:00喜歡大家都抽的到(X) 喜歡大家都課到有(O)
作者:
j9145 (Swordcane)
2017-11-16 16:03:00營運才不會care玩家抽不抽得到,重點是玩家掏了多少錢。
作者:
genesic (嗯?)
2017-11-16 16:03:00低機率只是想要讓你抽到時有快感,並不是為了讓你抽不到
那有沒有可能他資料是從你能抽到的卡池抓結果卡池沒有所以造成資料短缺? 我不懂程式不知能否寫成這樣=3=
作者:
TeamNTR (寝取られ)
2017-11-16 16:04:00大家都抽的到那還幹嘛曬? 保皇派滾
作者:
genesic (嗯?)
2017-11-16 16:04:00你要這樣想我也可以理解囉,大部分玩家都是這樣想
作者:
aaaaooo (路過鄉民)
2017-11-16 16:04:00sqlite的東西應該是in-app更新下載回來的吧 那這樣理論上
作者:
genesic (嗯?)
2017-11-16 16:05:00其實今天營收跟這個卡片吸不吸引人比較有關,跟抽中的機
作者:
TeamNTR (寝取られ)
2017-11-16 16:05:00在前篇文章畫虎爛被戳破還來耍屌==
作者:
j9145 (Swordcane)
2017-11-16 16:05:00快感 X 投更多錢 O,你搞錯因果了。
作者:
genesic (嗯?)
2017-11-16 16:06:00因為我也沒有證據,一直找不到機率跟營收的相關性
作者:
j9145 (Swordcane)
2017-11-16 16:06:00如果真的希望玩家都抽得到,設保底就好
作者:
keerily (非洲人要認命)
2017-11-16 16:06:00分池對營運來說不會沒必要,分的好可以增加大量的營收
作者:
aaaaooo (路過鄉民)
2017-11-16 16:07:00不用再按スカウターボタン重抓server資料重開app就好才對
作者:
genesic (嗯?)
2017-11-16 16:07:00對啊,大陸數字機這方面比較強,都會有保底,日本的很少
作者:
Satoman (沙陀曼)
2017-11-16 16:07:00專業工程師花時間出來解釋,還被說是保皇派這篇的原po好口憐
作者:
keerily (非洲人要認命)
2017-11-16 16:08:00還有曬卡這種事,如果大家都有了,曬卡就一點意義都沒有
作者:
j9145 (Swordcane)
2017-11-16 16:08:00找不到是你搞錯,關鍵字:賭場數學
作者:
genesic (嗯?)
2017-11-16 16:08:00漏字了,大陸遊戲在處理跟數字有關的部分比日本強太多了
作者:
andy0481 (想吃比叡的咖哩)
2017-11-16 16:09:00所以說啦 強化曬卡程度 調整看的到的%數直接簡單多了1%的強卡跟被偷調機率成1%表定5%的強卡 實際抽到的機率一樣是1% 但是前者曬度高多了 根本不用去搞什麼偷調後者還要被大數檢驗跟課長驗證抓出實際只有1% 風險超大
作者:
j9145 (Swordcane)
2017-11-16 16:14:00有甚麼好風險大的,似乎沒搞懂這次問題重點不在機率不實。而是他們搞「動態機率」
作者:
genesic (嗯?)
2017-11-16 16:15:00我也沒全世界的營運都接觸過,無法證明沒有營運不是這樣也是聽過有不少營運是用直覺不是用數據經營遊戲所以我也實在無法反駁
作者:
j9145 (Swordcane)
2017-11-16 16:18:00不管直覺或數據都不想讓你都抽中啊,不然他們要吃甚麼。願意給你容易抽中只是怕太多人沒抽到被靠杯而已啦
作者:
genesic (嗯?)
2017-11-16 16:23:00我懂你的意思啊,我把機率偷偷調低,玩家就會更用力抽這個邏輯非常的直覺
作者:
andy0481 (想吃比叡的咖哩)
2017-11-16 16:24:00樓上這招有例子啊 GBF的猴娘 結果就是輕鬆抓出來罵翻問題是今天被質疑的這招是搞各個玩家的池子不一樣這招的效益完全就莫名其妙了..成本還超高
作者:
keerily (非洲人要認命)
2017-11-16 16:26:00猴妹事件是標註不實,Up角本來就沒說有猴妹
作者:
genesic (嗯?)
2017-11-16 16:27:00這招有例子不代表這招有成功啊現在遊戲這麼多,我相信任何招式應該都會有例子吧
作者:
keerily (非洲人要認命)
2017-11-16 16:27:00只是讓大家覺得有,然後Cy就搭順風車行銷順勢改出天井+顯示機率讓自己變成佛心公司不然Cy這邊站的住腳,也不用怕被告玩家還是一樣在玩,那時燒的人沒在玩的還比較多
作者:
j9145 (Swordcane)
2017-11-16 16:33:00轉蛋就是一種賭博,去搜尋賭場機率就一堆例子了
作者:
zack2 (白夜)
2017-11-16 17:08:00除非有人能證明他抽出不在清單內的角色 不然官方推給前端說單純是清單顯示異常 實際後台運作沒問題 鬼才信xD
作者:
keerily (非洲人要認命)
2017-11-16 17:36:00這麼多人玩的遊戲,結果目前仍沒人能證實有抽到不在清單
作者:
s6031417 (曦和)
2017-11-16 19:26:00我就是因為猴妹炎上70抽才入坑的(ry