|
|
|
.版本 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) 处理事件 () .计次循环尾 () 返回 (“”) |
|