远程事件不使用给定参数 |罗布乐思

Remote Event doesnt use given arguments | Roblox

客户:

local frame = script.Parent.Parent

script.Parent.MouseButton1Down:Connect(function()
    script.Parent.SendReport:FireServer(game.Players.LocalPlayer,script.Parent.Parent.plr.Text, script.Parent.Parent.plr.Text, script.Parent.Parent.text.Text)
end)

服务器:

local event = script.Parent.SendReport

local function SendReport(plr,reportedu,title,text)
    local Players = game:GetService("Players")
    local http = game:GetService("HttpService")
    local webhook = "https://discord.com/api/webhooks/968083074082537492/Rd-lXwnsMK3e7P3Ed0ztJc7jtJO40DSKv_YbMqf9O4_IQD3aWKv6xoJoOkjnfoRqI6bv"
    local thumbt = Enum.ThumbnailType.HeadShot
    local thumbs = Enum.ThumbnailSize.Size420x420
    print(plr)
    print(reportedu)
    print(title)
    print(text)
    local se = Players:GetUserThumbnailAsync(plr.UserId,thumbt,thumbs)
    
    local data = {
        ["embeds"] = {{
            ["title"] = "A report has been submitted by " .. plr.Name .. ", for the player: " .. reportedu,
            ["color"] = "000000",
            ["description"] = "**" .. title .. "**" .. "\n\n" .. text,
            ["thumbnail"] = se
        }
        }}
    local finaldata = http:JSONEncode(data)
    http:PostAsync(webhook, finaldata)
end

event.OnServerEvent:Connect(SendReport)

这是当我点击按钮时发生的事情我厌倦了一切但我无法从正确的文本框中获取文本

https://i.stack.imgur.com/Dqfxu.jpg

错误告诉您您正在尝试像字符串一样使用实例。这是由于 reportedu 变量是 LocalPlayer 对象是 Player 而不是字符串。所以你需要以某种方式将参数字符串化。但是,我相信您在使用 RemoteEvents 时犯了一个常见错误,根本不应该传入 LocalPlayer。

当您使用RemoteEvent:FireServer时,引擎会自动将发送它的播放器添加为第一个参数,您无需提供。

例如,如果您从客户端触发:

event:FireServer(a, b, c)

服务器收到...

event.OnServerEvent:Connect(function(player, a, b, c) 
    ...
end)

这就是为什么您的 reportedu 变量在服务器上显示为 LocalPlayer 的原因。所以要解决这个问题,不要在客户端传递 LocalPlayer。

local frame = script.Parent.Parent
local btn = script.Parent
local event = script.Parent.SendReport

btn.MouseButton1Down:Connect(function()
    local reportedu = frame.plr.Text
    local title = frame.plr.Text
    local text = frame.text.Text
    event:FireServer(reportedu, title, text)
end)