李勇這個人很多時候做事比較死板,他見邵琴給出一個具體數字,也沒問為什麼,老老實實按邵琴提供的數字,交易給她金幣。
就這樣,邵琴揹包中的金幣,定格在1002000,一個做事一板一眼的邵琴,碰到腦筋死板的李勇,陰差陽錯地開啟了傳奇最離奇的BUG。
運氣來了神都擋不住,李正一隻能這樣感嘆,如果早知道這個bug這麼早就出現,還能被小舅媽發現,自己何必巴巴地浪費那麼多時間,跑去改施工圖、請混混、買電腦、買桌椅、拉寬頻,忙乎那麼久,實際上頂不上區區一個BUG。
這個BUG,前世李正一聽說過的,但從來就沒問過具體怎麼弄,也不知道如何操作,唯一記得爆發的時間,應該是在白日門開通之後。
前世,李正一未出國混社會之前,在沿海一帶成天鬼混,沒事就打私服,聽人吹牛B說BUG時,聽說過捆金條BUG。據說是白日門更新之後,這個BUG才爆發出來,造成傳奇金幣瞬間貶得一文不值。
相比起其他較為複雜的刷錢刷裝備BUG,捆金條BUG理解起來不是很難。不過李正一的性子比較懶惰,絕逼不會去研究這些過時的玩意,也不會花費腦筋去理解那些沒用的東西,所以這一世,李正一對於傳奇BUG,只知道爆發的大概時間,具體BUG如何操作一竅不通。
捆金條BUG其實是利用揹包中金幣不能為0的基本原則,讓程式處理時產生邏輯性錯誤,而程式設計時並沒有考慮到這一點,同時也沒有設定邏輯錯誤回滾機制。所以一旦出現這個錯誤,伺服器程式在給出金條的同時,再返還玩家揹包同等數額的金幣,程式認為雙方都是合法存在的,因此而形成了刷金條的漏洞。
這個漏洞不是很難,卻隱藏在傳奇中一年多時間沒人知曉,後來才有人無意之中,就像今天的邵琴一樣,陰差陽錯之下才被發現。
其難點在於,玩家揹包中的金幣很難巧合地達到1002000這個數值。一旦達到這個數值,玩家在捆金條時,傳奇客戶端執行程式首先會向伺服器傳送一道捆金條的請求指令,伺服器收到指令後,會判斷玩家揹包中的金幣數量是不是能夠完成捆金條的驗證要求。
這個驗證要求就是金條本身的數額和手續費,總數值就是1000000+2000,所以說,低於這個數值,捆金條指令是沒法透過驗證的。
伺服器透過驗證,會傳送指令給伺服器執行程式,在玩家揹包中增加一根金條,同時扣除玩家揹包中1002000金幣。
這個時候邏輯錯誤形成了,伺服器執行程式給出金條時,是因為玩家揹包確實擁有等值的金幣數額,這一指令是透過了驗證程式合理合法的,所以執行程式不能撤銷。伺服器執行程式隨之扣除玩家資料庫揹包中1002000金幣後,發現玩家揹包金幣數值為0,而揹包金幣為0是主程式基本原則中明令禁止不允許出現的。
怎麼辦?
很簡單,伺服器執行程式認為,這一次扣除金幣的行為是錯誤的,不能執行,所以必須返還同等數額的金幣。
當然,這些原理對於李正一來說,相當於對牛彈琴,他也不需要明白這些,只要知道,現在掌握了一個超級刷錢BUG,那隨後無數個伺服器,所有金幣都可以壟斷。
這是多大的一筆財富?
財富其實沒多大,李正一又不是傻子,現階段傳奇就三個區服,目前玩家人數頂天就一萬出頭。雖然金幣緊俏,但玩家群體的消費額度是有上限的,賣到一定程度就會賣不動。
如果李正一傻傻地大批次往外傾銷金幣,會不會被查還不一定,關鍵是金幣一多,就會造成金幣市場不穩定。
所以說,這個BUG最大的好處是節約了李正一大量的時間和人力物力,原本需要靠時間累積的金幣,現在只需要點一點滑鼠就可以。