TC官方合作论坛

 找回密码
 立即注册
查看: 3180|回复: 6

[游戏] 完美国际2打怪加红蓝脚本附源码

[复制链接]
发表于 2015-3-6 03:52:01 | 显示全部楼层 |阅读模式
本帖最后由 爱上老公 于 2015-3-6 04:20 编辑

自动打怪红蓝,功能简单,大神勿喷!


空间 完美世界国际版2辅助
变量 dm
dm=com("dm.dmsoft")
窗口句柄
线程句柄

功能 初始化()
    dm=com("dm.dmsoft")
    是否成功=辅助.注册插件("rc:dm.dll",真)
    如果(!是否成功)
        辅助.消息框("插件注册失败!")
    否则
        // dm.setpath(辅助.获取资源路径("rc:"))
        路径=辅助.获取资源路径("rc:")
        窗口句柄 = dm.FindWindow("","完美世界国际版2")
        dm_ret = dm.BindWindow(窗口句柄,"normal","normal","normal",0)
    如果结束
功能结束

功能 获取键码(按键)//设置打怪红蓝键码
    键值=-1
    选择(按键)
        条件 "F1":
        键值=112
        条件 "F2":
        键值=113
        条件 "F3":
        键值=114
        条件 "F4":
        键值=115
        条件 "F5":
        键值=116
        条件 "F6":
        键值=117
        条件 "F7":
        键值=118
        条件 "F8":
        键值=119
        条件 "F9":
        键值=120
        条件 "0":
        键值=48
        条件 "1":
        键值=49
        条件 "2":
        键值=50
        条件 "3":
        键值=51
        条件 "4":
        键值=52
        条件 "5":
        键值=53
        条件 "6":
        键值=54
        条件 "7":
        键值=55
        条件 "8":
        键值=56
        条件 "9":
        键值=57
    选择结束
    返回 键值
功能结束

功能 加红蓝打怪()
    s1,m1,s2,m2,加血数,加蓝数,a,b,c,d,e,原始血量,系数n
    加血灵药键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框1",下拉框.得到选项("下拉框1")))
    加血技能键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框2",下拉框.得到选项("下拉框2")))
    加蓝灵丹键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框3",下拉框.得到选项("下拉框3")))

    dm.setpath(辅助.获取资源路径("rc:"))
    dm_ret1 = dm.SetDict(0,"数字1.txt")
    辅助.等待(500)
    s2 = dm.Ocr(184,38,213,51,"ffffff-000000",1.0)//找人物总血量
    m2 = dm.Ocr(172,53,198,66,"ffffff-000000",1.0)//找人物总蓝量
    内容1=编辑框.获得文本("编辑框0")//设置加血百分比
    内容2=编辑框.获得文本("编辑框1")//设置加蓝百分比
    //调试输出(s2)
    如果(内容1=="")
        编辑框.设置文本("编辑框0","80")//如果没有设置,脚本默认百分之80
    如果结束
    如果(内容2=="")
        编辑框.设置文本("编辑框1","80")//如果没有设置,脚本默认百分之80
    如果结束
    循环(真)
        辅助.等待(500)
        s1 = dm.Ocr(147,36,180,53,"ffffff-000000",1.0)//找打怪的时候的当前血量
        辅助.等待(50)
        当前血量=类型.转整型(s1)
        原始血量=类型.转整型(s2)
        加血数=类型.转整型(编辑框.获得文本("编辑框0"))/100*原始血量
        //调试输出(s1)

        如果(当前血量-加血数<=0)
            dm.KeyPress(加血灵药键码)
            dm.KeyPress(加血技能键码)
            辅助.等待(100)
        否则
            完美世界国际版2辅助.打怪()
        如果结束//下面是界面显示人物血量和蓝量模拟血条的实现,主要用到控件控件设置位置
        m1 = dm.Ocr(139,54,167,64,"ffffff-000000",1.0)//找打怪的时候的当前蓝量
        辅助.等待(50)
        当前蓝量=类型.转整型(m1)
        原始蓝量=类型.转整型(m2)
        加蓝数=类型.转整型(编辑框.获得文本("编辑框1"))/100*原始蓝量
        如果(当前蓝量-加蓝数<=0)
            dm.KeyPress(加蓝灵丹键码)
            辅助.等待(100)
        如果结束
        系数n=类型.取整((原始血量+原始蓝量)/275)
        a=类型.取整(原始血量/系数n)
        b=类型.取整(当前血量/系数n)
        c=类型.取整(原始蓝量/系数n)
        d=类型.取整(当前蓝量/系数n)
        e=a+c
        控件.设置位置("分组框0",4,172,e,10,2)
        控件.设置位置("标签0",4,172,b,10,0)

        控件.设置位置("标签1",a+4,172,d,10,0)
    循环结束
功能结束

//下面是刷新怪物,截图找图,3个图要不相同才截取
功能 按钮0_点击()
    图片X坐标,图片Y坐标,图像序号
    图片X1坐标,图片Y1坐标,图像序号1
    图片X2坐标,图片Y2坐标,图像序号2
    文件.删除("D:\\11.bmp")
    辅助.等待(50)
    文件.删除("D:\\12.bmp")
    辅助.等待(50)
    文件.删除("D:\\13.bmp")
    辅助.等待(50)
    窗口句柄 = dm.FindWindow("","完美世界国际版2")
    窗口.置顶(窗口句柄,真)

    辅助.等待(2000)
    dm.KeyPress(9)
    辅助.等待(500)
    dm_ret2 = dm.Capture(634,47,728,67,"D:\\11.bmp")
    辅助.等待(500)
    图片框.设置图片("图片框0","D:\\11.bmp")

    遍历(5)
        是否存在
        辅助.等待(500)
        图像序号 = dm.FindPic(560,30,776,91,"D:\\11.bmp","000000",0.9,0,图片X坐标,图片Y坐标)
        如果(图片X坐标<0)
            dm_ret3 = dm.Capture(634,47,728,67,"D:\\12.bmp")
            辅助.等待(500)
            图片框.设置图片("图片框1","D:\\12.bmp")
            辅助.等待(300)
        否则
            dm.KeyPress(9)
            辅助.等待(300)
        如果结束
        是否存在=文件.是否存在("D:\\12.bmp")
        如果(是否存在)
            跳出
        如果结束   
    遍历结束

    遍历(5)
        是否存在1
        辅助.等待(500)
        图像序号1 = dm.FindPic(593,19,753,97,"D:\\11.bmp","000000",0.9,0,图片X1坐标,图片Y1坐标)
        图像序号2 = dm.FindPic(593,19,753,97,"D:\\12.bmp","000000",0.9,0,图片X2坐标,图片Y2坐标)
        如果(图片X1坐标<0&&图片X2坐标<0)
            dm_ret4 = dm.Capture(634,47,728,67,"D:\\13.bmp")
            辅助.等待(500)
            图片框.设置图片("图片框2","D:\\13.bmp")
            辅助.等待(300)
        否则
            dm.KeyPress(9)
            辅助.等待(300)
        如果结束
        是否存在1=文件.是否存在("D:\\13.bmp")
        如果(是否存在1)
            跳出
        如果结束
    遍历结束

功能结束
//下面是单选框指定打怪,找图命令
功能 打怪()
    图片X坐标,图片Y坐标,图像序号
    图片X1坐标,图片Y1坐标,图像序号1
    图片X2坐标,图片Y2坐标,图像序号2
    如果(单选框.获得状态("单选框0"))
        图像序号 = dm.FindPic(593,19,753,97,"D:\\11.bmp","000000",1.0,0,图片X坐标,图片Y坐标)
        如果(图片X坐标>0)
            完美世界国际版2辅助.打怪步骤()
        否则
            dm.KeyPress(9)
        如果结束
    如果结束

    如果(单选框.获得状态("单选框1"))
        图像序号1 = dm.FindPic(593,19,753,97,"D:\\12.bmp","000000",1.0,0,图片X1坐标,图片Y1坐标)
        如果(图片X1坐标>0)
            完美世界国际版2辅助.打怪步骤()
        否则
            dm.KeyPress(9)
        如果结束
    如果结束

    如果(单选框.获得状态("单选框2"))
        图像序号2 = dm.FindPic(593,19,753,97,"D:\\13.bmp","000000",1.0,0,图片X2坐标,图片Y2坐标)
        如果(图片X2坐标>0)
            完美世界国际版2辅助.打怪步骤()
        否则
            dm.KeyPress(9)
        如果结束
    如果结束
功能结束
//遇到法术抵抗的怪按键7,否则按键1,找图
功能 打怪步骤()
    图像序号,图片X坐标,图片Y坐标
    打怪技能键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框0",下拉框.得到选项("下拉框0")))
    图像序号 = dm.FindPic(585,66,738,114,"D:\\法术抵抗.bmp","000000",0.9,0,图片X坐标,图片Y坐标)
    如果(图片X坐标>0)
        dm.KeyPress(55)//7放技能
        辅助.等待(3000)  
    否则
        dm.KeyPress(打怪技能键码)
        辅助.等待(3000)
    如果结束
功能结束
//获取系统时间
功能 定时器0_时钟()
    时间=系统.时间(3)
    标签.设置文本("标签8",字符串.连接(类型.转字符型(时间),"正在挂机!"))
功能结束
//启动设置,下拉框设置打怪加红蓝按键,没有全部设置标签变红色,设置好了标签颜色不变并执行打怪
功能 热键0_热键()
    内容,内容1,内容2,内容3
    内容=下拉框.获得文本("下拉框0")
    内容1=下拉框.获得文本("下拉框1")
    内容2=下拉框.获得文本("下拉框2")
    内容3=下拉框.获得文本("下拉框3")
    如果(内容==""||内容1==""||内容2==""||内容3=="")
        标签.设置文本("标签9","请设置全部按键!")
        标签.设置颜色("标签2",#ff0000,1)
        标签.设置颜色("标签3",#ff0000,1)
        标签.设置颜色("标签4",#ff0000,1)
        标签.设置颜色("标签5",#ff0000,1)
    否则
        标签.设置文本("标签9","")
        标签.设置颜色("标签2",#ece9d8,1)
        标签.设置颜色("标签3",#ece9d8,1)
        标签.设置颜色("标签4",#ece9d8,1)
        标签.设置颜色("标签5",#ece9d8,1)
        线程句柄=线程.开启("完美世界国际版2辅助.加红蓝打怪","")
        定时器.注册("定时器0",1000)
    如果结束
功能结束

功能 热键0_失去焦点()
    热键.销毁("热键0")
    热键.注册("热键0")
功能结束

功能 热键1_失去焦点()
    热键.销毁("热键1")
    热键.注册("热键1")
功能结束

功能 热键2_失去焦点()
    热键.销毁("热键2")
    热键.注册("热键2")
功能结束

功能 热键1_热键()
    线程.暂停(线程句柄)

功能结束

功能 热键2_热键()
    线程.关闭(线程句柄)
    定时器.销毁("定时器0")

功能结束

功能 下拉框0_选择改变()
    打怪技能键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框0",下拉框.得到选项("下拉框0")))
功能结束

功能 下拉框1_选择改变()
    加血灵药键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框1",下拉框.得到选项("下拉框1")))
功能结束

功能 下拉框2_选择改变()
    加血技能键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框2",下拉框.得到选项("下拉框2")))
功能结束

功能 下拉框3_选择改变()
    加蓝灵丹键码=完美世界国际版2辅助.获取键码(下拉框.获得内容("下拉框3",下拉框.得到选项("下拉框3")))
功能结束


空间结束













本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2015-3-6 04:03:46 | 显示全部楼层
板凳自己的
学了一个星期了,发个东西出来,算是检验下自己吧,之前也有发过一个完美国际的,但这次应该说要好那么一点点
因为完美世界怪物字体实在没办法识别出来(我说的是系统字库),自己又不想去做那么大个工程,所以就用到了找图,
tab键选怪截图怪物名字,最多3种怪(当然如果地图附近只有一种怪,也只截取一张图片显示出来再图片框),然后在指定区域找图
找到单选框指定图片名字怪物就会执行打怪加红蓝,哦,上面忘了加注释。。。。。。
回复 支持 反对

使用道具 举报

发表于 2015-3-6 14:01:56 | 显示全部楼层
谢谢楼主分享  支持下
回复 支持 反对

使用道具 举报

发表于 2015-3-16 23:44:00 | 显示全部楼层
顶下学习了,短短界面写下来好长呀,真不知道自己敢不敢坚持下去.
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-3-17 02:18:51 | 显示全部楼层
good 发表于 2015-3-16 23:44
顶下学习了,短短界面写下来好长呀,真不知道自己敢不敢坚持下去.

你先看下我做的,把颜色值和对应坐标改下,应该能用,我以前也是用别人的,后来慢慢自己改
回复 支持 反对

使用道具 举报

发表于 2015-7-20 19:40:53 | 显示全部楼层
楼主 这脚本写好了怎么 用在游戏里面呢
回复 支持 反对

使用道具 举报

 楼主| 发表于 2015-7-21 11:29:08 | 显示全部楼层
hutu0530 发表于 2015-7-20 19:40
楼主 这脚本写好了怎么 用在游戏里面呢

先开游戏,再开脚本,有地方根据需要改
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-6-2 16:00 , Processed in 0.042806 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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