首页
社区
课程
招聘
某网游查找 地图信息结构 出现的问题
2024-2-3 19:26 2360

某网游查找 地图信息结构 出现的问题

2024-2-3 19:26
2360

首先我不是伸手党。。。。下面说下我的整个流程。。
我的思路:
游戏是某热血CQSF(复古版,无内置自动寻路函数)。
我是先找到移动CALL,参数有人物朝向,走跑标识,对象指针,目的地坐标等等。
在移动CALL内,根据返回值,筛选,找到了障碍物判断CALL。
传入人物附近的坐标,障碍物判断CALL能正确返回 是否通行的结果。
但是离人物很远的坐标,这个CALL 直接返回0。
这个障碍物CALL不能用,因为我要拿整个比QI地图的地图结构数据。。
然后我想障碍物判断CALL,内部肯定要获取地图信息,来判断该点是否通行。
我进CALL找地图信息数组结构,找是找到了,结果我发现,经测试我改变某点的地图信息值,可以让该点从通行 变为 不通行。
坑爹的来了,比如我的位置在A(255,332),它是可通行的,当人物离这个点近的时候,找到的地图信息数组结构里的确 正确显示了该点的信息(是否通行,该点的地面装饰),但是一旦你人物离这个点A(255,332)远了,地图信息结构里该点的信息直接被清0,这也解释了之前离人物很远的的那些坐标,被传入障碍物CALL,都是返回一个值。
你地图数组结构99%都是0,就离人物近的那一小块,能正确看到周围的地图信息,那我如何遍历?
没办法,继续找,找个极限距离,走过去,点A地图数组信息被清0,回来一步,点A数组信息被写入正确地图信息。然后对点A地图信息的位置下写入断,断下写入点A正确地图信息的执行流。断到的位置肯定拿到了点A的地图信息才写入的,往上找,看怎么拿到的地图信息,最终,我找到了一句指令:
call 004082D8 注释:->->KERNEL32.ReadFile
不知道怎么往下。。。
我该怎么去遍历那个比QI地图?


[培训]《安卓高级研修班(网课)》月薪三万计划,掌握调试、分析还原ollvm、vmp的方法,定制art虚拟机自动化脱壳的方法

收藏
点赞0
打赏
分享
最新回复 (14)
雪    币: 726
活跃值: (2662)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
tmflxw 2024-2-3 21:30
2
0
传奇的地图结构是公开的
雪    币: 4448
活跃值: (3513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2024-2-4 03:01
3
0
这种2d游戏它的地图很简单 首先是分为图片素材和地图数据。  图片素材就是画面看到的山 水 树木 岩石, 这些素材被保存在游戏的资源包里比如pak文件。地图数据是被加载到数组里的数据,被单独保存在.map文件里。
雪    币: 4448
活跃值: (3513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2024-2-4 03:05
4
0
不记得这个数组是一维的还是二维的了 如果是二维的那么 它就是根据人物的坐标x y去引用二维数组里的元素,如果是一维数组它会将人物的X Y坐标进行make(x,y)换算成一维数组索引 然后去到数组里引用元素。
雪    币: 4448
活跃值: (3513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2024-2-4 03:14
5
0
数组里的元素可能是一个结构体 也可能是一个结构指针
比如:
mapinfo = Map[x,y]
mapinfo.objList //当前地图位置有那些对象 例如人物和物品 或者怪物
mapinfo.collision //如果值等于0x8000 不可通行   
mapinfo.lighting //是否有灯光
mapinfo.xxxxxx
mapinfo.xxxxxx
mapinfo.xxxxxx

我上面这个是举个粒子 希望能帮助到你
雪    币: 4448
活跃值: (3513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2024-2-4 03:18
6
0
你需要自己将map加载到自己的程序 这样就可以解析全部的地图数据,游戏一般是做了优化处理的 比如离的远的物体游戏不会加载 等你走近了游戏引擎才会加载,这个很多不懂开发 喜欢玩游戏的人都知道。
雪    币: 2159
活跃值: (3589)
能力值: ( LV6,RANK:90 )
在线值:
发帖
回帖
粉丝
R0g 2 2024-2-4 05:31
7
0
程序内部一定有判断距离加载地图的代码,读入地图文件的地方下断追一下,然后改掉距离判断试试能不能加载全图
雪    币: 307
活跃值: (4089)
能力值: ( LV3,RANK:20 )
在线值:
发帖
回帖
粉丝
pysafe 2024-2-4 14:37
8
1
https://bbs.kanxue.com/thread-215042.htm
自己解析map用a星
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-2-4 17:31
9
0
tmflxw 传奇的地图结构是公开的
@tmflxw   我百度不到传奇地图数据的信息。。。我其实就是想生成地图里 坐标点是否为障碍物 的数组。。
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-2-4 17:37
10
0
木志本柯 你需要自己将map加载到自己的程序 这样就可以解析全部的地图数据,游戏一般是做了优化处理的 比如离的远的物体游戏不会加载 等你走近了游戏引擎才会加载,这个很多不懂开发 喜欢玩游戏的人都知道。
@木志本柯  游戏里我好像就是某个点信息里的字节改成了8000,该点变成了不可通行,好像是用一个二进制位来标识是否通行的。。。我没有能力 将MAP加载到自己的程序。你的意思是说,用一些WINDOWS API 打开那个MAP类型的文件,查看信息吗?
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-2-4 17:43
11
0
R0g 程序内部一定有判断距离加载地图的代码,读入地图文件的地方下断追一下,然后改掉距离判断试试能不能加载全图
@R0g  进去都不是常用的的指令了,我能力有限。但可以试试。
雪    币: 232
活跃值: (542)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
WYYZCAYQ 2024-2-4 17:44
12
0
叶惠 https://bbs.kanxue.com/thread-215042.htm 自己解析map用a星
@叶惠  对。我想生成 地图障碍物 的数组,完成寻路功能。你给的那个贴子是关于 什么LUA接口制作脚本的。。。不懂那个。。。
雪    币: 4448
活跃值: (3513)
能力值: ( LV2,RANK:10 )
在线值:
发帖
回帖
粉丝
木志本柯 2024-2-4 18:19
13
0
WYYZCAYQ @木志本柯 游戏里我好像就是某个点信息里的字节改成了8000,该点变成了不可通行,好像是用一个二进制位来标识是否通行的。。。我没有能力 将MAP加载到自己的程序。你的意思是说,用一些WINDOWS ...
外挂这种事你去找易语言的资料 易语言最多了这方面
雪    币: 34
能力值: ( LV1,RANK:0 )
在线值:
发帖
回帖
粉丝
x1184 2024-2-4 19:02
14
0
特别好,学习一下
雪    币: 5912
活跃值: (4512)
能力值: ( LV10,RANK:160 )
在线值:
发帖
回帖
粉丝
淡然他徒弟 1 2024-2-4 19:04
15
0
叶惠 https://bbs.kanxue.com/thread-215042.htm 自己解析map用a星
抓住大佬。
游客
登录 | 注册 方可回帖
返回