《按键精灵》读取的坐标数字串转为数字

[复制链接]
查看11 | 回复2 | 2017-12-10 14:54:01 | 显示全部楼层 |阅读模式
《按键精灵》下面是我做的游戏坐标读取,读取后是一串数字,不能直接进行+-*/运算。请教怎么才能将读取的这些数字串转为一个百位数的数字
VBS Dim no0,no1,no2,no3,no4,no5,no6,no7,no8,no9,nob,ux,uy,x,y,n,cno,color,okno,i,co
//《10个数字的上半个字特征码》
no0="01110010010100101001010010100101001010010101000100"
no1="00100111000010000100001000010000100001000010000000"
no2="01110100101001000010000100010000100010001001101100"
no3="00110000010001000010001100000100001000010101001100"
no4="00010000100111001010100101001011111000100001000000"
no5="00111010000100001100000100001000010000101001001100"
no6="00010011000100001000111101000110001100010101000100"
no7="01111100100001000010000100010000100001000010000000"
no8="01110100101000101010011000101010011100011001001100"
no9="01110100101000110001100010111100010000100010011000"
IfColor 1157,74,896c6,2

VBS ux=1162 : uy=74
Else

VBS ux=1159 : uy=74
EndIf
//《两个数字之间距离》
VBS n=7
VBS okno=""
//《识别5个数字的循环次数 (为5)》
For 3

VBS co=""

//《起点颜色y坐标变量赋值》

VBS y=uy

//16行(只循环8次)特征点

For 10

//《起点颜色x坐标变量赋值》

VBS x=ux

//每行12个特征点(循环12次)

For 5

VBSCall color=GetPixelColor(x,y)

If color="0896C6"

VBS i="1"

Else

VBS i="0"

EndIf

VBS co=co & i

VBS x=x+1

EndFor

VBS y=y+1

EndFor

//《判断每次得到的特征码跟10个数字的特征码对比》

If co=no0

VBS cno="0"

ElseIf co=no1

VBS cno="1"

ElseIf co=no2

VBS cno="2"

ElseIf co=no3

VBS cno="3"

ElseIf co=no4

VBS cno="4"

ElseIf co=no5

VBS cno="5"

ElseIf co=no6

VBS cno="6"

ElseIf co=no7

VBS cno="7"

ElseIf co=no8

VBS cno="8"

ElseIf co=no9

VBS cno="9"

Else

VBS cno="?"

EndIf

//《接着识别下一个数字》

VBS ux=ux+n

//《得到验证码3个数字》

VBS okno=okno & cno
EndFor
//《显示验证码3个数字》
KeyPress 13,1
SayExpression okno
VBSCall MessageBox(okno)
我是想得到最后的结果okno是一个数值,不是一串数字。比如说我把okno的结果是345那么我把okno-1的那么那么okno的结果就成了234。它会把三个数字都减去1.我要的效果是okno-1=344这样

回复

使用道具 举报

千问 | 2017-12-10 14:54:01 | 显示全部楼层
按键精灵有许多数转换的命令,例如,转单精数CSNG() 或者转双精数CDBL(),转文字字串CSTR()等等,都可以轻松的转换,你若不确定哪个能成功执行,可以同时把这些令命都打进脚本,用IF 你的变数=CSNG(你的变数)>0 或者CSTR(你的变数)""<---表示不能空值,,,,,这样同时执行,并在if的回圈里traceprint "CSNG(你的变数)执行结果为"&你的变数.这样就OK了,你可能多去查阅一下,官网论譠都有教程,不过他们的这个软体有个BUG,会莫名的在编辑命令时多出许多空格,导致你正确的命令源码却出现错误,此时你要把出现错误的这一段源码复制下来,新开一个档案,贴上去,再执行(当然把所有相关参数及变数设定都一并复制过去,这样有时能
回复

使用道具 举报

千问 | 2017-12-10 14:54:01 | 显示全部楼层
int(okno)INT作用是把他转换成整数,用VAL()的话是转换成数
回复

使用道具 举报

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

本版积分规则

主题

0

回帖

4882万

积分

论坛元老

Rank: 8Rank: 8

积分
48824836
热门排行