TC官方合作论坛

 找回密码
 立即注册
查看: 100676|回复: 757

[游戏] 【有源码】【12-10升级】天龙八部3多开后台自动打怪,暗雪人工答题,自动回血回蓝喊话

  [复制链接]
发表于 2012-12-7 12:11:30 | 显示全部楼层 |阅读模式
【2012-12-10 升级功能】增加窗口回收功能,可实现窗口单停,停止后可再次重启,方便对某个游戏窗口进行独立手工控制,附件下载已经更新!




【2012-12-7 首发】呵呵,刚研究TC没几天,感觉不错,果然是简单软件开发工具,名符其实啊,用了几天感觉对于脚本开发确实不错,并可根据自身需要调用其它插件来完成更强大的脚本功能。以下是我花2天时间写的一个天龙八部3的自动打怪,回血回蓝,自动喊话,并集成暗雪人工代答接口,完成答题流程。

上实例旨在交流学习,演示从截取防挂机验证码图片,并利用答题接口发送题目,回答等基本流程。并涉及一些其它的TC知识点,如:配置文件的的读写,保存功能;还有函数调用方法,插件调用注册。利用大漠绑定窗口,找图找色等一系列动作。

注意:本程序绝无病毒,但360还是会提示,可能是因为调用大漠插件的源因,或者可能是答题时访问了我们的服务器的原因,请放心使用。或者您可以直接帮我们点击一下让360信任也行,这样多人提交后,以后就不人提示了,谢谢!

声明:本人技术有限,还是有很多技术难题没有攻克,比如:”自动捡包“暂时没有实现,过后如果研究出来,我会再发升级版上来供大家参考交流学习;还有有些如答案正确与否的判断,报错,及同是发题或题目延迟等功能,还没有完善,日后我会逐渐完善的。此案例旨在完成一个答题的基本流程及打怪等功能,其它未完善功能,请根据自身需要来修改扩展,欢迎指正,也欢迎TC爱好者交流学习。

先上传部分源码,附件请回贴索取,支持一下喔,谢谢!



#import "Ansay.soft" AX  //调用暗雪代答插件
#import "dm.dmsoft" dm  //调用大漠插件
//插件下载:http://www.ansay.net/Download.asp
//函数说明:http://www.ansay.net/ArticleShow.asp?Id=3
//插件实例:http://www.ansay.net/ArticleShow.asp?Id=4

空间 XX游戏答题器
//定义默认空间
string SoftName  //软件名称
string aUserName //保存帐户
string aPassWord //保存密码
bool RadioAnsay  //是否启用暗雪答题
bool RadioMusic  //是否启用播放音乐
string SysPath  //程序所在路径
string aQuestionNo //题号
string aStrs  //答案
string aMemo  //答题实时状态显示内容
int dm_ret  //大漠窗口绑定返回状态
int[] 线程句柄集
int WinNum  //枚举到的总窗口数量,用于结束退出
int 单线程句柄  //单个窗口时
int 剩余题分  //剩余题分
int MusicId  //音乐播放ID,用于停止播放调用

功能 逻辑型 枚举窗口(逻辑型 脚本开关)
    bool 是否开启脚本=脚本开关 //用来判断枚举测试或直接启动脚本
    列表框.清空("句柄列表框")
    //先读取枚举窗口参数
    string Wtitle=编辑框.获得文本("WinTitle") //窗口标题
    string Wclass=编辑框.获得文本("WinClass") //窗口类名
    bool IsWinTitle=单选框.获得状态("EnumTitle") //选中则使用窗口标题枚举
   
    //举例说明:比如天龙八部,使用窗口标题枚举的话,可以写“天龙八部”,
    //但如果此时有其它程序或窗口名也包含“天龙八部”四个字的话,也会被被包括进来。
    //因此,推荐使用类名枚举,天龙八部的类名是“TianLongBaBu WndClass”这样就不会枚举到其它窗口了
   
   
    //开始枚举所需要的窗口
    字符型 窗口句柄集
    字符型 截取的句柄
    字符型 当前窗口标题
    整型 分隔符位置
    整型 循环枚举次数
    循环枚举次数=10
   
    //使用窗口名称枚举
    if (IsWinTitle)
        窗口句柄集=系统.枚举(Wtitle,0)
    else
        窗口句柄集=系统.枚举(Wclass,1) //使用窗口名称枚举
    endif
   
    if (窗口句柄集=="")
        help.messagebox("枚举窗口参数未设置错误或找不到符合条件的窗口",SoftName)
    else
        string[] 切割句柄值 //用来分解窗口句柄
        bool 切割窗口句柄集=字符串.分割(窗口句柄集,"|",切割句柄值)
        int c1,c2,c3 //句柄分割后的句柄值
        int Yx=0
        if(切割窗口句柄集)         
            数组.大小(切割句柄值,c1,c2,c3)
            线程句柄集=整型[c1]
            WinNum=c1 //把枚举到的窗口数量给全局变量,用于结束线程使用
            while(Yx<c1)
                列表框.增加文本("句柄列表框",切割句柄值[Yx]+"..."+窗口.得到标题(转换.字符型转整型(切割句柄值[Yx])))
                //设定窗口标题,并打开绑定窗口线程,如果脚本开关是TRUE,则启动线程
                if(是否开启脚本)
                    dm_ret=dm.SetWindowText(转换.字符型转整型(切割句柄值[Yx]),"Game-"+转换.整型转字符型(Yx))
                    线程句柄集[Yx]=线程.扩展开启("XX游戏答题器.窗口绑定",切割句柄值[Yx],"XX游戏答题器.大漠解绑","参数B不改")
                endif
                Yx=Yx+1
            endwhile
            列表框.增加文本("句柄列表框",".......总共找到"+转换.整型转字符型(c1)+"个符合条件的窗口.....")
        else
            //打开绑定窗口线程,如果脚本开关是TRUE,则启动线程
            if(是否开启脚本)
                单线程句柄=线程.扩展开启("XX游戏答题器.窗口绑定",窗口句柄集,"XX游戏答题器.大漠解绑","参数B不改")
            endif
            列表框.增加文本("句柄列表框",窗口句柄集+"..."+窗口.得到标题(转换.字符型转整型(窗口句柄集)))
            列表框.增加文本("句柄列表框",".......总共找到 1 个符合条件的窗口.....")
            WinNum=1
        endif
        
    endif
   
    返回 真
功能结束

功能 逻辑型 测试发题()
    //发图前要先查一下积分够不?不够就不让执行
    //int GetCredits(string UserId,string Password)
    aUserName=编辑框.获得文本("gUserName")
    aPassWord=编辑框.获得文本("gPassWord")
   
    if(XX游戏答题器.检查题分(aUserName,aPassWord))
        //函数说明 string SendFile(string UserId,string Password,int gItemNo,string FilePath,int TimeOut)
        
        //先弹出对话框选取图片文件,支持JPG,GIF,BMP,WMF,ICO
        string aFilePath=file.dialog(1,"jpg文件(*.jpg)|*.jpg|gif文件(*.gif)|*.gif|bmp文件(*.bmp)|*.bmp||")
        aMemo=编辑框.获得文本("ReportText")
        
        //执行函数
        aQuestionNo=AX.SendFile(aUserName,aPassWord,1001,aFilePath,200)
        下拉框.增加文本("题号下拉框",aQuestionNo)
        下拉框.设置选项("题号下拉框",下拉框.得到个数("题号下拉框")-1)
        //发送图片文件后,启动定时器
        定时器.注册("定时取答案",3000)
        标签.设置文本("JiFen","剩余题分:"+convert.inttostr(剩余题分)+"分")
    endif
   
    返回 真
功能结束

功能 逻辑型 窗口绑定(字符型 句柄值)
    //绑定窗口
    int 窗口句柄=转换.字符型转整型(句柄值)
    dm_ret=dm.BindWindow(窗口句柄,"dx","dx2","dx",0)
    int X,Y //找图坐标
   
    if (dm_ret==1)
        //XX游戏答题器.自动喊话(窗口句柄)
        //开始打怪并判断是否有出现验证码,有就启动答题过程
        XX游戏答题器.打怪()
    else
        help.messagebox("窗口绑定失败",SoftName)
    endif
   
    返回 真
功能结束
功能 整型 大漠解绑(字符型 参数)
    dm_ret = dm.UnBindWindow()
    返回 0
功能结束

功能 逻辑型 自动喊话(整型 句柄窗口)
    //自动喊话写在这里,可根据自己需要的地方调用,也可进行扩展,比如增加多句喊话
    循环 (真)
        dm.SendString(句柄窗口,"代答请找暗雪人工代答,正确率97%以上。") //可通过控件来做设置给玩家自定义
        辅助.等待(1000)
        dm.KeyPress(13)  
        辅助.等待(辅助.随机数(2000,5000))
    循环结束
    返回 真
功能结束

功能 逻辑型 打怪()
    //窗口绑定后,开始打怪,血蓝我固定约30%开始自动回补,如需要由用户设置,可自设置控件供用户设定
    int 血=109
    int 蓝=109
    int X,Y //找图坐标
    bool GetAnsay=单选框.获得状态("GetAnsay") //是否启用答题
   
    循环(真)
        help.sleep(50)      
        if(dm.FindPic(1,1,1000,700,SysPath+"tu.bmp","202020",1.0,0,X,Y)!=-1)
            //如果找到图,有码,就把图存下来
            dm_ret = dm.Capture(X-28,Y+94,X+135,Y+262,SysPath+"screen.bmp")
            
            //if(GetAnsay) 如果你希望播放音乐,请把下面的236-240行代码注释取消
            XX游戏答题器.答题()
            //else
            //XX游戏答题器.播放音乐()
            //endif            
        endif
        
        dm_ret=dm.FindColor(320,34,321,36,"ea1200-202020",1.0,0,X,Y)
        if(dm_ret==1)
            dm_ret=dm.KeyPress(112)
        else
            dm_ret=dm.KeyDown(17)
            help.sleep(10)
            dm_ret=dm.KeyPress(9)
            help.sleep(10)
            dm_ret=dm.KeyUp(17)
        endif
        
        dm_ret=dm.FindColor(血,34,血+1,36,"ea1200-202020",1.0,0,X,Y)
        if(dm_ret==0)
            dm_ret=dm.KeyPress(119)
        endif
        
        dm_ret=dm.FindColor(蓝,42,蓝+1,44,"3736ea-303030",1.0,0,X,Y)
        if(dm_ret==0)
            dm_ret=dm.KeyPress(120)
        endif
        
        dm_ret=dm.FindColor(150,82,151,84,"ea0e00-303030",1.0,0,X,Y)
        if(dm_ret==0)
            dm_ret=dm.KeyPress(121)
        endif
    循环结束
   
    返回 真
功能结束


游客,如果您要查看本帖隐藏内容请回复


本帖子中包含更多资源

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

x
回复

使用道具 举报

发表于 2012-12-7 12:18:11 | 显示全部楼层
ding
回复 支持 反对

使用道具 举报

发表于 2012-12-7 12:18:26 | 显示全部楼层
支持了。
回复 支持 反对

使用道具 举报

发表于 2012-12-7 13:04:42 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

发表于 2012-12-7 13:10:26 | 显示全部楼层
学习
回复 支持 反对

使用道具 举报

发表于 2012-12-7 13:12:27 | 显示全部楼层
这个要支持下!!
回复 支持 反对

使用道具 举报

发表于 2012-12-7 13:30:40 | 显示全部楼层
回复 1楼ansay的帖子

天龙八部3多开后台自动打怪,
回复 支持 反对

使用道具 举报

发表于 2012-12-7 20:05:28 | 显示全部楼层
回复 支持 反对

使用道具 举报

 楼主| 发表于 2012-12-7 20:40:53 | 显示全部楼层
如果你没明白暗雪人工代答是如何调用的,可以参考本贴实例

暗雪代答/暗雪人工答题/暗雪远程答题/人工答题插件-----TC实例
http://bbs.tyuyan.com/thread-20878-1-1.html
回复 支持 反对

使用道具 举报

发表于 2012-12-8 10:40:49 | 显示全部楼层
我需要这个
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-5-8 04:06 , Processed in 0.052406 second(s), 26 queries .

Powered by 海安简单软件服务部

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

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