Технически будет работать любой вид сценария, но в идеале вы захотите использовать комбинацию LocalScript, обычного сценария и RemoteEvent.
Что такое LocalScript, Script и RemoteEvent?
Приведенные ниже пояснения довольно просты.
A LocalScript
- это сценарий, который выполняется только на клиенте.LocalScript способен выполнять практически любую задачу, которую можно выполнить с помощью любого другого сценария в Roblox, но обычно это влияет только на клиент, на котором работает LocalScript.
Например, если вы попытались изменить цветот синего кирпича к красному, тогда клиент, на котором работает LocalScript, увидит красный кирпич, но все остальные по-прежнему будут видеть синий, потому что LocalScripts не может повлиять ни на что, кроме клиента, на котором запущен LocalScript без некоторой помощи RemoteEvent (я коснусь этого позже).
A Script
- это скрипт, работающий на сервере.Вы можете использовать его для внесения изменений на стороне сервера, которые будут реплицированы на всех клиентов.Например, если вы хотите изменить наш синий кирпич с более раннего на красный в Script вместо LocalScript, то каждый увидит красный кирпич, поскольку изменения на сервере отображаются для всех клиентов.
A RemoteEvent
- это специальный объект, который вы можете использовать для взаимодействия сценариев и локальных сценариев.Это позволяет вам иметь клиент, выполняющий некоторый LocalScript, чтобы запросить какое-либо действие, которое будет выполняться сценарием.
Например, если вы создали графический интерфейс с кнопкой, которая позволяет вам изменить синий кирпич на красныйЕсли щелкнуть кнопку в графическом интерфейсе, то вы можете иметь (1) LocalScript, определяющий, когда нажимается кнопка, (2) иметь LocalScript, «запускающий» событие через RemoteEvent, и (3) иметь скрипт на сервере«прослушивание» события, которое должно быть запущено через RemoteEvent, и когда оно его услышит, оно изменит синий кирпич на красный.Таким образом, вы можете иметь какой-то объект только для клиента (в данном случае кнопку), влияющий на что-либо на сервере.
Для получения дополнительной информации, посмотрите вики-сайт Roblox Developer! Это, пожалуй, # 1 ресурс для всех вещей Roblox.Здесь вы можете найти множество учебных пособий, а также документацию ко всему в Roblox.Вы могли бы начать с поиска базовых учебных пособий по кодированию, чтобы помочь себе понять, как работает Lua и программирование в целом, или вы могли бы посмотреть статьи о LocalScripts, Scripts и RemoteEvents.
Так что насчет инструмента? На вашем месте у меня был бы Инструмент с локальным скриптом внутри.В 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! Если вы что-то не знаете, зайдите в поиски в вики для разработчиков.Это, безусловно, даст лучшее и более подробное объяснение того, что, черт возьми, происходит здесь. Я надеюсь, что это поможет вам встать на правильный путь.Удачи тебе в игре!