Scripting HelpersARCHIVE
A little piece of Roblox history. Preserved for everyone, one question at a time.Read about the archive →
✓ ANSWER ACCEPTED

Does mouse.Hit.Position work on mobile?

If it doesnt how can I make it so whatever direction the player faces it shoots from the angle from the players right hand? I'm pretty basic in scripting i made this after like 30 minutes or an hour of the dev forum and youtube tutorials

The script (local):

local UIS = game:GetService("UserInputService")
local mouse = game.Players.LocalPlayer:GetMouse()
local debounce = false
local player = game.Players.LocalPlayer
local character = player.Character or player.CharacterAdded:Wait()
local humanoid = character:WaitForChild("Humanoid")

--Animation
local animInstance = Instance.new("Animation")
animInstance.AnimationId = "rbxassetid://04160584403"
local fireballAnim = humanoid:LoadAnimation(animInstance)


local function shootFireball(caster, mousePos)
	if caster == player then
		game.ReplicatedStorage.Events.FireBall:FireServer("Replicate",mousePos) --Show fireball for other players
	end

	local effects = game.ReplicatedStorage.FireBallEffects
	local fireBall = effects.FireBall:Clone()
	local explosion = effects.Explosion:Clone()
	local character = caster.Character

	--Fireball
	fireBall.Position = character.RightHand.Position
	fireBall.Parent = workspace
	fireBall.Sound:Play()
	local weld = Instance.new("WeldConstraint", fireBall)
	weld.Part0 = fireBall
	weld.Part1 = character.RightHand
	wait(0.45)
	weld:Destroy()
	local velocity = Instance.new("BodyVelocity", fireBall)
	velocity.Velocity = CFrame.new(fireBall.Position, mousePos).LookVector * 100

	--Explosion
	fireBall.Touched:Connect(function(hit)
		if hit:IsDescendantOf(character) or hit:FindFirstChild("ParticleEmitter") then return end
		explosion.Position = fireBall.Position
		fireBall:Destroy()
		explosion.Parent = workspace
		explosion.Sound:Play()
		if caster == player then --Make sure the damage doesnt activate when someone else casted
			game.ReplicatedStorage.Events.FireBall:FireServer(hit)
		end
		wait(1)
		explosion:Destroy()
	end)
end

--PC
UIS.InputBegan:Connect(function(key, processed)
	if processed or debounce then return end
	debounce = true

	if key.UserInputType == Enum.UserInputType.Keyboard then
		if key.KeyCode == Enum.KeyCode.One then
			fireballAnim:Play()
			wait(0.75)
			shootFireball(player, mouse.Hit.Position)
		end
	end
	wait(1)
	debounce = false
end)

--Mobile
function onKeyPress(actionName, userInputState, inputObject, position, processed)
	if processed or debounce then return end
		debounce = true
		fireballAnim:Play()
	shootFireball(player, mouse.Hit.Position)
	print("1 was pressed")
		wait(1)
		debounce = false
end
game.ContextActionService:BindAction("keyPressSpecialName", onKeyPress, true, Enum.KeyCode.C)
game.ContextActionService:SetPosition("keyPressSpecialName", UDim2.new(.5,0,-.5,0))
game.ContextActionService:SetImage("keyPressSpecialName", "rbxassetid://73737626")


game.ReplicatedStorage.Events.FireBall.OnClientEvent:Connect(function(caster, mousePos)
	if caster == player then return end --The person casting the fireball can already see it
	shootFireball(caster, mousePos) --Create the fireball
end)

1 comment

0

look at lines 67-85

1 answer

This discussion is preserved as it was. New answers, comments, and votes are closed.