TC官方合作论坛

标题: 为了真正随机间隔输入,strgetat确实是王道!sendstring退散 [打印本页]

作者: cyborg0975    时间: 2014-1-4 23:57
标题: 为了真正随机间隔输入,strgetat确实是王道!sendstring退散
本帖最后由 cyborg0975 于 2014-1-11 15:07 编辑

和按键精灵相比,TC的sendstring语句可以设定字母间的间隔,可谓一大进步。但我还是不满意,因为一旦文本过长,连续的规律间隔可能会在检测时露馅。
我尝试着将间隔时间改成一个随机函数,期待它能奏效,但这样一来间隔直接变成了0。

现在在各位前辈高人的提醒下,我总算是写完这个功能了。体会:关键在于strgetat语句的使用,记得把小写字母转换为大写字母从而让ASCII码和按键码匹配。

作者: 超自然    时间: 2014-1-5 00:02
这种小事也找官方??自己写几行代码不就OK了.
作者: cyborg0975    时间: 2014-1-5 00:03
超自然 发表于 2014-1-5 00:02
这种小事也找官方??自己写几行代码不就OK了.

呵呵。如果你面对连起来几百个字母的文本呢?一行一行地写输入字母/随机延时/输入字母……么?
再说我只是向老手们求教,和官方有关系么?

作者: zxw445    时间: 2014-1-5 00:19
本人新手,,,不知道你讲的是什么,,,中文代码呢,,,,
作者: cyborg0975    时间: 2014-1-5 00:29
zxw445 发表于 2014-1-5 00:19
本人新手,,,不知道你讲的是什么,,,中文代码呢,,,,

这个应该不需要上代码吧。
我最早接触的就是C语言,后来的按键精灵勉强算VB,从一开始就用英文代码的,中文代码没怎么用。对应过来的话应该是:
键盘.发送字符串(“发送内容”,间隔时间)
问题就出在这个间隔时间上。个人体会,这个间隔时间虽然可变,但在一次输入的过程中没法随机变化。为了尽量模拟真人,暂时放弃了。
作者: zxw445    时间: 2014-1-5 08:55
cyborg0975 发表于 2014-1-5 00:29
这个应该不需要上代码吧。
我最早接触的就是C语言,后来的按键精灵勉强算VB,从一开始就用英文代码的,中 ...

你想弄时间为可随变化?  那就用随即数啊
作者: rainshine    时间: 2014-1-5 09:10
cyborg0975 发表于 2014-1-5 00:03
呵呵。如果你面对连起来几百个字母的文本呢?一行一行地写输入字母/随机延时/输入字母……么?
再说我只是 ...

额额人家官方来帮一下你就不要说嘛,加我qq1472750668 我帮你写代码,连起来一万个字母其实也很简单,无非就是键盘输入、随机间隔、键盘输入、随即间隔……
作者: rainshine    时间: 2014-1-5 09:12
cyborg0975 发表于 2014-1-5 00:29
这个应该不需要上代码吧。
我最早接触的就是C语言,后来的按键精灵勉强算VB,从一开始就用英文代码的,中 ...

可以尽量模拟真人啊……我无语了,很简单,三行代码给你实现要么?    因为每次输入过程中,调用这个函数的时候,随机出来一个数这个数就是个定值了,而不是输入一个、随即一个。
作者: rainshine    时间: 2014-1-5 09:16
我真心无语了!!!就这么简单的几行代码都写不出来,还说为了模拟真人放弃了,这么轻易就放弃还做毛脚本!技术不行就虚心请教,别老说哎哟几百个连着的字母你怎么搞,你自己搞不出来有木有,超自然大神几行代码给你办了。而且,,你既然接触过C语言,不会不知道函数这种东西吧!你用得着一行输入、随机间隔、一行输入吗,那样的流水账代码,太烂了吧。写个功能不就得了……
作者: 69332748a    时间: 2014-1-5 10:46
rnd函数随机生成数  然后当间隔
作者: 69332748a    时间: 2014-1-5 10:46
rnd函数随机生成数  然后当间隔
作者: cyborg0975    时间: 2014-1-5 15:28
本帖最后由 cyborg0975 于 2014-1-5 15:57 编辑
rainshine 发表于 2014-1-5 09:16
我真心无语了!!!就这么简单的几行代码都写不出来,还说为了模拟真人放弃了,这么轻易就放弃还做毛脚本! ...

看来没错,那个sendstring函数本身只能定义一次间隔,不能每次都重新计算。

如果我真的要学到一些更高级的功能(比如数组,虽然这只是很常见的一种基本功能),但只为了几串字符的输入来学习这些东西我觉得并不值得,至少目前是这样。对我来说,后面的所有功能充其量只需要字符识别、颜色识别2个基本功能就行,配合循环基本上万事无忧。读内存、后台、数组、多线程之类的东西不是没思路,而是存在较大的危险性,我不想这么做。

朋友你很热心,但不知道有没有考虑到不同玩家的不同需求。我做脚本的目的很简单,就是要通过短时间的投入来获得长期的安逸。如果为了一个功能钻牛角尖,时间成本是收不回来的,我还有其他更重要的事情要花时间。另外我希望尽量模拟真人操作,不超越人的水平,可能这里的大多数玩家都是本着刷金等比较现实的目的去的吧,那对应的就是真正意义上的外挂了。有人会说我不读内存不解包怎能算外挂,但实际上你已经可以同时让多个账号工作了,这就是玩家操作的超越,实际上是有问题的。对这种情况,我个人是排斥的,按键精灵最早提出的解放双手,真的是这种解放法么?当然每个人都有每个人的玩法,每个人有选择的自由,但封号的残酷事实已经说明了一些问题了,我们在玩游戏的同时还是多少会被游戏玩的。

如果真的要做这个功能,可以是可以,那就得编一个函数把文本分解成一个一个字母填到对应的坑里面,然后循环输入、随机间隔,确实几行字符就搞定,但那得让我重新拿起不少东西比如数组(我只是想想,要对付一串字符的话应该是要数组的吧?)等等,现在没那个时间。我记得以前学C的时候教过,应该是放到坑里面以后判断一下坑是不是空的,如果空了就说明所有的字符已经入坑,然后就对填了字的坑进行逐个的处理,对吧?应该是这样一个思路。

昨天多谢你的帮忙,现在脚本已经初步投入使用,给我带来了不少方便,接下来不被封的话应该算是能东山再起了,哈哈。后面的功能相对没这么急迫,可以慢慢学慢慢做。
作者: rainshine    时间: 2014-1-5 17:32
cyborg0975 发表于 2014-1-5 15:28
看来没错,那个sendstring函数本身只能定义一次间隔,不能每次都重新计算。

如果我真的要学到一些更高级 ...

好吧如果需要帮忙 可以问我。根本不需要栈……直接用循环字符串长度:char=str.strgetat(str,i),发送字符串,help.sleep(help.randto(m,n))就可以了……貌似,好像,也许用不到数组。不过看你打了这么多这么多字,真的是很感动啊……刚刚一打开帖子直接被吓到了……这么多字,这么长 一共五段……= =。
作者: cyborg0975    时间: 2014-1-5 19:11
rainshine 发表于 2014-1-5 17:32
好吧如果需要帮忙 可以问我。根本不需要栈……直接用循环字符串长度:char=str.strgetat(str,i),发送字 ...

呃,好吧我想多了,我也就那点C的基础的基础的基础。总之等有空了向你们多学习,嗯嗯。
以前做学生的时候还能花大把的时间一次啃下一个功能然后慢慢改进,现在没这么多时间从头拿起来了,只能一小块一小块地搞定了,哈哈
作者: rainshine    时间: 2014-1-5 19:15
cyborg0975 发表于 2014-1-5 19:11
呃,好吧我想多了,我也就那点C的基础的基础的基础。总之等有空了向你们多学习,嗯嗯。
以前做学生的时候 ...

好吧好吧。多学习。
作者: cyborg0975    时间: 2014-1-10 15:13
rainshine 发表于 2014-1-5 17:32
好吧如果需要帮忙 可以问我。根本不需要栈……直接用循环字符串长度:char=str.strgetat(str,i),发送字 ...

今天看了下,这个方法非常好,学到一招
作者: aimei_8866999    时间: 2014-11-13 00:05
你这个写的是个喊话器吧,应该还是梦幻的,其实这个功能咋说,你把这个字符全部转化为大写,然后取字符串左边,每次递加一位,存为数组,然后发送,随机加一个延时就就行,用官方的也可以实现




欢迎光临 TC官方合作论坛 (http://bbs.52tc.co/) Powered by Discuz! X3.1