TC官方合作论坛
标题:
个人编写九阴真经练琴脚本遇到一个问题,求高手帮忙(附源码)
[打印本页]
作者:
25262875
时间:
2012-6-27 12:44
标题:
个人编写九阴真经练琴脚本遇到一个问题,求高手帮忙(附源码)
我这里有个很奇怪的问题。一共4个点,图片颜色在点上变换的时候,按一下键盘,测试的时候,4个点变换颜色的时候,按下去,都没问题,可是正式用的时候,老有一个固定点不给按键。愁死了。。。。。。找不到问题了。。。
一开始想的是不是坐标不对,于是给X轴和Y轴都改变了下坐标,靠前点,但是左边第三行那个点有很少时候,会自动按,其他的没问题,请大神帮帮忙谢谢。
#import "dm.dmsoft" dm
空间 测试
int s1,s2,s3,s4//第1-4个按钮对应的字母
整型 线程句柄
功能 逻辑型 找图片(字符型 param1)
整型 窗口句柄 = 窗口.找到窗口("九阴真经")
循环(真)
//再次分割,得到图片序号以及图片坐标
string[] rrs=string[1] //需要先初始化一次
辅助.等待(10)
string str1=param1
辅助.等待(10)
bool isk=str.split(str1,",",rrs)
辅助.等待(10)
整型 dm_ret = dm.CmpColor(转换.字符型转整型(rrs[1],0),转换.字符型转整型(rrs[2],0),rrs[3],0.9)
辅助.等待(100)
如果( dm_ret = =0 )
辅助.等待(10)
否则
//辅助.消息框("aaa"+rrs[0])
窗口.提交按键(窗口句柄,转换.字符型转整型(rrs[0],0))
辅助.等待(380)
如果结束
循环结束
返回 真
功能结束
//定义默认空间
功能 整型 注册()
辅助.注册插件("rc:\\dm.dll",真)
辅助.是否注册("dm.dmsoft")
辅助.获取资源路径("rc:")
系统.设置路径(辅助.获取资源路径("rc:"))
返回 0
功能结束
功能 逻辑型 开始_点击()
//这里添加你要执行的代码
返回 真
//函数返回语句
功能结束
功能 逻辑型 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束
功能 逻辑型 按钮0_点击()
测试.注册()
//这里添加你要执行的代码
//说明:支持多张图片(图片与图片中间使用 竖线隔开)和根据四角的颜色判断是否为透明图
//原理:首先获得页面上四个按钮的位置,将四个按钮根据图号获得对应的按键,然后将X和Y传给线程去判断是否被遮挡住,遮住则按键
字符型 图号
辅助.等待(10)
图号 = dm.FindPicEx(0,0,2000,2000,"a.bmp|c.bmp|d.bmp|i.bmp|j.bmp|k.bmp|l.bmp|o.bmp|p.bmp|s.bmp|x.bmp|z.bmp","000000",0.9,0)
辅助.等待(10)
string[] rstr=string[1] //需要先初始化一次
辅助.等待(10)
string sourcestr=图号,splitstr="|"
辅助.等待(10)
bool isok=str.split(sourcestr,splitstr,rstr)
辅助.等待(10)
int c1
array.size(rstr,c1)
如果(c1>1)
辅助.消息框(图号)
string[] s11=string[1] //需要先初始化一次
string[] s22=string[1] //需要先初始化一次
string[] s33=string[1] //需要先初始化一次
string[] s44=string[1] //需要先初始化一次
辅助.等待(10)
string s1s=rstr[0]
string s2s=rstr[1]
string s3s=rstr[2]
string s4s=rstr[3]
string spstr=","
辅助.等待(10)
str.split(s1s,spstr,s11)
str.split(s2s,spstr,s22)
str.split(s3s,spstr,s33)
str.split(s4s,spstr,s44)
s11[1]=测试.isDownKey(convert.strtoint(s11[1],0))
s22[1]=测试.isDownKey(convert.strtoint(s22[1],0))
s33[1]=测试.isDownKey(convert.strtoint(s33[1],0))
s44[1]=测试.isDownKey(convert.strtoint(s44[1],0))
s11[2]=测试.isYKey(convert.strtoint(s11[2],0))
s22[2]=测试.isYKey(convert.strtoint(s22[2],0))
s33[2]=测试.isYKey(convert.strtoint(s33[2],0))
s44[2]=测试.isYKey(convert.strtoint(s44[2],0))
//根据坐标寻找颜色
string color1 = dm.GetColor(转换.字符型转整型(s11[1],0),转换.字符型转整型(s11[2],0))
string color2 = dm.GetColor(转换.字符型转整型(s22[1],0),转换.字符型转整型(s22[2],0))
string color3 = dm.GetColor(转换.字符型转整型(s33[1],0),转换.字符型转整型(s33[2],0))
string color4 = dm.GetColor(转换.字符型转整型(s44[1],0),转换.字符型转整型(s44[2],0))
string picChar1 = 测试.picNumChar(转换.字符型转整型(s11[0],0))
string picChar2 = 测试.picNumChar(转换.字符型转整型(s22[0],0))
string picChar3 = 测试.picNumChar(转换.字符型转整型(s33[0],0))
string picChar4 = 测试.picNumChar(转换.字符型转整型(s44[0],0))
string param1 = picChar1+","+s11[1]+","+s11[2]+","+color1
string param2 = picChar2+","+s22[1]+","+s22[2]+","+color2
string param3 = picChar3+","+s33[1]+","+s33[2]+","+color3
string param4 = picChar4+","+s44[1]+","+s44[2]+","+color4
help.messagebox(param1)
help.messagebox(param2)
help.messagebox(param3)
help.messagebox(param4)
线程句柄=线程.开启("测试.找图片",param1)
线程句柄=线程.开启("测试.找图片",param2)
线程句柄=线程.开启("测试.找图片",param3)
线程句柄=线程.开启("测试.找图片",param4)
如果结束
返回 真
功能结束
//根据分辨率判断是否是下面的按键,如果是的话,X轴坐标偏移15像素
function string isDownKey(int x)
if(x<700)
return convert.inttostr(x+21)
else
return convert.inttostr(x)
endif
endfunction
//根据分辨率判断是否是下面的按键,如果是的话,X轴坐标偏移15像素
function string isYKey(int x)
if(x>390)
return convert.inttostr(x+10)
else
return convert.inttostr(x)
endif
endfunction
//通过传入图号返回对应的键码
function string picNumChar(int picNum)
if(picNum==0)
return "65"
endif
if(picNum==1)
return "67"
endif
if(picNum==2)
return "68"
endif
if(picNum==3)
return "73"
endif
if(picNum==4)
return "74"
endif
if(picNum==5)
return "75"
endif
if(picNum==6)
return "76"
endif
if(picNum==7)
return "79"
endif
if(picNum==8)
return "80"
endif
if(picNum==9)
return "83"
endif
if(picNum==10)
return "88"
endif
if(picNum==11)
return "90"
endif
endfunction
空间结束
//空间结束语句
复制代码
作者:
sss139
时间:
2012-7-19 11:04
高手 大哥求拜师。。。我也想玩九阴~~
作者:
smallno
时间:
2012-7-21 13:27
我是抓了蓝球的图,然后在一个线程中,分别每各80ms检测各行对应点是否有蓝球,有则按对应的键,没有问题。
你可能需要重新抓一下你第三行按键的图,或者你可以试试我的办法。
作者:
飞寒
时间:
2012-11-23 12:40
其实也可以换一种方式 虽然不太准确 但是应该可以的
先找四个字母 存档键码 然后找小球的图色 到了范围就按键 循环找四个图 另外添加一个没弹琴的状态图 没弹琴了就跳出循环 这样就OK啦
作者:
liu0623
时间:
2013-4-29 16:48
提示:
作者被禁止或删除 内容自动屏蔽
欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/)
Powered by Discuz! X3.1