马上加入TC
您需要 登录 才可以下载或查看,没有帐号?立即注册
x
先说说北京时间,获得北京时间的命令大漠有,TC没有!
在游戏里有些任务是限制时间段的,这就要用到北京时间了,其实很简单也就分割字符串,判断数值!
- 字符型 时间=dm.GetNetTime() //大漠命令获得北京时间 格式为"年-月-日 时:分:秒"
- 字符型[] 数组=字符型[3] //定义数组
- 字符型[] 数组2=字符型[2] //定义数组
- 字符串.分割(时间," ",数组2) //分割得到的北京时间字符串,命令执行后 数组2[0]="年-月-日" 数组2[1]="时:分:秒"
- 字符串.分割(数组2[1],":",数组) //再次分割"时:分:秒"
- 字符型 时=数组[0]
- 字符型 分=数组[1]
- 字符型 秒=数组[2]
复制代码 这样我们可以直接用 如果(时=="11"&&分=="05") 来判断当北京时间11点05分的时候脚本执行什么代码.
我们可以设置一个定时器控件,频率设置为1000毫秒,也就是一秒来执行上面的代码!
当然,误差是肯定有的,但是绝对不会很夸张,所以我们可以延后5-10分钟再去做任务!
再来说说计算种植的时间
因为种植的个数是不确定的,所以我们需要计时的个数也是不确定的,那么我们可以用线程来开启一个循环函数,用每一秒循环函数内的数值减一来计时,缺点是误差可能会蛮大的,特别是机器卡的时候!
- 字符型 时钟=编辑框.获得文本("编辑框0")
- 字符型 分钟=编辑框.获得文本("编辑框1")
- 字符型 秒钟=编辑框.获得文本("编辑框2") //这里是用编辑框来获得需要计算的时间,比如4小时10分30秒,可以根据需要传参不用编辑框
- 整型 秒=转换.字符型转整型(秒钟,0)
- 整型 分=转换.字符型转整型(分钟,0)
- 整型 时=转换.字符型转整型(时钟,0) //转换成整型才能计算
- 循环(时!=0||分!=0||秒!=0) //当"时,分,秒"都等于0的时候跳出循环(其实这里写成死循环也可以,因为下面的如果判断已经是时分秒都为0的时候跳出)
- 如果(秒==0) //当秒为0的时候,从60开始减1(要不然就变负数了)
- 秒=60-1
- 如果(分==0) //当秒为0并且分也为0的时候,从60开始减1(要不然就变负数了)
- 分=60-1
- 如果(时>0) //当秒为0,分也为0并且时大于0的时候,时递减1
- 时=时-1
- 否则 //当秒为0,分为0并且时也为0的时候,跳出循环
- 跳出
- 如果结束
- 否则 //当秒为0,分大于0的时候,分递减1
- 分=分-1
- 如果结束
- 否则 //当秒大于0的时候,秒递减1
- 秒=秒-1
- 如果结束
- 如果(秒<10) //这里是给"时分秒"为个位数的时候凑成两位数,显示的时候好看点
- 秒钟="0"+转换.整型转字符型(秒)
- 否则
- 秒钟=转换.整型转字符型(秒)
- 如果结束
- 如果(分<10)
- 分钟="0"+转换.整型转字符型(分)
- 否则
- 分钟=转换.整型转字符型(分)
- 如果结束
- 如果(时<10)
- 时钟="0"+转换.整型转字符型(时)
- 否则
- 时钟=转换.整型转字符型(时)
- 如果结束
- 标签.设置文本("标签0",时钟+":"+分钟+":"+秒钟) //把剩余时间输出到标签控件上格式为 时:分:秒
- 辅助.等待(999) //等待1秒循环一次,误差是有的不过实在是可以忽略,机器越卡,挂机时间越长,误差越大
- 循环结束
- 辅助.消息框("时间到啦!")
复制代码 还有一种比较靠谱的方法就是获取北京时间或者系统时间(系统时间比较准而且TC有命令),然后运算,种植时间-成熟时间=收获时间,缺点是如果你想显示倒计时到界面上,代码就比较繁琐了
好了,最后给大家上一张测试图
|