決心落地的瞬間,空氣里仿佛都凝著股蓄勢(shì)待發(fā)的張力。我坐在吱呀作響的電腦前,指尖在泛黃的鍵盤(pán)上敲出清脆的節(jié)奏,窗外的月光順著窗簾縫隙淌進(jìn)來(lái),在屏幕上投下一道細(xì)長(zhǎng)的銀線——再過(guò)十幾個(gè)小時(shí),《熱血傳奇》就要開(kāi)服了,而我必須在天亮前做好最關(guān)鍵的準(zhǔn)備。
首要任務(wù)是打造一個(gè)封包外掛。這年頭的傳奇,處處是磨人的坎兒,不解決這些痛點(diǎn),別說(shuō)搶占先機(jī),能不能在新手村站穩(wěn)腳跟都難說(shuō)。就說(shuō)那助跑機(jī)制,角色從站定到邁開(kāi)步子,總得有半秒的滯澀,像被無(wú)形的線牽著腳踝。搶BOSS時(shí),這半秒足夠讓別人的刀先沾到怪的血;PK時(shí),更是能把你釘在原地挨揍,眼睜睜看著血條往下掉。還有蠟燭,簡(jiǎn)直是《熱血傳奇》里的催命符,背包里沒(méi)備足,走著走著就跌進(jìn)伸手不見(jiàn)五指的黑暗,別說(shuō)找怪,撞在巖壁上都得懵半天,屏幕上只剩個(gè)血條在黑夜里瞎晃。最氣人的是被攻擊后的后仰停頓,明明血條還剩大半,被怪物一爪子拍過(guò)來(lái),角色非得踉蹌一下,這半秒的僵直足夠讓對(duì)方再補(bǔ)兩刀,硬生生把反殺的機(jī)會(huì)拖成灰屏。
所以這外掛的底子必須扎實(shí):免助跑、免蠟、不動(dòng)如山。
對(duì)我這浸淫編程十幾年的人來(lái)說(shuō),這些功能本就不算難題,更何況,我腦子里還裝著穿越前偶然見(jiàn)過(guò)的傳奇源代碼片段——那些泄露的核心邏輯,就像給迷宮遞了張地圖。免助跑?不過(guò)是找到移動(dòng)指令里的延遲參數(shù),把那串代表0.5秒的十六進(jìn)制代碼改成00。免蠟更簡(jiǎn)單,直接刪掉“是否持有蠟燭”的判斷語(yǔ)句,把地圖亮度拉滿(mǎn)。最費(fèi)功夫的是“不動(dòng)如山”,得同時(shí)攔截怪物攻擊和角色受擊的雙向封包,在本地模擬出無(wú)硬直狀態(tài),還不能讓服務(wù)器察覺(jué)異常。
我盯著屏幕上滾動(dòng)的代碼,指尖在鍵盤(pán)上翻飛,穿越前的記憶碎片像潮水般涌來(lái):源代碼里角色狀態(tài)同步的校驗(yàn)邏輯、封包加密的算法、客戶(hù)端與服務(wù)器的交互協(xié)議……這些碎片在腦海里拼湊成完整的框架,手指仿佛有了自己的意識(shí),自動(dòng)補(bǔ)全著一行行指令。凌晨四點(diǎn),窗外的天際泛出魚(yú)肚白時(shí),程序終于寫(xiě)完了。我把它壓縮成加密包,命名為《疾風(fēng)1.0》,圖標(biāo)是自己畫(huà)的一柄銀色短劍,劍刃上斜斜劃了道閃電——要的就是這股子快勁。
但我心里清楚,這程序能不能用還是未知數(shù)。沒(méi)有客戶(hù)端可以測(cè)試,沒(méi)有服務(wù)器可以聯(lián)調(diào),整個(gè)封包完全是憑著記憶里的源代碼片段,靠著意念一點(diǎn)點(diǎn)“想象”出來(lái)的。就像閉著眼睛搭積木,只能憑著手感判斷結(jié)構(gòu)是否穩(wěn)固。我把U盤(pán)揣進(jìn)褲兜,金屬外殼貼著皮膚,冰涼的觸感讓我清醒了幾分:好不好用,只能等明天開(kāi)服見(jiàn)分曉。
外掛的事暫時(shí)擱下,接下來(lái)該組隊(duì)伍了。
最初的傳奇跟后來(lái)的私服不一樣,那會(huì)兒沒(méi)那么多氪金套路,講究的是“是兄弟就來(lái)砍我”的抱團(tuán)。一個(gè)人再厲害,沒(méi)隊(duì)友扛?jìng)?、加狀態(tài),照樣在高級(jí)地圖寸步難行。我躺在床上,望著天花板上泛黃的水漬,腦子里像過(guò)電影似的,篩出四個(gè)名字。
頭一個(gè)必須是葛鵬,外號(hào)胖子。這小子跟我是穿一條開(kāi)襠褲長(zhǎng)大的發(fā)小,家住同一個(gè)家屬院,他家陽(yáng)臺(tái)正對(duì)著我家窗臺(tái),小時(shí)候我總趴在窗臺(tái)上喊他“胖子,出來(lái)彈玻璃球”。他打小就胖,三年級(jí)體檢站在體重秤上,指針“哐當(dāng)”一聲甩到最大刻度,校醫(yī)舉著聽(tīng)診器愣了半天,還以以為秤壞了。他家條件跟我家差不多,都是父母雙職工的小康家庭,前兩年他爸單位裁員,家里日子緊了些,可胖子從沒(méi)跟人訴過(guò)苦。
上個(gè)月在電腦城碰到他,正蹲在臺(tái)階上啃泡面,油湯濺得T恤上到處都是。一問(wèn)才知道,他在電腦城當(dāng)學(xué)徒,沒(méi)干仨月就被老板開(kāi)了——說(shuō)是“偷吃倉(cāng)庫(kù)里的泡面”,其實(shí)是他看不慣老板坑人。有回一個(gè)老太太來(lái)買(mǎi)U盤(pán),老板想把擴(kuò)容盤(pán)當(dāng)正品賣(mài),胖子直接跟老太太說(shuō)“這盤(pán)存東西會(huì)丟”,當(dāng)天下午就被卷鋪蓋滾蛋了。這憨直勁兒有時(shí)候氣人,但關(guān)鍵時(shí)刻靠譜得很。
第二個(gè)是張偉,外號(hào)偉哥。大學(xué)同宿舍的兄弟,一米八的個(gè)頭,胳膊上常年帶著點(diǎn)練散打的肌肉,性子烈得像團(tuán)火。大三那年系里有個(gè)女生被輔導(dǎo)員騷擾,躲在宿舍樓底下哭,一群人圍著看,誰(shuí)都不敢吭聲,就張偉拎著個(gè)啤酒瓶闖進(jìn)辦公室,指著輔導(dǎo)員的鼻子罵“褲襠里長(zhǎng)著豬腦子”,最后差點(diǎn)沒(méi)被處分。
畢業(yè)進(jìn)了家國(guó)企,上班第三天就跟車(chē)間主任干上了。起因是主任克扣實(shí)習(xí)生工資,把本該發(fā)的八百塊改成了五百,張偉在會(huì)議室里拍著桌子跟人吵,說(shuō)對(duì)方“當(dāng)領(lǐng)導(dǎo)當(dāng)?shù)脹](méi)屁眼”,吵完摔門(mén)就走,連試用期工資都沒(méi)要?,F(xiàn)在他還在市區(qū)那間老破小里待著,靠他媽給的零花錢(qián)過(guò)活,天天念叨著“找個(gè)正經(jīng)事干”。
第三個(gè)是李亞楠,外號(hào)知心姐姐。這外號(hào)得著重解釋一下:性別男,愛(ài)好幫人操心,細(xì)膩得像塊浸了水的棉花。高中時(shí)我跟女朋友分手,躲在操場(chǎng)看臺(tái)上抽煙,煙盒都空了還蹲在那兒發(fā)呆,他居然從書(shū)包里摸出包紙巾遞過(guò)來(lái),輕聲細(xì)語(yǔ)地說(shuō)“別抽那么猛,對(duì)嗓子不好”。更絕的是,他書(shū)包跟哆啦A夢(mèng)的口袋似的,創(chuàng)可貼、薄荷糖、甚至女生用的皮筋,總能在你需要的時(shí)候摸出來(lái)。
他家是開(kāi)罐頭廠的,市里半條街的超市都從他家進(jìn)貨,是我們這群人里家境最好的。平時(shí)出去聚餐、唱歌,十回有八回是他掏錢(qián),理由總是什么“我爸剛給了零花錢(qián)”“我媽讓我請(qǐng)同學(xué)吃飯”,其實(shí)我們都知道,他是怕我們這些家境普通的兄弟為難。他高中畢業(yè)沒(méi)上大學(xué),在家跟著他爸學(xué)管理,前陣子打電話說(shuō)他爸要送他去英國(guó)讀留學(xué),正愁出國(guó)前沒(méi)事干。拉他入伙,準(zhǔn)沒(méi)錯(cuò)。
最后一個(gè)是宋德文,外號(hào)德文。這外號(hào)跟他的頭發(fā)和個(gè)頭脫不了關(guān)系——天生的自來(lái)卷,就像一致德文小貓因此得名。加上個(gè)頭長(zhǎng)得又矮又小,遠(yuǎn)遠(yuǎn)看去就像個(gè)沒(méi)長(zhǎng)大的孩子。但千萬(wàn)別被他的外表騙了,這家伙腦子轉(zhuǎn)得比誰(shuí)都快,高中數(shù)學(xué)競(jìng)賽,我們還在啃最后一道大題,他已經(jīng)交卷了,出來(lái)跟我們說(shuō)“用拉格朗日定理一步就能出結(jié)果”。現(xiàn)在在一家軟件公司當(dāng)程序員,天天加班加到眼睛發(fā)紅,估計(jì)早就憋壞了。算上我,正好五個(gè)人。
我從抽屜里面摸出諾基亞手機(jī),這是去年過(guò)年老爸淘汰被我繼承的,按鍵磨得發(fā)亮,屏幕上的字都快看不清了。先撥胖子的號(hào),聽(tīng)筒里傳來(lái)嘈雜的鍵盤(pán)聲,不用問(wèn)也知道,他準(zhǔn)在網(wǎng)吧混著呢。
“喂?胖子,來(lái)我家一趟,有好事?!?/p>
“啥好事?。渴遣皇桥叫掠螒蛄??”他的聲音帶著喘,估計(jì)剛從游戲里退出來(lái)。
“來(lái)了就知道,晚了可沒(méi)你的份?!蔽夜室獾跛缚?,掛了電話。
接著打給張偉,電話響了五聲才接,背景里是他媽的嘮叨聲?!拔?,偉哥,來(lái)我家開(kāi)會(huì),有個(gè)能掙錢(qián)的活兒?!?/p>
“掙錢(qián)?”他頓了頓,“別又是你那不些靠譜的點(diǎn)子吧?!?/p>
“這次絕對(duì)靠譜,不來(lái)后悔。”我說(shuō)完就掛,知道他那性子,越是神秘越會(huì)來(lái)。
打給李亞楠時(shí),那邊安安靜靜的,隱約有鋼琴聲飄過(guò)來(lái)?!拔?,亞楠,來(lái)我家一趟,說(shuō)個(gè)事兒,關(guān)于出國(guó)前賺點(diǎn)零花錢(qián)的?!?/p>
“零花錢(qián)?”他輕笑一聲,聲音軟乎乎的,“行啊,我跟我爸說(shuō)一聲,半小時(shí)到?!?/p>
最后打給德文,電話響了八聲才接,背景里是敲鍵盤(pán)的噠噠聲,密集得像下雨。“喂?德文,下班了沒(méi)?來(lái)我家一趟?!?/p>
“加班呢,啥事兒?”他的聲音透著股疲憊,像被抽干了力氣。
“有個(gè)游戲,能讓你把手速發(fā)揮到極致,來(lái)不來(lái)?”
那邊沉默了幾秒,傳來(lái)椅子挪動(dòng)的聲音。“等我,二十分鐘。”
掛了電話,我起身收拾屋子。我家在老家屬院的三樓,兩室一廳,因?yàn)楦改搁_(kāi)了家小飯店,天天忙到半夜才回來(lái),這里早就成了我們這幫兄弟的聚點(diǎn)??蛷d里堆著些飯店用剩下的東西:幾個(gè)沒(méi)開(kāi)封的啤酒箱,一摞一次性筷子,半袋大米。我把這些挪到墻角,用抹布把茶幾擦干凈,擺上五個(gè)玻璃杯,倒?jié)M涼白開(kāi),又從抽屜里翻出半包瓜子,抓了一把擱在盤(pán)子里。
剛忙完,門(mén)鈴就響了。開(kāi)門(mén)一看,德文站在門(mén)口,背著個(gè)雙肩包,頭發(fā)亂糟糟的,眼鏡片上還沾著點(diǎn)油漬。“挺快啊。”
“跟領(lǐng)導(dǎo)說(shuō)家里漏水,請(qǐng)假跑出來(lái)的?!彼屏送蒲坨R,徑直走到電腦前,“啥游戲?”
“等人齊了再說(shuō)?!蔽野阉丛谏嘲l(fā)上,遞過(guò)水杯。
沒(méi)過(guò)五分鐘,胖子來(lái)了,手里攥著個(gè)沒(méi)吃完的肉夾饃,油乎乎的手在牛仔褲上蹭了蹭。“啥好事啊,神神秘秘的?!彼黄ü勺诘挛呐赃?,沙發(fā)“吱呀”一聲陷下去一大塊。
緊接著是張偉,穿件洗得發(fā)白的T恤,胳膊上帶著道新擦傷——不用問(wèn),準(zhǔn)是又跟人打架了?!暗降咨妒聝??我剛跟我媽說(shuō)出去跑步?!?/p>
最后到的是李亞楠,白襯衫熨得筆挺,頭發(fā)梳得整整齊齊,手里拎著個(gè)果籃,裝著蘋(píng)果和香蕉。“阿姨不在家呀?”他探頭往廚房瞅了瞅,笑起來(lái)眼睛彎彎的。
“我爸媽看飯店去了,今晚一時(shí)半會(huì)不回來(lái)。”我關(guān)上門(mén),往茶幾中間湊了湊,“都坐好,說(shuō)正事?!?/p>
五個(gè)人圍著茶幾坐下,瓜子殼很快堆成了小山頭。胖子幾口把肉夾饃啃完,抹了抹嘴:“快說(shuō)快說(shuō),再不說(shuō)我可要急死了。”
我清了清嗓子,從抽屜里拿出《熱血傳奇》的宣傳海報(bào)?!澳銈冎馈稛嵫獋髌妗愤@個(gè)游戲不?”
“沒(méi)聽(tīng)過(guò)?!睆垈u了搖頭,拿起一張海報(bào)瞅了瞅,“看著跟《暗黑破壞神》有點(diǎn)像啊。”
“我表姐在韓國(guó)留學(xué),說(shuō)這游戲現(xiàn)在火得不行。”我搬出早就編好的說(shuō)辭,指了指截圖上的屠龍刀,“不光好玩,還能掙錢(qián)。就這把刀,在韓國(guó)能賣(mài)好幾百美元。”
胖子眼睛瞪得溜圓:“真的假的?一把刀能賣(mài)那么多?”
“騙你干啥?!蔽覐目诖锾统瞿莻€(gè)加密U盤(pán),在他們面前晃了晃,“我表姐還給了個(gè)好東西,叫封包,能輔助玩游戲?!?/p>
“外掛?”張偉皺起眉,“這玩意兒靠譜嗎?別被封號(hào)了?!?/p>
“放心,我表姐說(shuō)這是內(nèi)部測(cè)試用的,隱蔽性特別好。但是這是韓國(guó)那邊用的,這邊的國(guó)服好不好用還不知道?!?/p>
“我操,這也太牛逼了?!迸肿尤滩蛔”司浯挚冢衷谙ドw上使勁拍了一下。
“這東西……只能我們五個(gè)人知道?!蔽沂掌餟盤(pán),表情嚴(yán)肅起來(lái),“傳出去了,不光我們沒(méi)得玩,我表姐那邊也麻煩?!?/p>
“放心,咱誰(shuí)跟誰(shuí)啊?!睆垈ヅ牧伺男馗拔业淖靽?yán)實(shí)著呢?!?/p>
李亞楠點(diǎn)點(diǎn)頭,手指輕輕敲著膝蓋:“我明白,這事兒要是傳出去,估計(jì)得有一堆人搶著要?!?/p>
“不光有封包,我表姐還把攻略給我了。到時(shí)候怎么玩你們聽(tīng)我指揮,”
“攻略里面哪里有好裝備,怎么打最快,上面寫(xiě)得清清楚楚。咱們只要配合好,一個(gè)月掙個(gè)幾千塊,沒(méi)問(wèn)題?!?/p>
“幾千?”張偉眼睛一亮,嗓門(mén)都提高了,“夠我媽半年的藥錢(qián)了。”當(dāng)時(shí)一個(gè)月的工資也就幾百塊。
李亞楠笑了笑:“錢(qián)不錢(qián)的無(wú)所謂,主要是覺(jué)得挺有意思的,出國(guó)前正好找點(diǎn)事干。”
德文推了推眼鏡,手指在茶幾上無(wú)意識(shí)地敲著,像是在模擬鍵盤(pán)操作:“我沒(méi)問(wèn)題,正好最近加班加得煩,換個(gè)腦子。明天我去把調(diào)休都用了?!?/p>
胖子拍了下大腿:“干了!到時(shí)候掙了錢(qián),我先買(mǎi)個(gè)新電腦!”
大家都笑了起來(lái),笑聲撞在客廳的墻壁上,又彈回來(lái),混著窗外的蟬鳴和遠(yuǎn)處的車(chē)?guó)Q,在這個(gè)悶熱的夏夜,像一掛剛點(diǎn)燃的鞭炮,噼里啪啦地響得熱鬧。我望著眼前這幾個(gè)兄弟,心里突然冒出個(gè)念頭:或許這不僅僅是一個(gè)賺錢(qián)的機(jī)會(huì),更像是一場(chǎng)早就該赴的約。
離游戲開(kāi)服還有十幾個(gè)小時(shí),我們的傳奇,才剛剛開(kāi)始。