远程事件未从客户端发送到服务器

问题描述 投票:0回答:1

我正在尝试使用远程事件在 Roblox Studio 中创建一个公告系统来传输数据,但远程事件未触发。

本地脚本(管理员):

...
game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events.startAnnouncement:FireServer(announcement)
print("Client Sent Announcement")

脚本(服务器脚本服务):

local announcementReciever = script.Parent.Parent.Events.startAnnouncement
local announcementSender = script.Parent.Parent.Events.startClientAnnouncement

announcementReciever.OnServerEvent:Connect(function(plr, announcement)
    print("Server Received Announcement")
    script.Parent.Parent["Sound Effects"].announcementChime.Playing = true
    
    announcementSender:FireAllClients(announcement)
end)

本地脚本(客户端接收器):

startClientAnnouncement.OnClientEvent:Connect(function(announcement)
    print("Client Received Announcement")
end)

我希望它输出 2 个客户端打印和 1 个服务器打印,但我只从触发事件中获得 1 个客户端打印。

lua roblox
1个回答
0
投票

在 LocalScript 中,您触发位于 ReplicatedStorage 中的事件:

game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events.startAnnouncement

但是在 ServerScriptService 中的脚本中,您注册了一个监听器来监听同样位于 ServerScriptService 中的事件:

local announcementReciever = script.Parent.Parent.Events.startAnnouncement

为了解决这个问题,我会仔细检查您的脚本是否实际上位于 ServerScriptService 中,而不是 ReplicatedStorage 中。如果情况并非如此,我将更新您的脚本的路径以正确定位 ReplicatedStorage 中的事件。

local Events = game.ReplicatedStorage.SG_FlightAnnouncementSystem.Events
local announcementReciever = Events.startAnnouncement
local announcementSender = Events.startClientAnnouncement

announcementReciever.OnServerEvent:Connect(function(plr, announcement)
    print("Server Received Announcement")
    script.Parent.Parent["Sound Effects"].announcementChime.Playing = true
    
    announcementSender:FireAllClients(announcement)
end)
© www.soinside.com 2019 - 2024. All rights reserved.