最近在玩塔防新春版,上手很容易,過關也簡單。偶很喜歡研究遊戲存檔,看看有沒有什麼特別的劇情、人物、道具能夠出來。
首先用iFunBox或者別的東西,把存檔目錄copy到本地電腦上,如我這裡就是存放在了:C:\Users\username\Desktop\FolderName\F38DE1C9-0098-42AC-AF62-8D2A6A82E44F。
下面有4個子目錄,我感興趣的是兩個,一個是documents,這裡存放封存檔案;另一個是threekingdomstdsehd.app,這裡面有所有的圖片、音樂、將領資料、道具資料、地圖、劇情。除了save.plist在documents目錄外,其他的都是在前文中的第二個目錄。所有的xml檔案都包含有英語、簡體中文、繁體中文和日文四種語言。
- Items_HD.xml
- 物品一共分為3種,武器、裝備、坐騎。對應的itemtypename分別是Weapon,equipment和viecle。攻擊力最大的是方天畫戟150,其次是青鋼劍和朱雀爪,各自140。攻擊範圍最大的兵器是青龍偃月刀,32;最大的裝備是孫子兵法、神獸硯、餃子和中國結,都是攻擊範圍增加40;最大的坐騎是赤兔,攻擊範圍增加48。
- 每個item下面
- icon image,指定了該道具的圖片名稱。
- money包含buy和sell,我玩的裡面沒發現有可以買賣道具的地方,所以這個可能是為將來擴充用的。
- limites。lv,這個應該是說武器最低使用等級,如諸葛連弩,只能3級或以上兵來用。wuxings這個不詳,也許和五行有關?bosses,這個應該是該道具只能某個武將用。如,方天畫戟只能呂布用。
- Impacts,value=1應該是指攻擊力,num=+150則意味著增加150。所以<impact value=”1” num=”+150”意味著方天畫戟可以增加武將攻擊力150。從其他的道具,如8651丈八蛇矛,impact value=”5” num=”+32”,結合介紹,可以看到,5代表攻擊範圍,值是num/2。所以這裡意味著丈八蛇矛的攻擊範圍可以增加16。從9540倚天劍的介紹中可以猜出來,impact value=”3” num=”+0.1”,意味著倚天劍的攻擊速度+0.1。再如9542青鋼劍,impace value=”5” num=”-32”意味著青鋼劍的攻擊範圍減少16。
- Skills_HD.xml
- 技能分為將領和普通兵的,但是從xml item上沒有明顯標誌區分。
- expend/food~value代表該技能消耗術的點數。如鼓舞,消耗45點術。注意的是,effectarea表明技能的使用範圍,如鼓舞的effectarea value=”320”,但是遊戲中用大、局部、全域來表示範圍大小。如果看主要將領的最高一級技能,如水淹七軍,可以知道effectarea value=”19998”代表全域。
- duration代表技能期間;
- effectargets,代表該技能針對哪些soldier有效,包括將領、普通兵種。如skill id=”27“,勇猛,專門針對張飛的:effectarget soldierid=”18”/8816/8815/8814/8813
- soldier_HD.xml
- 所有的將領和普通兵的資料,這裡麵包含的是該將領“初始”狀態具有的道具和技能。
- 讓人詬病的是,每個將領都按照start lv從1到5,設定了5條記錄,並且分別採用不同的soldier id,不知道為什麼要這麼設計。本來我想寫一個修改器,可以把曹操、呂布等都選成我的人,但是裡面有5個曹操、5個呂布,實在影響心情啊!!!每個將領從1到5,是通過Promotie來串連的,類似於一個鏈表一樣。如劉備id=16, promotie=8805;id=8805,promotie=8806這麼串連下去的。
- hp value、atk value分別是生命、攻擊力,注意的是def value,如張飛def value=”90”,代表他的防禦力,這個遊戲裡面沒有用到。
- Soldierskill代表該將領在每級可以擁有的技能,最多3項。注意裡面有一個是requirementskillid value=”0”,貌似技能需要另外技能作為前提,這個遊戲裡面現在沒有體現。
- kindoms,似乎代表每個將領屬於哪個主公的,xml中都是空,這個估計做外將來遊戲擴充用。
- 裡面有超過100個將領(士兵)的頭像是dazhonglian01,就是“福士臉”,這個比較搞。如大名鼎鼎的曹彰、司馬兄弟等。
- save.plist
- 這裡就是封存檔案。因為遊戲支援三個存檔,所以檔案中有三組plist/array/dict。
- 每個dict下面主要分為hero、level、storage、unit、是否完成。
- hero
- 下面有若干個dict,代表將領的資訊。isActive意味著該將領是否在出征隊列。curExp代表經驗值,這是一個real類型,比較怪異。
- 然後是5組的道具資訊,用center/downleft/downright/topleft/topright代表,該位置是否裝備著某個武器或者道具或者坐騎(中間、左下、右下、左上、右上)。如果是-1,則意味該位置沒有裝備。如果都是-1,則該將領沒有任何裝備。
- id代表武將或者士兵的id,和soldier_hd.xml相關聯。
- level
- easyHighscore、hardHighscore,代表普通、難的最高分。
- maxStar代表幾個星
- storage
- 包含了當前倉庫裡面可用的裝備資訊,用id與items_hd.xml關聯。
- Unit
- 代表出場計程車兵,如大象、弓兵等,用id與soldier_hd.xml關聯。
- Stage*_level_hd.xml
- *代表第幾關,如01代表第一關。
- enemy_bosses代表本關會出場的boss的id,與soldier_hd.xml關聯。
- exp_prize代表本關可以得到的經驗值
- resource/money代表初始金幣,resource/food代表初始術
- bonusitems代表本關可能出現的寶物獎勵。如level01,有鐵戟蛇矛、錢串等物品。每個物品後面有一個probability,應該代表掉落紀律。如鐵戟蛇矛,0.7,但是錢串是1.3。所以不解這裡是代表70%、130%還是說代表0.7%和1.3%。如果是後者,那麼掉落幾率是在太小了。
- Attackwave代表第幾波的攻擊。soldiers/soldier代表這一波有哪些將領、士兵來攻擊;pathnodes代表在地圖上的行動路線。
- 最後是events,分為condition和result,如event id=123226代表劉備如果遇到孫權,那麼會發生單挑,如果單挑成功,則孫權退走。<dropitem triger=”false” itemid=”0/>,這裡讓我比較迷惑,看了很多關,這裡好像都是triger=false, itemid=0。
- state*_map_hd.xml
- 同上,02代表第二關。
- 裡面都是地圖的描述,不感興趣。除非自己要寫地圖編輯器。
總結一下,基本上通過上述幾個檔案的增加、修改,開發商就可以迅速造出大量劇本和關卡萊。我們要自己改,也很容易。
如果要改裝備,就修改save.plist。如果要改將領的攻擊力、速度等,就改soldier_hd.xml,如果要改將領的技能,也改soldier_hd這個檔案。
如果改某項技能的花錢數(如水淹七軍只用1個術,或者負數),則修改skill_hd.xml。
其他諸如每關開始的錢、術,修改stage*_level_hd.xml即可。