Open sumneko opened 5 months ago
顺序是确定的,remove确定存在于timer,add是根据id来加入的,而id是确定的,在GetTimerFromPool
分配
_removeTimers
的 key 是 timer.Action
,看起来是个函数
无所谓啊,最终都是转成id来对_timer做操作。
确实,我这边再查查,有人反馈会导致不同步
发代码看看
我明天让他自己先查一下
发代码看看
function mt:createRootNode() local blackboard = New 'NPBehave.Blackboard' (NPBehave.Context.Clock) self.blackboard = blackboard local root = New 'NPBehave.Root'(self:createMainNode(), blackboard, NPBehave.Context.Clock) self.root = root end
function mt:createMainNode() local function updateActive() self.blackboard:Set('active', not self.blackboard:Get('active')) end local service = New 'NPBehave.Decorator.Service'(0.5, updateActive, New 'NPBehave.Composite.Selector' ( New 'NPBehave.Decorator.BlackboardCondition' ('active', NPBehave.Enum.Operator.IsEqual, true, NPBehave.Enum.Stops.ImmediateRestart, New 'NPBehave.Composite.Selector'( New 'NPBehave.Task.Action' ({singleFrameFunc = function () return false end}), New 'NPBehave.Task.Action' ({singleFrameFunc = function () return true end}) ) ), New 'NPBehave.Task.WaitUntilStopped'() )) return service end
发代码看看
function mt:createRootNode() local blackboard = New 'NPBehave.Blackboard' (NPBehave.Context.Clock) self.blackboard = blackboard local root = New 'NPBehave.Root'(self:createMainNode(), blackboard, NPBehave.Context.Clock) self.root = root end
function mt:createMainNode() local function updateActive() self.blackboard:Set('active', not self.blackboard:Get('active')) end local service = New 'NPBehave.Decorator.Service'(0.5, updateActive, New 'NPBehave.Composite.Selector' ( New 'NPBehave.Decorator.BlackboardCondition' ('active', NPBehave.Enum.Operator.IsEqual, true, NPBehave.Enum.Stops.ImmediateRestart, New 'NPBehave.Composite.Selector'( New 'NPBehave.Task.Action' ({singleFrameFunc = function () return false end}), New 'NPBehave.Task.Action' ({singleFrameFunc = function () return true end}) ) ), New 'NPBehave.Task.WaitUntilStopped'() )) return service end
代码不完整。新建一个项目,项目里有完整的可稳定复现的代码,打包项目发我。
不同步bug.zip @xuhuanzy
你这哪里不同步了? 时间戳都一致的
我加你qq聊 @xuhuanzy
先开启同步检测 再本地多开运行 就会报不同步 @xuhuanzy
随机数不同步, 奇怪的情况, 没道理不同步的
知道原因了, 明天修复吧
修bug忘买618的东西了……没啥心情了。你看着拉我的库自己合并更新吧
@sumneko 可以关了
@sumneko 有点想给行为树的New添加类名注释, 有啥办法不污染你的New? 感觉只能New==新的全局变量来写注释. 要不y3助手把语言分析器集成进来, 实时给New加注释?
@sumneko 有点想给行为树的New添加类名注释, 有啥办法不污染你的New? 感觉只能New==新的全局变量来写注释. 要不y3助手把语言分析器集成进来, 实时给New加注释?
没懂...不过一般给外部用的话会封装一个 create 函数
没懂...不过一般给外部用的话会封装一个 create 函数
New的第一个参数弹字符串提示
哦,那个早有规划,只是没时间做
@sumneko 有压缩率高点的库吗?拿来压缩存档。 试了下存档似乎不允许二进制保存
压缩成二进制以后再 base64 一次
压缩成二进制以后再 base64 一次
用base64也太抽象了吧
压缩成二进制以后再 base64 一次
用base64也太抽象了吧
不抽象呀,以前网页里面嵌附件都是直接二进制转base64的
@xuhuanzy
clock里遍历timer的顺序可能是不一致的 虽然_timers是有序表 但是_removeTimers和_addTimers不是 遍历他们两个的顺序是不确定 导致加到_timers里也变得不确定了