TC官方合作论坛

 找回密码
 立即注册
查看: 19184|回复: 121

[源码分享] 教你做第一个脚本:百分比加血

[复制链接]
发表于 2011-12-2 20:09:02 | 显示全部楼层 |阅读模式
本人在学习TC时有很多人帮助,现已自已做了第一个脚本,现将他给大家发布并详细介绍原理。但愿能给像我一样的初学者给一点点启示。为了方便大家观看,本人将脚本中每一行加入原理介绍。脚本是应用在大话西游2中点自动以及战斗加自设置
以上是脚本及介绍:
界面:




***************分割线***************************************************

    空间 坐天自动
//定义默认空间
线程1
线程运行1
线程2
线程运行2
线程3
线程运行3
百分比
百分
//以上是定义数据类型
功能 按钮1_点击()
//这里添加你要执行的代码
百分=编辑框.获得文本("编辑框1")
百分比=百分
辅助.消息框("设置已保存")
返回 真
功能结束
//以上是点击“保存设置”按钮的脚本
功能 线程运行3()
//以下是线程运行的脚本
窗口集=系统.枚举("大话西游 II ($Revision: ",0)
//枚举窗口,得到大话西游的窗口,只是针对于单开的,双开会出错的!
图像值
窗口
窗口=窗口集
窗口.激活(窗口)
窗口.设置位置(窗口,1,1)
//将窗口激活并调整到屏幕坐标1,1的位置
图片X坐标,图片Y坐标,图像序号
X,Y
A=0
循环(真)
图像序号=图像.找图(0,0,1440,900,"E:\\实验\\自动.bmp",#102030,0.9,0,图片X坐标,图片Y坐标)
//查找战斗中的自动按钮并将坐标赋值到:图片X坐标,图片Y坐标
如果 (图片X坐标>0||图片Y坐标>0)
//如果找到,如果找不到两个坐标都为“-1”所以如果大于0的话就肯定找到了
    如果(A==0)
    A=1
//这两个设置是为了在一场战斗中遍历点“自动”这个图设置的和下面战斗外一起是互相关联的,保证只点击一次
       鼠标.移动(图片X坐标+30,图片Y坐标+15)
//找到图后,鼠标移动到图上,由于得到的两个坐标点是自已抓图的左上角的坐标点,所以需要向右和向下移动一点,防止点
//不上,移动多少看你的图大小,只要别移出找到的图就可以
    辅助.等待(500)
    鼠标.左键单击(1)
     辅助.等待(500)
//点一下找到的图,即战斗中的自动
    鼠标.移动(图片X坐标-40,图片Y坐标-40)
//鼠标移走,因为如果还在图片上停留,下次找图会因为有鼠标找不到。(本脚本是前台的,所以会有移走的动作)
    X=图片X坐标
    Y=图片Y坐标
//赋值,为下面的“否则”做准备
    如果结束
否则
      如果(X>10||Y>10)
//如果没有找到“自动”这个图X,Y这两个的数值是“-1”所以如果上面条件成立肯定是找到图了,即已经战斗过至少一次
        如果 (A==1)
             A=0
//由于一开始A的值为0,如果是1的话哪么至少战斗过一次,即此脚本必须要在战斗中才能开始执行,如果不在战斗中,会循
//环到战斗中才开始。
//下面的战斗外加血的设置,执行到这里要满足两个条件:1,在不战斗中,2,在战斗中点击了一次“自动”
      图像值=图像.坐标点取色((71+6)*百分比/100+(X-6),Y-487)
//这句是战斗外加血的设置,原理是血条(右边X坐标-左边X坐标)*刚才保存设置中的百分比
//(由于是整数,所以后面还要除100)/100+左边X的坐标,这样就想得到了加血点的X坐标,配合Y坐标,得到此点正是你设
//置的百分比血量所在,得到此点的图像值,最后XY坐标点不要注意,明白解释的意思就行了
              如果(图像值>650016)
//图像值和空血格比较,这个根据不同的游戏设定,大话2中的血格为红色,空血格为灰色,所以比较一下,都是十进制的数
//红色要比灰色的十进制数值小,当然“650016“大约等于血格的红色,防止偏色可以自已设定,这之中需要记住的是:红色
//血格的值比灰色的要小,所以这条可以理解为:如果以上的坐标点大于大于红色血格的值,即是空血格了
移动((71+6)*百分比/100+(X-4),Y-487)
    辅助.等待(50)
    鼠标.右键单击(1)
//鼠标移动到血条上加血,大话2加血是点下右键就可以快速加的
    如果结束
如果结束
如果结束
如果结束
辅助.等待(1000)
//防止卡机加个延时
循环结束
返回 真
功能结束
功能 线程运行2()
//线程2和线程1都是显示脚本运行和电脑开机多长时间设置的,这里就不解释了,主要是为了让大家理解多线程的应用
循环(真)
    DU
    小时2
分钟2
秒2
小时1
分钟1
秒1
字符串1
辅助.等待(1000)
DU=系统.获取毫秒()
   小时2=DU/1000/60/60
    分钟2=(DU/1000/60)-(小时2*60)
    秒2=(DU/1000)-(小时2*60*60)-(分钟2*60)
   小时1=小时2
分钟1=分钟2
秒1=秒2
字符串1=字符串.连接("电脑已经运行了",小时1)
字符串1=字符串.连接(字符串1,"小时")
字符串1=字符串.连接(字符串1,分钟1)
字符串1=字符串.连接(字符串1,"分钟")
字符串1=字符串.连接(字符串1,秒1)
字符串1=字符串.连接(字符串1,"秒")
标签.设置文本("标签1",字符串1)
循环结束
返回 真
功能结束
功能 线程运行1()
TIME
TIME1
TIME2
小时1
分钟1
秒1
小时
分钟

字符串
TIME1=系统.获取毫秒()
循环(真)
    辅助.等待(1000)
    TIME2=系统.获取毫秒()
    TIME=TIME2-TIME1
    小时1=TIME/1000/60/60
    分钟1=(TIME/1000/60)-(小时1*60)
    秒1=(TIME/1000)-(小时1*60*60)-(分钟1*60)
   小时=小时1
分钟=分钟1
秒=秒1
字符串=字符串.连接("脚本已经运行了",小时)
字符串=字符串.连接(字符串,"小时")
字符串=字符串.连接(字符串,分钟)
字符串=字符串.连接(字符串,"分钟")
字符串=字符串.连接(字符串,秒)
字符串=字符串.连接(字符串,"秒")
标签.设置文本("标签0",字符串)
循环结束
返回 真
功能结束
功能 开始_点击()
//这里添加你要执行的代码
//定义好了线程需要开启,这里加上线程开启。
线程1=线程.开启("坐天自动.线程运行1","")
线程2=线程.开启("坐天自动.线程运行2","")
线程3=线程.开启("坐天自动.线程运行3","")
返回 真
//函数返回语句
功能结束
功能 退出_点击()
//这里添加你要执行的代码
辅助.退出()
返回 真
//函数返回语句
功能结束
功能 热键0_热键()
//热键开启线程,即我们常说的热键开始
线程1=线程.开启("坐天自动.线程运行1","")
线程2=线程.开启("坐天自动.线程运行2","")
线程3=线程.开启("坐天自动.线程运行3","")
返回 真
功能结束
功能 热键0_失去焦点()
//这里添加你要执行的代码
热键.销毁("热键0")
热键.注册("热键0")
返回 真
功能结束
功能 热键1_热键()
//这里添加你要执行的代码
//热键关闭线程,即我们所说的按热键停止脚本运行
线程.关闭(线程1)
线程.关闭(线程2)
线程.关闭(线程3)
返回 真
功能结束
功能 热键1_失去焦点()
//这里添加你要执行的代码
热键.销毁("热键1")
热键.注册("热键1")
返回 真
功能结束
功能 按钮0_点击()
//这里添加你要执行的代码
//按钮停止线程
线程.关闭(线程1)
线程.关闭(线程2)
线程.关闭(线程3)
返回 真
功能结束
空间结束
//空间结束语句
***************分割线***************************************************
由于本人文化有限(小学语文没及及格),表达之中有不明白之处还要请各位多多理解
大家可以多看看,也可以自已试着加上自动加法的功能,由于本人的级别低,附件太大传不上去,如果需要的可以在后面留下QQ号,我会把整个工程打包给需要的你发过去的!
:L 不知不觉写了半个小时了。最后需要提醒大家的是看贴要回贴也是一种美德。有不足之处请各位多提宝贵意见。

本帖子中包含更多资源

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

x
回复

使用道具 举报

 楼主| 发表于 2011-12-2 20:10:04 | 显示全部楼层
自己顶一个先:)
回复 支持 反对

使用道具 举报

发表于 2011-12-2 20:40:43 | 显示全部楼层
:D顶一个
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:02:09 | 显示全部楼层
很努力啊
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:17:30 | 显示全部楼层
很不错!!!
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:45:53 | 显示全部楼层
不错,代码真长
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:46:42 | 显示全部楼层
我怎么没人帮呢,在
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:54:27 | 显示全部楼层
392000603能发给我吗
回复 支持 反对

使用道具 举报

发表于 2011-12-2 21:57:09 | 显示全部楼层
谢谢分享!我要努力学习!
回复 支持 反对

使用道具 举报

发表于 2011-12-2 22:17:43 | 显示全部楼层
不错不错!
回复 支持 反对

使用道具 举报

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

本版积分规则

关闭

推荐上一条 /2 下一条

关闭

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

GMT+8, 2024-9-29 13:53 , Processed in 0.039855 second(s), 23 queries .

Powered by 海安简单软件服务部

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

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