FiveM lua: 模拟源

RegisterServerEvent('XD')
AddEventHandler('XD', function()
    print(source)
end)

TriggerServerEvent("XD")

有没有一种方法可以在触发事件时通过服务器模拟源。

当您触发此事件时,我想这样做

TriggerServerEvent("XD", source = '200' -- [[这是服务器将认为您的源]])
点赞
用户12110258
用户12110258

Lua 是一个参考语言。如果 Lua 看不到某样东西,它就不能使用它。

通常而言,作为经验法则:_如果你没有定义变量,那么你就不能使用它_。有一些例外,这就是全局变量提供给你的函数,如 print

我们还看到了另一个问题:你试图将 source 定义成一个表格,但是你没有给它一个表格来存放。

有两种方法可以解决这个问题。

#1. 给 source 分配它自己的参数

移除 source 并将 source 添加为 function(...) 的参数

服务器:

RegisterServerEvent('XD')
AddEventHandler('XD', function(source)
    print(source)
end)

客户端:

TriggerServerEvent("XD", '200')

#2. 创建一个表格让 source 附着于其上

首先,为 TriggerServerEvent 分配一个舒适的表格。

TriggerServerEvent("XD", {} )

然后将 source 放入其中。

TriggerServerEvent("XD", { source = '200' })

现在,在服务器端,我们需要一个用于该表格的参数:

RegisterServerEvent('XD')
AddEventHandler('XD', function(args)
    print(args)
end)

但是,由于 args 是一个表格,我们需要 source,因此我们必须 索引 它。

RegisterServerEvent('XD')
AddEventHandler('XD', function(args)
    print(args.source) -- 或 args["source"]
end)

2020-12-28 00:52:36