显示单条文本内容
进行单条内容的对话,适用于一些简单的、只有一句话的场景。
基本构造:ShowText( name, elements, callback, [autoFace] )
示例代码:
local name = '二手车行' -- 对话主体名字
local element = '您好,欢迎来到二手车行,请问有什么可以帮您?' -- 对话内容,支持传入文本或数组
local autoFace = false -- 可选,是否自动聚焦到玩家自身
exports.zerodream_interact:ShowText(name, element, function()
ZeroDream.Hud.SendNotification('用户交互结束')
end)
显示多条文本内容
进行多条内容的对话,适用于复杂对话场景
基本构造:ShowMultipleText( name, elements, callback, stepCallback, autoFace )
示例代码:
local name = '^1自言自语' -- 对话主体名字,支持彩色代码
local autoFace = true -- 可选,是否自动聚焦到玩家自身
local elements = { -- 对话内容,此处应传入数组
'这是一段测试文本,用于检测^1多段文本^0显示功能是否正常。',
'这是第二条对话,接下来你会进入一个选择界面',
{ type = 'button', buttons = { -- 支持显示按钮
{ text = '接受', value = 'yes' }, -- 这里是第一个按钮
{ text = '拒绝', value = 'no' }, -- 这里是第二个按钮
} },
'接下来你会进入一个输入界面',
{ type = 'input', title = '姓名', placeholder = '输入您的名字', value = 'Akkariin' }, -- 也可以显示输入框
}
exports.zerodream_interact:ShowMultipleText(name, elements, function()
ZeroDream.Hud.SendNotification('用户交互结束')
end, function(e)
ZeroDream.Hud.SendNotification('当前步骤:' .. e.step)
if step.data then
ZeroDream.Hud.SendNotification('用户输入内容:' .. e.data)
end
end, autoFace)
聚焦相机到角色实体
将相机聚焦到指定实体,可用于对话中展示正在说话的角色。
基本构造:FaceCameraToPed( ped, status )
示例代码:
local ped = PlayerPedId() -- 要聚焦的实体
exports.zerodream_interact:FaceCameraToPed(ped, true)
Wait(5000)
exports.zerodream_interact:FaceCameraToPed(false, false)
对话内容模板
对于单条文本内容,支持输入字符串和数组类型的对话内容。当输入内容为字符串时,直接会显示该字符串作为对话内容,当输入类型为数组时,应遵守以下格式标准:
- type: button
- buttons: 按钮组,可以有多个按钮
- text: 按钮文字内容
- value: 按钮实际数值(文本或数字)
- buttons: 按钮组,可以有多个按钮
- type: input
- title: 输入框标题
- value: 输入框当前值
- placeholder: 输入框提示内容
具体可以参考上面的示例
同步阻塞单条对话
代码将会阻塞运行,直到对话结束,适用于一些需要阻塞执行的场景。
基本构造:ShowTextSync( name, element )
示例代码:
local name = '二手车行' -- 对话主体名字
local element = '您好,欢迎来到二手车行,请问有什么可以帮您?' -- 对话内容,支持传入文本或数组
exports.zerodream_interact:ShowTextSync(name, element)
-- 以下代码会在对话结束之后才执行
TriggerEvent('zerodream_sellcar:action')
同步阻塞多条对话
代码将会阻塞运行,直到对话结束,适用于一些需要阻塞执行的场景。请注意:步骤仍然只能通过回调传输。
基本构造:ShowMultipleTextSync( name, elements, autoFace, stepCallback )
示例代码:
local name = '^1自言自语' -- 对话主体名字,支持彩色代码
local autoFace = true -- 可选,是否自动聚焦到玩家自身
local elements = { -- 对话内容,此处应传入数组
'这是一段测试文本,用于检测^1多段文本^0显示功能是否正常。',
'这是第二条对话,接下来你会进入一个选择界面',
{ type = 'button', buttons = { -- 支持显示按钮
{ text = '接受', value = 'yes' }, -- 这里是第一个按钮
{ text = '拒绝', value = 'no' }, -- 这里是第二个按钮
} },
'接下来你会进入一个输入界面',
{ type = 'input', title = '姓名', placeholder = '输入您的名字', value = 'Akkariin' }, -- 也可以显示输入框
}
exports.zerodream_interact:ShowMultipleText(name, elements, autoFace, function(e)
ZeroDream.Hud.SendNotification('当前步骤:' .. e.step)
if step.data then
ZeroDream.Hud.SendNotification('用户输入内容:' .. e.data)
end
end)