学习游戏脚本制作:用按键精灵批量登录游戏账号
1热身准备 首先,把编辑好的记事本放到按键精灵附件里,以便后面释放使用。记事本里面的原始内容,是账号密码的设置格式,账号和密码之间要设置分隔符,方便之后读取。如图:2释放附件代码:putattachment "g:\test", "游戏账号.txt"例子中,将游戏账号文本释放到g盘下的test文件夹中。读取账号密码3需要用到readfileex读取文件命令,先将文本里的所有内容读取存入到变量text中代码:text = plugin.file.readfileex("g:\test\游戏账号.txt") msgbox "向目标文件读出文本内容为:"& text输出:4放的是账号和密码,账号和密码直接用逗号隔开,所以说,我们还需要分割一次,才能获取到账号和密码。 two = split(my(1), ",") 分割之后,数组two里有两个元素,two(0)存放的是账号,two(1)中存放的是密码。全部代码:我们看到的是变量text中存放的文本内容,文本中的回车换行符是被当做 竖线读取的。这些竖线是至关重要的,有了它,我们才能将文本里每行的内容分割出来,用split函数分割,分割之后的内容存放到数组my中:my = split(text, "|")数组中存放的数据:my(0): 账号格式:账号,密码 例如:zhanghao,mima123my(1): zhanghao1,mima123my(2): zhanghao2,mima123my(3): zhanghao3,mima123my(4): zhanghao4,mima123问题来了,例如数组 my(1)中,存text = plugin.file.readfileex("g:\test\游戏账号.txt") //读取文本内容my = split(text, "|") //分割每行文本内容j = ubound(my) //计算数组元素几个for i= 1 to j-1 //数组my(0)里存放的是提示信息,所以这里从my(1)开始 two = split(my(i), ",") //分割账号和密码 traceprint "账号" & i & ":" & two(0) //把读取的账号输入到游戏账号框 traceprint "密码:" & two(1) //把读取的密码输入到游戏密码框next5删除账号密码 想登录好一个账号就删除一个账号怎么实现呢?我们可以使用命令库中的删除指定行文本内容,在读取输入好一行账号密码之后马上删除当前行6全部命令——>我的命令库——>文件——>删除指定行文本内容(文本路径,行数)代码:text = plugin.file.readfileex("g:\test\游戏账号.txt") //读取文本内容my = split(text, "|") //分割每行文本内容j = ubound(my) //计算数组元素几个for i= 1 to j-1 //数组my(0)里存放的是提示信息,所以这里从my(1)开始 two = split(my(i), ",") //分割账号和密码 traceprint "账号" & i & ":" & two(0) //把读取的账号输入到游戏账号框 traceprint "密码:" & two(1) //把读取的密码输入到游戏密码框 call lib.文件.删除指定行文本内容("g:\test\游戏账号.txt", 2) //删除指定行文本内容next注意:call lib.文件.删除指定行文本内容("g:\test\游戏账号.txt", 2) 为什么是设置删除第二行呢?因为小编的文本里,第一行是作为提示信息的,所以从第二行开始删除,第二行删除之后,第三行进到第二行,所以每次都是删除第二行。7插入新的内容 【插入内容1】例如,我一个账号登录过了,我想要在账号后面备注下,已登录,要如何实现?8我们需要使用到命令库里的替换指定行内容的命令:9步骤:用join函数把被我们分割多的two数组在用分隔符逗号连接起来,还原他原来的样子,然后再&上“—已登录”这一字符串一起存放到变量m中。用替换指定行内容命令,将原先的账号内容替换成变量m里的内容( * 我们要修改一行里的文本内容时,也可以运用替换指定行内容来实现,获取不需要修改的文本&上要修改的部分,然后替换掉原来的文本内容即可)代码:text = plugin.file.readfileex("g:\test\游戏账号.txt") //读取文本内容my = split(text, "|") //分割每行文本内容j = ubound(my) //计算数组元素几个for i= 1 to j-1 //数组my(0)里存放的是提示信息,所以这里从my(1)开始 two = split(my(i), ",") //分割账号和密码 traceprint "账号" & i & ":" & two(0) //把读取的账号输入到游戏账号框 traceprint "密码:" & two(1) //把读取的密码输入到游戏密码框 m = join(two,",")&"—已登录" call lib.文件.替换指定行文本内容("g:\test\游戏账号.txt",m,i+1)next注意:call lib.文件.替换指定行文本内容("g:\test\游戏账号.txt",m,i+1) 这里为什么是从i+1行开始呢?因为数组的下标是从0开始,而替换指定行内容的命令库里的行数是从1开始,所以要加上110【插入内容2】这种插入内容的方式,是在一行文本后面添加新的内容,如果我们要实现新起一行添加内容呢?比如,我们设置一个按钮,用户点击添加之后,账号和密码就添加到我们的账号文本里 这里我们要用到命令库里的插入内容到指定行的命令11步骤:画两个输入框,inputbox1用于输入账号,inputbox2用于输入密码画一个命令按钮,点击之后,将两个输入框里的账号密码插入到文本最末行参考代码:event form1.button1.clicktext = plugin.file.readfileex("g:\test\游戏账号.txt") //读取文本内容my = split(text, "|") //分割每行文本内容j = ubound(my)//计算数组元素几个m=form1.inputbox1.text &","& form1.inputbox2.text call lib.文件.插入文本内容到指定行("g:\test\游戏账号.txt", m, j)//数组共有五个元素,j=5 将内容插入到第五行后面,即在第六行写入 "新添加的账号"end event结果:end 20210311