-
-
未解决
解析某游戏地图时出现的问题
-
发表于:
2024-2-7 15:45
1972
-
两个问题,如下:(希望我描述的清楚。。)
一,CHUANQI MAP文件的格式是怎样的?
网上资料如下:MAP文件头52字节包含地图宽高等数据,头部52个字节后面的数据都是坐标点的地图信息数据,一个坐标点的地图信息占12字节。
我用ReadFile函数 读MAP文件的头部4个字节,是02BC02BC,对应地图的宽高(700X700),说明MAP文件确实能读出来。。。。
我从游戏内存找到的坐标地图数据里,记录了坐标(264,324)地图信息关键字节94EB(涉及是否通行),
我只想拿出MAP文件涉及坐标通行的数据。思路就是:
找到MAP文件里 (264,324) 对应的地图信息,比对94EB的位置,确认我要拿的数据的偏移。。。。
可是有个问题,他保存坐标的顺序不知道。网上有说,先存0列0行 再0列1行(按列存),也有说先存0列0行 再存1列0行(按行存),所以不知道MAP文件具体怎样存的。
我假定了4种情况:
左上角起始坐标为(0,0)且按行存;//MAP文件先存0行的坐标点信息
左上角起始坐标为(0,0)且按列存;//MAP文件先存0列的坐标点信息
左上角起始坐标为(1,1)且按行存;
左上角起始坐标为(1,1)且按列存;、
均被推翻。。。。。。。。。。。。。。
所以我格式哪里弄错了?有没有弄过的朋友看一下。据之前的论坛朋友说,CHUANQI地图MAP格式是公开的,可是我网上找的资料 测了下不行。。。
二,障碍物判断CALL取了下面2个位置的数据,拿去判断是否通行。取下述+28位置处的通行信息来判断通行,不是已经够了吗?为什么还要取2个位置的数据判断是否通行?
下面是我逆到的内存里地图数组的结构信息。
对象指针+(横坐标-[对象指针+0022A358])X34FX2+ ( 纵坐标-[对象指针+0022A35C] )X7X2+2C 存该点 地形信息 的地址(改变后,贴图会变)
对象指针+(横坐标-[对象指针+0022A358])X34FX2+(纵坐标-[对象指针+0022A35C])X7X2+28 存该点 障碍通行信息的地址(改变后,可通行变为不可通行)
为了描述清楚,有点拖沓 ,抱歉。。。。
有弄过的朋友帮助一下吗?
[培训]内核驱动高级班,冲击BAT一流互联网大厂工作,每周日13:00-18:00直播授课
最后于 2024-2-7 15:49
被WYYZCAYQ编辑
,原因: