TC官方合作论坛

 找回密码
 立即注册
查看: 1899|回复: 3

[源码分享] QQ仙境自动登录.

[复制链接]
发表于 2012-7-9 18:06:00 | 显示全部楼层 |阅读模式

马上加入TC

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

x
  1. #import "dm.dmsoft" dm

  2. namespace Game_XJ
  3. //定义默认空间


  4. //初始化.注册大漠插件..
  5. function bool init()

  6. bool Notoret=help.isregister("dm.dmsoft")

  7. if(!Notoret) //非逻辑.是否注册

  8. bool OKret=help.regdll("rc:dm.dll",true)

  9. if(OKret)   //是否成功
  10.     help.messagebox("注册插件成功")
  11. else
  12.     help.messagebox("注册插件失败")

  13. endif
  14. endif

  15. return true
  16. endfunction





  17. //开始咯.开始咯.开始咯..!!!!@#¥%……&*干爸爹!!...

  18. int Gamehwnd         //大定义
  19. int MetBindDm,MetUnbindDm,MetRevGame,MetSignGame             //线程定义
  20. int BindDmret,dm_ret,dmx,dmy                 //大漠

  21. //绑定大漠.开始.

  22. function bool BindDm()   //绑定线程大漠

  23. Gamehwnd=window.findwindow("QQ仙境登录程序")
  24. if(Gamehwnd==0)

  25.     help.messagebox("没有找到游戏窗口")

  26. else
  27. BindDmret=dm.BindWindow(Gamehwnd,"dx","normal","normal",0)
  28.     help.sleep(500)

  29. if(BindDmret==0)   //是否成功绑定
  30.    
  31.   help.messagebox("游戏窗口绑定失败")
  32.    
  33. else
  34.      help.messagebox("游戏窗口绑定成功")
  35.         
  36. endif   
  37. endif

  38. return true
  39. endfunction

  40. //解除大漠绑定线程
  41. function bool UnbindDm()    //解绑线程大漠

  42. dm.UnBindWindow()
  43. help.sleep(500)

  44. int Unbindret=dm.IsBind(Gamehwnd)

  45. if(Unbindret==0)     //是否成功解绑
  46. help.messagebox("解除绑成功!或没找到绑定窗口")

  47. else
  48. help.messagebox("解除绑定失败!!!@#$%^")   

  49. endif

  50. return true
  51. endfunction

  52. //检查游戏路径是否被输入.启动游戏!
  53. function bool RevGame()

  54. string Gamepath=browse.gettext("path0")      //游戏路径

  55. int pathleng=str.strleng(Gamepath)           

  56. if (pathleng==0)         //路径长度

  57.     help.messagebox("选择正确的游戏路径,游戏会自动打开")
  58.     help.sleep(1000)
  59.    
  60. while(pathleng==0)            //路径没选择进入循环等待!

  61. help.sleep(5000)
  62. Gamepath=browse.gettext("path0")
  63. pathleng=str.strleng(Gamepath)

  64. endwhile
  65. endif

  66. Gamehwnd=process.openprocess(Gamepath)       //启动游戏

  67. while(Gamehwnd==0)     //循环等待.找到游戏句柄为止

  68. help.sleep(3000)

  69. endwhile
  70. help.sleep(1000)

  71. Gamehwnd=window.findwindow("QQ仙境登录程序")
  72. help.sleep(500)
  73. if(Gamehwnd==0)
  74.     help.sleep(1000)
  75. while(Gamehwnd==0)
  76.     help.sleep(1000)
  77.   Gamehwnd=window.findwindow("QQ仙境登录程序")
  78. endwhile
  79. endif

  80. help.sleep(2000)
  81. dm.SetPath(help.getrcpath("rc:"))

  82. dm_ret=dm.FindPic(0,0,2000,2000,"登录器.bmp","000000",0.9,0,dmx,dmy)  //大漠找图
  83. if(dm_ret!=0)

  84. while(dm_ret!=0)
  85. dm_ret=dm.FindPic(0,0,2000,2000,"登录器.bmp","000000",0.9,0,dmx,dmy)
  86. help.sleep(2000)

  87. endwhile
  88. endif
  89. dm.UnBindWindow()

  90. return true
  91. endfunction


  92. //检查服务器 登录线 帐号与密码。自动登录游戏。。。
  93. function bool SignGame()
  94. MetRevGame=thread.beginthread("Game_XJ.RevGame","")        //开启启动游戏线程
  95. help.sleep(1000)


  96. Gamehwnd=window.findwindow("QQ仙境登录程序")
  97. help.sleep(500)
  98. if(Gamehwnd==0)
  99.     while(Gamehwnd==0)
  100.         help.sleep(2000)
  101.     Gamehwnd=window.findwindow("QQ仙境登录程序")
  102.     endwhile
  103. endif
  104.    
  105.         
  106.         
  107. help.sleep(2000)
  108. dm.SetPath(help.getrcpath("rc:"))

  109. dm_ret=dm.FindPic(0,0,2000,2000,"登录器.bmp","000000",0.9,0,dmx,dmy)  //大漠找图
  110. if(dm_ret!=0)

  111. while(dm_ret!=0)
  112. dm_ret=dm.FindPic(0,0,2000,2000,"登录器.bmp","000000",0.9,0,dmx,dmy)
  113. help.sleep(2000)


  114. endwhile
  115. endif
  116. help.sleep(1000)


  117. dm.UnBindWindow()

  118. int Server=combo.getcursel("ComboBox0")   

  119. int Line=combo.getcursel("ComboBox1")         

  120. int Role=combo.getcursel("ComboBox2")

  121. string GameNumber=edit.gettext("edit0")   //帐号
  122. string Cipher=edit.gettext("edit1")          //密码

  123. if(Server<=0)
  124.    
  125. help.messagebox("请先选择服务器,选择后请等待!")
  126.     help.sleep(500)

  127. while(Server<=0)                       //服务器进入循环等待

  128. help.sleep(3000)
  129. Server=combo.getcursel("ComboBox0")

  130. endwhile
  131. endif
  132. help.sleep(2000)

  133. string ServerlNumber=convert.inttostr(Server)            

  134. select(ServerlNumber)                                     //服务器编号
  135. case "1":
  136. window.leftclick(Gamehwnd,158,150)
  137. 辅助.等待(500)

  138. case "2":
  139. window.leftclick(Gamehwnd,259,150)
  140. 辅助.等待(500)

  141. case "3":
  142. window.leftclick(Gamehwnd,360,150)
  143. 辅助.等待(500)

  144. case "4":
  145. window.leftclick(Gamehwnd,457,150)
  146. 辅助.等待(500)

  147. case "5":
  148. window.leftclick(Gamehwnd,549,150)
  149. 辅助.等待(500)

  150. case "6":
  151. window.leftclick(Gamehwnd,660,123)
  152. 辅助.等待(500)

  153. case "7":
  154. window.leftclick(Gamehwnd,153,155)
  155. 辅助.等待(500)

  156. case "8":
  157. window.leftclick(Gamehwnd,270,185)
  158. 辅助.等待(500)

  159. case "9":
  160. window.leftclick(Gamehwnd,363,185)
  161. 辅助.等待(500)

  162. case "10":
  163. window.leftclick(Gamehwnd,460,185)
  164. 辅助.等待(500)

  165. case "11":
  166. window.leftclick(Gamehwnd,149,340)
  167. 辅助.等待(500)

  168. case "12":
  169. window.leftclick(Gamehwnd,254,340)
  170. 辅助.等待(500)

  171. case "13":
  172. window.leftclick(Gamehwnd,359,340)
  173. 辅助.等待(500)

  174. case "14":
  175. window.leftclick(Gamehwnd,458,340)
  176. 辅助.等待(500)

  177. case "15":
  178. window.leftclick(Gamehwnd,559,340)
  179. 辅助.等待(500)

  180. endselect

  181. help.sleep(1000)
  182. window.mousemove(Gamehwnd,653,475)
  183. help.sleep(500)
  184. window.leftclick(Gamehwnd,653,475)          //确定服务器进入输入帐号密码
  185. help.sleep(3000)

  186. //--------------------------------------------------------------------------
  187. int GameNumberleng=str.strleng(GameNumber)
  188. help.sleep(500)
  189. if(GameNumberleng==0)
  190.     help.sleep(500)

  191. help.inputbox("帐号为空","请输入帐号",GameNumber)
  192. endif

  193. help.sleep(2000)  
  194.    
  195. window.leftdown(Gamehwnd,497,457)                //按下帐号位置
  196. help.sleep(2000)

  197. window.mousemove(Gamehwnd,328,475)           //拉
  198. help.sleep(1000)

  199. window.leftup(Gamehwnd,328,475)                   //选好
  200. help.sleep(1000)

  201. window.sendkeypress(Gamehwnd,8)        //删除账户Backspace键
  202. help.sleep(1000)

  203. window.poststring(Gamehwnd,GameNumber) //输入帐号!
  204. help.sleep(2000)

  205. window.sendkeypress(Gamehwnd,9)          //Tab键
  206. help.sleep(1000)


  207. int Cipherleng=str.strleng(Cipher)

  208. if(Cipherleng==0)
  209. help.inputbox("密码为空","请输入密码",Cipher)
  210. help.sleep(2000)

  211. endif

  212.    
  213. window.poststring(Gamehwnd,Cipher)    //输入密码
  214. help.sleep(2000)

  215. window.sendkeypress(Gamehwnd,13)    //回车键 登录
  216. help.sleep(25000)
  217. //转换窗口句柄,再获取一次

  218. Gamehwnd=window.findwindow("QQ仙境")

  219. while(Gamehwnd==0)                    //循环等待窗口出现

  220. help.sleep(3000)
  221. Gamehwnd=window.findwindow("QQ仙境")

  222. endwhile



  223. help.sleep(2000)
  224. dm.SetPath(help.getrcpath("rc:"))

  225. dm_ret=dm.FindPic(0,0,2000,2000,"选线.bmp","000000",0.9,0,dmx,dmy)  //大漠找图
  226. if(dm_ret!=0)

  227. while(dm_ret!=0)
  228. dm_ret=dm.FindPic(0,0,2000,2000,"选线.bmp","000000",0.9,0,dmx,dmy)
  229. help.sleep(2000)

  230. endwhile
  231. endif




  232. if(Line<=0)
  233.   
  234.   help.messagebox("请选择好需要登录的线,选择后请耐心等待")

  235. while(Line<=0)
  236.     help.sleep(3000)
  237.     Line=combo.getcursel("ComboBox2")
  238.    
  239. endwhile
  240. endif

  241. string LineNumber=convert.inttostr(Line)

  242. select(LineNumber)                 //选择需要登录的线

  243. case "1":
  244. window.leftclick(Gamehwnd,224,331)
  245. help.sleep(1000)

  246. case "2":
  247. window.leftclick(Gamehwnd,368,332)
  248. help.sleep(1000)

  249. case "3":
  250. window.leftclick(Gamehwnd,516,343)
  251. help.sleep(1000)

  252. case "4":
  253. window.leftclick(Gamehwnd,647,344)
  254. help.sleep(1000)

  255. case "5":
  256. window.leftclick(Gamehwnd,791,345)   //
  257. help.sleep(1000)

  258. case "6":
  259. window.leftclick(Gamehwnd,223,400)
  260. help.sleep(1000)

  261. case "7":
  262. window.leftclick(Gamehwnd,371,402)
  263. help.sleep(1000)

  264. case "8":
  265. window.leftclick(Gamehwnd,496,401)
  266. help.sleep(1000)

  267. case "9":
  268. window.leftclick(Gamehwnd,646,402)
  269. help.sleep(1000)

  270. case "10":
  271. window.leftclick(Gamehwnd,788,396)//
  272. help.sleep(1000)

  273. case "11":
  274. window.leftclick(Gamehwnd,231,460)
  275. help.sleep(1000)

  276. case "12":
  277. window.leftclick(Gamehwnd,369,459)
  278. help.sleep(1000)

  279. case "13":
  280. window.leftclick(Gamehwnd,511,458)
  281. help.sleep(1000)

  282. case "14":
  283. window.leftclick(Gamehwnd,647,456)
  284. help.sleep(1000)

  285. case "15":
  286. window.leftclick(Gamehwnd,795,457)//
  287. help.sleep(1000)

  288. case "16":
  289. window.leftclick(Gamehwnd,244,521)
  290. help.sleep(1000)

  291. case "17":
  292. window.leftclick(Gamehwnd,362,522)
  293. help.sleep(1000)

  294. case "18":
  295. window.leftclick(Gamehwnd,520,522)
  296. help.sleep(1000)

  297. case "19":
  298. window.leftclick(Gamehwnd,641,523)
  299. help.sleep(1000)

  300. case "20":
  301. window.leftclick(Gamehwnd,790,527)
  302. help.sleep(1000)

  303. endselect

  304. help.sleep(1000)
  305. window.mousemove(Gamehwnd,508,582)
  306. window.leftclick(Gamehwnd,509,583)        //选线按确定

  307. help.sleep(5000)


  308. //检查是否已到角色面板

  309. Gamehwnd=window.findwindow("QQ仙境")

  310. help.sleep(3000)
  311. dm.SetPath(help.getrcpath("rc:"))

  312. dm_ret=dm.FindPic(0,0,2000,2000,"人物界面.bmp","000000",0.9,0,dmx,dmy)  //大漠找图
  313. if(dm_ret!=0)

  314. while(dm_ret!=0)
  315. dm_ret=dm.FindPic(0,0,2000,2000,"人物界面.bmp","000000",0.9,0,dmx,dmy)
  316. help.sleep(2000)

  317. endwhile
  318. endif



  319. help.sleep(2000)
  320. string  RoleNumber=convert.inttostr(Role)
  321. Gamehwnd=window.findwindow("QQ仙境")

  322. select (RoleNumber)
  323. case "1":
  324. window.leftclick(Gamehwnd,754,226)
  325. help.sleep(1000)

  326. case "2":
  327. window.leftclick(Gamehwnd,771,291)
  328. help.sleep(1000)

  329. case "3":
  330. window.leftclick(Gamehwnd,754,348)
  331. help.sleep(1000)

  332. case "4":
  333. window.leftclick(Gamehwnd,731,399)
  334. help.sleep(1000)

  335. endselect


  336. help.sleep(1000)

  337. window.leftclick(Gamehwnd,444,694)     ///进入游戏


  338. return true
  339. endfunction



  340. //.....开启绑定大漠的线程!
  341. function bool button0_click()

  342. MetBindDm=thread.beginthread("Game_XJ.BindDm","")//绑()
  343. help.sleep(500)

  344. return true
  345. endfunction





  346. //.按钮。。/开启解除大漠绑定的线程
  347. function bool button1_click()

  348. MetUnbindDm=thread.beginthread("Game_XJ.UnbindDm","")//解()
  349. help.sleep(500)

  350. return true
  351. endfunction

  352. //按钮。。。关闭Tc所有线程//////////////////////////////////////////////////////
  353. function bool button2_click()

  354. thread.closethread(MetBindDm)        //关闭绑大漠线程
  355. help.sleep(500)

  356. thread.closethread(MetUnbindDm)    //关闭解大漠线程
  357. help.sleep(500)

  358. thread.closethread(MetRevGame)  //关闭启动游戏线程
  359. help.sleep(500)

  360. thread.closethread(MetSignGame)   //关闭登录 线程
  361. help.sleep(500)

  362. help.messagebox("所有线程已经关闭")      
  363. help.sleep(500)

  364. help.exit()
  365. return true
  366. endfunction

  367. //按钮。。。启动游戏..
  368. function bool button3_click()

  369. MetRevGame=thread.beginthread("Game_XJ.RevGame","")
  370. help.sleep(500)

  371. return true
  372. endfunction



  373. //按钮。。。登录服务器!
  374. function bool button4_click()

  375. MetSignGame=thread.beginthread("Game_XJ.SignGame","")
  376. help.sleep(500)

  377. return true
  378. endfunction


  379. endnamespace
  380. //空间结束语句
复制代码



                               学了有一个月TC了吧..呼呼!!学会的都弄上去了。。呵呵
可惜最后还是后台找图没能如愿 。。改用前台找图做判断..算是暂时丢下这东西了!学大漠去 找图找色找字去

回复

使用道具 举报

发表于 2012-7-9 18:41:58 | 显示全部楼层
插件区正在准备介绍大漠~欢迎分享~
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-7-9 18:57:54 | 显示全部楼层
回复 2楼TC兔子的帖子

谢谢..普通的大漠找图..后台找图 大概也懂了、

想看看一些..详细介绍如何更容易成功找到图..

同一张图。。后台却找不到 。。非常郁闷!!
后台抓图 能抓 测试过了
回复 支持 反对

使用道具 举报

发表于 2013-3-16 17:56:48 | 显示全部楼层
学习 学习 继续学习学习
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-21 11:55 , Processed in 0.035116 second(s), 22 queries .

Powered by 海安简单软件服务部

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

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