Roblox - скрипт создателя детали FE не работает - PullRequest
0 голосов
/ 10 ноября 2018

Я делаю игру FE в Roblox, и у меня проблема с кодом FE внутри инструмента. Могу ли я получить помощь?

Внутри инструмента:

script.Parent.Activated:Connect(function()
game:GetService("ReplicatedStorage"):FindFirstChild('TS'):FireServer(game.Players.LocalPlayer)
end)

Внутри сценария события

local eventplace = game:GetService("ReplicatedStorage")
eventplace:FindFirstChild('TS').OnServerEvent:connect(function(player)
local rangeball = Instance.new('Part',workspace)
    local rangemesh = Instance.new("SpecialMesh",rangeball)
    rangemesh.MeshType = Enum.MeshType.Sphere
    rangeball.Size = Vector3.new(7,7,7)
    player.Character.Humanoid.WalkSpeed = 0
    rangeball.Parent = workspace
end)

1 Ответ

0 голосов
/ 11 ноября 2018

Вы ранее создавали Remote TS в ReplicatedStorage?

Также еще одна вещь:

Когда вы используете: FireServer (), аргумент player / client будет автоматически передан, поэтому нет необходимости делать: FireServer (game.Players.LocalPlayer), поскольку удаленное событие получит два аргумента, оба из которых являются клиент / игрок.

Сценарий, который вы использовали в инструменте, является LocalScript. Вместо этого вы должны использовать не местные (или сценарии).

А также

Когда вы используете game.Players.LocalPlayer в локальном скрипте, эксплуататор может изменить название игры. Играет локально, что в результате может привести к поломке вашего скрипта.

Чтобы это исправить, вам понадобятся переменные.

В скрипте инструмента:

local tool = script.Parent;

tool.Activated:connect(function();
    local rangeball = Instance.new("Part", workspace); -- Since you put ', workspace' the Part will automatically be child of the Workspace. If you did Instance.new("Part", workspace.idk) it will set the parent of the part to workspace.idk, and if workspace.idk doens't exist, it will throw out a error.
    rangeball.Shape = "Sphere"; -- We can just use 'Shape' property to replace sphere meshes!
    -- No need to do 'rangeball.Parent = workspace' because with simply doing 'Instance.new("Part", workspace)' you do the same function because Instance.new takes two arguments (class, parent)!
    pcall(function() -- We use 'pcall()' here to prevent errors.
        tool.Parent.Humanoid.WalkSpeed = 0; -- Set the Player's WalkSpeed.
    end);
end);

С помощью этого кода вы можете свободно удалить скрипт Event!

Если вы собираетесь использовать События, убедитесь, что сценарий событий находится внутри ServerScriptService, чтобы он был безопаснее и работал правильно. Помните, что сценарии выполняются только в ReplicatedFirst, ServerScriptService, Workspace и некоторых других.

Надеюсь, мой ответ поможет вам.

Кроме того, еще одна вещь, добро пожаловать в переполнение стека!

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...