前言:

接着上篇文章,王国保卫战前三部的修改方式和第四部的思路其实都差不多,主要就是找到对应文件中的对应参数进行修改。和上篇文章一样还是从游戏本体所在的文件夹和存档文件夹进行介绍。

本地存档文件所在地址:

C:\Users\用户名\AppData\Roaming\kingdom_rush   第一部
C:\Users\用户名\AppData\Roaming\kingdom_rush_frontiers   前线
C:\Users\用户名\AppData\Roaming\kingdom_rush_origins   起源

在这个文件中可以修改的依旧是英雄等级和解锁的成就。

 slot_1表示的就是存档一,这个游戏最多三个存档。这几部都可以搜索level这个关键词。

["levels"] = {
		[1] = {
			[1] = 1;   //正常战役,赋值的数字对应难度分别为:休闲(1)、普通(2)、老兵(3)、不可能(4)
			[2] = 1;   //英雄挑战
			[3] = 1;   //钢铁挑战
			["stars"] = 3;
		};

 各部英雄所对应的变量名:

  • 王国保卫战

    杰拉尔德爵士:hero_gerald
    艾莉瑞雅:hero_alleria
    马利克:hero_malik
    博林:hero_bolin
    马格纳斯:hero_magnus
    火人:hero_ignus
    迪纳斯国王:hero_denas
    版本之子-伊罗拉:hero_elora
    英格瓦:hero_ingvar
    钢锯:hero_hacksaw
    鬼侍:hero_oni
    索尔:hero_thor
    天十:hero_10yr
    
  • 王国保卫战:前线

    阿尔里奇:hero_alric
    幻影:hero_mirage
    黑棘船长:hero_pirate
    克罗南:hero_beastmaster
    女巫:hero_voodoo_witch
    纽维斯:hero_wizard
    德得尔:hero_priest
    格劳尔:hero_giant
    沙塔:hero_alien
    阿什比特:hero_dragon
    巨蟹:hero_crab
    库绍:hero_monk
    但丁:hero_van_helsing
    波恩哈特:hero_dracolich
    卡兹:hero_minotaur
    塞塔姆:hero_monkey_god
    
  • 王国保卫战:起源

    艾莉丹:hero_elves_archer
    埃里汎:hero_arivan
    卡莎:hero_catha
    雷格森:hero_regson
    迪纳斯王子:hero_elves_denas
    瑞兹与大瑞格:hero_rag
    无畏树人:hero_bravebark
    维兹南:hero_veznan
    鑫:hero_xin
    火凤凰:hero_phoenix
    杜拉斯:hero_durax
    莉恩:hero_lynn
    布鲁斯:hero_bruce
    莉莉斯:hero_lilith
    威尔伯:hero_wilbur
    浮士德:hero_faustus
    

游戏本体所在文件夹:

前三部的修改与第四部不同是,前三部的配置文件集成在游戏的程序中:

 

上图是王国保卫战第一部和第西部本地文件夹的对比可以看到比起第四部,第一部的配置文件夹没了,这其实是这些文件夹以lua脚本的形式加载到了exe程序中,这里可以用解压工具查看可执行程序。

 

打开可执行程序就可以看到这些配置文件夹了,第一部的配置文件夹所在处就是Kr1 ,同理第二部为Kr2,第三部为Kr3,第四部为Kr4

进入Kr1就可以看到要修改的配置文件,这里主要要修改的文件为game_templates.lua,可以先将需要修改的文件从压缩软件中提取出来:

 这里需要注意的是集成到exe程序后的lua文件并不是像前面修改本地存档文件那样打开就可以清晰的看到代码。打开文件看到的是如下图一样的乱码,这是因为在打包到可执行程序里面后原来清晰的代码会被编译为更方便CPU执行的二进制文件格式:

所以这里需要用到针对lua脚本二进制源文件的反汇编工具讲二进制代码转换为人能看懂的高级语言。这里使用的工具为:LuaJIT raw-bytecode decompiler (LJD)

https://github.com/Dr-MTN/luajit-decompilericon-default.png?t=N7T8https://github.com/Dr-MTN/luajit-decompiler打开这个工具文件夹可以知道这是一个python脚本,使用命令行可以将目标lua脚本进行反汇编:

python main.py ./game_templates.lua > 1.lua

等待命令执行完毕就可以查看反编译好的1.lua脚本文件,然后修改手段还是一样找到对应的兵种或英雄名然后改对应参数,防御塔的参数,英雄及其他单位的参数和第四部是一样的这里再贴一下:

1.抗性:
		<key>ignore_armor_points</key>
		<integer>75</integer>   //攻击无视75点抗性,没有表明无视护甲还是魔抗,可能是双穿。
2.眩晕:
		<string>stun</string>
		<key>duration</key>    //持续时间,负面状态一般都会有的代码,女巫中毒幽灵墓策反等。
		<real>0.3</real>      //0.3秒,关于时间的数字,单位都是秒。
		<key>rotate_unit</key>  //摇晃单位
3.打断敌人的攻击和技能:
		<key>pause_unit</key>  //重置单位
		<true/> //如果是不打断施法这里的参数就是false
4.攻击间隔、技能冷却:
		<key>cooldown</key>
		<integer>4</integer>  //integer表示被包裹的数据类型为整形
5.攻击动作、施法动作时间,即前摇、抬手动作:
		<key>action_time</key>
		<real>1.83</real>   //real为浮点型
6.范围,调集范围、攻击(施法)范围和伤害范围:
		<key>range</key>
		<integer>320</integer>
7.会攻击飞行单位:
		<key>targets_flying_units</key>
		<false/>    //布尔类型,只有两个值,true真,false假,在游戏里表示是否。
8.伤害得到飞行单位:
		<key>damage_flying_units</key>
		<false/> 否
9.伤害最小值:
		<key>damage_min</key>
		<integer>5</integer>
10.伤害最大值:
		<key>damage_max</key>
		<integer>7</integer>
11.伤害类型:
		<key>damage_type</key>  //0物理伤害 1魔法伤害 2炮弹伤害(无视一半护甲的伤害类型,多数是炮塔拥有的伤害类型,故取名为炮弹伤害) 3真实伤害
		<integer>0</integer>
12.使敌人爆炸:
		<key>should_explode_units</key>
		<true/>
1.生命值:
		<key>health</key>
		<integer>120</integer>
2.抗性点数:
		<key>armor</key>
		<integer>0</integer>
3.抗性类型:
		<key>armor_type</key>
		<integer>0</integer>    //数值为0是指护甲,为1指魔抗
4.单位伤害:
		<key>damage_min</key>    //最小伤害
		<integer>12</integer>
		<key>damage_max</key>    //最大伤害
		<integer>36</integer>
		<key>damage_type</key>    //伤害类型,0是物伤,1是法伤,2是跑伤,3是真伤
		<integer>0</integer>
5.移速:
		<key>speed</key>
		<integer>36</integer>
6.拦截范围:
		<key>block_x_position</key>    //拦截位置,不用修改
		<integer>10</integer>
		<key>block_range</key>   //指我方近战单位会拦截敌方单位进行战斗的范围
		<integer>100</integer>
7.扣心:
		<key>skulls</key>     //指敌方单位进家会扣多少心
		<integer>1</integer>
8.打死后获得的金钱:
		<key>gold</key>
		<integer>10</integer>:
9.技能:
		<key>skills</key>        //包括近战和远程攻击
10.重生时间:
		<string>respawn</string>
		<key>time</key>
		<integer>15</integer>
11.休战后回血:
		<string>regeneration</string>
		<key>cooldown</key>
		<integer>2</integer>
		<key>healing_points</key>
		<integer>24</integer>     //这里的意思是每隔两秒回24滴血
12.近战相关数据:
		<key>melee</key> 
13.远程:
		<key>range_unit</key> 
14.索敌类型:
		<key>search_type</key>    //该类型有4种,NORMAL,MAX_HEALTH,RANDOM,FAR_FROM_EXIT
		<string>NORMAL</string>   
				//MAX_HEALTH(优先选取生命值最高的敌人,幽灵墓的策反)
				//RANDOM(随机攻击,骷髅塔)
				//FAR_FROM_EXIT(在路径上离入怪口最远的敌人,宝石)

修改完成后保存文件将文件名字改成其在程序中原本的文件名(game_templates.lua),最后再利用压缩软件打开程序将修改好的脚本文件拖入程序中它原来所在的地址即可,不过我个人在修改时发现一个问题使用360压缩软甲修改后游戏会报错,7z可以成功修改。

Logo

旨在为数千万中国开发者提供一个无缝且高效的云端环境,以支持学习、使用和贡献开源项目。

更多推荐