Temple Run 2 存档全解释
templerun2吧
全部回复
仅看楼主
level 3
duckyzw 楼主

First things first
在一天纯手工玩了
300
局游戏后,我还有“一局
5
个钻石”和“
10,000,000
米”两个目标没有达成。我觉得如果再这么玩下去,实在没有太大意义,于是就对游戏的存档(以及游戏本身)研究了一下下。如果您是打算坚持手工完成所有目标的玩家,我友情提醒一下,请不要再往下看了,因为下面的内容可能会影响您玩游戏的心情。
2013年01月31日 11点01分 1
level 3
duckyzw 楼主
游戏と存档
Temple Run是用Unity引擎做出来的一款游戏,开发语言是.Net C#。这就意味着,我们可以用一些工具来看到游戏的大部分源代码。接下来我就用代码+说明的方式,解释存档中每一个字段的功能。
Temple Run 2的存档与之前版本的不一样(如果我没记错的话),它使用了JSON格式来记录数据,所以与二进制的存档相比,它更容易修改。
不过,开发者也必然考虑到了这一点,所以他在存档里,加了一个检验值来验证存档的合法性。为了随心所欲地修改存档,我们必须先搞定这个检验值。
这段代码负责构建存档的整体框架,其中“checkState”函数是用来计算一个字符串的md5哈希值。而“saveClass”是一个字符串。知道了这些,这样我们就可以轻而易举地模仿游戏本身计算存档的检验值了。
2013年01月31日 11点01分 2
level 3
duckyzw 楼主
计算检验值
工具:文本编辑器、md5计算工具(如WinMD5)。
具体步骤:
1、 修改存档数据。
2、 将data冒号后面的所有东西,除去最后一个右大括号,复制粘贴到一个新的文本文件里。
3、 在那个文本文件里,再加上“BonusItemProtoData”。不含引号,前后没有空格,也没有换行。就像这个样子:
4、 保存文件,用md5计算工具计算该文件的检验值。
5、 替换存档的检验值(存档开头,Hash字段后面的那一串十六进制数)。
2013年01月31日 11点01分 3
level 3
duckyzw 楼主
存档解释之GameProfile(GameData.txt)
由于存档里面的很多字段只有几个字母,实在猜不出它的含义,不得不借助代码来理解一下。
还有,在贴吧贴代码实在是一件蛋疼的事,所以我就直接贴图了。
两个字段,Players和Characters,记录了玩家的游戏进度和人物的解锁情况,楼下解释。
ShowTutorial:是否显示教程。(true/false)
SMT:是否显示在矿道里的教程。(true/false)
ShowFriendMarkers:不是很清楚。。。
SoundVolume:游戏特效音量。(0~1)
MusicVolume:背景音乐音量。(0~1)
LikeFB:已经与Face Book账号关联。(true/false)
LikeTW:已经与Twitter账号关联。(true/false)
LastPromoNumber:推测是与广告显示有关的一个变量。
TwitterURL:好像是官方Twitter的地址。
TwitterMessage:在Twitter分享成绩时用的模版。
HSCCI、HSAS、HSPS、HSNAS、HSNPS记录是否看过一些某些提示信息(那些提示信息有点难翻译。。。)
Q:画质。(0~2,我猜的)
2013年01月31日 12点01分 4
level 3
duckyzw 楼主
存档解释之Player(玩家数据)
pid:玩家编号。
bestScore:一局最高得分。
bestCoinScore:一局最多硬币。
bestDistanceScore:一局最长距离。
lifetimePlays:总计游戏局数。
lifetimeCoins:总计收集硬币数量。
lifetimeSpecialCurrency:总计收集钻石数量。
lifetimeDistance:总计距离。
coinCount:当前硬币数量。
specialCurrencyCount:当前钻石数量。
activePlayerCharacter:当前选择的人物(的编号)。
gameCenterNeedsUpdate:不清楚,猜测是与iOS上的Game Center有关的变量。
aritfactsPurchased:列表,记录已经购买的主动技能(的编号)。
aritfactsDiscovered:列表,记录已经发现(??)主动技能的升级。
objectives:列表,记录已经完成的目标(的编号)。
powersPurchased:列表,记录已经购买的能力升级(的编号)。
randomSeed:产生随机数的参数。
numberResurectsused:复活的次数(??)。
hashID:也不清楚。。。
Buffs:列表,已经购买的主动能力,楼下有解释。
objectivesActiveData:列表,当前正在完成的目标,楼下有解释。
2013年01月31日 12点01分 5
level 3
duckyzw 楼主
存档解释之Buffs(技能)
v:版本(无视之)。
c:价格,钻石数量。
t:类型,有2种,“Powerup”和“Artifact”。
id:能力编号。
u:剩余次数。
StatValueType:属性改变方法,有3种,“Percent”表示修改成为百分之(下面一个参数),“Absolute”表示直接修改成为下面一个参数的数值,“Relative”表示在原有属性值加下面一个参数的值。
StatValue:见上。
2013年01月31日 12点01分 6
level 3
duckyzw 楼主
存档解释之objectivesActiveData(当前目标)
Title:目标的标题。
IconNamePre:不知道。
IconName:也不知道。
DescriptionPre:目标的描述。
Description:也是目标的描述。
Points:不清楚,可能是iOS里Game Center的积分。
Hidden:是否隐藏(true/false)。
CanEarnMoreThanOnce:能否多次完成目标(true/false)。
Difficulty:完成目标的难度。
T:目标类型,有10种,“CollectCoins”收集金币,“Distance”跑距离,“Score”defense,“CollectPowerups”收集路上的能力,“CollectSpecialCurrency”收集钻石,“HeadStarts”开始跑时用HeadStart,“Resurrects”复活,“UnlockPowerups”解锁能力,“UnlockAritfacts”解锁主动技能,“UnlockCharacters”解锁人物。
TT:目标的时间跨度,有3种,“PerRun”每一次跑都重新统计,“Overtime”从目标出现开始统计,“Lifetime”从第一次玩游戏开始统计。
FT:目标的特殊要求,有4种,“None”没有特殊要求,“WithoutCoins”不能碰到金币,“WithoutPowerups”不能使用能力,“WithoutStumble”不能被障碍物绊到。
SV:目标要求达到的数值。
EarnedSV:已经完成的数值。
PID:游戏中目标的编号。
GCID:Game Center里面目标的编号。
2013年01月31日 12点01分 7
level 3
duckyzw 楼主
剩余的东西
清点一下,存档里只剩下一个Characters没有解释了,因为这里有很多疑点。比如说,在存档里明明有6个人物,但是后面两个无法解锁。楼主目前无能为力。
之前楼主分享了一个(无效的)暴走存档,以及一个(可能无效)的签名脚本,都是因为在写脚本时,没有考虑到存档最后可能有换行符造成的,在这里表示深深的歉意。。。
楼主想干一件事,就是让游戏里的人物一边“无限”地吸金币,一边长时间地冲刺。但是非主动技能的数据不是完全保存在存档里,而是保存在一个“TRGameData/Arifacts”这个文件里,但是楼主没能找到。。。如果有人找到了,请一定要跟楼主说一下!!
Game over. 以上
2013年01月31日 12点01分 8
level 1
真的可以,楼主辛苦!给你
十五字
2013年01月31日 12点01分 9
level 1
顶。。。。
2013年01月31日 15点01分 10
level 1
btw我把你之前发的存档重新修改了,刷了一下,发现ios没有集齐5个宝石的任务,系统自动发给我再下一个任务了。。。果然ios和android不一样。。。ios9级后无任务啊。。。
2013年01月31日 16点01分 11
level 2

lz
了,用这个办法干掉了恶心的infinite和midas,不过貌似level9是满级了,刚开始也没有出现所谓miser run desc
2013年01月31日 16点01分 12
9级完了gamedata中任务就空了。。。。但是明明技能中gems那个要10级才解锁的。。所以有bug。。。
2013年02月01日 03点02分
回复 大苏打打小苏打 :求存档,[email protected]
2013年02月01日 08点02分
level 1
[啊!]膜拜 楼主
2013年02月01日 09点02分 13
level 11
亲测啊!可用啊
2013年02月03日 11点02分 14
level 1
马一个
2013年02月03日 18点02分 16
level 1
楼主可以研究出1的改法吗?感谢!
2013年02月05日 07点02分 17
“1的改法”?lz智商捉机,没能理解,望能为lz指明。
2013年02月05日 11点02分
level 1
楼主 最关键的问题是 你修改之后的存档 跑出的成绩 gamecenter会在两小时后清零的 你注意了吗?
2013年02月05日 08点02分 18
lz木有iOS。。。如果有iOS版的dll,lz会去研究一下的[黑线]
2013年02月05日 10点02分
level 1
lz强 我搜来搜去想找怎么验证那个hash值的 国外全是直接给一个改好的gamedata 却不说怎么改
2013年02月05日 10点02分 19
level 1
膜拜楼主!
2013年02月07日 01点02分 20
level 1
升级后存档验证原理貌似木有改。。宝石技能解锁改成level9了,升级后马上就刷到了,但是9级后还是没任务了,貌似只有42还是43个任务。
前阵除了人物的数据外,其它的数据参数也都了解差不多了,最近没用电脑,过两天补个更详细的说明。。
2013年02月07日 05点02分 21
1 2 尾页