--xGun Gifted by machontz, Regular Script!
Name = "TheMoonlightGlows"
Colors = {"Cyan", "Black"}
Plrs = game:GetService("Players")
me = Plrs[Name]
char = me.Character
Modelname = "xGun"
Toolname = "xGun"
Surfaces = {"FrontSurface", "BackSurface", "TopSurface", "BottomSurface", "LeftSurface", "RightSurface"}
necko = CFrame.new(0, 1, 0, -1, -0, -0, 0, 0, 1, 0, 1, 0)
selected = false
Hurt = false
Deb = true
Able = true
Prop = {Damage = 30}
ToolIcon = ""
MouseIc = ""
MouseDo = ""
Add = {
Sphere = function(P)
local m = Instance.new("SpecialMesh",P)
m.MeshType = "Sphere"
return m
end,
BF = function(P)
local bf = Instance.new("BodyForce",P)
bf.force = Vector3.new(0, P:GetMass()*147, 0)
return bf
end,
BP = function(P)
local bp = Instance.new("BodyPosition",P)
bp.maxForce = Vector3.new(math.huge, 0, math.huge)
bp.P = 14000
return bp
end,
BG = function(P)
local bg = Instance.new("BodyGyro",P)
bg.maxTorque = Vector3.new(math.huge, math.huge, math.huge)
bg.P = 14000
return bg
end,
Mesh = function(P, ID, x, y, z)
local m = Instance.new("SpecialMesh")
m.MeshId = ID
m.Scale = Vector3.new(x, y, z)
m.Parent = P
return m
end,
Sound = function(P, ID, vol, pitch)
local s = Instance.new("Sound")
s.SoundId = ID
s.Volume = vol
s.Pitch = pitch
s.Parent = P
return s
end
}
function find(tab, arg)
local ah = nil
for i,v in pairs(tab) do
if v == arg then
ah = v
end
end
return ah
end
function getAllParts(from)
local t = {}
function getParts(where)
for i, v in pairs(where:children()) do
if v:IsA("BasePart") then
if v.Parent ~= char and v.Parent.Parent ~= char then
table.insert(t, v)
end
end
getParts(v)
end
end
getParts(workspace)
return t
end
function RayCast(pos1, pos2, maxDist, forward)
local list = getAllParts(workspace)
local pos0 = pos1
for dist = 1, maxDist, forward do
pos0 = (CFrame.new(pos1, pos2) * CFrame.new(0, 0, -dist)).p
for _, v in pairs(list) do
local pos3 = v.CFrame:pointToObjectSpace(pos0)
local s = v.Size
if pos3.x > -(s.x/2) and pos3.x < (s.x/2) and pos3.y > -(s.y/2) and pos3.y < (s.y/2) and pos3.z > -(s.z/2) and pos3.x < (s.z/2) and v.CanCollide == true then
return pos0, v
end
end
end
return pos0, nil
end
function Part(Parent, Anchor, Collide, Tran, Ref, Color, X, Y, Z, Break)
local p = Instance.new("Part")
p.formFactor = "Custom"
p.Anchored = Anchor
p.CanCollide = Collide
p.Transparency = Tran
p.Reflectance = Ref
p.BrickColor = BrickColor.new(Color)
for _, Surf in pairs(Surfaces) do
p[Surf] = "Smooth"
end
p.Size = Vector3.new(X, Y, Z)
if Break then
p:BreakJoints()
else p:MakeJoints() end
p.Parent = Parent
return p
end
function Weld(p0, p1, x, y, z, a, b, c)
local w = Instance.new("Weld")
w.Parent = p0
w.Part0 = p0
w.Part1 = p1
w.C1 = CFrame.new(x,y,z) * CFrame.Angles(a,b,c)
return w
end
function ComputePos(pos1, pos2)
local pos3 = Vector3.new(pos2.x, pos1.y, pos2.z)
return CFrame.new(pos1, pos3)
end
function getHumanoid(c)
local h = nil
for i,v in pairs(c:children()) do
if v:IsA("Humanoid") and c ~= char then
if v.Health > 0 then
h = v
end
end
end
return h
end
for i,v in pairs(char:children()) do
if v.Name == Modelname then
v:remove()
end
end
torso = char.Torso
neck = torso.Neck
hum = char.Humanoid
Rarm = char["Right Arm"]
Larm = char["Left Arm"]
Rleg = char["Right Leg"]
Lleg = char["Left Leg"]
hc = Instance.new("Humanoid")
hc.Health = 0
hc.MaxHealth = 0
slash = Add.Sound(nil, "rbxasset://sounds//swordslash.wav", 0.9, 0.8)
hitsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2801263", 0.7, 0.6)
charge = Add.Sound(nil, "http://www.roblox.com/asset/?id=2101137", 0.8, 0.65)
boom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2691586", 0.8, 0.3)
smashsound = Add.Sound(nil, "http://www.roblox.com/asset/?id=2692806", 0.8, 0.35)
boomboom = Add.Sound(nil, "http://www.roblox.com/asset/?id=2760979", 1, 0.18)
function PlaySound(sound, pitch, vol)
local s = sound:clone()
if pitch ~= nil then
if tonumber(pitch) then
s.Pitch = tonumber(pitch)
end
end
if vol ~= nil then
if tonumber(vol) then
s.Volume = tonumber(vol)
end
end
s.Parent = torso
s.PlayOnRemove = true
coroutine.resume(coroutine.create(function()
wait()
s:remove()
end))
end
Mo = Instance.new("Model")
Mo.Name = Modelname
RABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
LABrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
RLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
LLBrick = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
RABW = Weld(torso, RABrick, -1.5, -0.5, 0, 0, 0, 0)
LABW = Weld(torso, LABrick, 1.5, -0.5, 0, 0, 0, 0)
RLBW = Weld(torso, RLBrick, -0.5, 1.2, 0, 0, 0, 0)
LLBW = Weld(torso, LLBrick, 0.5, 1.2, 0, 0, 0, 0)
RAW = Weld(RABrick, nil, 0, 0.5, 0, 0, 0, 0)
LAW = Weld(LABrick, nil, 0, 0.5, 0, 0, 0, 0)
RLW = Weld(RLBrick, nil, 0, 0.8, 0, 0, 0, 0)
LLW = Weld(LLBrick, nil, 0, 0.8, 0, 0, 0, 0)
HB = Part(Mo, false, false, 1, 0, "White", 0.1, 0.1, 0.1, true)
HBW = Weld(Rarm, HB, 0, 1, 0, 0, 0, 0)
HW = Weld(HB, nil, 0, -0.2, 0, math.pi/2, 0, 0)
TH = Weld(torso, nil, -0.3, -0.25, 1.5, math.rad(-60), 0, math.rad(-45))
THMain = TH.C1
BG = Add.BG(nil)
RAWStand, LAWStand, RLWStand, LLWStand, HWStand, NeckStand = nil
handle = Part(Mo, false, false, 0, 0, Colors[2], 0.6, 1.6, 0.6, true)
Instance.new("SpecialMesh",handle)
handle.Name = "Handle"
tip1 = Part(Mo, false, false, 0, 0, Colors[2], 1, 0.8, 1, true)
Instance.new("SpecialMesh",tip1)
Weld(handle, tip1, 0, -0.1, 1, math.rad(-90), 0, 0)
tip2 = Part(Mo, false, false, 0, 0, Colors[2], 0.6, 0.8, 0.6, true)
Instance.new("SpecialMesh",tip2)
Weld(tip1, tip2, 0, -0.4, 0, 0, 0, 0)
tip3 = Part(Mo, false, false, 0, 0, Colors[2], 1.2, 0.3, 1.2, true)
Instance.new("CylinderMesh",tip3)
Weld(tip2, tip3, 0, -0.3, 0, 0, 0, 0)
for i = 0, 360, 22.5 do
local tip4 = Part(Mo, false, false, 0, 0, Colors[1], 0.2, 1, 0.2, true)
Instance.new("BlockMesh",tip4).Scale = Vector3.new(1, 1, 0.9)
local w = Weld(tip3, tip4, -0.35, 0, 0, 0, 0, 0)
w.C0 = CFrame.new(0, 0.65, 0) * CFrame.Angles(0, math.rad(i), 0)
local tip5 = Part(Mo, false, false, 0, 0, Colors[2], 0.35, 0.2, 0.25, true)
Instance.new("BlockMesh",tip5)
local w2 = Weld(tip4, tip5, -0.05, -0.6, 0, 0, 0, 0)
local tip7 = Part(Mo, false, false, 0, 0, Colors[2], 0.2, 0.4, 0.2, true)
Instance.new("BlockMesh",tip7).Scale = Vector3.new(1, 1, 1)
Weld(tip5, tip7, 0.1, -0.3, 0, 0, 0, 0)
local tip8 = Part(Mo, false, false, 0, 0, Colors[2], 0.35, 0.2, 0.25, true)
Instance.new("BlockMesh",tip8)
Weld(tip5, tip8, 0, -0.5, 0, 0, 0, 0)
end
for i = 0, 360, 90 do
local tip6 = Part(Mo, false, false, 0, 0, Colors[2], 0.2, 1, 0.2, true)
Instance.new("BlockMesh",tip6)
local w = Weld(tip3, tip6, -0.45, 0, 0, 0, 0, 0)
w.C0 = CFrame.new(0, 0.65, 0) * CFrame.Angles(0, math.rad(i), 0)
end
Mo.Parent = char
TH.Part1 = handle
if script.Parent.className ~= "HopperBin" then
h = Instance.new("HopperBin",me.Backpack)
h.Name = Toolname
h.TextureId = ToolIcon
script.Parent = h
end
bin = script.Parent
function detach(bool)
LLW.C0 = CFrame.new(0, 0, 0)
RLW.C0 = CFrame.new(0, 0, 0)
LAW.C0 = CFrame.new(0, 0, 0)
RAW.C0 = CFrame.new(0, 0, 0)
if bool then
LLW.Part1 = nil
RLW.Part1 = nil
RAW.Part1 = nil
LAW.Part1 = nil
TH.Part1 = handle
HW.Part1 = nil
end
end
function attach()
RAW.Part1 = Rarm
LAW.Part1 = Larm
RLW.Part1 = Rleg
LLW.Part1 = Lleg
end
function normal()
neck.C0 = NeckStand
RAW.C0 = RAWStand
LAW.C0 = LAWStand
RLW.C0 = RLWStand
LLW.C0 = LLWStand
RAW.C1 = CFrame.new(0, 0.5, 0)
LAW.C1 = CFrame.new(0, 0.5, 0)
RLW.C1 = CFrame.new(0, 0.8, 0)
LLW.C1 = CFrame.new(0, 0.8, 0)
HW.C0 = HWStand
end
function idleanim()
attach()
for i = 0, 1, 0.03 do
RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
wait()
end
wait()
for i = 1, 0, -0.02 do
RAW.C0 = RAWStand * CFrame.Angles(0, 0, 0)
LAW.C0 = LAWStand * CFrame.Angles(0, 0, 0)
RLW.C0 = RLWStand * CFrame.Angles(0, 0, 0)
LLW.C0 = LLWStand * CFrame.Angles(0, 0, 0)
neck.C0 = NeckStand * CFrame.Angles(0, 0, 0)
if selected == false or torso.Velocity.magnitude > 2 or Able == false then break end
wait()
end
normal()
end
function runanim()
RLW.Part1 = nil
LLW.Part1 = nil
end
--[[coroutine.resume(coroutine.create(function()
while true do
wait()
if selected and Able == true then
if torso.Velocity.magnitude < 2 then
idleanim()
wait()
else
runanim()
wait()
end
end
end
end))]]
function selectanim()
RAW.Part1 = Rarm
for i = 0, 1, 0.14 do
RAW.C0 = CFrame.Angles(math.rad(100*i), math.rad(-10*i), math.rad(-70*i)) * CFrame.new(0.6*i, -1*i, 0)
neck.C0 = necko * CFrame.Angles(math.rad(-25*i), 0, math.rad(30*i))
wait()
end
HW.C0 = CFrame.Angles(0, math.rad(70), math.rad(40)) * CFrame.new(0, 0, -0.8)
HW.Part1 = handle
TH.Part1 = nil
LAW.Part1 = Larm
for i = 0, 1, 0.14 do
RAW.C0 = CFrame.Angles(math.rad(100), math.rad(-10-15*i), math.rad(-70+60*i)) * CFrame.new(0.6-0.6*i, -1+1*i, 0)
LAW.C0 = CFrame.Angles(math.rad(35*i), math.rad(20*i), math.rad(-25*i))
neck.C0 = necko * CFrame.Angles(math.rad(-25+5*i), 0, math.rad(30-55*i))
HW.C0 = CFrame.Angles(0, math.rad(70-70*i), math.rad(40+80*i)) * CFrame.new(0, 0, -0.8+0.6*i)
wait()
end
for i = 0, 1, 0.1 do
RAW.C0 = CFrame.Angles(math.rad(100-10*i), math.rad(-10-15+25*i), math.rad(-10+55*i)) * CFrame.new(-0.8*i, 0, 0.05*i)
LAW.C0 = CFrame.Angles(math.rad(35+55*i), math.rad(20-20*i), math.rad(-25+90*i)) * CFrame.new(-0.3*i, -1.2*i, 0)
neck.C0 = necko * CFrame.Angles(math.rad(-20+20*i), 0, math.rad(30-55-20*i))
HW.C0 = CFrame.Angles(0, 0, math.rad(120+60*i)) * CFrame.new(0, 0, -0.2+0.6*i)
wait()
end
if RAWStand == nil then
RAWStand = RAW.C0
LAWStand = LAW.C0
RLWStand = RLW.C0
LLWStand = LLW.C0
HWStand = HW.C0
NeckStand = neck.C0
end
BG.Parent = torso
end
function deselanim()
BG.Parent = nil
for i = 1, 0, -0.1 do
RAW.C0 = CFrame.Angles(math.rad(100-10*i), math.rad(-10-15+25*i), math.rad(-10+55*i)) * CFrame.new(-0.8*i, 0, 0.05*i)
LAW.C0 = CFrame.Angles(math.rad(35+55*i), math.rad(20-20*i), math.rad(-25+90*i)) * CFrame.new(-0.3*i, -1.2*i, 0)
neck.C0 = necko * CFrame.Angles(math.rad(-20+20*i), 0, math.rad(30-55-20*i))
HW.C0 = CFrame.Angles(0, 0, math.rad(120+60*i)) * CFrame.new(0, 0, -0.2+0.6*i)
wait()
end
for i = 1, 0, -0.14 do
RAW.C0 = CFrame.Angles(math.rad(100), math.rad(-10-15*i), math.rad(-70+60*i)) * CFrame.new(0.6-0.6*i, -1+1*i, 0)
LAW.C0 = CFrame.Angles(math.rad(35*i), math.rad(20*i), math.rad(-25*i))
neck.C0 = necko * CFrame.Angles(math.rad(-25+5*i), 0, math.rad(30-55*i))
HW.C0 = CFrame.Angles(0, math.rad(70-70*i), math.rad(40+80*i)) * CFrame.new(0, 0, -0.8+0.6*i)
wait()
end
HW.Part1 = nil
LAW.Part1 = nil
TH.Part1 = handle
for i = 1, 0, -0.14 do
RAW.C0 = CFrame.Angles(math.rad(100*i), math.rad(-10*i), math.rad(-70*i)) * CFrame.new(0.6*i, -1*i, 0)
neck.C0 = necko * CFrame.Angles(math.rad(-25*i), 0, math.rad(30*i))
wait()
end
neck.C0 = necko
detach(true)
end
function fire()
local ball = Part(workspace, false, false, 0, 0, Colors[1], 1, 1, 1, true)
Add.BF(ball)
Add.Sphere(ball)
ball.CFrame = tip1.CFrame * CFrame.new(0, 1.5, 0)
local cf = CFrame.new(handle.Position, handle.CFrame * CFrame.new(0, 0, -5).p)
ball.Velocity = cf.lookVector * -80
local w1, w2, w3 = RAW.C0, LAW.C0
for i = 0, 1, 0.5 do
RAW.C0 = w1 * CFrame.Angles(math.rad(25*i), 0, 0)
LAW.C0 = w2 * CFrame.Angles(math.rad(25*i), 0, 0)
HW.C0 = HWStand * CFrame.Angles(math.rad(-20*i), 0, 0)
wait()
end
for i = 1, 0, -0.2 do
RAW.C0 = w1 * CFrame.Angles(math.rad(25*i), 0, 0)
LAW.C0 = w2 * CFrame.Angles(math.rad(25*i), 0, 0)
HW.C0 = HWStand * CFrame.Angles(math.rad(-20*i), 0, 0)
wait()
end
end
function select(mouse)
selectanim()
selected = true
mouse.KeyDown:connect(function(key)
key = key:lower()
if key == "q" then
end
end)
local hold = false
mouse.Button1Down:connect(function()
hold = true
coroutine.resume(coroutine.create(function()
mouse.Button1Up:wait()
hold = false
end))
while hold do
local pos = torso.CFrame * CFrame.new(0, 0.85, 0).p
local offset = (pos.Y - mouse.Hit.p.Y) / 60
local mag = (pos - mouse.Hit.p).magnitude / 80
offset = offset / mag
if offset > 1 then offset = 1 elseif offset < -1 then offset = -1 end
RAW.C0 = RAWStand * CFrame.Angles(-offset, 0, 0) * CFrame.new(0, 0, 0)
LAW.C0 = LAWStand * CFrame.Angles(-offset/1.5, 0, offset/5) * CFrame.new(0, 0, 0)
neck.C0 = NeckStand * CFrame.Angles(offset/1.6, 0, 0)
wait()
end
fire()
LAW.C0 = LAWStand
RAW.C0 = RAWStand
neck.C0 = NeckStand
end)
while selected do
BG.cframe = ComputePos(torso.Position, mouse.Hit.p) * CFrame.Angles(0, math.rad(45), 0)
wait()
end
end
function deselect(mouse)
selected = false
deselanim()
end
bin.Selected:connect(select)
bin.Deselected:connect(deselect)
Comments
0 B
|👍
/👎
0 B
|0 👍
/0 👎
0 B
|0 👍
/0 👎