a6420578 发表于 2017-12-17 01:52

亿万僵尸 地图编辑器 制作中...

(转发)

制作过程中,遇到诸多问题,特在此发帖,欢迎回帖,以集思广益!!!
制作流程记录:
第一步: 解压游戏存档
用游戏目录内的Ionic.Zip.dll接口解压.或者用winrar也可以直接解压得到两个文件
1.Data (游戏存档数据 几万行数据 未展开)




2.Info (存档信息文件)



a6420578 发表于 2017-12-17 01:53

第二步 分析存档节点数据 下面展示部分重要数据

//游戏模式
<Simplename="GameMode" value="Survival" />
Campaign = 2, //战役模式
CustomLevel = 1, //自定义模式
Survival = 0 //生成模式
//
//(雾层)未探索黑暗图层
<Simplename="LayerFog" value="AAAAAAAAAAAAAA…(共计349528个字符)…..==”>
经过试验 字符串全部替换为A之后,地图变成全部已经探索 (右上角为起始点,左下角为终点)

//活动图层数据

<Simplename="LayerActivity" value="64|64|AAAAAAAAAAAAAAA…….==”>
//关卡事件 估计是僵尸群进攻事件
<Collectionname="LevelEvents">
//地形图层数据 (下面楼层详细说)

<Complexname="LayerTerrain">
<Simple name="Cells"value="256|256|AAAAAAAAAAAA……==”/>
//对象图层数据 (下面楼层详细说)

<Complex name="LayerObjects">
<Simple name="Cells"value="256|256|AAAAAAAAAAA….==”/>
//木材
<Simplename="Wood" value="20" />
//石料
<Simplename="Stone" value="0" />
//铁矿
<Simplename="Iron" value="0" />
//石油
<Simple name="Oil"value="0" />
//金币
<Simplename="Gold" value="1837" />
//木材生产
<Simplename="WoodProduction" value="0" />
//金币生产
<Simplename="GoldProduction" value="193" />
//铁矿生产
<Simplename="IronProduction" value="0" />
//石料生产
<Simplename="StoneProduction" value="0" />
//石油生产
<Simplename="OilProduction" value="0" />
//消灭僵尸数量
<Simplename="NZombiesDead" value="8" />
//士兵死亡数量
<Simplename="NSoldiersDead" value="0" />
//游戏时间
<Simplename="GameTime" value="275022" />
//游戏速度
<Simplename="GameSpeed" value="0" />



a6420578 发表于 2017-12-17 01:54

第三步 用C#先初略的写个小程序 用于解压.提取.修改.压缩打包数据



a6420578 发表于 2017-12-17 01:58

第4步 难点



雾层 将数据全部改为A之后,地图变成全部已经探索



地形层 将数据全部改为A之后,地面全部变成土地 (没有任何水 草 石油)
ZXMapLayerTerrainType 地形图层
Earth, 土地
Water, 水
Grass, 草地
Sky, 天空
Abyss 深坑


对象层 将数据全部改成A之后,地面全部清空(没人任何山,树,矿石)
ZXMapLayerObjectType 对象图层
None, 无
Mountain, 山
Tree, 树
Mineral Gold, 矿产金
Mineral Stone, 矿石
Mineral Iron 矿物铁



难点就是 不知道这些数据的组合形式,怎么样进行区分 下面展示几个数据图,大家帮忙分析
雾层数据



对象层数据



上图中 /AAAA/wAAAP8AAAD/ 表示未探索区 AAAAAAAAAAAAAAAA表示已探索区




地形层数据





上图中 AAAAAAAAAAAAAA表示土地 其他字符为各种水 草 坑 (规律未找出)

a6420578 发表于 2017-12-17 02:04

最新进展: 已经正确解密数据 可以正确读取图层信息
0无 1山 2树 3金 4石 5铁



a6420578 发表于 2017-12-17 02:05

最新进展 已经可以正确修改地图并使用 效果图如下



a6420578 发表于 2017-12-17 02:05


a6420578 发表于 2017-12-17 02:06


455215817 发表于 2017-12-17 02:55

弄一个能大面积建立房屋的空地就心满意足了

浪迹@天涯 发表于 2017-12-17 03:04

666666666666666666666666666666

死之咲夜 发表于 2017-12-17 07:03

采石场的范围能扩大一格么,感觉很别扭

lzl12061103 发表于 2017-12-17 10:59

支持路过

Ghost.Buddha 发表于 2017-12-17 11:32

支持路过

无奶龙龙 发表于 2017-12-17 12:22

兄弟~~厉害了~~~支持一个

kokomusic 发表于 2017-12-17 12:45

兄弟,以后如何虐僵尸就靠你了。

lvyu 发表于 2017-12-17 13:22

厉害!望早日出现各种虐尸图。

archerxxx19 发表于 2017-12-17 14:07

厉害了必须支持

huijinxiang 发表于 2017-12-17 14:56

种田爽图终于要出现了。

TQY060402 发表于 2017-12-17 15:01

表示支持!希望可以弄一个能够满足强迫症的地图

959714677 发表于 2017-12-17 16:52

大佬们牛b

eregame 发表于 2017-12-17 19:18

这个非常好!!经常刷不到好图

429352341 发表于 2017-12-17 20:14

厉害了,早日出图

梁小稀 发表于 2017-12-17 21:44

6得飞起

y185110754 发表于 2017-12-18 07:14

引用游戏的dll包含有处理的对象,以及对应读档读图的方法以及对象定义然后再用看一波他的绘图的原理还原操作就行了...

1736rzy 发表于 2017-12-18 07:17

感谢分享

a6420578 发表于 2017-12-18 12:58

y185110754 发表于 2017-12-18 07:14
引用游戏的dll包含有处理的对象,以及对应读档读图的方法以及对象定义然后再用看一波他的绘图的原理还原操作 ...

直接引用TheyAreBillions.exe、DXVision.dll、Ionic.Zip.dll然后调用对应的对象方法对文件解析一遍就行


小哥 你都懂的话 能在这基础上写一个编辑器么

大天灾 发表于 2017-12-18 13:00

我担心即将发布的新版本用不了 大量时间成本白费就蛋疼了

y185110754 发表于 2017-12-18 13:11

a6420578 发表于 2017-12-18 12:58
直接引用TheyAreBillions.exe、DXVision.dll、Ionic.Zip.dll然后调用对应的对象方法对文件解析一遍就行

...

下个反编译工具然后反编译看一波源码从开始到读取以及存档输出,图层的对象就封装在ZX那个namespace里的

mysoultc 发表于 2017-12-18 14:02

大神,只有看你的了~~~~~~等你的编辑器!!!支持一下~~~~~

肉眼看世界 发表于 2017-12-18 14:59

路过支持,虐尸就靠你了
页: [1] 2
查看完整版本: 亿万僵尸 地图编辑器 制作中...