Roblox 让函数运行多次

我的代码:

local UIS = game:GetService("UserInputService")
local Player = game.Players.LocalPlayer
local Mouse = Player:GetMouse()
local Activation =
Instance.new("Sound",game.Players.LocalPlayer.Character.Head)
local char = Player.Character
local hum = char.Humanoid
local root = char.HumanoidRootPart

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.F then
    local animation = Instance.new("Animation")
    animation.AnimationId = "rbxassetid://1581972610"
    local animTrack = hum:LoadAnimation(animation)
    animTrack:Play()
    Activation.SoundId = "rbxassetid://1581091676" --播放万花筒写轮眼激活的音效。
    Activation:Play()
    wait(0.3)
    game.Players.LocalPlayer.Character.Head.face.Texture = "rbxassetid://76285632" --当按下 F 键时,脸的纹理会变成写轮眼的贴图。
    game:GetService("Chat"):Chat(Player.Character.Head, "万花筒写轮眼!")
end
end)

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.R then
    Activation.SoundId = "rbxassetid://1580990602" --播放天照写轮眼激活的音效。
    Activation:Play()
    game:GetService("Chat"):Chat(Player.Character.Head, "天照!")
    local Target = Instance.new("Part") --制造一个部件
    Target.CFrame = Mouse.Hit; --使部件在游戏中出现在鼠标的当前位置
    Target.Parent = game.Workspace
    Target.Transparency = 1
    Target.Anchored = true
    Target.CanCollide = false

    local Amaterasu = Instance.new("Fire")
    Amaterasu.Parent = game.Workspace.Part
    Amaterasu.Color = Color3.new(0,0,0)
    Amaterasu.SecondaryColor = Color3.new(0,0,0) --天照的属性
    Amaterasu.Size = 25

    local R = Instance.new("RocketPropulsion") --火箭推进,把天照的父物体
    R.Parent = Amaterasu
    R.MaxThrust = 300
    R.ThrustP = 30
    R:Fire()
end
end)

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.G then
    game.Players.LocalPlayer.Character.Head.face.Texture = "rbxassetid://22557247" --当按下 G 键时,脸的纹理会变回正常状态。(留空的脸部贴图不起作用 :/ )
end
end)

我正在处理这个脚本中的第二个函数,如果按下“r”键,该函数会使一个带火焰的部件出现在鼠标的当前位置。

这个功能本来没问题,但是在按下“r”键将部件生成在鼠标移动到另一个区域后,再次按下“r”键时,它会重复执行函数中的所有内容,但是不会切换到新位置。

点赞
用户10018042
用户10018042

你应该尝试在按下 R 键时运行 Mouse = Player:GetMouse() 函数,以更新鼠标的位置。更新后的事件应该如下:

UIS.InputBegan:Connect(function(input)
if input.KeyCode == Enum.KeyCode.R then
    Mouse = Player:GetMouse() -- 这一行更新了鼠标的位置
    Activation.SoundId = "rbxassetid://1580990602"Sound.
    Activation:Play()
    game:GetService("Chat"):Chat(Player.Character.Head, "Amaterasu!")
    local Target = Instance.new("Part")
    Target.CFrame = Mouse.Hit;
    -- 所有其他你正在做的东西在这里

这样,每次用户按下 R 键时进入 if 块都会更新鼠标的位置。

2018-07-05 20:58:44