柳榮華分配給我的房間小的可憐。似乎城市的商品房設計都以節省空間為第一要旨——既然隻是臥室,自然隻是以睡覺為主,所以,房間麵積隻要足夠擺得下一張床也就算合理了。
於是,在我的小小鬥室,隻有遵照一定的擺法,才勉強同時容得下一個1.2米的小床與一張小桌子。因為沒有椅子的位置,平時我一直是坐在床沿使用電腦的。不過這對單身的我來說並不是大不了的事。就目前來說,在這座城市擁有一個獨立的私人空間,我已經知足了。
此刻我正坐在這小小鬥室的床沿上,麵對著電腦屏幕。驚心動魄的博金決鬥已經落下帷幕,我將遊戲畫麵切換到後台。窗口焦點自動切換到桌麵上一個小小的程序窗口之上。窗口中,除了頂部幾個菜單按鈕,餘下的大部分空間為一種文本輸出框。
我拖動窗體右方的滾動條,向上方移動到頂部。而後,就著輸出框中的曆史輸出內容,重溫了一遍適才的戰鬥過程。
……
【20:00:00】:啟用半自動戰鬥模式。
【20:00:00】:使用技能“疾風衝刺”,檢測冷卻狀態:正常,發送按鍵代碼0x31。
【20:00:01】:檢測到角色負麵狀態:冰凍。
【20:00:01】:使用技能“清心術”,檢測冷卻狀態:正常,發送按鍵代碼vk_f5。
【20:00:02】:複查角色負麵狀態:已清除。
【20:00:00】:使用技能“疾風衝刺”,檢測冷卻狀態:正常,發送按鍵代碼0x31。
【20:00:02】:使用技能“祝融之魂”,檢測冷卻狀態:正常,發送按鍵代碼0x37。
【20:00:02】:使用技能“致命鋒芒”,檢測冷卻狀態:正常,發送按鍵代碼0x32。
【20:00:03】:使用技能“秋風掃葉”,檢測冷卻狀態:正常,發送按鍵代碼0x33。
【20:00:03】:使用技能“風卷殘雲”,檢測冷卻狀態:正常,發送按鍵代碼0x35。
【20:00:03】:使用技能“火獄咒”,檢測冷卻狀態:正常,發送按鍵代碼0x38。
【20:00:03】:使用技能“赤炎訣”,檢測冷卻狀態:正常,發送按鍵代碼0x34。
【20:00:04】:使用技能“熔火絕殺”,檢測冷卻狀態:正常,發送按鍵代碼0x36。
……
門口響起急促的敲門聲,打斷了我的溫習過程。
我知道此刻柳榮華已經迫不及待了。我關掉了屏幕上的小窗口,將遊戲畫麵重新切迴前台,然後起身打開了房門。
“你是怎麽做到的?”柳榮華一臉興奮與好奇,在我意料之中。
我坐在床沿上望著他,故作鎮靜解釋道:“我之前說過,我抓住了禦冰職業的弱點。你知道禦冰有一個弱點是什麽?”
“我當然知道,禦冰脆皮,那又如何。”柳榮華道。
“那你知道西門的弱點是什麽嗎?”我又問。
柳榮華不解我話中含義,一臉疑惑望著我。
我解釋道:“西門的弱點就是他在脆皮的基礎上放棄了對自己弱點的彌補。換句話說,他的防禦是弱上加弱。他之所以敢這樣做,是因為他太自大了。他自以為可以輕易將對手完全控製,令對方沒有還手的餘地,所以才敢這樣兵行險著。”
“我知道,禦冰如果被摁在地上打不還手,確實經不起幾下。”柳榮華停頓了一下,又道:“但問題是:又有那個玩家能做到這一點?更何況你操縱的是這個花瓶職業。但我今天是看明白了,我發現你做到了這一點,把西門摁在地上從頭虐到尾,所以我的問題的重點是:你是如何做到這一點的?”
我用雙手在鍵盤上空做出了一個彈鋼琴的動作,對他笑了笑。
“啥意思,難不成你的操作速度也能達到了西門那樣的境界?”柳榮華問。
“很明顯我比他更快。”我不無得意的笑了笑,不緊不慢解釋道:“眾所周知,破軍職業的操作難度要比禦冰高很多。所以如果要與禦冰在pk上平分秋色,我隻有比他更快。”
頓了頓,我又補充:“我要快到可以將我幾個效果極短的控製技能與幾個重量級的攻擊技能連貫起來,天衣無縫一氣嗬成,讓西門沒有喘息的餘地。隻有這樣才能在短時間內將他擊垮。”
柳榮華沉默,若有所思。須臾又問:“我知道你的意思,但據我所知破軍這職業幾乎不可能做到這一點。你是如何做到的?”他再次重申他的疑惑所在。話題似乎又迴到了原點。
“我練的。”無奈之下,我用三個字再次敷衍了他的疑問。我並不想說太多,隻因為我相信有時候在圓謊方麵,說得越多漏洞越多。
“這短短半個月,你怎麽可能練出這種運指如飛的神技?”柳榮華仍然不死心,並一臉質疑。
“我對這方麵有天分,沒什麽奇怪的。”我隻好假裝雲淡風輕,如此迴應。事實上麵對他的提問,我找不出更好的迴答了。
柳榮華半信半疑的看著我。想必他心中此刻,有很多怎麽也想不通的事情,但我沒有給他滿意的答案。對話在我的敷衍中不了了之。
事實上他的懷疑是很合理的,我當然不可能在短短半個月練成這種出神入化的操作技術。而且不管是誰,即便能練上一年半載,估計也很難做得到我今日在決鬥中所發揮出來的這種技藝水平。
但不管他怎麽追問,我也是永遠不會告訴他我親自編寫了一個破軍職業專用的戰鬥輔助程序這個秘密的。
事情還得從那天在遊戲裏偶遇易小寒說起。自被西門三番羞辱之後,我本已決定棄遊。那天在幫會領地與易小寒切磋之後,他對我所做的一番相當專業的pvp技術分析,讓我明白了自己無法戰勝西門的原因。事實上這也讓我絕望——易小寒告訴我要想戰勝西門必須滿足一個幾乎不能實現的條件。既然無法實現,我便更加堅定了棄遊的決心。
但其後易小寒關於神女無心的“驚人”爆料卻使我內心燃起了一種強烈的渴望:我突然很想見識一下這位易小寒口中“驚為天人”的女子的廬山真麵目。不僅如此,我甚至想要贏取她的芳心——在我看來這也極具挑戰性。
而我若要實現這個目標,首先要做的是擊敗西門。但這令我悲觀,因為我幾乎沒有可能擊敗他。
所以我要感謝柳榮華,要不是那天他提出要我幫他做那個小軟件,我也不會找到破解擊敗西門難題的秘訣。
盡管當時我拒絕了他的要求,但這也激起了我的好奇心。當天晚上我從理論上考量了一番實現那個軟件功能的方法。我翻看了一些計算機書籍後無意中發現了一個api函數——它的作用是可以模擬硬件動作向指定線程發送窗口消息——包括虛擬按鍵消息。從這一點出發,我花費了大半個月時間,開發並測試成功了一個專用於破軍職業的戰鬥輔助程序。
要說它的工作原理,其實真並不複雜:通過截獲相應端口ip數據報分析人物角色即時狀態(包括技能狀態),然後基於對角色狀態的判斷,構造並發送相應的技能的虛擬按鍵消息。要實現這一過程,對於我這個資深老程序員來說並沒有什麽難度。當然,要從細節上實現也是需要消耗一定時間精力的。
軟件功能的關鍵在於“判斷狀態然後發送技能按鍵”這個過程。對於人工操作而言,這個過程需要消耗一定的時間,但對於計算機來說,它卻幾乎不需要時間——當然,除了幾個計算機指令周期之外。這恰好滿足了易小寒所說的破軍職業要戰勝禦冰所需要的極端條件——一種爭分奪秒疾如迅雷風馳電掣的操作速度。
研發成功後我找易小寒切磋測試了一下,效果令人滿意。而後我給它起了一個好聽的名字——“演奏家”。當然,我也不會告訴易小寒我的秘密。同時為了不影響某種轟動效應以及不引起西門的警覺,我囑咐易小寒在我發起挑戰之前,不要告訴別人我的操作技術突飛猛進的事實——他是個值得信賴的好朋友,他答應了我並且做到了。
我給程序設定了一個獨特進程名稱,這一點也是重要的。當然,還有更多的技術細節,卻不在本文的討論範圍之內。
我向柳榮華給出的解釋是我依靠自己的天分實現了出神入化的操作技藝,這其實也不完全算假話。我確實是利用了我自己的計算機天賦,以及後天的努力——我花了大半個月的時間去開發與測試一個軟件,也是一種艱辛的付出。我用天分與努力獲得了“驚天神技”,然後在遊戲世界戰勝了超級對手,這一事實並不虛假與造作。
在測試成功以及擊敗西門的時候,我享受到了那種占據優勢地位輕鬆勝出的快感。還有那種站在技術的高度扮演上帝俯視一切的快感,它們帶給了我極大的滿足,這種滿足一度令人上癮。
但滿足過後,我此刻內心充斥的卻是一種空虛,以及一種深重的羞恥感。
之所以羞恥,首先是因為靠這樣的方式取勝畢竟屬於一種不光彩行為——我在心中暗自對西門抱有歉意。其次,最重要的是:這樣的行為違背了我的程序員職業操守——當初我斷然拒絕了柳榮華對我提出的幫忙要求,正是基於這一點。事實上我從事程序員職業數年以來,一直恪守職業操守底線,從未逾越。
當然,如果從軟件功能的實現原理來看,“演奏家”隻是一款很簡單與保守的輔助工具。其功能實現主要依托於對於公開網絡數據的讀取以及從公開合法的渠道幹預另一程序。本質上,它並未涉及黑客行為。
但不管怎樣,製作這樣一種程序始終是一種不道德行為。盡管開發這個程序的初衷隻是自用而非商用,但我內心的正義感促使我最終決定從電腦上卸載了這個程序。同時,為了杜絕自己再度背棄職業操守,我也刪除了程序源代碼,以杜絕自己手癢重新編譯成軟件。
麵對羞愧與自責,我這樣安慰自己:權當這一次經曆,是自己的一次編程練習吧。
總之,我有充分的理由阻止自己做這件事,但本次為了神女無心而出此下策,也是不得已而為止。我之所以必須這樣做,是出於我內心對神女無心的極度好奇與渴望,以及因此而製定並急於實施的一個驚天計劃。
沒錯,相對於這種技術手段上的成功,我覺得自己這一次實施的“驚天計劃”更加完美,更讓我得意。這計劃於我而言,可以說得上是一箭三雕。
我的計劃是:利用這樣一個“戰鬥神器”向西門發起“世界級”的挑戰,並且最終擊敗他。一雪前恥的同時也為自己贏得榮譽,塑造自己在遊戲世界光輝形象。從而讓無心對我刮目相看。同時也讓西門因為這一戰而身敗名裂。這是其一。
其二:我通過一個賭約巧妙地讓神女無心能自願與我見麵,實現我一睹芳容的願望。
其三是:我通過借款大量押注,贏取巨額金幣的賭局迴報。
除了贏得西門的那2000金幣之外,我用將近50萬金幣押注贏迴了將近1200萬金幣。雖然所得為遊戲世界的虛擬貨幣,但根據柳榮華之前告訴我的,通過某些第三方的交易平台,其實可以把金幣出售,換取現實貨幣。
按照當前市場行情,理論上我這些金幣可以換取十多萬的真金白銀。也就是說經過這一場驚天豪賭,我的生活壓力也減輕了不少。想到這,我忍不住笑出聲來。
我想,多年以後當迴首往事,這一段傳奇的經曆必將成為我網遊生涯乃至人生中一個亮點。我用一種特殊的方式在虛擬世界贏得了一次激情澎湃的戰鬥與一場豪賭,這很值得我紀念,迴味。而這一場豪賭的結果,也直接決定了後麵我將要麵臨的更加曲折離奇的人生境遇。
關於以上所有這一切,我之不能與柳榮華分享,除了羞愧與自責之外,還有一個原因,就是擔心他管不住嘴。如果哪天他將此秘密透露給無心,那麽我在她心目中辛苦建立起來的光輝形象可能毀於一旦。
想到無心,我便與柳榮華提起賭約見麵一事,柳榮華聽完大喜過望。隨即上線與2位美女聯絡。最終他提議“擇日不如撞日”,與對方愉快的約定了明日見麵。明日是周日,剛好大家都有空。
於是,在我的小小鬥室,隻有遵照一定的擺法,才勉強同時容得下一個1.2米的小床與一張小桌子。因為沒有椅子的位置,平時我一直是坐在床沿使用電腦的。不過這對單身的我來說並不是大不了的事。就目前來說,在這座城市擁有一個獨立的私人空間,我已經知足了。
此刻我正坐在這小小鬥室的床沿上,麵對著電腦屏幕。驚心動魄的博金決鬥已經落下帷幕,我將遊戲畫麵切換到後台。窗口焦點自動切換到桌麵上一個小小的程序窗口之上。窗口中,除了頂部幾個菜單按鈕,餘下的大部分空間為一種文本輸出框。
我拖動窗體右方的滾動條,向上方移動到頂部。而後,就著輸出框中的曆史輸出內容,重溫了一遍適才的戰鬥過程。
……
【20:00:00】:啟用半自動戰鬥模式。
【20:00:00】:使用技能“疾風衝刺”,檢測冷卻狀態:正常,發送按鍵代碼0x31。
【20:00:01】:檢測到角色負麵狀態:冰凍。
【20:00:01】:使用技能“清心術”,檢測冷卻狀態:正常,發送按鍵代碼vk_f5。
【20:00:02】:複查角色負麵狀態:已清除。
【20:00:00】:使用技能“疾風衝刺”,檢測冷卻狀態:正常,發送按鍵代碼0x31。
【20:00:02】:使用技能“祝融之魂”,檢測冷卻狀態:正常,發送按鍵代碼0x37。
【20:00:02】:使用技能“致命鋒芒”,檢測冷卻狀態:正常,發送按鍵代碼0x32。
【20:00:03】:使用技能“秋風掃葉”,檢測冷卻狀態:正常,發送按鍵代碼0x33。
【20:00:03】:使用技能“風卷殘雲”,檢測冷卻狀態:正常,發送按鍵代碼0x35。
【20:00:03】:使用技能“火獄咒”,檢測冷卻狀態:正常,發送按鍵代碼0x38。
【20:00:03】:使用技能“赤炎訣”,檢測冷卻狀態:正常,發送按鍵代碼0x34。
【20:00:04】:使用技能“熔火絕殺”,檢測冷卻狀態:正常,發送按鍵代碼0x36。
……
門口響起急促的敲門聲,打斷了我的溫習過程。
我知道此刻柳榮華已經迫不及待了。我關掉了屏幕上的小窗口,將遊戲畫麵重新切迴前台,然後起身打開了房門。
“你是怎麽做到的?”柳榮華一臉興奮與好奇,在我意料之中。
我坐在床沿上望著他,故作鎮靜解釋道:“我之前說過,我抓住了禦冰職業的弱點。你知道禦冰有一個弱點是什麽?”
“我當然知道,禦冰脆皮,那又如何。”柳榮華道。
“那你知道西門的弱點是什麽嗎?”我又問。
柳榮華不解我話中含義,一臉疑惑望著我。
我解釋道:“西門的弱點就是他在脆皮的基礎上放棄了對自己弱點的彌補。換句話說,他的防禦是弱上加弱。他之所以敢這樣做,是因為他太自大了。他自以為可以輕易將對手完全控製,令對方沒有還手的餘地,所以才敢這樣兵行險著。”
“我知道,禦冰如果被摁在地上打不還手,確實經不起幾下。”柳榮華停頓了一下,又道:“但問題是:又有那個玩家能做到這一點?更何況你操縱的是這個花瓶職業。但我今天是看明白了,我發現你做到了這一點,把西門摁在地上從頭虐到尾,所以我的問題的重點是:你是如何做到這一點的?”
我用雙手在鍵盤上空做出了一個彈鋼琴的動作,對他笑了笑。
“啥意思,難不成你的操作速度也能達到了西門那樣的境界?”柳榮華問。
“很明顯我比他更快。”我不無得意的笑了笑,不緊不慢解釋道:“眾所周知,破軍職業的操作難度要比禦冰高很多。所以如果要與禦冰在pk上平分秋色,我隻有比他更快。”
頓了頓,我又補充:“我要快到可以將我幾個效果極短的控製技能與幾個重量級的攻擊技能連貫起來,天衣無縫一氣嗬成,讓西門沒有喘息的餘地。隻有這樣才能在短時間內將他擊垮。”
柳榮華沉默,若有所思。須臾又問:“我知道你的意思,但據我所知破軍這職業幾乎不可能做到這一點。你是如何做到的?”他再次重申他的疑惑所在。話題似乎又迴到了原點。
“我練的。”無奈之下,我用三個字再次敷衍了他的疑問。我並不想說太多,隻因為我相信有時候在圓謊方麵,說得越多漏洞越多。
“這短短半個月,你怎麽可能練出這種運指如飛的神技?”柳榮華仍然不死心,並一臉質疑。
“我對這方麵有天分,沒什麽奇怪的。”我隻好假裝雲淡風輕,如此迴應。事實上麵對他的提問,我找不出更好的迴答了。
柳榮華半信半疑的看著我。想必他心中此刻,有很多怎麽也想不通的事情,但我沒有給他滿意的答案。對話在我的敷衍中不了了之。
事實上他的懷疑是很合理的,我當然不可能在短短半個月練成這種出神入化的操作技術。而且不管是誰,即便能練上一年半載,估計也很難做得到我今日在決鬥中所發揮出來的這種技藝水平。
但不管他怎麽追問,我也是永遠不會告訴他我親自編寫了一個破軍職業專用的戰鬥輔助程序這個秘密的。
事情還得從那天在遊戲裏偶遇易小寒說起。自被西門三番羞辱之後,我本已決定棄遊。那天在幫會領地與易小寒切磋之後,他對我所做的一番相當專業的pvp技術分析,讓我明白了自己無法戰勝西門的原因。事實上這也讓我絕望——易小寒告訴我要想戰勝西門必須滿足一個幾乎不能實現的條件。既然無法實現,我便更加堅定了棄遊的決心。
但其後易小寒關於神女無心的“驚人”爆料卻使我內心燃起了一種強烈的渴望:我突然很想見識一下這位易小寒口中“驚為天人”的女子的廬山真麵目。不僅如此,我甚至想要贏取她的芳心——在我看來這也極具挑戰性。
而我若要實現這個目標,首先要做的是擊敗西門。但這令我悲觀,因為我幾乎沒有可能擊敗他。
所以我要感謝柳榮華,要不是那天他提出要我幫他做那個小軟件,我也不會找到破解擊敗西門難題的秘訣。
盡管當時我拒絕了他的要求,但這也激起了我的好奇心。當天晚上我從理論上考量了一番實現那個軟件功能的方法。我翻看了一些計算機書籍後無意中發現了一個api函數——它的作用是可以模擬硬件動作向指定線程發送窗口消息——包括虛擬按鍵消息。從這一點出發,我花費了大半個月時間,開發並測試成功了一個專用於破軍職業的戰鬥輔助程序。
要說它的工作原理,其實真並不複雜:通過截獲相應端口ip數據報分析人物角色即時狀態(包括技能狀態),然後基於對角色狀態的判斷,構造並發送相應的技能的虛擬按鍵消息。要實現這一過程,對於我這個資深老程序員來說並沒有什麽難度。當然,要從細節上實現也是需要消耗一定時間精力的。
軟件功能的關鍵在於“判斷狀態然後發送技能按鍵”這個過程。對於人工操作而言,這個過程需要消耗一定的時間,但對於計算機來說,它卻幾乎不需要時間——當然,除了幾個計算機指令周期之外。這恰好滿足了易小寒所說的破軍職業要戰勝禦冰所需要的極端條件——一種爭分奪秒疾如迅雷風馳電掣的操作速度。
研發成功後我找易小寒切磋測試了一下,效果令人滿意。而後我給它起了一個好聽的名字——“演奏家”。當然,我也不會告訴易小寒我的秘密。同時為了不影響某種轟動效應以及不引起西門的警覺,我囑咐易小寒在我發起挑戰之前,不要告訴別人我的操作技術突飛猛進的事實——他是個值得信賴的好朋友,他答應了我並且做到了。
我給程序設定了一個獨特進程名稱,這一點也是重要的。當然,還有更多的技術細節,卻不在本文的討論範圍之內。
我向柳榮華給出的解釋是我依靠自己的天分實現了出神入化的操作技藝,這其實也不完全算假話。我確實是利用了我自己的計算機天賦,以及後天的努力——我花了大半個月的時間去開發與測試一個軟件,也是一種艱辛的付出。我用天分與努力獲得了“驚天神技”,然後在遊戲世界戰勝了超級對手,這一事實並不虛假與造作。
在測試成功以及擊敗西門的時候,我享受到了那種占據優勢地位輕鬆勝出的快感。還有那種站在技術的高度扮演上帝俯視一切的快感,它們帶給了我極大的滿足,這種滿足一度令人上癮。
但滿足過後,我此刻內心充斥的卻是一種空虛,以及一種深重的羞恥感。
之所以羞恥,首先是因為靠這樣的方式取勝畢竟屬於一種不光彩行為——我在心中暗自對西門抱有歉意。其次,最重要的是:這樣的行為違背了我的程序員職業操守——當初我斷然拒絕了柳榮華對我提出的幫忙要求,正是基於這一點。事實上我從事程序員職業數年以來,一直恪守職業操守底線,從未逾越。
當然,如果從軟件功能的實現原理來看,“演奏家”隻是一款很簡單與保守的輔助工具。其功能實現主要依托於對於公開網絡數據的讀取以及從公開合法的渠道幹預另一程序。本質上,它並未涉及黑客行為。
但不管怎樣,製作這樣一種程序始終是一種不道德行為。盡管開發這個程序的初衷隻是自用而非商用,但我內心的正義感促使我最終決定從電腦上卸載了這個程序。同時,為了杜絕自己再度背棄職業操守,我也刪除了程序源代碼,以杜絕自己手癢重新編譯成軟件。
麵對羞愧與自責,我這樣安慰自己:權當這一次經曆,是自己的一次編程練習吧。
總之,我有充分的理由阻止自己做這件事,但本次為了神女無心而出此下策,也是不得已而為止。我之所以必須這樣做,是出於我內心對神女無心的極度好奇與渴望,以及因此而製定並急於實施的一個驚天計劃。
沒錯,相對於這種技術手段上的成功,我覺得自己這一次實施的“驚天計劃”更加完美,更讓我得意。這計劃於我而言,可以說得上是一箭三雕。
我的計劃是:利用這樣一個“戰鬥神器”向西門發起“世界級”的挑戰,並且最終擊敗他。一雪前恥的同時也為自己贏得榮譽,塑造自己在遊戲世界光輝形象。從而讓無心對我刮目相看。同時也讓西門因為這一戰而身敗名裂。這是其一。
其二:我通過一個賭約巧妙地讓神女無心能自願與我見麵,實現我一睹芳容的願望。
其三是:我通過借款大量押注,贏取巨額金幣的賭局迴報。
除了贏得西門的那2000金幣之外,我用將近50萬金幣押注贏迴了將近1200萬金幣。雖然所得為遊戲世界的虛擬貨幣,但根據柳榮華之前告訴我的,通過某些第三方的交易平台,其實可以把金幣出售,換取現實貨幣。
按照當前市場行情,理論上我這些金幣可以換取十多萬的真金白銀。也就是說經過這一場驚天豪賭,我的生活壓力也減輕了不少。想到這,我忍不住笑出聲來。
我想,多年以後當迴首往事,這一段傳奇的經曆必將成為我網遊生涯乃至人生中一個亮點。我用一種特殊的方式在虛擬世界贏得了一次激情澎湃的戰鬥與一場豪賭,這很值得我紀念,迴味。而這一場豪賭的結果,也直接決定了後麵我將要麵臨的更加曲折離奇的人生境遇。
關於以上所有這一切,我之不能與柳榮華分享,除了羞愧與自責之外,還有一個原因,就是擔心他管不住嘴。如果哪天他將此秘密透露給無心,那麽我在她心目中辛苦建立起來的光輝形象可能毀於一旦。
想到無心,我便與柳榮華提起賭約見麵一事,柳榮華聽完大喜過望。隨即上線與2位美女聯絡。最終他提議“擇日不如撞日”,與對方愉快的約定了明日見麵。明日是周日,剛好大家都有空。