先说说北京时间,获得北京时间的命令大漠有,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有命令),然后运算,种植时间-成熟时间=收获时间,缺点是如果你想显示倒计时到界面上,代码就比较繁琐了 
 
好了,最后给大家上一张测试图 
 
 
 
 |