所拆分的文件也需要分离保存混淆,或者如文中将大量地图文件一同使用这种方法处理,最好关联具体mod项目。mix读取时对文件名称和长度的数据是单独保存在一起的,而各文件的内容实际连在一起,因此对于单个地图文件如此拆分后保存于非转编码加密的mix那么直接使用文本编辑器打开实际上也相当于自带了完整文件拼合效果。
红警地图怎么加密?本加密方法一次至少加密一种地图类型(温和、雪地、城市等等),并不是针对单张地图的加密方法。在使用了本加密之后,其他未被加密的同地图类型地图都将无法使用(什么都没改的全空白地图还是能用的)。因此,本方法最适用于任务包加密,而不太适用于单独发布的遭遇战地图,对于mod,应该先权衡利弊。红色警戒2地图加密方法,需要的可详细了解。
地编强行读取加密的地图
作者:囧韓方序囧
加密原理:
地图地形也是存在“索引表”的,跟shp和vxl一样。游戏加载地形文件(temperatmd.ini等)时,会按照其顺序生成一个游戏内置的地形注册表。从TileSet0000开始一直到读取结束,每组地形下面都会有TilesInSet = xxx,定义了这种地形组有多少种地形块(比如说“0019高架水泥桥头”就有十六种),每个地形块都会被注册进地形注册表内,地图文件里储存的,就是地形的注册号(在[IsoMapPack5]下,只不过被压缩了)。因此,只要打乱原有的地形注册表,就可以得到一个“地图密钥”,没有密钥的人无法打开使用此密钥的地图(地编倒是能打开,不过画风嘛……)。
制作地图密钥的方法:
1、打开对应的地形ini,搜索“TilesInSet = 0”,以下是其中一个结果:
[TileSet0011]
SetName = Civilian Buildings
FileName = blank
TilesInSet = 0
;LastTilesInSet = 8
;FileName = Civ
AllowToPlace=no
AllowBurrowing=false
可以看到,他的名字同时也是blank,说明这是一种空白的地形,官方并没有使用他。每种地形里都有很多这样的空白地形。
2、将“TilesInSet = 0”修改成“TilesInSet = xx”,xx可以是1~99之间任意的一个数字,修改过之后,就相当于在原有的地形注册表中插入了很多个空白地形,他们会把后面的地形序号都挤下去。
3、把这个地形ini放到游戏目录里,地编读取的游戏目录里也要放。
4、启动地编,新建一张图,随便画一画,保存,得到的就是一张被加密的地图了。
将未加密地图转换为加密地图的方法:
1、额外准备一份地编,该地编读取的游戏目录里用的是未经修改的地形ini(下面称呼这个地编为“未加密地编”,而前面的那个则是“加密地编”)。
2、两个地编同时启动,同时打开未加密地图。此时加密地编会提示:这张图似乎坏掉了,您想要修复它吗?,点“否”,此时你会看到一张跟前面那个图差不多的瞎眼地图。
3、在未加密地编里选择 编辑-复制整张地图,然后在加密地编里选择 编辑-居中粘贴,你会看到地形被完好无损的复制过去了。(猜测是地编内的编码跟游戏不一样,可能是为了支持跨地形复制)。然后保存,就得到了一张加密地图!
后记:由于地图类型一共就那么多种,所以很难像shp那样,单纯通过庞大的数量就极大的提升查找到对应色盘的难度。所以建议在mix里丢进去几十上百个假的地形ini用来混淆,或者,什么时候可以支持每张图都自定义地形ini啊()
下面是一个加密demo:地图加密demo