Scripting Helpers is winding down operations and is now read-only. More info→
Ad
Log in to vote
0

How do I make the direction of a summoned block match the direction of the player?

Asked by 5 years ago
Edited 5 years ago

Hi, Recently I had made a script that summons a lightning bolt. The only issue is that my lightning bolt can only face one direction. So say my player was facing west and I summon a lightning bolt, the lightning bolt would face North. How can I fix this issue?

Here is my script:




local player = game.Players.LocalPlayer local character = player.CharacterAdded:Wait() local head = character:WaitForChild("Head") local Humanoid = character:WaitForChild("Humanoid") local torso = character.UpperTorso local mouse = player:GetMouse() local bodyparts = game.Players.LocalPlayer.Character:GetChildren() local orientation = character.HumanoidRootPart.Orientation local Workspace = game.Workspace local target local God = player.PlayerGui.ChooseCharacter.God --BREAKLINE-- local function onKeyPress(actionName, userInputState, inputObject) target = mouse.Target if userInputState == Enum.UserInputState.Begin then if inputObject.KeyCode.Name =="Z" then if God.Value =="Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "EAGLE SUMMON","Blue") print("Test Z") end end if inputObject.KeyCode.Name =="T" then --THIS IS MASTERBOLT SUMMON-- if God.Value =="Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "MASTERBOLT!","Blue") local tool = game.Workspace.BetaBolt:Clone() character.Humanoid:EquipTool(tool) wait(5) tool:Destroy() end end if inputObject.KeyCode.Name =="F" then --THIS IS ULTIMATE ABILITY-- if God.Value =="Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "FEEL THE POWER OF A TRUE GOD!","Blue") Humanoid.HipHeight = 20 for _,body in pairs(bodyparts) do if body.Name == "RightHand" then body.BrickColor = BrickColor.new("Dark blue") end end local lightning = Instance.new("Part",Workspace) lightning.Shape = ("Cylinder") lightning.BrickColor = BrickColor.new("Institutional white") lightning.Transparency = 0.5 lightning.CanCollide = false lightning.Size = Vector3.new(2, 9, 5) wait(6) --end of power-- Humanoid.HipHeight = 1.35 end end if inputObject.KeyCode.Name =="Q" then --THIS IS LIGHTNING DASH-- if God.Value == "Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "LIGHTNING DASH!","Blue") head.CFrame = head.CFrame * CFrame.new(0,0,-50) else print("FAIL LIGHTNING DASH") end end if inputObject.KeyCode.Name =="E" then --THIS IS WERE I NEED HELP-- if God.Value == "Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "THUNDER!","Blue") local damage = game.Workspace.Damage:Clone() local Thunder = Instance.new("Part") Thunder.Name = ("ThunderBolt") local mesh = Instance.new("SpecialMesh",Thunder) mesh.MeshId = "rbxassetid://978945957" mesh.TextureId = "rbxassetid://978945981" Thunder.Anchored = true Thunder.Orientation = Vector3.new(orientation) mesh.Scale = Vector3.new(5,20,15) damage.Position = Vector3.new(mouse.hit.x,mouse.hit.y,mouse.hit.z) damage.Parent = workspace Thunder.Position = Vector3.new(mouse.hit.x,mouse.hit.y,mouse.hit.z) Thunder.Parent = workspace wait(1) damage:Destroy() Thunder:Destroy() else print("FAIL THUNDERBOLT") end if inputObject.KeyCode.name =="Z" then if God.Value =="Zeus" then game:GetService("Chat"):Chat(player.Character.Head, "EAGLE FLIGHT!","Blue") else print("Fail EagleSummon") end end end end end game:GetService("ContextActionService"):BindAction( "keyPress", onKeyPress, false, Enum.KeyCode.Q, Enum.KeyCode.E, Enum.KeyCode.F, Enum.KeyCode.T, Enum.KeyCode.Z )
0
lookvector INOOBE_YT 387 — 5y
0
To use lookvector, I just do lookvector.new? turbomegapower12345 48 — 5y
0
No User#19524 175 — 5y
0
Im really confused I tried to use lookVector but I had an error:21:02:13.224 - ContextActionService: Unexpected error while invoking callback: CFrame is not a valid member of SpecialMesh turbomegapower12345 48 — 5y
View all comments (2 more)
0
CFrame.new(Vector3 pos, Vector3 lookAt) User#19524 175 — 5y
0
CFrame isn't a property of SpecialMesh object. Get the CFrame of the parent of the special mesh or use a meshpart instead of the special mesh. MythicalShade 420 — 5y

1 answer

Log in to vote
1
Answered by 5 years ago
Edited 5 years ago

Hello! To use that you'd need to use CFrame and LookVector. You can read about it here: http://wiki.roblox.com/index.php?title=CFrame#Properties

Here's an exemple:

local player = game.Players.LocalPlayer
local character = player.CharacterAdded:Wait()

local Part = Instance.new("Part")
Part.Parent = workspace
local X = 10 -- DistanceInStuds

Part.Anchored = true
Part.Size = Vector3.new(2,3,1) -- this is so we see the way it's facing

Part.CFrame = CFrame.new(character.HumanoidRootPart.Position * (character.HumanoidRootPart.CFrame.LookVector * X))

Try this, you might need to tweak it a bit, but that's the joy of scripting. =)

0
The parent argument to Instance.new is deprecated, and you have a capitalizaron mistake on line 8. User#19524 175 — 5y
0
Fixed! Thanks for the feedback :) Golubian 37 — 5y
Ad

Answer this question