带触发的lua table

公司做的是MMO游戏项目,当游戏的状态发生变化,服务器会发通知客户端,客户端接到协议后,执行某些操作,给玩家提示等等。我最近在做一个模块,成就模块,就是你能想得到的那种成就,等级达到了XX给个奖励啊,收集了XX英雄给个奖励。由服务器通知客户端当前的进度。我就想这个地方完全可以做成观察者模式,于是就有了这个东西。

Read More

Lua热更新原理(4) - 替换函数

现在我们得到了新的函数,也知道旧的函数是什么,接下来要做的就是遍历虚拟机, 找到旧函数所有的索引,并把这些索引指向新函数。

Read More

Lua热更新的约定

本篇说明一下我的热更新的一些特性和约定。上篇在lua热更新配置里我们已经说到了一个重要的原则,就是只更新函数的逻辑,而不更新数据。现在我们抛开具体实现思考一下,为了让lua虚拟机把某个旧的函数替换成新的函数,我们需要提供什么?我们至少需要提供两个信息,首先旧函数是哪个,其次新函数又是哪个?那么有了约定1。

Read More

Lua热更新

本篇教你使用我的“热更新”,这里的热更新是指,lua虚拟机运行时,你去修改代码,新代码会替代老代码生效,这有两方面的好处。对线下开发项目来说,省去重启客户端看效果,能够提高开发的效率。对于线上项目来说,可以不停服更新。我们来看个例子吧:

Read More