我试图让我的迷你游戏位置与Filtering Enabled一起工作(客户端做的任何事情就像创建一个部分并不影响任何服务器端)。目前唯一被打破的是一个小游戏。
小游戏的游戏玩法包括玩家放下块以阻止因减压而被吸入太空。
块的放置是在客户端完成的,所以很明显它在启用Filtering Enabled时无法正常工作。我尝试通过一个远程事件来解决这个问题,每当玩家试图放置一个块时,其中的参数是被放置的块以及放置它的CFrame。但是,每次我通过本地服务器测试时,它都会告诉我参数' part'是零,即使我确实给了它。
以下是相关脚本的相关代码: 服务器脚本:
pBEvent.OnServerEvent:connect(function(player,partToPlace,position)
partToPlace.Parent=sp.Blocks
partToPlace.CFrame=position
wait()
partToPlace:MakeJoints()
partToPlace.Anchored=false
end)
本地脚本:
m.Button1Down:connect(function()
if m.Target and m.Target.Name == script.Parent.Parent.Name and amount.Value > 0 and db == false or m.Target.Name == "Part" and db == false and amount.Value > 0 then
db = true
amount.Value = amount.Value - 1
local lastpos = drag.CFrame
local dragc = drag:Clone()
dragc.Anchored = true
dragc.Name = game.Players.LocalPlayer.Name
dragc.Transparency = 0
dragc.ff:Destroy()
event:FireServer(dragc,lastpos)
end
end)
答案 0 :(得分:3)
您正在将dragc传递给服务器,该服务器是拖动的克隆,但代码中不存在拖动。尝试克隆m.Target:
m.Button1Down:connect(function()
if m.Target and m.Target.Name == script.Parent.Parent.Name and amount.Value > 0 and db == false or m.Target.Name == "Part" and db == false and amount.Value > 0 then
db = true
amount.Value = amount.Value - 1
local lastpos = m.Target.CFrame
local dragc = m.Target:Clone()
dragc.Anchored = true
dragc.Name = game.Players.LocalPlayer.Name
dragc.Transparency = 0
dragc.ff:Destroy()
event:FireServer(dragc,lastpos)
end
end)