設置
上一章
下一章
返回
設置
前一段     暫停     繼續    停止    下一段

第125章:采集精靈

醉風月_第125章:采集精靈影書  :yingsx第125章:采集精靈第125章:采集精靈←→:

  孫軼民回顧了剛才與柳榮華的探討中提到的內容:在免費模式網絡游戲的生態系統中,免費玩家(不花人民幣的玩家)的經濟來源無非是三種。

  一是完成每日任務,拿NPC獎勵的經驗和金幣,以及獲取副本里可能掉落的一些珍稀物品。

  二是采集生活材料(如藥材或者礦石)并制作日常生活消耗品(藥品或寶石成品)出售賺錢。

  三是反復刷高級副本,以求小概率獲取最新款的極品裝備。

  第一種方式收入有限。因為一般來說副本任務一天只有一次。即便任務完成后也可以再進副本,但因為沒有了經驗值和金幣獎勵,這種勞動明顯不劃算。

  關于第二種方式,就孫軼民自己而言,目前除了采集藥材,偶爾墨瀾會帶他和神女去浮玉山礦洞挖寶石礦,這里能產生小部分收入。但畢竟墨瀾不會天天帶他去,所以主要的生活來源還是采藥。

  第三種方式他也不看好,因為刷高級副本太費時費力,而且出極品的概率太小。即便能出,能被自己獲取的概率也很小,畢竟一個隊伍有6個人。

  其實在這個游戲世界中,上述第二種賺錢方式是廣大免費玩家在游戲生存的主要方式。一是因為采集藥材操作難度比較低,二是因為藥品作為一種生活消耗品的需求是源源不斷的,所以采集的藥材或者加工好的藥品,總能賣出去。

  但是,采集藥材需要機械式的重復動作,過程會比較乏味與辛苦。即便再有耐心的人,連續采集個2小時也便承受不了。

  如若考慮用程序代替手工,那么這個問題就迎刃而解了。程序不會覺得累,也不會覺得枯燥無聊。它可以24小時不間斷的連續勞作無需休息。而且不需要支付酬勞。也沒有成本——它不需要吃飯,頂多是多賠點電費。

  如果從程序設計難度來講,第二種方式也是最合適的。因為其他兩種都要涉及到與別的玩家配合以及應付副本里的復雜多變的情況,程序設計難度極高。

  采集藥材有兩種方式:一是在最新的70級地圖野外區域采集普通7級藥材,然后直接出售,或者制作成藥品成品出售。

  第二種是到浮玉山采集特殊藥材碧芙蓉。碧芙蓉這種藥材是用來制作特殊藥品大還丹的。但是普通地圖野外區域只有極小概率出現碧芙蓉,而浮玉山卻有較多分布。

  碧芙蓉的價格是普通藥材的十倍左右。這樣的高額利潤誘惑之下,很多人喜歡前往浮玉山冒險采集。

  之所以說冒險,是因為浮玉山屬于危險的“開放性地圖”,在這里,異幫人員之間無需開啟攻擊模式便可以任意攻擊且不增加罪惡值。因此在浮玉山采集藥材隨時會遭遇攻擊,經常有玩家為了爭幾棵草藥爭得頭破血流。正因為如此,孫軼民和神女平時幾乎都不會去那里采集。

  對于計算機程序來說,更是無法應對浮玉山這種復雜情況。所以他的思路中暫時排除了浮玉山,決定先考慮設計在普通地圖采集藥材的程序。

  仔細思索一番,其實這個程序設計難度并不高。大致思路就是:在野外地圖按照一定的路線巡邏,搜索可以采集的藥材的位置,然后前往目標附近,實施采集動作。

  如何識別野外地圖的藥材生長的位置?藥材在地圖上是隨機生長的。因此,需要程序靈活判斷。這里的解決方案,基于對服務器返回的實時數據的解讀。

  按照孫軼民在光瀲開發游戲的實踐中了解到的網游運行的工作原理,角色接受周圍視野范圍內的信息的是實時動態的。

  具體來說:隨著角色在地圖上的移動,以角色為中心的附近一定距離范圍內(視野范圍內)的實時情況會以數據形式從服務器發送到客戶端,這些數據包括附近的玩家角色,怪物,資源等等信息。

  客戶端根據這些數據,動態更新玩家角色視野范圍內的圖形內容。

  在這些數據信息中自然可以找到藥材位置的相關內容。基于黎允兒提供的數據解碼模塊,做到這一點并沒有障礙。

  獲取到藥材的位置信息后,程序便可以通過發送模擬的鍵盤和鼠標消息,操縱角色移動到目標位置,并實施采集動作。

  那么還要解決如何持續采集的問題。

  由于藥材被采集之后需要一段時間后才能重新生長出來,因此,如果長時間在一個位置附近采集,必然最終會導致視野范圍內所有藥材被采集完畢。此時,可以讓程序驅動角色移動到另一片區域。

  那么如何選擇移動方向?可以隨機選擇一個方向直線前進,直到視野范圍內出現可以采集的藥材為止。

  當然,這樣的搜索方式有些笨,效率不一定高。不過作為第一版程序,先采用這個笨辦法也無妨,后續可以改進。

  程序設計的大致思路就是如此。

  關于采集的具體過程,程序面臨兩個問題需要解決:一是采集藥材的過程中會有小怪騷擾糾纏,二是有可能容易遭遇敵對玩家攻擊。三是野外也有一定的小概率出現精英怪物,以及周日出現的世界boss。

  關于第一個問題,相對于襄王的戰力水平而言,野外的普通怪物對人物攻擊造成的傷害非常有限,不會致命,襄王原本可以不用理會。但問題是,采集一顆草藥的動作過程,需要3.5秒的時間,在這個時間內,如果遭到野外小怪的攻擊,則動作被打斷則會導致采集失敗。所以程序要做的是:如果檢測到遭到角色正在遭受小怪騷擾攻擊,那么先啟動戰斗功能殺死怪物。

  這里的戰斗功能設計并不難,因為需要對付的是戰斗力不高的普通小怪,不需要講究戰斗策略,只要簡單的按順序循環施放所有攻擊技能即可。可以照搬演奏家的“硬懟”戰斗模式。

  關于第二個問題,因為孫軼民的仇家不多,因此出現這個情況的概率不高。他暫時不做考慮。

  而且,應對這種情況的程序設計會比較復雜,就如同幫助柳榮華設計的刺客程序一般,他需要根據自己霸王的職業特點,以及戰斗對手的職業特點,制定專用的戰斗策略。因為戰斗對手可能是任何職業的,因此這個程序涉及到的內容就比較繁瑣復雜,設計也比較費時間,他暫時不做考慮。

  如若真遇到玩家挑釁攻擊,那么一個簡單的處理方案就是讓角色先逃跑回到安全區。然后換一個地方繼續采集。畢竟賺錢比打架重要。

  關于第三個問題。同樣采取躲避措施,精英怪物的攻擊與防御能力都高于普通怪物,光憑襄王一個人很難應付,即便能殺死它,也會耗費大量時間。

  世界boss更不用說了。所以,遇到這種情況就先逃跑。直到把怪物甩開,換一個地方繼續采集。

  另外,因為考慮到采摘之后要拾取藥材到包裹里,孫軼民將原有小跟班程序的代碼功能合并了進來。于是,不管是采集的藥材,還是打小怪掉落的物品,程序都會都自動拾取到包裹里。

  經過初步思考,程序的可行性得到了論證。

  這個思考過程讓他也聯想到了,網上其實也存在一些類似的輔助工具,諸如“按鍵精靈”。它們也能通過預設的腳本來完成一定的自動化任務,但是僅限于完成一些簡單的機械化操作。

  這些輔助程序和孫軼民要制作的這個程序有著本質區別:它們無法解讀游戲服務器反饋過來的數據,從而不能應付野外采集這樣的復雜功能。

  舉例來說,按鍵精靈無法判斷野外藥草隨機生長的位置,也無法獲取角色自身所處的位置,生命值,周圍的怪物情況等等信息。沒有這些信息,自然無法實現自動采集。

  而孫軼民開發的輔助程序是基于對服務器返回數據的解讀的,所以就能做出各種智能化的操作,因而能應付自動采集藥材這樣的復雜任務。

  說干就干,他打開了VC60,迅速建好了程序框架。他給程序取名“采集精靈”,設定兩個:f11啟動采集,f12暫停采集。

  接著便開始寫具體代碼。

  明日是周日無需上班,這一晚他滿懷激情馬不停蹄得工作了夜里3點,終于完成了自動采集程序的初步代碼。

  然后做了一番簡單的測試:他將襄王前往蟠龍山,然后啟動程序,讓它開始自動采集這里的7級藥材,然后自己去煮了一包泡面吃。

  吃完回來看了一下,包裹里已經有了幾顆草藥。雖然不多,但這是他程序自動勞動的成果,這樣的成果令他心中充滿了興奮與期待。

  睡前,他讓采集精靈繼續通宵工作,等待明早驗證實際運作效果。他自己則帶著興奮上床,好不容易才睡去。

  新書推薦:

飛翔鳥中文    醉風月
上一章
簡介
下一章