学习游戏脚本制作:用按键精灵批量登录游戏账号
记事本是个好东西,我们写脚本的时候,时常会用到它。拿它记录数据,存放结果等等。这么重要的东西, 忍不住想多了解下
操作方法
- 01
热身准备 首先,把编辑好的记事本放到按键精灵附件里,以便后面释放使用。 记事本里面的原始内容,是账号密码的设置格式,账号和密码之间要设置分隔符,方便之后读取。 如图:
- 02
释放附件代码: PutAttachment "G:\test", "游戏账号.txt" 例子中,将游戏账号文本释放到G盘下的test文件夹中。 读取账号密码
- 03
需要用到ReadFileEx读取文件命令, 先将文本里的所有内容读取存入到变量text中 代码: Text = Plugin.File.ReadFileEx("G:\test\游戏账号.txt") Msgbox "向目标文件读出文本内容为:"& Text 输出:
- 04
放的是账号和密码,账号和密码直接用逗号隔开,所以说,我们还需要分割一次,才能获取到账号和密码。 two = split(my(1), ",") 分割之后,数组two里有两个元素,two(0)存放的是账号,two(1)中存放的是密码。 全部代码:我们看到的是变量text中存放的文本内容,文本中的回车换行符是被当做 竖线读取的。 这些竖线是至关重要的,有了它,我们才能将文本里每行的内容分割出来,用split函数分割,分割之后的内容存放到数组my中: my = split(Text, "|") 数组中存放的数据: my(0): 账号格式:账号,密码 例如:zhanghao,mima123 my(1): zhanghao1,mima123 my(2): zhanghao2,mima123 my(3): zhanghao3,mima123 my(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) //把读取的密码输入到游戏密码框 Next
- 05
删除账号密码 想登录好一个账号就删除一个账号怎么实现呢? 我们可以使用命令库中的删除指定行文本内容,在读取输入好一行账号密码之后马上删除当前行
- 06
全部命令——>我的命令库——>文件——>删除指定行文本内容(文本路径,行数) 代码: 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) 为什么是设置删除第二行呢?因为小编的文本里,第一行是作为提示信息的,所以从第二行开始删除,第二行删除之后,第三行进到第二行,所以每次都是删除第二行。
- 07
插入新的内容 【插入内容1】 例如,我一个账号登录过了,我想要在账号后面备注下,已登录,要如何实现?
- 08
我们需要使用到命令库里的替换指定行内容的命令:
- 09
步骤: 用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开始,所以要加上1
- 10
【插入内容2】 这种插入内容的方式,是在一行文本后面添加新的内容,如果我们要实现新起一行添加内容呢? 比如,我们设置一个按钮,用户点击添加之后,账号和密码就添加到我们的账号文本里 这里我们要用到命令库里的插入内容到指定行的命令
- 11
步骤: 画两个输入框,InputBox1用于输入账号,InputBox2用于输入密码 画一个命令按钮,点击之后,将两个输入框里的账号密码插入到文本最末行 参考代码: Event Form1.Button1.Click Text = 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 结果: