什么样的脚本可以让我使用我的工具在roblox中拍摄网格物体/零件?

时间:2018-10-11 13:36:06

标签: roblox

我正在尝试在Roblox上制作一款游戏,但是我对编码并不了解,因此当我尝试从YouTube下车的脚本时,它就无法正常工作(那个家伙在制造火球) 。有人可以帮我吗?

1 个答案:

答案 0 :(得分:2)

从技术上讲任何类型的脚本都可以使用,但是理想地您需要结合使用LocalScript,普通脚本和RemoteEvent。

什么是LocalScript,脚本和RemoteEvent?

下面的解释非常基本。

LocalScript是仅在客户端上运行的脚本。 LocalScript能够执行您可以使用Roblox中的任何其他脚本完成的几乎所有任务,但是通常只有运行LocalScript的客户端会受到影响。

例如,如果您尝试将蓝砖的颜色更改为红色,则运行LocalScript的客户端将看到红砖,但其他所有人仍将看到蓝色,因为LocalScripts无法影响客户端以外的任何事物。正在运行,而没有RemoteEvent的帮助(稍后再讨论)。

Script是在服务器上运行的脚本。您可以使用它进行服务器端更改,这些更改将在 all 客户端之间复制。例如,如果您想在Script(而不是LocalScript)中将蓝砖从早期更改为红色,那么每个人都会看到红砖,因为服务器上的更改会显示在所有客户端上。

RemoteEvent是一个特殊的对象,可用于脚本和LocalScript进行通信。这样,您就可以让客户端运行一些LocalScript来请求脚本执行的某些操作。

例如,如果您制作了一个带有按钮的GUI,可以通过单击GUI中的按钮将蓝砖变成红砖,那么您可以让(1)LocalScript检测何时单击该按钮,( 2)让LocalScript通过RemoteEvent“触发”一个事件,(3)在服务器上让Script“侦听”要通过RemoteEvent触发的事件,当它听到一个事件时,它将变蓝变成红色的。这样,您可以让一些仅用于客户端的对象(在这种情况下为按钮)影响服务器上的某些内容。

有关更多信息,check out the Roblox Developer wiki!可能是Roblox所有事物的第一资源。在这里,您可以找到大量的教程以及Roblox中所有内容的文档。您可以从查找基本的编码教程开始,以帮助您了解Lua和常规编程的工作原理,或者查找与LocalScripts,Scripts和RemoteEvents有关的文章。

那工具呢?

如果我是您,我将拥有一个其中包含LocalScript的工具。在LocalScript中,您可以让播放器在每次点击时监听它,如下所示:

-- LocalScript code
local tool = script.Parent -- Gets the tool object that this LocalScript belongs inside
local remote = game:GetService("ReplicatedStorage"):WaitForChild("FireballTool") -- Put a RemoteEvent object inside ReplicatedStorage and name it FireballTool (case sensitive!)
tool.Equipped:connect(function(mouse) -- This runs the code nested inside of it any time the tool is equipped
    mouse.Button1Down:connect(function() -- This runs the code nested inside any time the player clicks
        remote:FireServer()
    end)
end)

然后在ServerScriptService中创建一个如下所示的脚本:

-- Server Script code
local remote = game:GetService("ReplicatedStorage"):WaitForChild("FireballTool")
remote.OnClientEvent:connect(function(player)
    local fireball = Instance.new("Part") -- Spawns in a new Part (a brick)
    fireball.CFrame = player.Character.Torso.CFrame -- This will teleport the brick into the player's character's torso, assuming you're using the R6 body type. This is mainly so the fireball starts in the right place.

    -- Put code here to define the fireball, i.e. maybe you want to make it invisible and put flames on it or something

    fireball.Parent = workspace -- Instance.new("Part") only creates a new Part; it doesn't put it in Workspace by default and therefore will be basically nonexistent to all the players. This will move the Part into Workspace, which makes it visible.

    -- Put code here to make the fireball move. You could probably just use a rocket launcher script or something as a reference.

end)

请记住,检查Roblox开发人员Wiki!!如果您对此处的任何内容感到困惑,请在开发人员Wiki中进行搜索。肯定会提供一种更好,更深入的方式解释此处发生的情况。

我希望这可以帮助您走上正确的道路。在游戏中祝您好运!