接着上面,先看看Pickable:OnLoad data.picked 和 data.time都不为空的时候 canbepicked=true,相反canbepicked=false 1.先看picked:只有在存档(Onsave)的时候会修改picked,具体为:picked = not self.canbepicked and true or nil,也就是说picked要为空,必须是not self.canbepicked and true=false【逻辑是这样吗?我真是不懂lua】,即self.canbepicked=true。 2再看data.time,这是上次存档时计算出来的: ---------------------------------------------------------------------------------------------------------------------------------------------- if self.targettime then local time = GetTime() if self.targettime > time then data.time = math.floor(self.targettime - time) end end ---------------------------------------------------------------------------------------------------------------------------------------------- self.targettime我看了一下就是游戏时间+距离下次可收集的时间(time_to_pickable),这里再减去一个游戏时间,那data.time就刚刚好=距离下次可收集的时间,他不用time_to_pickable的原因是因为那是局部变量。 也就是说上次存档时候self.canbepicked=true并且距离下次可收集时间不为空的时候canbepicked=true。这里好像不是简单的吧上次存档时候的状态复制过来,因为象仙人掌好像没有targettime(象仙人掌的文件里并没有定义targettime ),所以只要小退一下,canbepicked=false。我这么理解有问题吗? 如果没错,每次读档枯萎的就会变成小树枝(canbepicked=false),如果不没经过读档,枯萎的像仙人掌还能保持一段时间(canbepicked=true),而获得小树枝?