TC官方合作论坛

 找回密码
 立即注册
查看: 2026|回复: 2

[功能] 在这学了一星期多,分享下自己写的梦幻西游手游脚本

[复制链接]
发表于 2018-2-27 19:46:05 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本帖最后由 shanliujiandan 于 2018-2-27 19:52 编辑

本着分享精神,为后来者提供一点学习的资料。以下是我自己写的梦幻西游手游师门任务部分。
需要修改的地方自己想办法吧,谢谢。

function floatwinrun()//启动后运行的内容在下面
    //浮动窗口运行按钮执行的事件,如果不需要可去掉
    // messagebox("你好世界")
    //找色活动()
    //找图函数()
    //师门任务之念诵心经之点击活动()
    //sleep(1000)
    //活动界面找师门()
    //sleep(1000)
    //找并点击日常任务()
    //滑动日常任务界面()
    //在任务列表中寻找师门任务并点击如果没找到则调用下面的函数()
    //寻找师门任务并点击()
    //判断当前是否在战斗中()
    //滑动任务列表寻找师门任务()
    //心经显示()
    //判断是否在寻路() 这个有可能废弃
    //判断人物移动()
    //寻找物品与购买()
    //上交物品()
    //商会摆摊购买()
    //师门任务()
    //师门任务袁守城()
    //识字师门()

    //师门任务()
    //    变量 宽,高,获取结果
    //    获取结果 = 系统获取分辨率(宽,高)
    //    调试输出(宽&高)

    // 原地挂机完成平定安邦()
    //点击任务列表平定安邦()
    //点击挂机按钮()
    //领取平定安邦()

    //打开大地图与点击大地图()
    //打开小地图与选择店小二()
    //店小二听听无妨()//要循环
    //点击任务列表宝图任务()//要循环
    //判断是否在搜宝图任务战斗中()

    //找宝图并双击()
    //右下角物品的使用()

    ////////////////////////////////////////////    顶层设计
    //        领取平定安邦全部()//调用此函数将尝试领取平定安邦任务
    //    师门任务()//进行师门任务寻找 点击与工作 最终20次师门任务 并结束函数
    //    做宝图任务()//找店小二对话 并开始寻找 完成10次宝图 并结束
    //    挖宝图()//
    //    秘境降妖任务()//
    //    运普通镖()
    //    抓鬼()//完成日常两轮
    //固定点判断是否移动()

    //测试判断人物移动或停止()
    //小地图绿点判断人物位置()
    ////  

    //    领取平定安邦全部()
    //    师门任务()
    //    做宝图任务()
    //    挖背包的宝图()

    //领取平定安邦全部()
    //处理弹出的三界奇缘()

    //    秘境降妖总()

    // 找到云游乐()
    //检测秘境降妖按钮()
    //点击海底猪妖()
    //手指点击挑战()
    //点击目标任务()
    //进入战斗按钮检测()
    //    测试函数()
    //检测是否战斗失败()
    //检测押送普通镖银并点击()
    //检测抓鬼任务按键()
    //处理梦幻过大年遮罩()
    //创建队伍()
    //    创建队伍()
    //点击抓鬼()
    //师门任务()//这一次测试没问题 2月10日
    //做宝图任务的小流程()
    //sleep(3000)
    //做宝图任务()
    //点击任务列表宝图任务()

    //做宝图任务的小流程()
    //点击任务列表宝图任务()

    //做宝图任务的小流程()
    //   变量 次数 = 0
    //   变量 函数返回值的保存 = 0
    //   while(次数!=1)
    //       函数返回值的保存 = 找战斗的一()
    //       如果(函数返回值的保存==0)
    //            函数返回值的保存 = 找战斗的一()
    //            如果()
    //                次数 = 次数 + 1
    //            结束
    //       否则
    //            函数返回值的保存 = 找战斗的一()//
    //       结束      
    //   end

    //   
    //找战斗的一()

    //调试输出(消息框(当前时间()))
    //做宝图任务的小流程()//他已经调用了做宝图任务函数
    //做宝图任务()//修改了 但没有号测试了 并且已经到了傍晚 等明天吧
    //挖背包的宝图()

    //秘境降妖总()
    //检测是否战斗失败()
    //运三次普通镖银()
    //检测便捷组队()
    //关掉页面()

    调试输出("主函数开始运行")
    领取平定安邦全部()
    sleep(1000)
    师门任务()
    sleep(1000)
    做宝图任务的小流程()
    sleep(1000)
    挖背包的宝图()//找不到的话 关闭
    sleep(1000)
    秘境降妖总()
    sleep(1000)
    运三次普通镖银()
    抓鬼自动区配()
    调试输出("主函数运行完毕")
end
//变量 控制器 = 0
//功能 找战斗的一()
//       变量 x,y,索引,x1,y1,索引1
//      
//       索引 = 找图(420,11,436,35,"rc:战斗中的第一回合.bmp","000000",0.5,0,x,y)
//      
//                如果(索引==-1)
//           找战斗的一()
//       结束
//        
//       如果(索引==0)//找到了的第一次
//           索引1 = 找图(420,11,436,35,"rc:战斗中的第一回合.bmp","000000",0.5,0,x1,y1)
//           如果(索引1==0)//找到了的第二次
//               战斗中一直找()
//           否则
//                                控制器 = 控制器 + 1
//           结束
//       结束
//      
//  
//       调试输出(索引)
//       调试输出(x&""&y)
//       //返回 索引//找到返回0 否则返回-1
//       调试输出()
// 结束
//   
//功能 战斗中一直找()
//    变量 x,y,索引
//   
//    索引 = 找图(420,11,436,35,"rc:战斗中的第一回合.bmp","000000",0.5,0,x,y)
//    如果(索引==0)
//        战斗中一直找()
//    否则
//        控制器 = 控制器 + 1
//    结束
//结束  
//  
function 找色活动()
    变量 x,y
    缓存图像()
    //    找色(215,5,266,52,"C18543",1.0,0,x,y)
    //    如果(x>0&&y>0)
    //        手指点击(x,y)
    //    结束

    多点找色(65,18,140,55,"806852-000000","-5|7|EACFB3-000000,5|5|D2BBA4-000000",1.0,0,x,y)

    调试输出(x&","&y)
    释放图像()
end

function 找图函数()
    //图片制作 图片
    变量 索引,x,y

    缓存图像()

    索引 = 找图(0,0,854,480,"rc:紫师.bmp","000000",0.9,0,x,y)//第五个参数是个相对路径
    //找到的坐标是左上角的 所以截图的时候最好就从这点开始 模拟手指点击的时候便点击这一点
    调试输出("索引是:"&索引&" "&"x:"&x&" "&"y:"&y)
    释放图像()
end

功能 找字命令()
    变量 x,y,索引
    缓存图像(1)//找字参数1
    字库设置("rc:mhxy.txt",0)//如果是多字库 在找字之前 先指定字库序号
    字库切换(0)//表示当前正在使用0号字库   
    索引 = 找字(54,3,191,69,"长安城","785f4b-2024325",1.0,x,y)
    释放图像(1)
结束

功能 师门任务之点击活动()//已初步修改添加满足条件再点击 没添加处理异常的办法 只需要点击一次
    缓存图像()

    变量 x,y,索引
    索引 = 找图(227,16,243,32,"rc:活动入口.bmp","000000",1.0,0,x,y)
    调试输出(x&" "&y)
    如果(索引==0)
        手指点击(x,y)
    结束     

    释放图像()
结束

功能 找并点击日常任务()//已初步修改
    缓存图像()

    变量 x1,y1,索引2
    索引2 = 找图(112,74,150,95,"rc:日常.bmp","000000",1.0,0,x1,y1)
    调试输出(x1&" "&y1)
    如果(索引2==0)
        手指点击(x1,y1)
    结束   

    释放图像()   
结束

功能 活动界面找师门() //只需要点击一次
    缓存图像()

    变量 a,b,索引1
    索引1 = 找图(207,52,752,354,"rc:师门图标.bmp","000000",0.7,0,a,b)//索引1保存的是0
    调试输出(a&" "&b)
    如果(索引1==0)
        手指点击(a+198,b+17)//这样找到师门的图后偏移点击参加按钮
    否则
        滑动日常任务界面()
    结束

    释放图像()
结束

功能 滑动日常任务界面()//用取色吧
    缓存图像()

    变量 索引,x,y,上面x,上面y
    索引 = 找色(359,299,393,322,"F2E2CB",1.0,0,x,y)//找色的范围大些 容易找到
    调试输出(x&y)
    如果(索引==0)
        手指划动屏幕(x,y,372,86)

    结束

    释放图像()
结束
//////////////////////////////////////////
功能 寻找师门任务并点击()//已经剪切图片为最小
    缓存图像()
    //   
    //    变量 x,y,索引
    //    索引 = 找图(684,113,853,341,"rc:最后的师门任务.bmp|rc:新紫色任务师门.bmp","000000",1.0,0,x,y)
    //    调试输出(x&" "&y)
    //    调试输出(索引)
    //    如果(索引==0||索引==1)
    //        手指点击(x,y)
    //        判断人物移动()
    //    结束   
    //    否则
    //        滑动任务列表寻找师门任务()
    //        寻找师门任务并点击1()


    变量 x,y,索引
    索引 = 找图(693,120,850,342,"rc:师门任务最小.bmp|rc:停留海底师门任务.bmp|rc:花果山黑底师门.bmp","000000",0.5,0,x,y)
    调试输出("找到了师门任务的坐标"&x&" "&y)
    调试输出("师门索引是"&索引)
    如果(索引==0||索引==1||索引==2)
        手指点击(x,y)
        调试输出("已经点击师门任务坐标点")
    结束  

    释放图像()
    返回 索引
结束

功能 识字师门()//废弃
    变量 x,y
    字库设置("rc:mhxy.txt",0)
    找字(684,113,853,341,"师门","3F8003FFB400019FF206C0FFFB036067F000000001FFC0080000000C0180300600C01801FF800000040",0.9,x,y)
    调试输出(x&y)
结束

功能 滑动任务列表寻找师门任务()//ok
    缓存图像()

    手指划动屏幕(769,336,769,123)

    释放图像()
结束

功能 判断当前是否在战斗中()
    缓存图像()

    变量 x,y,索引,索引1,x1,y1
    索引 = 找图(8,21,40,48,"rc:左羊角.bmp","000000",0.7,0,x,y)//成功


    //调试输出(索引)
    //索引 = -1
    //调试输出(索引)
    如果(索引==0)
        //手指点击(x+6,y+6)
        sleep(1000)
        调试输出("正在战斗中,坐标是"&x&" "&y)
        判断当前是否在战斗中()
    否则
        调试输出("检测按钮中..............")
        按钮检测()
        调试输出("按钮按钮完毕..............")
    结束
    //        手指点击(x+6,y+6)
    //    如果(索引==-1)
    //                索引1=找图(795,408,850,435,"rc:右战斗取消按钮一半.bmp","000000",0.5,0,x1,y1)   
    //        调试输出(x1&y1)
    //    结束

    释放图像()
结束

功能 判断人物移动()//用这个一定程度上可以检测人物移动 还可以多取多个点的颜色 搭配缓存图像使用 但会受到某种的影响 从而出现判断错误的问题
    //缓存图像()

    变量 返回的颜色值,返回的颜色值1
    返回的颜色值 =  取色(459,233,1)
    调试输出(返回的颜色值)

    sleep(1000)//经过测试1000毫秒完全足够

    返回的颜色值1 =  取色(459,233,1)
    调试输出(返回的颜色值1)

    如果(返回的颜色值==返回的颜色值1)
        调试输出("人物没有移动")
        判断当前是否在战斗中()
    否则
        调试输出("人物移动中或已经移动了位置")
        sleep(1000)
        判断人物移动()
    结束


    释放图像()
结束

功能 心经显示与点击()//测试通过
    缓存图像()

    变量 x,y,索引
    索引 = 找图(705,282,753,333,"rc:心经图片.bmp","000000",0.7,0,x,y)
    如果(索引==0)
        手指点击(722,383)
        调试输出("点击了心经的坐标"&x&y)
    结束

    //sleep(1000)
    释放图像()
结束

功能 寻找物品与购买()
    缓存图像()
    变量 x,y,索引
    索引 = 找图(619,381,678,403,"rc:兵器谱购买按钮.bmp","000000",0.7,0,x,y)
    如果(索引==0)
        手指点击(x,y)
        调试输出("购买了兵器"&x&y)
    结束
    //sleep(1000)
    释放图像()
结束

功能 购买宠物啊()//图片已经截切为最小 所以不需要再缩小图片
    缓存图像()
    变量 x,y,索引
    索引 = 找图(661,419,719,443,"rc:师门任务宠物购买.bmp","000000",0.7,0,x,y)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了宠物店购买按钮"&x&""&y&"点")
    结束
    释放图像()
结束

功能 上交宠物啊()//图片已经截切为最小
    缓存图像()
    变量 x,y,索引
    索引 = 找图(547,380,586,401,"rc:师门任务之上交宠物.bmp","000000",0.7,0,x,y)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了师门任务的上交宠物按钮"&x&""&y&"点")
    结束

    释放图像()
结束
功能 上交物品()
    缓存图像()
    变量 x,y,索引
    索引 = 找图(687,379,725,399,"rc:上交按钮.bmp","000000",0.7,0,x,y)//
    如果(索引==0)
        手指点击(x,y)
        调试输出("上交了物品"&x&""&y)
    结束
    //sleep(1000)
    释放图像()
结束

功能 商会摆摊购买按钮()


    缓存图像()
    变量 x,y,索引
    索引 = 找图(634,429,695,451,"rc:商会摆摊购买按钮.bmp","000000",0.7,0,x,y)//
    调试输出("商会按钮索引的值为"&索引)
    如果(索引==0)
        sleep(500)
        手指点击(x,y)
        调试输出(x&y&"点击了商会摆摊购买按钮坐标")
    结束   
    //sleep(1000)

    释放图像()
结束

功能 修复点击太快商会问题()
    缓存图像()
    变量 x,y,索引
    索引 = 找图(747,103,781,170,"rc:点击太快右商会.bmp","000000",0.7,0,x,y)
    调试输出("找到的右商会索引是"&索引)
    如果(索引==0)
        手指点击(762,210)
        sleep(900)
        手指点击(392,149)
        sleep(900)
        手指点击(665,441)
        sleep(900)
    结束
    释放图像()
结束

功能 师门任务袁守城()
    缓存图像()

    变量 x,y,索引
    索引 = 找图(622,155,827,203,"rc:师门任务袁守城紫.bmp","000000",0.7,0,x,y)//当
    调试输出("袁守城"&索引)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了袁守城"&x&" "&y)
    结束
    //sleep(1000)   

    释放图像()
结束

功能 师任务王铁匠()   
    缓存图像()

    变量 x,y,索引
    索引 = 找图(688,259,759,277,"rc:师门任务王铁匠.bmp|rc:师门任务王铁匠紫.bmp|rc:师门任务王铁匠中.bmp","000000",0.5,0,x,y)//这两个都没用

    如果(索引==0||索引==1||索引==2)
        手指点击(x,y)
        调试输出(x&y&"师门任务王铁匠")
    结束
    //sleep(1000)   

    释放图像()
结束

功能 右下角物品的使用()//适合挖宝图的时候
    缓存图像()
    变量 x,y,索引
    索引 = 找图(705,375,752,395,"rc:使用心魔宝珠物品.bmp","000000",0.7,0,x,y)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了使用物品按钮"&x&""&y&"点")
    结束
    释放图像()

结束
功能 特殊师门战胜异兽进入战斗()
    缓存图像()
    变量 x,y,索引

    索引 = 找图(686,303,761,323,"rc:特殊师门之战胜异兽进入战斗.bmp","000000",0.7,0,x,y)
    调试输出("找到战胜异兽进入索引值为"&索引)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了进入战斗"&x&y)
        sleep(1000)
    结束

    释放图像()
结束

功能 处理弹出的三界奇缘()
    缓存图像()
    变量 x,y,索引
    索引 = 找图(468,200,567,219,"rc:三界奇缘是否参加.bmp","000000",1.0,0,x,y)
    调试输出(索引&x&y)
    如果(索引==0)
        //手指点击(490,286)//确定键
        手指点击(339,291)//取消键
    结束
    释放图像()
结束

功能 处理弹出的抽奖盘()
    缓存图像()
    变量 x,y,索引

    索引 = 找图(398,222,450,252,"rc:抽奖大转盘按钮.bmp","000000",0.7,0,x,y)
    调试输出("找到了抽奖大转盘索引值为"&索引)
    如果(索引==0)
        手指点击(x,y)
        调试输出("点击了抽奖大转盘"&x&y)
        sleep(1000)
    结束

    释放图像()
结束

功能 处理遮罩()//处理弹出的关系网推荐 也会处理掉不小心打开的好友窗口
    缓存图像()

    变量 x,y,索引
    索引 = 找图(750,22,775,45,"rc:关系网叉.bmp","000000",0.7,0,x,y)//

    如果(索引==0||索引==1||索引==2)
        手指点击(x,y)
        调试输出(x&y&"取消关系网叉叉")
    结束
    //sleep(1000)   

    释放图像()
结束

功能 处理梦幻过大年遮罩()//暂不启用 这是一开始游戏弹出 不是中途弹出

    缓存图像()
    变量 x,y,索引
    索引 = 找图(692,36,728,70,"rc:梦幻陪你过大年.bmp","000000",1.0,0,x,y)
    调试输出("梦幻陪你过大年索引是"&索引)
    如果(索引==0)
        手指点击(x,y)
        调试输出("关闭了梦幻过大年遮罩")
    结束

    释放图像()
结束

//功能 结束20师门()
//   
//结束


功能 只需要点击一次的师门开头()//已经ok
    师门任务之点击活动()
    sleep(1000)

    //    找并点击日常任务()
    //    sleep(1000)

    活动界面找师门()
    sleep(1000)
结束

功能 师门任务()
    //师门任务之点击活动()
    //sleep(1000)

    //找并点击日常任务()
    //sleep(1000)

    //活动界面找师门()
    //sleep(1000)

    //    变量 次数 = 0
    //    while(次数<3)
    //        寻找师门任务并点击()
    //        sleep(1000)
    //        
    //        //按钮检测()   
    //        //判断当前是否在战斗中()
    //        //判断人物移动()
    //        
    //        次数= 次数 + 1
    //    end
    //变量 n = 0
    变量 控制器 = 0
    变量 找不到的时间 = 0
    变量 找到或没找到 = 0
    变量 循环的次数 = 0
    while(控制器!=1)
        找到或没找到 =  寻找师门任务并点击()
        调试输出("找到或没找到的索引是"&找到或没找到)
        sleep(2300)
        //判断人物移动()
        //n = n + 1
        判断当前是否在战斗中()//这里要么一直在战斗中循环 要么一直在检测按钮 执行完这两个
        变量 x,y,索引
        索引 = 找图(320,281,356,300,"rc:师门做满二十取消按钮正用.bmp|rc:师门做满二十取消按钮备用.bmp","000000",0.9,0,x,y)//测试成功 0.9相似度 索引1 成功一次 第二次成功也是索引1 第三次成功也是1
        if(索引==0||索引==1)
            手指点击(x,y)
            控制器 = 1
            调试输出("索引是"&索引)
            调试输出("任务已经做完20次了")
        end

        如果(找到或没找到==-1)//假设3分钟
            找不到的时间 = 找不到的时间 + 1000//找不到
            调试输出("找不到则加1000毫秒")
            调试输出("现在找不到的时间是"&找不到的时间)
        结束
        如果(找不到的时间==10000)//成功
            break
        结束
        循环的次数 = 循环的次数 + 1
        调试输出("这是第"&循环的次数&"次循环")
    end


结束

功能 按钮检测()
    心经显示与点击()
    调试输出("1111111111111111111")
    商会摆摊购买按钮()
    调试输出("2222222222222222222")
    修复点击太快商会问题()

    寻找物品与购买()
    调试输出("3333333333333333333")
    上交物品()
    调试输出("4444444444444444444")

    购买宠物啊()//这一条注意自己的宠物位是否满了
    调试输出("5555555555555555555")
    上交宠物啊()
    调试输出("6666666666666666666")

    右下角物品的使用()
    调试输出("7777777777777777777")

    师门任务袁守城()
    调试输出("8888888888888888888")
    师任务王铁匠()
    调试输出("9999999999999999999")

    特殊师门战胜异兽进入战斗()//60级时候出现的 与孙悟空对话的
    处理弹出的抽奖盘()

    处理弹出的三界奇缘()
    处理遮罩()
    调试输出("10101010101010101010101010101010101010")
结束


一共好几百行
回复

使用道具 举报

 楼主| 发表于 2018-2-27 19:47:23 | 显示全部楼层
图片,坐标,其他。。。。。 自己想办法做吧,谢谢。 我不会查看此贴任何消息,所以不要回我。
回复 支持 反对

使用道具 举报

发表于 2020-7-16 12:10:27 | 显示全部楼层
感谢
回复

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-19 15:14 , Processed in 0.039368 second(s), 22 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

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