TC官方合作论坛

 找回密码
 立即注册
查看: 13624|回复: 60

[源码分享] 两天两夜写脚本|初学TC的辛路历程

[复制链接]
发表于 2011-9-7 19:00:03 | 显示全部楼层 |阅读模式

马上加入TC

您需要 登录 才可以下载或查看,没有帐号?立即注册

x
本人之前写过一些小脚本,所以对于学TC还蛮有自信的。:-D

当然自信归自信,视频教程和帮助文档还是我中规中具的全部“仔细”看了一遍!(我是很仔细看了,可还是很懵懂的说)

看教程(视频和论坛帖)和看帮助文档我用了两天时间!(大概20个小时)

正当我自信心爆满跃跃欲试的时候,Q群里一个叫 小小拥抱 的小子在找人帮写个脚本!

我自告奋勇的接下了这个任务!

任务看似很简单,一个游戏自动打怪,加血加蓝的脚本

游戏叫神武(之前我听都没听过,汗一个先)是跟梦幻西游一模一样的回合制网游

于是我开始了一段艰辛的历程!

第一天
写脚本,首先是要知道我们要这个脚本达到什么目的。
然后我们需要一些什么功能来让脚本达到我们的目的。
而自动打怪的脚本流程无非就是:
找怪
打怪
检查人物血,蓝
检查宠物血,蓝
加血加篮
判断怪是否死亡
怪没死
继续打怪
怪死了
继续找怪

好,现在知道了脚本流程,那我就准备开始动手一个功能一个动能的写!
首先说明一下,我没怎么玩回合制网游(你打我一下,我打你一下的游戏机制让我觉得很白痴,额,个人喜好,勿扔鸡蛋)
神武和梦幻西游我都没玩过,但是梦幻西游还是见人玩过的!
我有台电脑上安装有梦幻西游这个游戏(我老妹玩的)
于是我随便写了个自动打怪的功能脚本用梦幻西游来测试,效果还蛮好!(自信心更爆满了:-| )
晚上,小小拥抱上线,我打算远程帮他做脚本(再汗一个,我以为只要改改坐标,颜色值就可以了)
小小拥抱,这个小子是没接触过TC的,晚上7点左右,他开始下载TC软件!
等他下载安装好TC,我开始把源代码发给他,然后在QQ上他截个图,我截个图的修改坐标和颜色值!
然后测试,然后发现问题,然后再改,然后再测试,然后再发现问题……然后晚上近10点,我崩溃了!

放弃不是我的性格,于是我开始下载安装神武这个游戏。
在下载游戏的时候,我顺手写了加血加蓝的功能脚本。

11点左右,游戏下载安装完毕,申请了一个帐号建立角色,开始测试脚本。
自动打怪脚本运行得还算顺利,虽然角色人物并没有象我设想的那样在两个坐标点之间跑动踩地雷找怪!
于是我发现了一个问题,鼠标漂移!(大汗一个,这个是一个很老的问题了,在梦幻西游,问道等回合制网游中都存在)
有问题找百度!艰辛的百度过程开始了!
关于解决鼠标漂移的原理,我在这里就简单说一下(这个问题真的很老了,随便百度一下都能找到很多很详细的解说)
鼠标漂移简单的说就是系统鼠标和游戏鼠标的坐标偏移
举例:当你移动游戏鼠标到坐标点100,100的时候,系统鼠标的坐标点可能会是200,200
这个偏移的差值是不固定的,随机的!
解决的方法就是找到游戏鼠标坐标值,对比游戏鼠标与系统鼠标坐标差值(这个有公式的),然后相对移动,再找游戏鼠标坐标值,再对比,再相对移动,再找,再……一直循环到差值为0,或1(差值为0几乎是不可能的,下面详解)
解决的方法有了,那么怎么找游戏鼠标的坐标值呢?(抓抓工具抓的是系统鼠标坐标值)
现在流行的方法有两种,一种是大众化的找图,多点找色法,一种是专业化的找内存基址法
专业化的咱就不说它了,咱搞点业余的!
首先说明找图和多点找色,找的是游戏鼠标的图和色!
我选择是找图,因为神武这个游戏的鼠标图形是会变色的!
接着我发现,因为图形会变色找图也是行不通的!(这个时候已经是第二天早上10点了,我用了一个通宵才勉强明白了鼠标漂移和解决方法并用TC写出来,瀑布汗,网上都是VB,按键的源码,看得我头大)
好吧,暂停一下,休息休息再继续!
睡了五个小时,冲了个凉,脑袋清醒多了!
下午三点,继续搞我的鼠标漂移!
终于,一生何求大大提示我可以找透明图!
但是透明图不能保存为BMP格式吖!
接着又开始了我的百度之旅,一直到晚上十二点,支持不住了,趴在了电脑桌上!

以上,我两天的写脚本经历,看到这里你们可能会说:我靠!什么都没说一样,一句源码都没!

好吧,我承认,这两天两夜我一个完整的脚本都没写出来,但是对于学习TC,我有了很深刻的认识,希望能给那些跟我一样在TC论坛里无头苍蝇一般乱撞的小白们带来学习TC的一点方向。

总结这两天的经历,我感触最深的就是:基础是最重要的!
我每写一个语句,都要开着TC帮助文档,TC官网,TC论坛,一一查看!
脚本出现的错误很多都是基本的语法错误!
其实一个简单的脚本,需要用到的语句并不多,对于初学者来说,把流程控制语句学透,用好就基本可以做出自己想要的脚本了,流程控制语句也就是:如果、循环、重复、继续和跳出!
很久以前我问过一名黑客(呵呵,我就不提他的名字了),要怎么样才能成为一名黑客!
他回答我说:只要你习惯用计算机的思维去思考问题就能成为一名黑客!
我现在要说的就是:只要你学会用TC的思维去思考问题就能学好TC!

很多朋友就要问了,怎么用TC的思维来思考问题?
举个例子:
我们要打开书桌的第一个抽屉拿出一支笔!这个过程用TC该怎么去做呢?
首先,我们要给这个过程取个名字!也就是 空间 我的程序
然后定义这个过程的所有名词,也就是
整型 书桌
整型 第一个抽屉
整型 笔

在这个过程里的每一个动作就是功能
功能 整型 打开()
功能 整型 拿出()

整个过程用TC写出来就是

空间 我的程序 //定义一个命名空间

整型 书桌 //变量定义
书桌=0 //给变量一个赋值
整型 第一个抽屉 //变量定义
第一个抽屉=1 //给变量一个赋值
整型 笔 //变量定义
笔=2  //给变量一个赋值

功能 整型 打开()//函数定义,这是一个简单的函数定义,定义了一个名为功能执行的函数,返回类型为整型,参数列表为空。函数就是一个功能块,里面放了你需要操作的执行语句,说的简单点就是告诉计算机需要帮助你做什么.
循环(真)//流程控制,定义一个循环的开始,循环后面的扩号里是执行的条件,表示当条件为真时,便执行语句。直到条件为假才结束循环。并继续执行循环程序外的语句。
找到书桌 //这是一个API命令,API命令是TC系统支持的一些命令
如果(书桌==0)//流程控制,这是一个判断,因为我们之前给书桌这个变量赋值为0,所以如果TC找到的书桌值为0,那就是我们要找的书桌了,如果书桌的值不是0,那就不是我们要找的书桌。如果书桌值为0则继续执行下一句
找到第一个抽屉 //这是一个API命令
   如果(第一个抽屉==1) //流程控制,这是一个判断跟上面找书桌的一样,我们给第一个抽屉的赋值是1
打开 第一个抽屉 //这是一个APA命令
   如果结束 //结束语,在TC里,每一个判断都要有对应的结束语,我在上一个判断语句前加了空格,这个结束语是对应它的,所以也加了空格
如果结束 //结束语,这是对应第一个前面没有加空格的判断语句的结束语
循环结束  //结束语,这是循环的结束语,在TC里每一个循环都要有对应的结束语
返回 0  //这是函数返回语句,函数返回语句会把“返回”这个语句后面的值返回给函数调用者.
功能结束  //结束语,这是功能的结束语,在TC里每一个功能都要有对应的结束语

功能 整型 拿出()//函数定义
循环 (真)  //流程控制
在第一个抽屉找笔  //这是一个API命令
如果(笔==2) //流程控制,这是一个判断
拿出笔 //这是一个API命令
否则  //这是如果语句的另一种表达方式:如果 否则, 如果表达式为真,则执行语句1,否则执行语句2。
我的程序.打开()  //这是功能调用,意思是在这里运行功能 整型 打开()
如果结束  //结束语
返回 0  //函数返回
功能结束  //结束语


功能 逻辑型 开始_点击()   //这里添加你要执行的代码,这里是你点击开始按钮执行的代码  
我的程序.打开() //点击界面的开始按钮以后执行
返回 真  //函数返回语句   
功能结束 //结束语

功能 逻辑型 退出_点击()   //这里是你退出的时候要执行的代码,这类是你点击退出按钮执行的代码
辅助.退出()  //退出脚本的命令语句
返回 真   //函数返回语句   
功能结束  //结束语

空间结束     //命名空间结束语句

好了,以上就是我对TC的理解,当然很肤浅,而且还会有错误的地方,希望各位给指出来,我好汲取教训!:-D

也希望我的这个经历和总结能给象我一样整天在论坛和Q群乱撞的小白们一点点提示和启发。
一直都看到论坛和Q群里有人喊怎么样学TC!
实践出真理!
多做!多做!多做!
不要怕自己什么都不懂,你只要懂你想要什么!那就去做吧!做你想要的!
在做的过程中,你会遇到各种各样的问题,遇到问题先别急着问人。
去论坛,去百度,去思考,这样得来的知识才是巩固的,才是自己的!
当然也不是说不能问,实在解决不了的问题就要多问,Q群问,论坛问!(被一个问题纠缠很久实在是让人崩溃的一件事:Z )
我想,当你用TC写出第一个脚本的时候,你会想,其实这并不难!






国际惯例 首先感谢的是一生何求大大,他的有问必答是支持我到现在的最大支柱!还有就是小东昊哥梦想飞舞,希望我的小白问题没有让你们崩溃!还有所有在Q群,在论坛帮助过我的好心人们!最后,感谢CCTV,MTV,感谢DANG,感谢……











































回复

使用道具 举报

发表于 2011-9-7 19:14:14 | 显示全部楼层
很好,很强大!我学写个DNF的分解脚本  奋斗一晚上  到现在……  还在奋斗……
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-9-7 19:26:59 | 显示全部楼层
回复 2楼黑色月亮的帖子

DNF的?很难么?
回复 支持 反对

使用道具 举报

发表于 2011-9-7 19:44:33 | 显示全部楼层
看了,十分的触动,你的付出肯定会有回报的
回复 支持 反对

使用道具 举报

发表于 2011-9-7 19:57:05 | 显示全部楼层
回复 3楼smtmangle的帖子

呵呵~ 也许是我天赋的问题吧,感觉学习很困难 !!!
回复 支持 反对

使用道具 举报

 楼主| 发表于 2011-9-7 20:39:43 | 显示全部楼层
回复 5楼黑色月亮的帖子

305289669加我QQ吧,咱们一起学TC!一起努力!:Z
回复 支持 反对

使用道具 举报

发表于 2011-9-7 21:10:45 | 显示全部楼层
  呵呵,想得蛮好的,虽然我还是不太明白,也顶一下:-D
回复 支持 反对

使用道具 举报

发表于 2011-9-7 21:31:15 | 显示全部楼层
不错哦。。。顶个。。。
回复 支持 反对

使用道具 举报

发表于 2011-9-7 21:59:39 | 显示全部楼层
很厉害 向你学习
回复 支持 反对

使用道具 举报

发表于 2011-9-7 22:05:28 | 显示全部楼层
写的很好,感谢你对TC的支持。  我相信,付出一定会有回报。
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

小黑屋|TC官方合作论坛 (苏ICP备18045623号)

GMT+8, 2024-5-13 16:21 , Processed in 0.057969 second(s), 24 queries .

Powered by 海安简单软件服务部

© 2008-2019 版权所有 保留所有权利

快速回复 返回顶部 返回列表