惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

酷 壳 – CoolShell
酷 壳 – CoolShell
H
Hacker News: Front Page
P
Palo Alto Networks Blog
T
ThreatConnect
Apple Machine Learning Research
Apple Machine Learning Research
博客园_首页
T
True Tiger Recordings
P
Privacy & Cybersecurity Law Blog
B
Blog
IT之家
IT之家
Last Week in AI
Last Week in AI
F
Full Disclosure
Hacker News: Ask HN
Hacker News: Ask HN
C
Comments on: Blog
Microsoft Azure Blog
Microsoft Azure Blog
C
Cybersecurity and Infrastructure Security Agency CISA
Microsoft Security Blog
Microsoft Security Blog
博客园 - 【当耐特】
N
News and Events Feed by Topic
NISL@THU
NISL@THU
腾讯CDC
雷峰网
雷峰网
Security Latest
Security Latest
李成银的技术随笔
M
Microsoft Research Blog - Microsoft Research
L
LangChain Blog
L
Lohrmann on Cybersecurity
cs.CL updates on arXiv.org
cs.CL updates on arXiv.org
C
Check Point Blog
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
博客园 - Franky
N
News | PayPal Newsroom
V
V2EX
A
About on SuperTechFans
The Register - Security
The Register - Security
月光博客
月光博客
奇客Solidot–传递最新科技情报
奇客Solidot–传递最新科技情报
Google Online Security Blog
Google Online Security Blog
MyScale Blog
MyScale Blog
Cisco Talos Blog
Cisco Talos Blog
Vercel News
Vercel News
WordPress大学
WordPress大学
C
Cyber Attacks, Cyber Crime and Cyber Security
The Hacker News
The Hacker News
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
IntelliJ IDEA : IntelliJ IDEA – the Leading IDE for Professional Development in Java and Kotlin | The JetBrains Blog
爱范儿
爱范儿
A
Arctic Wolf
L
LINUX DO - 最新话题
freeCodeCamp Programming Tutorials: Python, JavaScript, Git & More

博客园 - 鞠强

HBase初探 C#访问Azure的资源 HDInsight - 1,简介 Windows8.1画热度图 - 坑 使用windbg查看DependencyObject的属性 LiveSDK初始化/登录时失败的解决办法 开发WP版本的大菠萝英雄榜 SQL 2014 in-memory中的storage部分 XAML绑定 Kinect 1 Diablo3狗熊榜 微软上海招聘有经验的.NET开发人员 我的HD2手机 和我一起作Tess的windbg lab,结束 和我一起作Tess的windbg lab - Lab7, MemoryLeak 和我一起作Tess的windbg lab - Lab6, MemoryLeak - 鞠强 和我一起作Tess的windbg lab - Lab5, Crash 和我一起作Tess的windbg lab - Lab4, High CPU 和我一起作Tess的windbg lab - Lab3, Memory
塔防蜀的存档分析
鞠强 · 2011-02-27 · via 博客园 - 鞠强

最近在玩塔防新春版,上手很容易,过关也简单。偶很喜欢研究游戏存档,看看有没有什么特别的剧情、人物、道具能够出来。

首先用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即可。