关于Task

关于Task#

Task允许在不启动新Room的前提下在服务端执行一些Lua函数,这样Lua的拓展能力进一步增强。

一些使用场景:

  • 制作自定义签到页面时,在服务端提供后端支持,玩家在大厅中可以完成签到

  • 在某些触发事件中,允许执行一些Lua(例如玩家登录成功时,额外发送一个包之类的)

  • 以及更多……

目前支持从大厅中发送包来激活一个task。

注册新Task#

目前可以如此注册新task

Fk:addTaskDef {
  type = "TaskTypeName",
  handler = function(task)
    -- ...
  end,
}

其中那个task参数相当于room,由于player只有一个人,可用task.player取得玩家。 这个玩家相比于对局内的玩家,功能同样极其有限。

task中主要可以存取读取存档、延迟一段时间、向玩家发送notification, 虽然功能很少很少,但相信可以做出很有用的功能。

触发Task#

目前可以如此触发Task(在QML中)

Cpp.notifyServer("LobbyTask", [ "TaskTypeName", data ]);