(Roblox Studio)客户端-服务器-客户端通信不起作用

时间:2019-08-24 06:30:49

标签: lua roblox

我正在尝试通过服务器端的脚本使用RemoteEvent将数据从一个LocalScript发送到另一个LocalScript。第一个LocalScript在StarterCharacterScripts中,服务器端Script在工作场所中,第二个LocalScript在玩家的角色模型下。

我已经在每个函数中设置了print语句,以查看通信在哪里停止,并且当服务器在第二个LocalScript上触发该函数时,通信似乎正在停止。但是,我无法确定原因。

第一个LocalScript(StarterCharacterScripts)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local createPartEvent = ReplicatedStorage:WaitForChild("CreatePartEvent")
local UserInputService=game:GetService("UserInputService")
local player=game.Players.LocalPlayer
UserInputService.InputBegan:Connect(function(input,gameProcessed)
    if input.KeyCode==Enum.KeyCode.G then
        createPartEvent:FireServer(251,226,11)
        print("Bing!")
    end
end)

服务器端脚本(工作区)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local createPartEvent = Instance.new("RemoteEvent", ReplicatedStorage)
createPartEvent.Name = "CreatePartEvent"
local fadePartEvent = Instance.new("RemoteEvent")
fadePartEvent.Parent=game.ReplicatedStorage
fadePartEvent.Name="FadePartEvent"

local function onCreatePartFired(player,red,green,blue)
    print("Ting!" ,player,red,green,blue)
    fadePartEvent:FireClient(player,red,green,blue)
end

createPartEvent.OnServerEvent:Connect(onCreatePartFired)

第二个LocalScript(播放器模型)

local ReplicatedStorage = game:GetService("ReplicatedStorage")
local player=game.LocalPlayer
local fadePartEvent=ReplicatedStorage:WaitForChild("FadePartEvent")
fadePartEvent.Name="FadePartEvent"
local function onFadePartFired(player,red,green,blue)
    print("Done!")
        print(player,red,green,blue)
end

fadePartEvent.OnClientEvent:Connect(onFadePartFired)

如果代码正确运行,输出应为:

Bing!
Ting! BusterTornado 251 226 11
Done! BusterTornado 251 226 11

但是,输出显示为:

Bing! 
Ting! BusterTornado 251 226 11

这将指示该函数未到达第二个LocalScript。我已经尝试过搜索,但到目前为止还没有找到任何答案。

1 个答案:

答案 0 :(得分:0)

您只需使用BindableEvent,即可在[服务器端到服务器端]或[客户端到客户端]之间发送数据。 在发送数据的本地脚本和第二个本地脚本类型.Event

上使用:Fire