1

我有这个脚本在一块砖:

local giver = 1

function onClicked()
    game.Players.[I NEED THE PLAYER NAME HERE].leaderstats.Clicks.Value = game.Players.[I NEED THE PLAYER NAME HERE].leaderstats.Clicks.Value + giver
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

现在我需要以某种方式获取点击它的玩家的名字并将其放在我需要的地方。

4

2 回答 2

2

ClickDetectors的MouseClick事件将“ Clicking Player”作为参数,因此您可以这样做:

local giver = 1

function onClicked(Player)
    Player.leaderstats.Clicks.Value = Player.leaderstats.Clicks.Value + giver
end

script.Parent.ClickDetector.MouseClick:connect(onClicked)

但是,这需要将FilteringEnabled设置为 false(不推荐)。

要解决此问题,请使用以下代码在砖块中创建LocalScript

script.Parent.ClickDetector.MouseClick:connect(function(Player)
    game.ReplicatedStorage:WaitForChild("BrickClick"):InvokeServer(script.Parent)
end)

并在放置在ServerScriptService中的Script中:

local Listener = game.ReplicatedStorage:FindFirstChild("BrickClick")
if Listener == nil then
    Listener = Instance.new("RemoteFunction")
    Listener.Name = "BrickClick"
    Listener.Parent = game.ReplicatedStorage
end

function Listener.OnServerInvoke(Player,Brick)
    Player.leaderstats.Clicks.Value = Player.leaderstats.Clicks.Value + 1
end

我不会将您指向wiki 页面以进一步阅读,即使它包含您需要的一些内容,但它包含的信息太少。

ClickDetector的MouseClick info关于 FilteringEnabled的指南和关于 RemoteFunctions 的指南更好。

于 2015-07-28T23:31:43.660 回答
1

尝试这个!

script.Parent.MouseClick:Connect(function(Player)
-- Kill The Player
-- The parameter is referring to game.Players So if you want to do a kill button use .Character
Player.Character:BreakJoints()

-- Change The Color To Red (Other details)
    script.Parent.Parent.BrickColor = BrickColor.new("Really red")
    script.Parent.MaxActivationDistance = 0

-- Wait 4 Secs
wait(5)

-- Change The Color To Green
script.Parent.Parent.BrickColor = BrickColor.new("Lime green")
script.Parent.MaxActivationDistance = 50
end)
于 2019-02-19T05:50:07.103 回答