|
马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
本帖最后由 qq411605443 于 2015-4-10 23:14 编辑
小白跟着官方教程做了一个前台的,后来想改成后台多开真是无从下手。
于是跟一个人要了一个源码,照葫芦画瓢的将自己想要的东西塞在里面。
最后果不其然的失败了,求一个大腿帮忙看看。
- //我的思路流程
- //鼠标放在游戏窗口,按F1,这个窗口进入后台托管状态.
- //托管状态:开始循环后台找图,找到开始则点击开始,找到筹码则点击筹码,找到坐标的颜色符合则进入牌力判定
- //牌力判定:根据找图跟取色判定牌力分,牌力分大于19或者等于2,则提示好牌,播放提示音.终止此窗口托管状态.
- //否则寻找过牌与放弃按钮,找到则点击,优先点击过牌,没有过牌点击放弃.
- //通过F1进入托管状态的窗口一直循环,直到提示好牌终止.
- 空间 九九托管
- sz=数组[7],jz=数组[7],对象=数组[7]
- 功能 启动()//开启
- jb=窗口.鼠标所在窗口句柄(),i=0
- if(窗口.类名(jb)!="AfxWnd70u")
- 返回 假
- endif
- 辅助.等待(100)
- for(i=0;i<6;i++)
- 如果(jb==sz[i])
- 跳出
- 否则
- 如果(sz[i]==null)
- 对象[i]=com("dm.dmsoft")
- jz[i]=线程.扩展开启("九九托管.打牌",i,"九九托管.解绑",i)
- sz[i]=jb
- 跳出
- 如果结束
- 如果结束
- endfor
- 功能结束
- 功能 停止()//关闭
- jb=窗口.鼠标所在窗口句柄()
- for(i=0;i<6;i++)
- 如果(jb==sz[i])
- a=0
- 个数=列表框.得到个数("列表框0")
- 循环(a<个数)
- if(jb==列表框.获得文本("列表框0",a))
- 列表框.删除文本("列表框0",a)
- endif
- a=a+1
- 循环结束
- 线程.关闭(jz[i])
- 辅助.蜂鸣(1000,200)
- sz[i]=null
- jz[i]=0
- 辅助.等待(1000)
- 跳出
- 如果结束
- endfor
- 功能结束
- 功能 解绑(i)
- dm=对象[i]
- dm.UnBindWindow()
- 功能结束
- 功能 打牌(i)
- dm=对象[i],x,y
- hwnd=窗口.鼠标所在窗口句柄()
- if(dm.BindWindow(hwnd,"gdi","windows3","normal",0)==0)
- 辅助.消息框("绑定失败")
- 返回 真
- endif
- 列表框.插入文本("列表框0",hwnd,0)
- 辅助.蜂鸣(1000,200)
- dm.SetShowErrorMsg(0)
- 系统.设置路径(系统.获取程序路径()&"\\pic")
- 循环(真)
- 变量 发牌完毕,同花分,一号牌,二号牌
- dm.MoveTo(5,5)
- dm.LeftClick()
- dm.FindPic(533,462,933,697,"rc:开始.bmp|rc:筹码.bmp","000000",0.9,0,x,y)
- 如果(x>0)
- dm.MoveTo(x,y)
- 辅助.等待(5)
- dm.LeftClick()
- dm.LeftClick()
- 编辑框.设置文本("编辑框0","等待发牌")
- 如果结束
- 牌框=dm.GetColor(538,452)
- 如果(牌框==#000000)
- 辅助.等待(50)
- dm.FindPic(470,438,552,494,"rc:同花条.bmp","000000",0.9,0,x,y)
- 如果(x> 0)
- 同花分=9
- 如果结束
- 牌力0=dm.GetColor(501,446)
- 如果(牌力0==#43EE11)
- 一号牌=10
- 如果结束
- 如果(牌力0==#00A2E8)
- 一号牌=0
- 如果结束
- 如果(牌力0==#FF7F27)
- 一号牌=1
- 如果结束
- 如果(牌力0==#A349A4)
- 一号牌=11
- 如果结束
- 牌力1=dm.GetColor(544,448)
- 如果(牌力1==#43EE11)
- 一号牌=10
- 如果结束
- 如果(牌力1==#00A2E8)
- 一号牌=0
- 如果结束
- 如果(牌力1==#FF7F27)
- 一号牌=1
- 如果结束
- 如果(牌力1==#A349A4)
- 一号牌=11
- 如果结束
- 牌分=同花分+一号牌+二号牌
- 编辑框.设置文本("编辑框1",牌分)
- 如果(牌分>19||牌分==2)
- ID = 辅助.播放("rc:BackGround.wav")
-
- 辅助.消息框("好牌!")
-
- 辅助.停止播放(ID)
- 跳出 //这里应该怎么停止循环操作??????
- 否则
- dm.FindPic(605,633,679,666,"rc:弃牌.bmp","000000",0.9,0,x,y)
- 如果(x> 0)
- dm.FindPic(333,633,412,666,"rc:让牌.bmp","000000",0.9,0,x,y)
- dm.MoveTo(x,y)
- 辅助.等待(5)
- dm.LeftClick()
- dm.LeftClick()
- 编辑框.设置文本("编辑框0","已经让牌/弃牌") //如果不可以让牌,这里点击弃牌.
-
- 否则
- 辅助.消息框("找不到弃牌")
- 如果结束
- 如果结束
- 如果结束
-
- 循环结束
-
- 功能结束
- 功能 初始化()
- 是否注册=辅助.是否注册("dm.dmsoft")
- 如果(!是否注册)
- 是否成功=辅助.注册插件(系统.获取程序路径()&"\\pic\\dm.dll",真)
-
- 如果(是否成功)
-
-
- 否则
-
- 辅助.消息框("插件注册失败","提示")
-
- 如果结束
- else
- dm=com("dm.dmsoft")
- if(dm.Ver()!="3.1233")
- 辅助.注册插件(系统.获取程序路径()&"\\pic\\dm.dll",假)
- 辅助.消息框("插件更新,请重新打开软件")
- endif
- 如果结束
- 线程.开启("九九托管.检测","")
- 功能结束
- 功能 检测()
- dm=com("dm.dmsoft")
- 循环(真)
- ii=0
- 个数=列表框.得到个数("列表框0")
- 循环(ii<个数)
- if(!窗口.是否存在(列表框.获得文本("列表框0",ii)))
- jb=列表框.获得文本("列表框0",ii)
- for(i=0;i<7;i++)
- 如果(jb==sz[i])
- a=0
- 个数=列表框.得到个数("列表框0")
- 循环(a<个数)
- if(jb==列表框.获得文本("列表框0",a))
- 列表框.删除文本("列表框0",a)
- endif
- a=a+1
- 循环结束
- 线程.关闭(jz[i])
- 辅助.蜂鸣(1000,200)
- sz[i]=null
- jz[i]=0
- 辅助.等待(1000)
- goto 结束
- 如果结束
- endfor
- endif
- ii=ii+1
- 循环结束
- 结束:
- 辅助.等待(1000)
-
- 循环结束
- 功能结束
- 功能 热键0_热键()
- 线程.开启("九九托管.启动","")
- 功能结束
- 功能 热键1_热键()
- 线程.开启("九九托管.停止","")
- 功能结束
- 空间结束
复制代码
|
|