UI异步行为转同步
使用内置Lua进行制图时常常需要处理各类本地UI操作,这些操作发生在某个玩家的本机上。
此时为了让这个操作能够被所有玩家都接收到,需要进行消息转发操作。
准备工作
package\plugin\script\ui\server\trigger.lua
检查上述文件中的同步逻辑是否为使用网易同步,如果没有,则修改为使用网易同步,否则会无效。
写法
-- 开头代码:必要的工具引入
local client = require 'ui.client.util'
-- 中间代码:各类UI组件和逻辑
-- (这里略)
-- 结尾代码:注册点击回调事件
local server = require 'ui.server.util'
local event = {
['action_select_card_button'] = function(被点击的卡片ID)
local 玩家句柄 = server.player.handle
local 玩家ID = GetConvertedPlayerId(玩家句柄)
print('同步-点击按钮', 被点击的卡片ID, '玩家ID', 玩家ID)
end,
}
server.register_event('gui_74_3in1', event)
-- 调用处代码:
client.send_message({
type = 'gui_74_3in1',
func_name = 'action_select_card_button',
params = { 被点击的卡片ID }
}, false)
Last updated