铁血丹心

 找回密码
 我要成为铁血侠客
搜索
查看: 2148|回复: 8

[其他] [San8]战场地形数据格式解析D_YMAP.S8

[复制链接]
发表于 2017-10-27 12:26 | 显示全部楼层 |阅读模式
本帖最后由 jy02785317 于 2017-10-27 21:25 编辑

这个话题比较长,可能还需要图片
我慢慢来

首先,存储战场地形的数据文件是D_YMAP.S8
这个文件是经过压缩的,算法是KOEI的惯用算法——ls11
使用工具解压缩后,可以得到172个文件
分别代表172个战场数据
这172个战场分别代表从不同的城市进攻另一个城市的数据
需要注意的是,城市A->B和C->B是完全不同的两个战场,A->B和B->A也是不同的
虽然这些战场以不同的文件保存,但是实际这些战场很多都是重复的...


单个战场的数据,尺寸是固定的—— 4 + 2 * 65 * 63 = 8194 个字节
最开始的4字节,作用未知
接下来的数据,两个字节代表地图上的一个点
每2 * 65字节代表地图的一列(这个列和一般理解有点区别,姑且这么理解,后面会细说)
然后一共有63列
如此,构成的所有的数据

接下来我们讲下地图阵列的排放
San8的地图格子是下面这样的

接触过金群地图编辑的朋友,应该很熟悉这个
在金群里,它的坐标系如下

显然,这种行/列是不适合我们刚刚讲到的数据存储方式的
它的行和列可以这么理解

红色像蛇一样拐下来的,一共65个点,认为是一列
这样的列,一共有63列
于是和数据匹配起来的

采用这种坐标系,在计算单位的前后左右移动时,x/y的加减非常反人类
所以建议还是将其转换为金群那种坐标
转换方式如下
  1.   local function convertXY(x, y)  --奇异坐标转为标准坐标
  2.     local y1, y2 = math.floor(y / 2), y % 2;
  3.     local rx = x + y1 + y2;
  4.     local ry = 64 - x + y1;
  5.     return rx, ry;
  6.   end
复制代码

刚刚我们提到,一个地图点是用2字节(32位)表示的,我们来看看它表达了什么意思
将这32位数据,从低到高,每8位,分割出来
第一个8位,表示地形
  [0]="无",[1]="道路",[2]="平地",[3]="荒地",[4]="草地",[5]="森林",[6]="湿地",[7]="山",[8]="高山",[9]="断崖",[10]="浅滩",[11]="川",[12]="湖",[13]="砦",[14]="城"
第二个8位,表示敌我分组标识
  0 进攻方正规军 1 进攻方援军1 2 进攻方援军2
  5 防守方正规军坚守 8 防守方正规军迎击 6 防守方援军1 7 防守方援军2
  15 表示战场中间防守方的据点
第三个8位,表示在分组内的次序
最后一个8位,目前没有发现用处


完整的代码如下

复制代码







本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?我要成为铁血侠客

x

评分

参与人数 1声望 +18 收起 理由
winson7891 + 18 很给力!

查看全部评分

【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
 楼主| 发表于 2017-10-27 21:17 | 显示全部楼层
终于写完了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-27 21:22 | 显示全部楼层
完整的代码写的很棒,让我想到了读书时抄答案看到这个字的感觉。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-27 22:38 | 显示全部楼层
这个完整代码无敌了
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-28 00:49 | 显示全部楼层
表示代码编译失败了,请解决
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-28 09:31 | 显示全部楼层
已收藏   
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-29 15:43 | 显示全部楼层
牛B ,能否解决一下轻功算法速度过慢问题。 苍龙半即时系统AI在轻功预算上问题很大,实力差距大时,明显优势自动+变速齿轮卡一晚上可以不通一关。
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-10-31 14:51 | 显示全部楼层
这个代码真是完整,好厉害
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。
发表于 2017-11-1 10:28 | 显示全部楼层
观摩027巨巨
【武侠.中国】铁血丹心论坛(大武侠):致力于推广和发展武侠文化,让我们一起努力,做全球最大的武侠社区。
可能是目前为止最好的金庸群侠传MOD游戏交流论坛,各种经典武侠游戏等你来玩,各种开源制作工具等你来实现你的游戏开发之梦。

本版积分规则

小黑屋|手机版|铁血丹心

GMT+8, 2024-4-30 02:27

Powered by Discuz! X3.4 Licensed

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表