So, I'm making a DBZ game, and I need to move a part along a ray or part. In order to draw this beam/part I need 2 Vector3 values, I've got the Handle of the tool and the Mouse.Hit (Which is CFrame)
Is there anyway to convert a CFrame to Vector3?
Scripts:
Local Script in a Tool
local Tool = script.Parent
local Mouse = game.Players.LocalPlayer:GetMouse()
local Player = game.Players.LocalPlayer
local Event = game.ReplicatedStorage.ToolEvent
script.Parent.Activated:connect(function()
Event:FireServer('Ki Blast', Mouse.Hit, Tool.Handle)
end)
ServerController Script :
local Atk = require(script.Parent.Attacks.AttackGenerator)
local Attacks = require(script.Parent.Attacks.Attacks)
local Morphs = require(script.Parent.Transformations.Transformations)
local PService = require(script.Parent.PlayerService)
local Event = game.ReplicatedStorage.ToolEvent
Event.OnServerEvent:connect(function(Player, AtkName, Target, Handle)
if AtkName == 'Ki Blast' then
Atk.KiBlastStart(Player, Target, Handle)
PService.Values[Player.Name].Charging = true
elseif AtkName == 'Ki Beam' then
elseif AtkName == 'Ki Beam Release' then
end
end)
Attack Module Script
local Atk = {}
local AtkValues = require(script.Parent.Attacks)
local PService = require(script.Parent.Parent.PlayerService)
local PValues = PService.Values
local Parts = game.ReplicatedStorage.Parts
local Sounds = game.ReplicatedStorage.Sounds
local DS = game:GetService('Debris')
local DrawBeam = function(beamstart, beamend, clr, fadedelay, templatePart)
local dis = (beamstart - beamend).magnitude
local laser=templatePart:Clone()
laser.BrickColor = clr
laser.Size = Vector3.new(.1, .1, dis + .2)
laser.CFrame = CFrame.new((beamend+beamstart)/2, beamstart) * CFrame.new(0, 0, - dis/2)
laser.Parent = workspace
end
Atk.KiBlastStart = function(Player, Target, Handle)
local Counter = 0
local Orb = SphereSynthesizer(Player, Target, Handle, 0.35, 'Bright bluish green', Vector3.new(0,0,0), true, Enum.Material.Neon)
repeat
wait()
Counter = Counter + 1
Orb.Mesh.Scale = Vector3.new(Counter/2,Counter/2,Counter/2)
until Counter > 10
Counter = 0
Atk.KiBlastLaunch(Player, Target, Handle, Counter, Orb)
DS:AddItem(Orb, AtkValues.Ki['Ki Blast'].Range)
end
Atk.KiBlastLaunch = function(Player, Target, Handle, Size, Orb)
DrawBeam(Handle.Position,Target, BrickColor.new('Really red'), 5, Parts.Cube)
local Play = Sounds.KiBlast:Clone()
Play.Parent = Orb
Play:Play()
Orb.Parent = workspace
Orb.Anchored = false
Orb.Velocity = Vector3.new(0,100,0)
Orb.CanCollide = true
wait(3)
for i=5,20,0.5 do wait()
Orb.Mesh.Scale = Vector3.new(i*5,i*5,i*5)
Orb.Transparency = Orb.Transparency + 0.025
end
end
