TC官方合作论坛

 找回密码
 立即注册
查看: 13246|回复: 44

[游戏] 【有源码】天龙八部3多开答题器的源码。。可写出无数多开

[复制链接]
发表于 2012-2-20 15:55:26 | 显示全部楼层 |阅读模式

马上加入TC

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

x
:D 此脚本由本人TC菜鸟所写,多多指教!本答题器可同时十开答题!文件夹必须解压到D盘。。。(貌似TC不支持大漠字库的RC路径)。。文件夹名称不可改,否则调用出错!因本人不知道如何由窗口句柄找进程句柄,所以只能把每个窗口标题改一下!求指教。。。。。不会哪个地方高数组。。所以用了一个列表框来存句柄集!废话不说直接上源码:
     //#import "Microrui.Reply" WR
#import "LYYDT.LYYDTClass" lyydt
空间 TL蜗牛答题器
//定义默认空间
整型 窗口句柄1
整型 窗口句柄2
整型 窗口句柄3
整型 窗口句柄4
整型 窗口句柄5
整型 窗口句柄6
整型 窗口句柄7
整型 窗口句柄8
整型 窗口句柄9
整型 窗口句柄10
整型 线程句柄1
整型 线程句柄2
整型 线程句柄3
整型 线程句柄4
整型 线程句柄5
整型 线程句柄6
整型 线程句柄7
整型 线程句柄8
整型 线程句柄9
整型 线程句柄10
整型 答题总数
整型 找到窗口个数
//...............................................................以上为全局变量.............................................//
功能 整型 最小化答题(整型 窗口句柄)
整型 intX
整型 intY
整型 题目ID
整型 整型数据
整型 答题编号
整型 进程句柄
字符型 答案
字符型 窗口标题
//.........................局部变量................................................//
窗口标题=窗口.得到标题(窗口句柄)
进程句柄=进程.获取进程句柄(窗口标题) //它必须要根据窗口名找进程句柄...................日
辅助.等待(200)
循环(整型数据!=1)
整型数据=进程.读4byte(进程句柄,#888C08)
辅助.等待(500)
整型数据=进程.读4byte(进程句柄,(整型数据+#0))
辅助.等待(500)
整型数据=进程.读4byte(进程句柄,(整型数据+#c))
辅助.等待(500)
整型数据=进程.读4byte(进程句柄,(整型数据+#64))
辅助.等待(500)
如果(整型数据==1)
窗口.还原(窗口句柄)
//.........................有答题验证则返回1....此时跳出窗口答题...................................................//
辅助.等待(2000)
窗口.设置位置(窗口句柄,0,0)
辅助.等待(500)
辅助.注册插件("rcm.dll",真)
大漠.创建()
大漠.设置路径("D:\\TLCS")
大漠.设置字库(0,"字库测试.txt")
大漠.绑定窗口(窗口句柄,"normal","normal","normal",0)
辅助.等待(500)
//...............................注册创建大漠并绑定窗口前台模式(后台模式占用CPU,容易卡死)...........................//
窗口.置顶(窗口句柄,真)
辅助.等待(800)
大漠.找字(0,0,800,600,"果回答","fff263-180f08",1.0,intX,intY)
辅助.等待(50)
循环(intX<0&&intY<0)
    窗口.置顶(窗口句柄,真)
    辅助.等待(800)
    大漠.找字(0,0,800,600,"果回答","fff263-180f08",1.0,intX,intY)
循环结束
dm.capture(intX+20,intY+20,intX+200,intY+195,"screenP.bmp")
窗口.置顶(窗口句柄,假)
//..................................窗口截图........................................//
辅助.等待(200)
列表框.增加文本("列表框1",系统.时间(0))
列表框.增加文本("列表框1","游戏窗口......["+窗口标题+"]...........开始发送题目")
题目ID = lyydt.SendImages(编辑框.获得文本("编辑框0"),编辑框.获得文本("编辑框1"),"11100","1","45","D://TLCS//screenP.bmp","选项:1,2,3,4")
辅助.等待(100)
答案 = lyydt.GetAnswer(编辑框.获得文本("编辑框0"),编辑框.获得文本("编辑框1"),题目ID)
循环(答案=="")
    答案 = lyydt.GetAnswer(编辑框.获得文本("编辑框0"),编辑框.获得文本("编辑框1"),题目ID)
循环结束
//.............................................以上为冷雨夜答题......................................................//
列表框.增加文本("列表框1",系统.时间(0))
辅助.等待(50)
列表框.增加文本("列表框1","游戏窗口......["+窗口标题+"]...返回答案::"+答案+"继续监听验证!")
答题编号=转换.字符型转整型(答案,0)
辅助.等待(50)
循环(整型数据==1)
辅助.等待(4000)                        //这个时间是窗口同时答题的窗口置顶间隔时间.........................//
窗口.置顶(窗口句柄,真)
辅助.等待(800)
如果(答题编号==1)
     大漠.移动(intX+110-49,intY+110)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(300)
     大漠.移动(intX+200,intY+210)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(1000)
否则
     如果(答题编号==2)
     大漠.移动(intX+110-49,intY+135)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(300)
     大漠.移动(intX+200,intY+210)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(1000)
     否则
         如果(答题编号==3)
    大漠.移动(intX+110-49,intY+160)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(300)
     大漠.移动(intX+200,intY+210)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(1000)
         否则
      如果(答题编号==4)
     大漠.移动(intX+110-49,intY+185)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(50)
     大漠.左键单击()
     辅助.等待(300)
     大漠.移动(intX+200,intY+210)
     辅助.等待(100)
     大漠.左键单击()
     辅助.等待(1000)
      否则
          辅助.等待(200)
如果结束
如果结束
如果结束
如果结束
窗口.置顶(窗口句柄,假)
//......................................................读取到答案后进行鼠标答题...................................................//
整型数据=进程.读4byte(进程句柄,#888C08)
整型数据=进程.读4byte(进程句柄,(整型数据+#0))
整型数据=进程.读4byte(进程句柄,(整型数据+#c))
整型数据=进程.读4byte(进程句柄,(整型数据+#64))
//..............................................确定是否答题成功...................................................................//
循环结束
如果(整型数据==0&&复选框.获得状态("复选框0")==真)
    窗口.最小化(窗口句柄)
如果结束
//............................................答题后最小化设置...................................................//
答题总数=答题总数+1
列表框.增加文本("列表框1",".........已经答题     "+转换.整型转字符型(答题总数)+"次..................")
//...........................................判断答题次数.....................................................//
窗口.置顶(窗口句柄,假)
大漠.解绑窗口(0)
大漠.释放(0)                                  //创建了就要释放
如果结束
循环结束
返回 0
功能结束
//.....................................................以上为主函数功能..........................................................//
//.....................................................枚举游戏窗口的函数........................................................//
功能 逻辑型 枚举窗口()
字符型 窗口句柄集
字符型 截取的句柄
整型 分隔符位置
整型 循环枚举次数
循环枚举次数=10
窗口句柄集=系统.枚举("TianLongBaBu WndClass",1)
列表框.清空("句柄列表框")
循环(循环枚举次数>0)
分隔符位置=字符串.查找字符串(窗口句柄集,"|")
如果(分隔符位置>0)
截取的句柄=字符串.截取(窗口句柄集,0,分隔符位置)
列表框.增加文本("句柄列表框",截取的句柄)
窗口句柄集=字符串.移除(窗口句柄集,分隔符位置+1,真)
如果结束
循环枚举次数=循环枚举次数-1
循环结束
列表框.增加文本("句柄列表框",窗口句柄集)
找到窗口个数=列表框.得到个数("句柄列表框")
列表框.增加文本("列表框1","....................找到"+转换.整型转字符型(找到窗口个数)+"个游戏窗口...............")
返回 真
功能结束
//.....................................................枚举游戏窗口的函数........................................................//
//.....................................................定义多线程调用函数.....................................................//
功能 逻辑型 线程1函数()
线程.等待(线程句柄1,5)                                //必须设置等待,否则线程将直接进入判断循环,影响其他线程的启动............//
TL蜗牛答题器.最小化答题(窗口句柄1)
返回 真
功能结束
功能 逻辑型 线程2函数()
线程.等待(线程句柄2,5)
TL蜗牛答题器.最小化答题(窗口句柄2)
返回 真
功能结束
功能 逻辑型 线程3函数()
线程.等待(线程句柄3,5)
TL蜗牛答题器.最小化答题(窗口句柄3)
返回 真
功能结束
功能 逻辑型 线程4函数()
线程.等待(线程句柄4,5)
TL蜗牛答题器.最小化答题(窗口句柄4)
返回 真
功能结束
功能 逻辑型 线程5函数()
线程.等待(线程句柄5,5)
TL蜗牛答题器.最小化答题(窗口句柄5)
返回 真
功能结束
功能 逻辑型 线程6函数()
线程.等待(线程句柄6,5)
TL蜗牛答题器.最小化答题(窗口句柄6)
返回 真
功能结束
功能 逻辑型 线程7函数()
线程.等待(线程句柄7,5)
TL蜗牛答题器.最小化答题(窗口句柄7)
返回 真
功能结束
功能 逻辑型 线程8函数()
线程.等待(线程句柄8,5)
TL蜗牛答题器.最小化答题(窗口句柄8)
返回 真
功能结束
功能 逻辑型 线程9函数()
线程.等待(线程句柄9,5)
TL蜗牛答题器.最小化答题(窗口句柄9)
返回 真
功能结束
功能 逻辑型 线程10函数()
线程.等待(线程句柄10,5)
TL蜗牛答题器.最小化答题(窗口句柄10)
返回 真
功能结束
//.....................................................定义多线程调用函数.....................................................//
功能 逻辑型 开始答题_点击()
//这里添加你要执行的代码
//...............开始前先结束所有线程.........................................//
线程.关闭(线程句柄1)
线程.关闭(线程句柄2)
线程.关闭(线程句柄3)
线程.关闭(线程句柄4)
线程.关闭(线程句柄5)
线程.关闭(线程句柄6)
线程.关闭(线程句柄7)
线程.关闭(线程句柄8)
线程.关闭(线程句柄9)
线程.关闭(线程句柄10)
辅助.等待(200)
//........................................................................
TL蜗牛答题器.枚举窗口()
辅助.等待(500)
//...................给文本框复制已经找到的游戏句柄....................../.........................//
窗口句柄1=转换.字符型转整型(列表框.获得文本("句柄列表框",0),0)
如果(窗口句柄1!=0)
窗口.设置标题(窗口句柄1,"苹果")
辅助.等待(200)
线程句柄1=线程.开启("TL蜗牛答题器.线程1函数")
如果结束
//
窗口句柄2=转换.字符型转整型(列表框.获得文本("句柄列表框",1),0)
如果(窗口句柄2!=0)
窗口.设置标题(窗口句柄2,"西瓜")
辅助.等待(200)
线程句柄2=线程.开启("TL蜗牛答题器.线程2函数")
如果结束
//
窗口句柄3=转换.字符型转整型(列表框.获得文本("句柄列表框",2),0)
如果(窗口句柄3!=0)
窗口.设置标题(窗口句柄3,"菠萝")
辅助.等待(200)
线程句柄3=线程.开启("TL蜗牛答题器.线程3函数")
如果结束
//
窗口句柄4=转换.字符型转整型(列表框.获得文本("句柄列表框",3),0)
如果(窗口句柄4!=0)
窗口.设置标题(窗口句柄4,"荔枝")
辅助.等待(200)
线程句柄4=线程.开启("TL蜗牛答题器.线程4函数")
如果结束
//
窗口句柄5=转换.字符型转整型(列表框.获得文本("句柄列表框",4),0)
如果(窗口句柄5!=0)
窗口.设置标题(窗口句柄5,"哈密瓜")
辅助.等待(200)
线程句柄5=线程.开启("TL蜗牛答题器.线程5函数")
如果结束
//
窗口句柄6=转换.字符型转整型(列表框.获得文本("句柄列表框",5),0)
如果(窗口句柄6!=0)
窗口.设置标题(窗口句柄6,"水蜜桃")
辅助.等待(200)
线程句柄6=线程.开启("TL蜗牛答题器.线程6函数")
如果结束
//
窗口句柄7=转换.字符型转整型(列表框.获得文本("句柄列表框",6),0)
如果(窗口句柄7!=0)
窗口.设置标题(窗口句柄7,"甘蔗")
辅助.等待(200)
线程句柄7=线程.开启("TL蜗牛答题器.线程7函数")
如果结束
//
窗口句柄8=转换.字符型转整型(列表框.获得文本("句柄列表框",7),0)
如果(窗口句柄8!=0)
窗口.设置标题(窗口句柄8,"李子")
辅助.等待(200)
线程句柄8=线程.开启("TL蜗牛答题器.线程8函数")
如果结束
//
窗口句柄9=转换.字符型转整型(列表框.获得文本("句柄列表框",8),0)
如果(窗口句柄9!=0)
窗口.设置标题(窗口句柄9,"蜗牛攀爬")
辅助.等待(200)
线程句柄9=线程.开启("TL蜗牛答题器.线程9函数")
如果结束
//
窗口句柄10=转换.字符型转整型(列表框.获得文本("句柄列表框",9),0)
如果(窗口句柄10!=0)
窗口.设置标题(窗口句柄10,"冰情影碟")
辅助.等待(200)
线程句柄10=线程.开启("TL蜗牛答题器.线程10函数")
如果结束
如果(找到窗口个数>0)
列表框.增加文本("列表框1",".....................开始验证答题........................")
否则
    辅助.消息框("没有找到游戏窗口,请先打开游戏再启动答题脚本!")
如果结束
返回 真
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
列表框.增加文本("列表框1",".......................停止答题........................")
线程.关闭(线程句柄1)
线程.关闭(线程句柄2)
线程.关闭(线程句柄3)
线程.关闭(线程句柄4)
线程.关闭(线程句柄5)
线程.关闭(线程句柄6)
线程.关闭(线程句柄7)
线程.关闭(线程句柄8)
线程.关闭(线程句柄9)
线程.关闭(线程句柄10)
返回 真
//函数返回语句
功能结束

功能 逻辑型 初始化()
//这里添加你要执行的代码
辅助.设置托盘("TL蜗牛答题器",假)
编辑框.设置文本("编辑框0",辅助.读配置("配置","账号","D:\\TLCS\\Config.ini") )
编辑框.设置文本("编辑框1",辅助.读配置("配置","密码","D:\\TLCS\\Config.ini") )
如果(辅助.读配置("配置","是否最小化","D:\\TLCS\\Config.ini")=="1")
    复选框.选中("复选框0",真)
否则
    复选框.选中("复选框0",假)
如果结束
控件.可见("句柄列表框",假)
返回 真
功能结束

功能 逻辑型 保存设置_点击()
//这里添加你要执行的代码
辅助.写配置("配置","账号",编辑框.获得文本("编辑框0"),"D:\\TLCS\\Config.ini")
辅助.写配置("配置","密码",编辑框.获得文本("编辑框1"),"D:\\TLCS\\Config.ini")
如果(复选框.获得状态("复选框0")==真)
    辅助.写配置("配置","是否最小化","1","D:\\TLCS\\Config.ini")
否则
    辅助.写配置("配置","是否最小化","0","D:\\TLCS\\Config.ini")
如果结束
返回 真
功能结束

功能 逻辑型 剩余题数_点击()
//这里添加你要执行的代码
整型 剩余题分
剩余题分=lyydt.Surplus(编辑框.获得文本("编辑框0"),编辑框.获得文本("编辑框1"))/12
辅助.消息框(转换.整型转字符型(剩余题分))
返回 真
功能结束
功能 逻辑型 充值地址_点击()
//这里添加你要执行的代码
返回 真
功能结束
空间结束
//空间结束语句



窗口.jpg(20.30 K)
2012-2-20 15:37:13


回复

使用道具 举报

发表于 2012-2-20 16:07:12 | 显示全部楼层
:strong:
回复 支持 反对

使用道具 举报

发表于 2012-2-20 16:43:04 | 显示全部楼层
新手路过
回复 支持 反对

使用道具 举报

发表于 2012-2-20 16:50:46 | 显示全部楼层
不错,  感谢分享。。。
回复 支持 反对

使用道具 举报

发表于 2012-2-20 18:43:36 | 显示全部楼层
关闭线程和句柄那可以用数组!
不知现在TC线程能不能定义全局变量数组!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-2-20 19:19:56 | 显示全部楼层
:L 数组。。。。我一直以为TC没有数组可用的.......结果我枚举的句柄都通过一个列表框来存储
回复 支持 反对

使用道具 举报

发表于 2012-2-20 22:56:44 | 显示全部楼层
写的真好
回复 支持 反对

使用道具 举报

发表于 2012-2-22 22:46:16 | 显示全部楼层
注释再详细点就好了
回复 支持 反对

使用道具 举报

发表于 2012-2-26 00:10:57 | 显示全部楼层
:*,先试试
回复 支持 反对

使用道具 举报

发表于 2012-3-10 19:19:44 | 显示全部楼层
回复 1楼stevenxiexie的帖子

新手学习!拜贴签到!:D
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-4-28 01:29 , Processed in 0.089054 second(s), 25 queries .

Powered by 海安简单软件服务部

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

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