|
发表于 2024-8-29 18:47:02
|
显示全部楼层
四川省成都市
①帖子地址:https://bbs.125.la/forum.php?mod ... 14832743&extra=
②发表时间:2024-8-26
③取消情况:自己已解决
@大司命
.版本 2
.支持库 BmpOperate
.支持库 commobj
.子程序 读内存生成二值化地图, 逻辑型, , 可通行坐标为每隔50距离加入一个坐标
.参数 参_地图jz, 整数型
.参数 参_地图名地址, 整数型, 可空, 个别游戏地图名地址会多读一层
.参数 参_返回信息, 文本型, 参考 可空, 包括错误信息、地图和点阵文件的是否保存成功
.局部变量 局_位图, 位图
.局部变量 局_地图名, 文本型
.局部变量 局_地图名长度, 整数型
.局部变量 局_地图宽, 整数型
.局部变量 局_地图高, 整数型
.局部变量 局_地图数据jz, 整数型
.局部变量 局_未知参数, 整数型
.局部变量 y, 整数型
.局部变量 x, 整数型
.局部变量 局_点阵, 快速字节集对象
.局部变量 字节型, 字节型, , "0"
.局部变量 文本坐标, 文本型
.判断开始 (是否为空 (参_地图名地址))
局_地图名 = 内存.读文本 (进程ID, 参_地图jz, 30)
.默认
局_地图名 = 内存.读文本 (进程ID, 参_地图名地址, 30)
.判断结束
局_地图名长度 = 内存.读整数 (进程ID, 参_地图jz + 16)
局_地图宽 = 内存.读整数 (进程ID, 参_地图jz + 80)
局_地图高 = 内存.读整数 (进程ID, 参_地图jz + 84)
局_地图数据jz = 内存.读整数 (进程ID, 参_地图jz + 88)
局_未知参数 = 内存.读整数 (进程ID, 参_地图jz + 232)
.判断开始 (局_位图.创建 (局_地图宽, 局_地图高, 24, #黑色))
.变量循环首 (0, 局_地图高 - 1, 1, y)
.变量循环首 (0, 局_地图宽 - 1, 1, x)
.如果 (计算障碍点 (局_地图宽, 局_地图高, 局_地图数据jz, 局_未知参数, x, y) = 0)
局_位图.置某点颜色 (x + 1, y + 1, #白色)
局_点阵.添加 ({ 0 })
文本坐标 = 文本坐标 + 到文本 (x - 2) + “ ” + 到文本 (y - 2) + #换行符
.否则
局_点阵.添加 ({ 255 })
.如果结束
.变量循环尾 ()
.变量循环尾 ()
.判断开始 (写到文件 (取运行目录 () + “\map\” + 局_地图名 + “.bmp”, 局_位图.取位图数据 ()))
参_返回信息 = “bmp 文件保存成功”
.默认
参_返回信息 = “bmp 文件保存失败”
.判断结束
.判断开始 (写到文件 (取运行目录 () + “\dat\” + 局_地图名 + “.dat”, 局_点阵.取字节集 (, )))
参_返回信息 = 参_返回信息 + “|dat 文件保存成功”
.默认
参_返回信息 = 参_返回信息 + “|dat 文件保存失败”
.判断结束
.判断开始 (写到文件 (取运行目录 () + “\coordinate\” + 局_地图名 + “.txt”, 到字节集 (文本坐标)))
参_返回信息 = 参_返回信息 + “|coordinate 文件保存成功”
.默认
参_返回信息 = 参_返回信息 + “|coordinate 文件保存失败”
.判断结束
返回 (真)
.默认
参_返回信息 = 局_位图.取错误信息 ()
返回 (假)
|
评分
-
查看全部评分
|