type
status
date
slug
summary
tags
category
icon
password
tips:王国守卫军系列我玩过的是1~4部(王国保卫战、王国保卫战:前线、王国保卫战:起源、王国保卫战:复仇),其中第四部的数据存储方式、文件结构与前三部有所不同,下面会分别介绍。
🌍
利用CE修改金币
这个游戏可修改的地方主要分为两个文件夹,一个是一个是游戏本体所在的文件夹,这里面改的主要是防御塔、英雄伤害等。另一个文件夹在Windows用户的文件夹下,这里是游戏里三个存档所在的地方,所以放置着对应存档的英雄等级与该存档成就等。
需要注意的是该游戏的第四部修改方式和前三部略有不同,不过基本思路一致。前三部开发者使用的是lua脚本语言存这些基础配置信息,第四部使用的是plist标签脚本来存放这些信息

本地存档文件所在地址:

该文件夹可以修改的内容为英雄等级,解锁的成就
前三部的框架
前三部的框架
第四部框架
第四部框架
slot_1表示的就是存档一,这个游戏最多三个存档。
  1. 王国保卫战中的关卡数记录与通关状况:
    1. 这几部都可以搜索level这个关键词
      王国保卫战1~3修改方式
      王国保卫战:复仇修改方式
  1. 英雄等级修改:
    1. 各部英雄所对应的变量名:
      王国保卫战
      王国保卫战:前线
      王国保卫战:起源
      王国保卫战:复仇
      修改方式就是搜索对应英雄在文件中的变量名称,然后修改其XP的值和level的值即可。
      For Example:
      notion image
      上图是英雄电云的经验值和等级,经验值改到400000就达到十级的标准了,然后再把等级改成10,英雄的等级就修改好了,如果要修改英雄的基础伤害和技能伤害需要去游戏本地所在文件夹修改。

游戏本体所在文件夹:

这个文件夹就是看游戏安装在哪里,可以在steam中右击对应游戏预览本地文件找到。
notion image
在游戏本体文件夹中可以修改的内容基本都在KR4文件夹中目前我了解的为KR4文件夹中的level文件夹和settings文件夹
notion image
其中Level文件夹里面记录的是所有关卡的出怪情况,每波怪的行走路线等,Settings文件夹记录着英雄的基础伤害,防御塔的设置(比如修改防御塔的伤害、防御塔上站的人是谁、兵营出兵的人数),以及修改每关的出怪情况等。
游戏本体的框架1~3部是一样的,第4部有所不同,先介绍王国保卫战第四部复仇,比起前三部这部修改起来更加直观:

王国保卫战:复仇

游戏关于防御塔的配置、英雄的配置文件等都在:Kingdom Rush Vengeance\KR4\Settings中。
notion image
文件夹中的plist文件就是配置文件,可以修改的地方主要是power_settings.plisttowers_settings.plistunits_settings.plist这三个文件。

power_settings.plist

该文件可以修改援军以及灵魂冲击的参数。
  1. 援军:
    1. 搜索关键字reinforcement_melee,在下方的cooldown即可修改援军冷却。
      notion image
  1. 灵魂冲击:
    1. 搜索关键字power_soul_impact,在下方的cooldown即可修改灵魂冲击冷却。
      notion image

towers_settings.plist

该文件夹下面修改的主要是塔伤的具体参数。
在这个配置文件中对每个防御塔都有几十行代码的描述,游戏加载时就会将这些数据导入内存中,修改思路和前面一致就是找到需要修改对应变量名了解他对应参数的作用就可以随意修改了。
各防御塔变量的名字
在这个文件中:towers是对防御塔的描述 units是对防御塔对应单位的描述。
tips
文件中对于防御塔的描述是分级描述的,比如回旋镖的一级塔描述的是warmongers_archer_level1 所以在对防御塔修改时需要将其他level 一并修改了,当然也可以直接对最后一个level也就是level4进行修改。
For Example(兵营:骚扰者)
首先在配置文件中搜索对应变量名elves_barrack
notion image
可以看到在这个文件中搜索到了四个level的参数,这里可以直接跳到level4,在第24497行。
notion image
首先可以修改的是cost 也就是防御塔的价格,然后就是soldiers这个里面可以修改的是该兵营的出兵单位数量与出兵类型:
notion image
max表示兵营最多出兵数量,这里我修改成了3,type表示出兵单位为什么,这里可以改成暗黑骑士等其他单位。
然后就是skills:
notion image
这部分的代码比较长没有截全,主要可修改的是rally,中文翻译过来就是集结的意思,所以很明显这里可以在下方的range(范围)处修改该兵营单位的派遣范围,然后就是一些针对该兵营的技能升级所花费的金钱,不过个人认为这个没必要改。
notion image
最后关于兵营单位本身这一部分不在这个文件中,放到后面units_settings.plist 里继续分析。
For Example(防御塔:沼泽怪)
首先可以修改的依然是cost,该塔的金额。然后就是skills,这里面我主要修改的是近战时沼泽怪可移动的范围:
notion image
关于防御塔的参数还有一些:

units_settings.plist

这个配置文件中可以修改英雄的详细参数,各防御塔上单位的数据,以及敌方单位的属性。首先大概了解一下文件的主要几个分支标签:
notion image
每个标签下面都是对数个单位的描述,而且各个标签下的各个单位是属于一个种族或有着同一特征,例如:dark_army里的单位为黑暗骑士、暗影弓手、宝石塔里的单位;heros标签里的就是英雄单位。而单位的信息描述基本一致,都是血量、抗性、技能等。如果是敌人还会有enemy标记。每个单位可以改的标签为:
敌人兵种名称
矮人系列 dwarves
冰原系列 barbarians
迪纳斯城堡系列 linirea
阿努瑞副本系列sapos
幽魂副本系列 halloween
凛冬副本系列 hielo

王国保卫战1~3部:

前三部的修改思路和第四部基本差不多,唯一不同的是前三部的配置文件集成在游戏的程序中:
notion image
上图是王国保卫战第一部和第西部本地文件夹的对比可以看到比起第四部,第一部的配置文件夹没了,这其实是这些文件夹以lua脚本的形式加载到了exe程序中,这里可以用解压工具查看可执行程序
notion image
打开可执行程序就可以看到这些配置文件夹了,第一部的配置文件夹所在处就是Kr1 ,同理第二部为Kr2,第三部为Kr3,第四部为Kr4
进入Kr1就可以看到要修改的配置文件,这里主要要修改的文件为game_templates.lua,可以先将需要修改的文件从压缩软件中提取出来:
notion image
这里需要注意的是集成到exe程序后的lua文件并不是像前面修改本地存档文件那样打开就可以清晰的看到代码这是因为在打包到可执行程序里面后原来清晰的代码会被编译为更方便CPU执行的二进制文件格式:
notion image
所以这里需要用到针对lua脚本二进制源文件的反汇编工具讲二进制代码转换为人能看懂的高级语言。这里使用的工具为:LuaJIT raw-bytecode decompiler (LJD)
打开这个工具文件夹可以知道这是一个python脚本,使用命令行可以将目标lua脚本进行反汇编:
notion image
等待命令执行完毕就可以查看反编译好的1.lua脚本文件,然后修改手段还是一样找到对应的兵种或英雄名然后改对应参数,修改完成后保存文件将文件名字改成其在程序中原本的文件名(game_templates.lua),最后再利用压缩软件打开程序将修改好的脚本文件拖入程序中它原来所在的地址即可,目前我尝试修改时使用360压缩会报错,7z可以成功修改。

参考文章:

软件分析与破解利用CheatEngine修改单机游戏中的数据