开启辅助访问 切换到宽版

精易论坛

 找回密码
 注册

QQ登录

只需一步,快速开始

用微信号发送消息登录论坛

新人指南 邀请好友注册 - 我关注人的新帖 教你赚取精币 - 每日签到


求职/招聘- 论坛接单- 开发者大厅

论坛版规 总版规 - 建议/投诉 - 应聘版主 - 精华帖总集 积分说明 - 禁言标准 - 有奖举报

查看: 62|回复: 2
收起左侧

[脚本] 梦幻地图寻路

[复制链接]
结帖率:0% (0/3)
发表于 6 小时前 高大上手机用户 | 显示全部楼层 |阅读模式   江苏省南京市
5精币

梦幻的寻路怎么做,求大佬指点


回答提醒:如果本帖被关闭无法回复,您有更好的答案帮助楼主解决,请发表至 源码区 可获得加分喔。
友情提醒:本版被采纳的主题可在 申请荣誉值 页面申请荣誉值,获得 1点 荣誉值,荣誉值可兑换荣誉会员、终身vip用户组。
快捷通道:申请荣誉值
结帖率:100% (3/3)

签到天数: 17 天

发表于 2 小时前 | 显示全部楼层   江苏省苏州市
.版本 2  .子程序 小地图_移动, 文本型, 公开 .参数 坐标X, 整数型 .参数 坐标Y, 整数型 .参数 坐标误差值, 整数型, 可空, 用于随机偏移 .参数 寻路中是否关闭小地图, 逻辑型, 可空, 真为关闭,假或置空为不关闭,真为卡屏检测判定是否达到,假为人物原点判定是否抵达 .局部变量 程序指针, 文本型 .局部变量 当前地图, 自定义数据_地图信息 .局部变量 小地图原点坐标, 坐标类 .局部变量 随机数循环次数, 整数型 .局部变量 随机数X, 整数型 .局部变量 随机数Y, 整数型 .局部变量 X轴坐标比例, 双精度小数型 .局部变量 Y轴坐标比例, 双精度小数型 .局部变量 X轴距离, 双精度小数型 .局部变量 Y轴距离, 双精度小数型 .局部变量 最终移动距离X, 双精度小数型 .局部变量 最终移动距离Y, 双精度小数型 .局部变量 地图最大点击坐标X, 双精度小数型 .局部变量 地图最大点击坐标Y, 双精度小数型 .局部变量 地图最小点击坐标X, 整数型 .局部变量 地图最小点击坐标Y, 双精度小数型 .局部变量 点击次数, 整数型 .局部变量 索引, 整数型 .局部变量 随机数4, 整数型 .局部变量 随机数5, 整数型 .局部变量 随机数7, 整数型 .局部变量 随机数8, 整数型 .局部变量 寻路等待返回, 文本型 .局部变量 局_是否关闭小地图, 逻辑型  .如果真 (坐标误差值 = 0)     坐标误差值 = 3 .如果真结束 多线程 [i].界面.界面判定_是否有对话框 (真) 多线程 [i].界面.界面判定_关闭普通面板 () 置随机数种子 (取启动时间 ()) 程序指针 = “判断是否在目的地旁边”  随机数循环次数 = 取随机数 (1, 3)  .计次循环首 (20, )     .判断开始 (程序指针 = “判断是否在目的地旁边”)          多线程 [i].地图.获取地图位置 (当前地图, 真, )          .判断开始 (当前地图.地图名 ≠ “” 且 当前地图.x ≠ 0 且 当前地图.y ≠ 0)  ' 如果有坐标 就按照坐标进行对比,没有坐标就直接移动             .判断开始 (取绝对值 (坐标X - 当前地图.x) ≤ 坐标误差值 且 取绝对值 (坐标Y - 当前地图.y) ≤ 坐标误差值)                 日志输出 (i, 当前地图.地图名 + “ ” + 到文本 (坐标X) + “,” + 到文本 (坐标Y) + “已抵达”, )                 返回 (“抵达”)             .默认                 日志输出 (i, “前往” + 当前地图.地图名 + 到文本 (坐标X) + “,” + 到文本 (坐标Y) + “中.....”, )                 程序指针 = “移动到指定地点”             .判断结束          .默认             程序指针 = “移动到指定地点”         .判断结束      .判断 (程序指针 = “移动到指定地点”)         ' 调试输出 (当前地图.地图名 + “ ” + 到文本 (当前地图.最大宽度), 到文本 (当前地图.最大高度), 到文本 (当前地图.最大x轴), 到文本 (当前地图.最大y轴))          .判断开始 (当前地图.最大宽度 ≥ 10 且 当前地图.最大高度 ≥ 10 且 当前地图.最大x轴 ≥ 10 且 当前地图.最大y轴 ≥ 10)              .如果真 (多线程 [i].界面.界面判定_小地图是否打开 (真, 小地图原点坐标))                  小地图原点坐标.x = 小地图原点坐标.x - 当前地图.最大宽度                 X轴坐标比例 = 当前地图.最大x轴 ÷ 当前地图.最大宽度                 Y轴坐标比例 = 当前地图.最大y轴 ÷ 当前地图.最大高度                 X轴距离 = 坐标X ÷ X轴坐标比例                 Y轴距离 = 坐标Y ÷ Y轴坐标比例                 最终移动距离X = 小地图原点坐标.x + X轴距离                 最终移动距离Y = 小地图原点坐标.y - Y轴距离                  地图最大点击坐标X = 小地图原点坐标.x + 当前地图.最大宽度 - 2                 地图最大点击坐标Y = 小地图原点坐标.y - 2                  地图最小点击坐标X = 小地图原点坐标.x + 10                 地图最小点击坐标Y = 小地图原点坐标.y - 当前地图.最大高度 + 10                 ' 小地图坐标修正                 .如果真 (坐标X ≤ 10)                     最终移动距离X = 小地图原点坐标.x + X轴距离 + 2                 .如果真结束                 .如果真 (取绝对值 (当前地图.最大x轴 - 坐标X) ≤ 10)                     最终移动距离X = 小地图原点坐标.x + X轴距离 - 2                 .如果真结束                 .如果真 (坐标Y ≤ 10)                     最终移动距离Y = 小地图原点坐标.y - Y轴距离 - 2                 .如果真结束                 .如果真 (取绝对值 (当前地图.最大y轴 - 坐标Y) ≤ 10)                     最终移动距离Y = 小地图原点坐标.y - Y轴距离 + 2                 .如果真结束                  .判断开始 (点击次数 ≥ 4)                     多线程 [i].界面.界面判定_小地图是否打开 (, )                      返回 (“超时”)                 .默认                     .计次循环首 (随机数循环次数, 索引)                         随机数4 = 0                         随机数5 = 0                         随机数7 = 取随机数 (0, 1)                         随机数8 = 取随机数 (0, 1)                          .如果真 (最终移动距离X + 45 ≤ 当前地图.最大宽度 + 小地图原点坐标.x 且 最终移动距离X - 45 ≥ 小地图原点坐标.x)                             .判断开始 (随机数7 = 0)                                 随机数4 = 取随机数 (13, 30) + 随机数循环次数 × 4                             .默认                                 随机数4 = -取随机数 (13, 30) - 随机数循环次数 × 4                             .判断结束                          .如果真结束                         .如果真 (最终移动距离Y + 45 ≤ 小地图原点坐标.y 且 最终移动距离Y - 45 ≥ 当前地图.最大高度 - 小地图原点坐标.y)                             .判断开始 (随机数8 = 0)                                 随机数5 = -取随机数 (13, 30) + 随机数循环次数 × 4                             .默认                                 随机数5 = 取随机数 (13, 30) - 随机数循环次数 × 4                             .判断结束                          .如果真结束                          .判断开始 (随机数循环次数 - 索引 = 0)                             多线程 [i].键鼠.鼠标点击 (到整数 (最终移动距离X), 到整数 (最终移动距离Y), , 真, , )                         .默认                             多线程 [i].键鼠.鼠标点击 (到整数 (最终移动距离X) + 随机数4, 到整数 (最终移动距离Y) + 随机数5, , 真, , )                         .判断结束                          延时 (50)                         iMouse鼠标弹起 (多线程 [i].设备属性.设备id, )                         延时 (取随机数 (100, 120))                         处理事件 ()                     .计次循环尾 ()                     点击次数 = 点击次数 + 1                       .判断开始 (寻路中是否关闭小地图)  ' 用坐标识别                         .判断开始 (多线程 [i].当前任务 = “跑商” 且 (当前地图.地图名 = “帮派” 或 当前地图.地图名 = “长安城” 或 当前地图.地图名 = “赤水洲” 或 当前地图.地图名 = “东海岩洞” 或 当前地图.地图名 = “女魃墓”))  ' 排除这些是没有坐标的                             局_是否关闭小地图 = 真                         .默认                             局_是否关闭小地图 = 假                         .判断结束                      .判断 (多线程 [i].当前任务 = “跑商” 且 (当前地图.地图名 = “帮派” 或 当前地图.地图名 = “长安城” 或 当前地图.地图名 = “赤水洲” 或 当前地图.地图名 = “东海岩洞” 或 当前地图.地图名 = “女魃墓”))  ' 这些是有坐标的                         局_是否关闭小地图 = 真                     .默认                         局_是否关闭小地图 = 假                     .判断结束                        ' 局_是否关闭小地图 = 真                     .判断开始 (局_是否关闭小地图)  ' 真 说明 有坐标                         多线程 [i].界面.界面判定_关闭普通面板 ()                         寻路等待返回 = 寻路等待 ()                         .判断开始 (寻路等待返回 = “抵达”)                             返回 (“抵达”)                         .判断 (寻路等待返回 = “战斗”)                              ' “战斗”                         .默认                          .判断结束                          ' “战斗”                      .默认                         寻路等待返回 = 寻路等待2 (小地图原点坐标, 当前地图.最大宽度, 当前地图.最大高度)                         .判断开始 (寻路等待返回 = “抵达”)                             多线程 [i].界面.界面判定_关闭普通面板 ()                             返回 (“抵达”)                         .判断 (寻路等待返回 = “战斗”)                             ' “战斗”                         .判断 (寻路等待返回 = “失败”)                             多线程 [i].界面.界面判定_关闭普通面板 ()                             寻路等待返回 = 寻路等待 ()                             .判断开始 (寻路等待返回 = “抵达”)                                 返回 (“抵达”)                             .判断 (寻路等待返回 = “战斗”)                                 ' “战斗”                             .默认                              .判断结束                          .默认                          .判断结束                      .判断结束                      .判断结束                 程序指针 = “是否在目的地旁边”               .如果真结束           .默认             日志输出 (i, “小地图_移动->获取” + 当前地图.地图名 + “地图配置失败”, )         .判断结束        .默认      .判断结束        延时 (200)     处理事件 () .计次循环尾 () 返回 (“”)
回复

使用道具 举报

结帖率:100% (3/3)

签到天数: 17 天

发表于 2 小时前 | 显示全部楼层   江苏省苏州市
.版本 2

.子程序 小地图_移动, 文本型, 公开
.参数 坐标X, 整数型
.参数 坐标Y, 整数型
.参数 坐标误差值, 整数型, 可空, 用于随机偏移
.参数 寻路中是否关闭小地图, 逻辑型, 可空, 真为关闭,假或置空为不关闭,真为卡屏检测判定是否达到,假为人物原点判定是否抵达
.局部变量 程序指针, 文本型
.局部变量 当前地图, 自定义数据_地图信息
.局部变量 小地图原点坐标, 坐标类
.局部变量 随机数循环次数, 整数型
.局部变量 随机数X, 整数型
.局部变量 随机数Y, 整数型
.局部变量 X轴坐标比例, 双精度小数型
.局部变量 Y轴坐标比例, 双精度小数型
.局部变量 X轴距离, 双精度小数型
.局部变量 Y轴距离, 双精度小数型
.局部变量 最终移动距离X, 双精度小数型
.局部变量 最终移动距离Y, 双精度小数型
.局部变量 地图最大点击坐标X, 双精度小数型
.局部变量 地图最大点击坐标Y, 双精度小数型
.局部变量 地图最小点击坐标X, 整数型
.局部变量 地图最小点击坐标Y, 双精度小数型
.局部变量 点击次数, 整数型
.局部变量 索引, 整数型
.局部变量 随机数4, 整数型
.局部变量 随机数5, 整数型
.局部变量 随机数7, 整数型
.局部变量 随机数8, 整数型
.局部变量 寻路等待返回, 文本型
.局部变量 局_是否关闭小地图, 逻辑型

.如果真 (坐标误差值 = 0)
    坐标误差值 = 3
.如果真结束
多线程 [i].界面.界面判定_是否有对话框 (真)
多线程 [i].界面.界面判定_关闭普通面板 ()
置随机数种子 (取启动时间 ())
程序指针 = “判断是否在目的地旁边”

随机数循环次数 = 取随机数 (1, 3)

.计次循环首 (20, )
    .判断开始 (程序指针 = “判断是否在目的地旁边”)

        多线程 [i].地图.获取地图位置 (当前地图, 真, )

        .判断开始 (当前地图.地图名 ≠ “” 且 当前地图.x ≠ 0 且 当前地图.y ≠ 0)  ' 如果有坐标 就按照坐标进行对比,没有坐标就直接移动
            .判断开始 (取绝对值 (坐标X - 当前地图.x) ≤ 坐标误差值 且 取绝对值 (坐标Y - 当前地图.y) ≤ 坐标误差值)
                日志输出 (i, 当前地图.地图名 + “ ” + 到文本 (坐标X) + “,” + 到文本 (坐标Y) + “已抵达”, )
                返回 (“抵达”)
            .默认
                日志输出 (i, “前往” + 当前地图.地图名 + 到文本 (坐标X) + “,” + 到文本 (坐标Y) + “中.....”, )
                程序指针 = “移动到指定地点”
            .判断结束

        .默认
            程序指针 = “移动到指定地点”
        .判断结束

    .判断 (程序指针 = “移动到指定地点”)
        ' 调试输出 (当前地图.地图名 + “ ” + 到文本 (当前地图.最大宽度), 到文本 (当前地图.最大高度), 到文本 (当前地图.最大x轴), 到文本 (当前地图.最大y轴))

        .判断开始 (当前地图.最大宽度 ≥ 10 且 当前地图.最大高度 ≥ 10 且 当前地图.最大x轴 ≥ 10 且 当前地图.最大y轴 ≥ 10)

            .如果真 (多线程 [i].界面.界面判定_小地图是否打开 (真, 小地图原点坐标))

                小地图原点坐标.x = 小地图原点坐标.x - 当前地图.最大宽度
                X轴坐标比例 = 当前地图.最大x轴 ÷ 当前地图.最大宽度
                Y轴坐标比例 = 当前地图.最大y轴 ÷ 当前地图.最大高度
                X轴距离 = 坐标X ÷ X轴坐标比例
                Y轴距离 = 坐标Y ÷ Y轴坐标比例
                最终移动距离X = 小地图原点坐标.x + X轴距离
                最终移动距离Y = 小地图原点坐标.y - Y轴距离

                地图最大点击坐标X = 小地图原点坐标.x + 当前地图.最大宽度 - 2
                地图最大点击坐标Y = 小地图原点坐标.y - 2

                地图最小点击坐标X = 小地图原点坐标.x + 10
                地图最小点击坐标Y = 小地图原点坐标.y - 当前地图.最大高度 + 10
                ' 小地图坐标修正
                .如果真 (坐标X ≤ 10)
                    最终移动距离X = 小地图原点坐标.x + X轴距离 + 2
                .如果真结束
                .如果真 (取绝对值 (当前地图.最大x轴 - 坐标X) ≤ 10)
                    最终移动距离X = 小地图原点坐标.x + X轴距离 - 2
                .如果真结束
                .如果真 (坐标Y ≤ 10)
                    最终移动距离Y = 小地图原点坐标.y - Y轴距离 - 2
                .如果真结束
                .如果真 (取绝对值 (当前地图.最大y轴 - 坐标Y) ≤ 10)
                    最终移动距离Y = 小地图原点坐标.y - Y轴距离 + 2
                .如果真结束

                .判断开始 (点击次数 ≥ 4)
                    多线程 [i].界面.界面判定_小地图是否打开 (, )

                    返回 (“超时”)
                .默认
                    .计次循环首 (随机数循环次数, 索引)
                        随机数4 = 0
                        随机数5 = 0
                        随机数7 = 取随机数 (0, 1)
                        随机数8 = 取随机数 (0, 1)

                        .如果真 (最终移动距离X + 45 ≤ 当前地图.最大宽度 + 小地图原点坐标.x 且 最终移动距离X - 45 ≥ 小地图原点坐标.x)
                            .判断开始 (随机数7 = 0)
                                随机数4 = 取随机数 (13, 30) + 随机数循环次数 × 4
                            .默认
                                随机数4 = -取随机数 (13, 30) - 随机数循环次数 × 4
                            .判断结束

                        .如果真结束
                        .如果真 (最终移动距离Y + 45 ≤ 小地图原点坐标.y 且 最终移动距离Y - 45 ≥ 当前地图.最大高度 - 小地图原点坐标.y)
                            .判断开始 (随机数8 = 0)
                                随机数5 = -取随机数 (13, 30) + 随机数循环次数 × 4
                            .默认
                                随机数5 = 取随机数 (13, 30) - 随机数循环次数 × 4
                            .判断结束

                        .如果真结束

                        .判断开始 (随机数循环次数 - 索引 = 0)
                            多线程 [i].键鼠.鼠标点击 (到整数 (最终移动距离X), 到整数 (最终移动距离Y), , 真, , )
                        .默认
                            多线程 [i].键鼠.鼠标点击 (到整数 (最终移动距离X) + 随机数4, 到整数 (最终移动距离Y) + 随机数5, , 真, , )
                        .判断结束

                        延时 (50)
                        iMouse鼠标弹起 (多线程 [i].设备属性.设备id, )
                        延时 (取随机数 (100, 120))
                        处理事件 ()
                    .计次循环尾 ()
                    点击次数 = 点击次数 + 1


                    .判断开始 (寻路中是否关闭小地图)  ' 用坐标识别
                        .判断开始 (多线程 [i].当前任务 = “跑商” 且 (当前地图.地图名 = “帮派” 或 当前地图.地图名 = “长安城” 或 当前地图.地图名 = “赤水洲” 或 当前地图.地图名 = “东海岩洞” 或 当前地图.地图名 = “女魃墓”))  ' 排除这些是没有坐标的
                            局_是否关闭小地图 = 真
                        .默认
                            局_是否关闭小地图 = 假
                        .判断结束

                    .判断 (多线程 [i].当前任务 = “跑商” 且 (当前地图.地图名 = “帮派” 或 当前地图.地图名 = “长安城” 或 当前地图.地图名 = “赤水洲” 或 当前地图.地图名 = “东海岩洞” 或 当前地图.地图名 = “女魃墓”))  ' 这些是有坐标的
                        局_是否关闭小地图 = 真
                    .默认
                        局_是否关闭小地图 = 假
                    .判断结束



                    ' 局_是否关闭小地图 = 真
                    .判断开始 (局_是否关闭小地图)  ' 真 说明 有坐标
                        多线程 [i].界面.界面判定_关闭普通面板 ()
                        寻路等待返回 = 寻路等待 ()
                        .判断开始 (寻路等待返回 = “抵达”)
                            返回 (“抵达”)
                        .判断 (寻路等待返回 = “战斗”)

                            ' “战斗”
                        .默认

                        .判断结束

                        ' “战斗”

                    .默认
                        寻路等待返回 = 寻路等待2 (小地图原点坐标, 当前地图.最大宽度, 当前地图.最大高度)
                        .判断开始 (寻路等待返回 = “抵达”)
                            多线程 [i].界面.界面判定_关闭普通面板 ()
                            返回 (“抵达”)
                        .判断 (寻路等待返回 = “战斗”)
                            ' “战斗”
                        .判断 (寻路等待返回 = “失败”)
                            多线程 [i].界面.界面判定_关闭普通面板 ()
                            寻路等待返回 = 寻路等待 ()
                            .判断开始 (寻路等待返回 = “抵达”)
                                返回 (“抵达”)
                            .判断 (寻路等待返回 = “战斗”)
                                ' “战斗”
                            .默认

                            .判断结束

                        .默认

                        .判断结束

                    .判断结束





                .判断结束
                程序指针 = “是否在目的地旁边”


            .如果真结束


        .默认
            日志输出 (i, “小地图_移动->获取” + 当前地图.地图名 + “地图配置失败”, )
        .判断结束



    .默认

    .判断结束



    延时 (200)
    处理事件 ()
.计次循环尾 ()
返回 (“”)
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则 致发广告者

发布主题 收藏帖子 返回列表

sitemap| 易语言源码| 易语言教程| 易语言论坛| 易语言模块| 手机版| 广告投放| 精易论坛
拒绝任何人以任何形式在本论坛发表与中华人民共和国法律相抵触的言论,本站内容均为会员发表,并不代表精易立场!
论坛帖子内容仅用于技术交流学习和研究的目的,严禁用于非法目的,否则造成一切后果自负!如帖子内容侵害到你的权益,请联系我们!
防范网络诈骗,远离网络犯罪 违法和不良信息举报QQ: 793400750,邮箱:wp@125.la
网站简介:精易论坛成立于2009年,是一个程序设计学习交流技术论坛,隶属于揭阳市揭东区精易科技有限公司所有。
Powered by Discuz! X3.4 揭阳市揭东区精易科技有限公司 ( 粤ICP备2025452707号) 粤公网安备 44522102000125 增值电信业务经营许可证 粤B2-20192173

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