其实原理很简单,因为TimerStart是运行另外一个函数,不可以传递参数进去,其实这个很关键的一项就是运行的那个函数第一句local timer t=GetExpiredTimer(),这个让TimerStart运行的那个函数可以得到刚开始创建的那个计时器,这样2边就有了一个可以连接的线,到现在你应该还是没明白,有了连接的东西有什么用呢?,这时候我们要先讲另外一部分,缓存,缓存保存一个值会需要有2个名字,一个是类别名,一个是缓存项目名,我们可以用H2I()来新建的计时器变成一个它独有的整数,这样就有类别名了,类别名是:I2S(H2I( t )) 注:I2S是把整数变为字符串, 这样你的缓存里面保存的东西就有了一个独特的类别名了,而它的钥匙,就是GetExpiredTimer()到期的计时器,这个到期的计时器用H2I( )转换出来的整数是和保存的时候的H2I( t )转换出来的值是相同的,因为都是一个东西返回的嘛,所以钥匙就到手了,但是有时候一次要传递过去很多个整数的值,所以就要缓存项目名来区分开来每个值自己的钥匙,相当于开了大门,每个人的寝室还有自己的钥匙.由于有类别名把房子区分开了,我们就不用担心有人会进入相同的名字的寝室了.这样就实现了一个局部,关键是靠计时器把反复的东西区分开了,因为每个不同计时器返回的值是不一样的.
感觉我说得依然很复杂,语文水平很低啊.但是这个部分我觉得JASS的这个部分不是最难.的 ,最难的在于记函数名.还有查错.还有灵活的写法 |