95 lines
1.8 KiB
Lua
95 lines
1.8 KiB
Lua
local Tool = script.Parent
|
|
local Sounds = Tool.Sounds
|
|
|
|
local Rocket = Instance.new("Part")
|
|
Rocket.Locked = true
|
|
Rocket.BackSurface = 3
|
|
Rocket.BottomSurface = 3
|
|
Rocket.FrontSurface = 3
|
|
Rocket.LeftSurface = 3
|
|
Rocket.RightSurface = 3
|
|
Rocket.TopSurface = 3
|
|
Rocket.Size = Vector3.new(1,1,4)
|
|
Rocket.BrickColor = BrickColor.new(23)
|
|
|
|
Tool.RocketScript:clone().Parent = Rocket
|
|
Sounds.Explosion:clone().Parent = Rocket
|
|
Sounds.Swoosh:clone().Parent = Rocket
|
|
|
|
|
|
function fire(vTarget)
|
|
|
|
local vCharacter = Tool.Parent;
|
|
|
|
local vHandle = Tool:findFirstChild("Handle")
|
|
if vHandle == nil then
|
|
print("Handle not found")
|
|
return
|
|
end
|
|
|
|
local dir = vTarget - vHandle.Position
|
|
|
|
dir = computeDirection(dir)
|
|
|
|
local missile = Rocket:clone()
|
|
|
|
local pos = vHandle.Position + (dir * 8)
|
|
|
|
--missile.Position = pos
|
|
missile.CFrame = CFrame.new(pos, pos + dir)
|
|
|
|
local creator_tag = Instance.new("ObjectValue")
|
|
|
|
local vPlayer = game.Players:playerFromCharacter(vCharacter)
|
|
|
|
if vPlayer == nil then
|
|
print("Player not found")
|
|
else
|
|
if (vPlayer.Neutral == false) then -- nice touch
|
|
missile.BrickColor = vPlayer.TeamColor
|
|
end
|
|
end
|
|
|
|
creator_tag.Value =vPlayer
|
|
creator_tag.Name = "creator"
|
|
creator_tag.Parent = missile
|
|
|
|
missile.RocketScript.Disabled = false
|
|
|
|
missile.Parent = game.Workspace
|
|
end
|
|
|
|
function computeDirection(vec)
|
|
local lenSquared = vec.magnitude * vec.magnitude
|
|
local invSqrt = 1 / math.sqrt(lenSquared)
|
|
return Vector3.new(vec.x * invSqrt, vec.y * invSqrt, vec.z * invSqrt)
|
|
end
|
|
|
|
Tool.Enabled = true
|
|
function onActivated()
|
|
if not Tool.Enabled then
|
|
return
|
|
end
|
|
|
|
Tool.Enabled = false
|
|
|
|
local character = Tool.Parent;
|
|
local humanoid = character.Humanoid
|
|
if humanoid == nil then
|
|
print("Humanoid not found")
|
|
return
|
|
end
|
|
|
|
local targetPos = humanoid.TargetPoint
|
|
|
|
fire(targetPos)
|
|
|
|
wait(3)
|
|
|
|
Tool.Enabled = true
|
|
end
|
|
|
|
|
|
script.Parent.Activated:connect(onActivated)
|
|
|