发送事件但未接收

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

所以基本上在我的脚本中它成功发送了远程事件,但另一个脚本由于某种原因没有收到它。以前有用过。

触发事件的脚本:

local frame = game.Players.LocalPlayer.PlayerGui.Credits.Frame
local text = frame.Presents
local stroke = text.UIStroke
local CurrentCamera = workspace.CurrentCamera
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local finishcredits = ReplicatedStorage.Credits
local SoundService = game:GetService("SoundService")
local song = SoundService.Song
local boom = SoundService.Boom
local RunService = game:GetService("RunService")


local targetTransparency = 1
local tweenDuration = 2
local tweenDuration2 = 4
local tweenInfo = TweenInfo.new(tweenDuration)
local tween = TweenService:Create(frame, tweenInfo, {BackgroundTransparency = targetTransparency})
local tween2 = TweenService:Create(text, tweenInfo, {TextTransparency = targetTransparency})
local tween3 = TweenService:Create(stroke, tweenInfo, {Transparency = targetTransparency})


wait(1)
print("1")
local camera = workspace.MainCamera
local function updateCamera()
CurrentCamera.CFrame = camera.CFrame
end

print("2")
frame.Visible = true
wait(1)
boom:Play()
wait(5)
song:Play()
CurrentCamera.CameraType = Enum.CameraType.Scriptable
print("script")

tween:Play()
print("tweened")
tween2:Play()
tween3:Play()

wait(2)
finishcredits:Fire(print("fired"))


RunService.RenderStepped:Connect(updateCamera)

接收它的脚本:

local TweenService = game:GetService("TweenService")
local camera = workspace:WaitForChild("MainCamera")
local text = workspace.MenuText:WaitForChild("WorldPivot")
local SoundService = game:GetService("SoundService")
local event = game.ReplicatedStorage.Credits
local watereffect = workspace.MenuText.Water.Water
local fireeffect = workspace.MenuText.Fire
local explosion = fireeffect.Explosion

local function enableExplosion()
    for _, explosion in pairs(explosion:GetDescendants()) do
        if explosion:IsA("ParticleEmitter") then
            explosion.Enabled = true
        end
    end
end

local function enableFire()
    for _, fire in pairs(fireeffect:GetDescendants()) do
        if fire:IsA("ParticleEmitter") then
            fire.Enabled = true
        end
    end
end

local function enableWater()
    watereffect.Enabled = true
end

local function disableExplosion()
    for _, explosion in pairs(explosion:GetDescendants()) do
        if explosion:IsA("ParticleEmitter") then
            explosion.Enabled = false
        end
    end
end

local function disableFire()
    for _, fire in pairs(fireeffect:GetDescendants()) do
        if fire:IsA("ParticleEmitter") then
            fire.Enabled = false
        end
    end
end

local function disableWater()
    watereffect.Enabled = false
end


local playbutton = workspace.Menu.Play
local rope = workspace.Menu.Play.Rope
local info = TweenInfo.new(6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local info4 = TweenInfo.new(4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local info2 = TweenInfo.new(8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local tween = TweenService:Create(camera, info, {Position = Vector3.new(733.108, 14.451, -821.718)}) -- menu camera
local tween4 = TweenService:Create(text, info4, {Position = Vector3.new(712.179, 19.936, -842.667)}) -- text title
local tween2 = TweenService:Create(playbutton, info2, {Position = Vector3.new(733.86, 20.13, -841.05)}) -- play button
--local tween3 = TweenService:Create(rope, info2, {Position = Vector3.new(733.86, 41.93, -841.05)})

event.Event:Connect(function()
    print("received")
    tween:Play()
    wait(1.4)
    print("wait")
    tween4:Play()
    print("tween 4")
    SoundService.splash:Play()
    enableWater()
    tween4.Completed:Connect(function()
        disableWater()
        enableExplosion()
        SoundService.explosion:Play()
        wait(3)
        disableExplosion()
        enableFire()
        SoundService.fire:Play()
        
        wait(2)
        
        tween2:Play()
        --tween3:Play()
        SoundService.Elevator:Play()
    end)
end)

我尝试删除一些模块,但没有成功,没有拼写错误。应该会收到事件,但没有收到

lua scripting roblox
1个回答
0
投票

看起来您在第二个脚本中正在连接到

RemoteEvent
上的 .Event 事件。据我所知,
.Event
不是您可以连接的活动。相反,您需要连接到
.OnServerEvent
来获取 客户端 → 服务器事件

local TweenService = game:GetService("TweenService")
local camera = workspace:WaitForChild("MainCamera")
local text = workspace.MenuText:WaitForChild("WorldPivot")
local SoundService = game:GetService("SoundService")
local event = game.ReplicatedStorage.Credits
local watereffect = workspace.MenuText.Water.Water
local fireeffect = workspace.MenuText.Fire
local explosion = fireeffect.Explosion

local function enableExplosion()
    for _, explosion in pairs(explosion:GetDescendants()) do
        if explosion:IsA("ParticleEmitter") then
            explosion.Enabled = true
        end
    end
end

local function enableFire()
    for _, fire in pairs(fireeffect:GetDescendants()) do
        if fire:IsA("ParticleEmitter") then
            fire.Enabled = true
        end
    end
end

local function enableWater()
    watereffect.Enabled = true
end

local function disableExplosion()
    for _, explosion in pairs(explosion:GetDescendants()) do
        if explosion:IsA("ParticleEmitter") then
            explosion.Enabled = false
        end
    end
end

local function disableFire()
    for _, fire in pairs(fireeffect:GetDescendants()) do
        if fire:IsA("ParticleEmitter") then
            fire.Enabled = false
        end
    end
end

local function disableWater()
    watereffect.Enabled = false
end


local playbutton = workspace.Menu.Play
local rope = workspace.Menu.Play.Rope
local info = TweenInfo.new(6, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local info4 = TweenInfo.new(4, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local info2 = TweenInfo.new(8, Enum.EasingStyle.Quad, Enum.EasingDirection.Out, 0, false)
local tween = TweenService:Create(camera, info, {Position = Vector3.new(733.108, 14.451, -821.718)}) -- menu camera
local tween4 = TweenService:Create(text, info4, {Position = Vector3.new(712.179, 19.936, -842.667)}) -- text title
local tween2 = TweenService:Create(playbutton, info2, {Position = Vector3.new(733.86, 20.13, -841.05)}) -- play button
--local tween3 = TweenService:Create(rope, info2, {Position = Vector3.new(733.86, 41.93, -841.05)})

event.OnServerEvent:Connect(function()
    print("received")
    tween:Play()
    wait(1.4)
    print("wait")
    tween4:Play()
    print("tween 4")
    SoundService.splash:Play()
    enableWater()
    tween4.Completed:Connect(function()
        disableWater()
        enableExplosion()
        SoundService.explosion:Play()
        wait(3)
        disableExplosion()
        enableFire()
        SoundService.fire:Play()
        
        wait(2)
        
        tween2:Play()
        --tween3:Play()
        SoundService.Elevator:Play()
    end)
end)

在上面的脚本中,我只是将

event.Event:Connect(function()
替换为
event.OnServerEvent:Connect(function()

另一个问题是您在第一个脚本中使用

:Fire
而不是
:FireServer
。由于您要向服务器发起攻击,因此需要将
:Fire
更改为
:FireServer
。以下是更正后的脚本。

local frame = game.Players.LocalPlayer.PlayerGui.Credits.Frame
local text = frame.Presents
local stroke = text.UIStroke
local CurrentCamera = workspace.CurrentCamera
local TweenService = game:GetService("TweenService")
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local finishcredits = ReplicatedStorage.Credits
local SoundService = game:GetService("SoundService")
local song = SoundService.Song
local boom = SoundService.Boom
local RunService = game:GetService("RunService")


local targetTransparency = 1
local tweenDuration = 2
local tweenDuration2 = 4
local tweenInfo = TweenInfo.new(tweenDuration)
local tween = TweenService:Create(frame, tweenInfo, {BackgroundTransparency = targetTransparency})
local tween2 = TweenService:Create(text, tweenInfo, {TextTransparency = targetTransparency})
local tween3 = TweenService:Create(stroke, tweenInfo, {Transparency = targetTransparency})


wait(1)
print("1")
local camera = workspace.MainCamera
local function updateCamera()
CurrentCamera.CFrame = camera.CFrame
end

print("2")
frame.Visible = true
wait(1)
boom:Play()
wait(5)
song:Play()
CurrentCamera.CameraType = Enum.CameraType.Scriptable
print("script")

tween:Play()
print("tweened")
tween2:Play()
tween3:Play()

wait(2)
finishcredits:ServerFire(print("fired"))


RunService.RenderStepped:Connect(updateCamera)
© www.soinside.com 2019 - 2024. All rights reserved.