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

How do I make the character face the side of a torso through the mouse?

Asked by 8 years ago
                                                                                                                                                                    Character.Torso.CFrame = CFrame.new(Character.Torso.Position,Vector3.new(Mouse.Hit.p.x,Character.Torso.Position.y,Mouse.Hit.p.z))

Yes, it's very unclear, so let me make it a little easier. What I managed to do is let the character face the mouse, but I want the right side of the character to face the mouse.

So instead of

{}
O --------------------------------> /^
{}

How do I do

== O ==   -----------------------> /^
0
I don't understand User#11440 120 — 8y

1 answer

Log in to vote
0
Answered by
dyler3 1510 Moderation Voter
8 years ago

I'm not exactly 100% sure what you're asking, but I think I figured it out.

First of all however, you shouldn't be using the characters torso, as that will kill them instantly. You should instead be using the HumanoidRootPart, which is basically like a torso, but it won't kill the player if it disconnects from the body.


Now, for the code, all you really need to do is multiply the CFrame you're using by an Angle, rotating the character 90 degrees (pi radians). It is as simple as this:

CFrame.new(0,0,0) * CFrame.Angles(0,math.rad(90),0) -- Just an example

So now, applying this to your code, you just need to do the same exact thing:

Character.HumanoidRootPart.CFrame = CFrame.new(Character.Torso.Position,Vector3.new(Mouse.Hit.p.x,Character.Torso.Position.y,Mouse.Hit.p.z)) * CFrame.Angles(0,math.rad(90),0)

And there you go! It should work now.


Now, I'm not sure whether you'll need this to get it working, I assume you already know how, but just in case, here's the code I tested it with:

local plr = game.Players.LocalPlayer
local Mouse = plr:GetMouse()

repeat wait() until plr.Character
local Character = plr.Character

repeat wait() until Character.HumanoidRootPart

while wait() do
    Character.HumanoidRootPart.CFrame = CFrame.new(Character.Torso.Position,Vector3.new(Mouse.Hit.p.x,Character.Torso.Position.y,Mouse.Hit.p.z)) * CFrame.Angles(0,math.rad(90),0)
end

So yes, I have tested this myself, and it works how I think you want it to. If not, or if you have any further problems/questions, please leave a comment below and I'll see what I can do. Hope I helped!

1
Thanks for the answer! I never thought about that really simple solution. :P SneakySecretAgent 12 — 8y
Ad

Answer this question