我试图将值更改为在消息框中键入的内容,但它给了我错误'ContentText不是Player" Players.Player"'
本地脚本:
local event = game:GetService('ReplicatedStorage').BanUser
local plr = game:GetService('Players').LocalPlayer
local target = script.Parent.Parent.UsernameBox
script.Parent.MouseButton1Click:Connect(function()
script.Parent.Parent.Visible = false
script.Parent.Parent.Parent.Optional.Visible = true
event:FireServer(plr,target)
script.Parent.Parent.Parent.Ban.Value = true
end)
服务器脚本:
local event1 = game:GetService('ReplicatedStorage').BanUser
event1.OnServerEvent:Connect(function(plr,target)
plr.PlayerGui.BanUI.UI.userName.Value = target.ContentText
print('time to die buddy')
end)
看你的代码,我看到两个错误,我想解决。
1 -玩家输入在您的脚本中,我看到您希望通过事件向服务器端发送数据,但是您正在发送变量target
。目标正在调用UsernameBox
的ui对象。要解决这个问题,你需要添加.Text
,它获得LocalPlayer的TextInput。代码:
local target = script.Parent.Parent.UsernameBox.Text -- Adding .Text to get the PlayerText
发送RemoteEvent with plr object当从LocalScript触发事件时,在接收端你可以调用播放器对象,而不必在触发事件时包含它。
本地脚本示例
event:FireServer(example)
服务器脚本示例
event.OnServer:Connect(function(plr, example)
-- Your Code Here
end)
我希望这对你有帮助!