00002 贪婪洞窟.001

00002贪婪洞窟.001

      地牢类游戏我喜欢的有不少,比如《厕所穿越记》、《地下城冒险》等等,以及这次的研究对象《贪婪洞窟》。

      从玩法上来说,《贪婪洞窟》不够上进,刷多了就显得单调、腻人。在那么几次更新中,除了“梦境”之外,都是相同模式下、内容的单调增加。即便是梦境,也只是“一条命看你能闯到多少关,然后给你个排名”的无聊游戏,玩法和主线还是一模一样的。我要看看能不能修改它,如果能,就再看看能修改到什么程度。我个人的愿念,不仅仅是平衡性(比如主角属性、水晶、装备属性等)上的修改,更是玩法上的变更、完善(当然,如果可行,这将是一项比较耗时的操作,我不会一次性完成并给出文章,将会不定时更新。大家可通过标签分类“贪婪洞窟”查看)。

      闲话不多说,进入正题。

      要想修改游戏,首先就得拿到游戏。在电脑时代,这是个笑话:都玩上游戏了,还能没拿到游戏?你以为你在虚拟桌面么?安卓游戏还好,网上应当比较好找。苹果比较麻烦,手机越狱了可以找找越狱版的,修改完直接越狱安装。那没越狱的怎么办?对于iOS8.3以下,可以通过iToolsPP助手等的备份程序功能,导出游戏程序;iOS8.3及其以上,通过iTune备份+iBackupBot也应当能够提取出游戏程序。另外,还可以通过iTunes直接在AppStore中下载游戏程序。游戏修改后,如何在非越狱机上安装呢?如果你有一台Mac电脑,可以通过Xcode进行安装。如果你有一台Windows电脑,则通过PP助手5进行安装。获取程序和安装程序的具体操作过程,此处不赘述,如有问题,请自行解决。

      拿到的游戏程序文件,安卓的是一个apk,苹果的是一个ipa。它们都是压缩包,用WinRAR之类的解压出来即可。我们将文件修改后,替换掉原文件即可。对于apk,需要重新打包(有些游戏会对签名进行验证,重新打包的就无法正常游戏了。对于这类游戏,就得找到验证的代码,看能不能破解掉)。对于ipa,重新压缩打包好像有问题,不过可以用WinRAR直接替换掉ipa中的原文件(而不要解压再压缩)。

      以下开始正式讲解贪婪洞窟的修改,以iOS上的1.5.0版为基础,而非最新版。

      解压ipa后,打开到Payload\Cave iOS CN.app\,可以看到里面有很多文件和文件夹。文件有mp3jsonpvr.cczatlasplistpng等类型:

 

如果对游戏开发有所了解,那么就可以很容易看出那些含有bundle的文件夹是第三方开发包,这个没什么好弄的;含有lproj的文件夹(比如de.lprojen.lproj等)是语言包,也没有什么好弄的;_CodeSignature从名字上看是大概是数字签名之类的,还是没什么好弄的。

好了,文件就这么全过滤掉了,下面看看文件。

Mp3png显然不是我们关心的重点。名称相同的pvr.cczplist组合为一个整体,是TexturePacker生成的图像,已被加密(在研究过程中虽然顺手拿到了密码,但我是不会公开的,也别找我要)。名称相同的jsonatlas也组合为一个整体(具体使用时还要加上刚刚说的pvr.ccz图片),构成spine动画。有个_vungle.db,这是一个sqlite数据库,但也属于一个第三方SDK中,暂时不用管。经过这么过滤,还剩下一些单独的plist文件和为数不多的几个文件:PkgInfoREADME.txtkey_words.txtLICENSECave iOS CNCave iOS CN.entitlements等等。Cave iOS CN是游戏的可执行程序(相当于Windows中的exe文件);key_words.txt是要过滤的关键字(一些伟人的名字是不能乱说的、脏话也是不能乱讲的)。其他的PkgInfo等看起来就不像游戏的配置或者逻辑。这样一来,也就剩下那些单独的plist文件了。好吧,其实如果对苹果开发有点了解,我们就会知道plist叫做属性列表文件,和Windowscfgini等配置文件差不多,便会首先定位到它们。

继续分析plist,就看看名称,就不难发现里面有一些是用来定义界面(名称中包含ui)的;还有一些是系统的。剩下的便是我们所关心的。

打开plist看看。

Plist有好几种格式,二进制的、文本的、xml的。后两种都可以用文本编辑器打开,但很难看。Xml还可以用xml工具打开,同样很难看。二进制的,很不幸,需要使用xcode或其他专用工具打开。如果使用Xcode打开的话,非常直观,比如成就表:

上图中的第一项,210004大概是成就的id,它的子条目,名称具有很好的可读性,让我们很容易就知道要改啥了。Desname之类的值是一串数字而非明文的描述性文本,这是为了方便本地化,那串数字是语言包中的id

经过一定的研究,发现各plist文件的作用如下:

l        achievementAttribute.plist:成就

l        battleRewardEquipments_dl.plist:梦境奖励

l        battleRewardItems_dl.plist:梦境奖励

l        crystalBox.plist:开水晶箱子所需的水晶数目

l        drama.plist:故事碎片(地牢捡起的那些纸张,可在背包-)日志-》故事中查看)

l        dramaCatalogue.plist:故事分类

l        equipmentAttribute.plistequipmentAttribute_dl.plist:前者是主线中的装备属性、后者是梦境的

l        equipmentZone.plist:各等级+0装备的基本属性随机范围

l        face.plist、face_2.plist:创建角色时捏脸用到的眼睛、头发之类的

l        guide.plist:操作教学

l        happyClub.plist:某种充值活动?奖励

l        heroAttribute.plistheroAttribute_dl.plist

l        itemsAttribute.plistitemsAttribute_dl.plist:物品

l        level_1.plistlevel_1_dl.plist:普通难度地牢生成规则。后者为梦境

l        level_2.plistlevel_2_dl.plist:噩梦难度地牢生成规则。后者无效

l        level_3.plistlevel_3_dl.plist:地狱难度地牢生成规则。后者无效

l        levelReward.plist:爬塔(到达地牢指定层)奖励

l        LocalString_zh.plist:简体中文语言包

l        makeRuneLimit.plist:各层地牢生成符文的数量上限

l        mapConfig.plist:???????????

l        mapElement.plist:???????????

l        missionAttribute.plist:任务

l        monstersAttribute_1.plistmonstersAttribute_1_dl.plist:普通难度下的怪物属性。后者为梦境

l        monstersAttribute_2.plist:噩梦难度下的怪物属性

l        monstersAttribute_3.plist:地狱难度下的怪物属性

l        playerNames.plist:创建角色时的随机名称列表

l        pointMax.plist:一些属性的极限值(未具体研究,不知道用在哪里)

l        pointShop_dl.plist:梦境积分商店

l        prizePoolAttribute.plist、prizePoolAttribute_dl.plist:奖池(用于怪物的掉落列表等)

l        purchasePresent.plist:首充奖励

l        rareMonster_1.plist:普通难度精英怪生成规则

l        rareMonster_2.plist

l        rareMonster_3.plist

l        secretshop_1.plist:普通难度时的老婆婆商店

l        secretshop_2.plist

l        secretshop_3.plist

l        shopincave.plistshopincave_dl.plist:地牢商店

l        skill.plist:人物技能

l        skillEffect.plist

l        skilllvup.plist

l        suitSkill.plist:物品技能

l        TestConfig_Cave.plist:正式版改了会生效么?

l        TestConfig_Town.plist:正式版改了会生效么?

l        treasureAttribute_1.plisttreasureAttribute_1_dl.plist:怪物、密室、钱包、箱子掉落(可能掉落的物品列表和几率在prizePoolAttribute中定义)

l        treasureAttribute_2.plist

l        treasureAttribute_3.plist

l        triggerObject.plisttriggerObject_dl.plist:陷阱

l        triggerType.plist:

l        turntableAttribute_1.plist:普通难度时的转盘

l        turntableAttribute_2.plist

l        turntableAttribute_3.plist

l        turntableBingoAttribute.plist:转盘转满指定次数时的奖励

l        updatePurchase.plist:老婆婆商店中的3种药水(未具体研究,不保证)

l        upGrade.plist:强化装备时装备附加属性的提升值

l        upGrade_base.plist:强化装备时装备基本属性的提升值

TestConfig的内容如下:

上述内容可能有所遗漏甚至错误,欢迎大家指正。

 

习惯性吐槽CSDN:我只想从MS Office Word中Ctrl+C,在html编辑器中Ctrl+V,希望能够保留Word中的格式(图片和OLE内容另计),这个功能啥时能够实现?


评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值