我正在尝试在Roblox上制作一款游戏,但是我对编码并不了解,因此当我尝试从YouTube下车的脚本时,它就无法正常工作(那个家伙在制造火球) 。有人可以帮我吗?
答案 0 :(得分:2)
从技术上讲任何类型的脚本都可以使用,但是理想地您需要结合使用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中进行搜索。肯定会提供一种更好,更深入的方式解释此处发生的情况。
我希望这可以帮助您走上正确的道路。在游戏中祝您好运!