1327 lines
44 KiB
Plaintext
1327 lines
44 KiB
Plaintext
<roblox xmlns:xmime="http://www.w3.org/2005/05/xmlmime" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:noNamespaceSchemaLocation="http://www.roblox.com/roblox.xsd" version="4">
|
|
<External>null</External>
|
|
<External>nil</External>
|
|
<Item class="Tool" referent="RBX0">
|
|
<Properties>
|
|
<bool name="CanBeDropped">true</bool>
|
|
<bool name="Enabled">true</bool>
|
|
<CoordinateFrame name="Grip">
|
|
<X>0.0939477235</X>
|
|
<Y>-0.206212491</Y>
|
|
<Z>0.560361266</Z>
|
|
<R00>0.837946475</R00>
|
|
<R01>-0.0272410847</R01>
|
|
<R02>0.545072019</R02>
|
|
<R10>-0.0256806612</R10>
|
|
<R11>0.995679021</R11>
|
|
<R12>0.0892403126</R12>
|
|
<R20>-0.545147896</R20>
|
|
<R21>-0.0887763947</R21>
|
|
<R22>0.833626151</R22>
|
|
</CoordinateFrame>
|
|
<string name="Name">Luger</string>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=95356596</url></Content>
|
|
<string name="ToolTip"></string>
|
|
</Properties>
|
|
<Item class="Script" referent="RBX1">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">Firescript</string>
|
|
<ProtectedString name="Source">-- Made by Stickmasterluke
|
|
-- edited by fusroblox
|
|
local GoreOn=true
|
|
function WaitForChild(parent,child)
|
|
	while not parent:FindFirstChild(child) do print("2waiting for " .. child) wait() end
|
|
	return parent[child]
|
|
end
|
|
|
|
local GunObject = {
|
|
	Tool = script.Parent,
|
|
	Handle = WaitForChild(script.Parent,'Handle'),
|
|
	check = true,
|
|
	
|
|
	GunDamage = 20, -- Base output damage per shot.
|
|
	FireRate = .2, -- How often the weapon can fire.
|
|
	Automatic = false, -- hold down to continue firing
|
|
	Range = 250, -- Max distance that the weapon can fire.
|
|
	Spread = 1, -- The bigger the spread, the more inaccurate the shots will be.
|
|
	ClipSize = 8, -- Shots in a clip
|
|
	ReloadTime = 3, -- Time it takes to reload the tool.
|
|
	StartingClips = 10, -- If you want infinit clips, remove the IntValue named "Clips" from the tool.
|
|
	SegmentLength = 40, -- How long the shot segments are, or the speed of the shot.
|
|
	FadeDelayTime = 1/60,
|
|
	
|
|
	
|
|
	BarrelPos = CFrame.new(0, 0, - 1.2), -- L, F, U
|
|
	Rate = 1/30,
|
|
	--local Colors = {BrickColor.new("Bright red"), BrickColor.new("Really red"), BrickColor.new("Dusty Rose"), BrickColor.new("Medium red")}
|
|
	Colors = {BrickColor.new("Bright yellow"),BrickColor.new("Mid gray"), BrickColor.new("Medium stone grey"), BrickColor.new("Dark stone grey")},
|
|
	FlashColors = {"Medium red", "Dusty Rose", "Bright red", "Really red"},
|
|
	
|
|
	Reloading = false,
|
|
	Debris = game:GetService("Debris"),
|
|
	Ammo,
|
|
	Clips,
|
|
	LaserObj,
|
|
	SparkEffect,
|
|
	ShellPart,
|
|
	--tool children
|
|
	DownVal=WaitForChild(script.Parent, 'Down'),
|
|
	AimVal=WaitForChild(script.Parent, 'Aim'),
|
|
	ReloadingVal=WaitForChild(script.Parent, 'Reloading'),
|
|
	DoFireAni = WaitForChild(script.Parent,'DoFireAni'),
|
|
	
|
|
	--handlechildren
|
|
	Fire,
|
|
	
|
|
}
|
|
|
|
--[[Member functions]]
|
|
|
|
function GunObject:Initialize()
|
|
|
|
	self.Fire=WaitForChild(self.Handle, 'Fire')
|
|
	
|
|
	self.Ammo = self.Tool:FindFirstChild("Ammo")
|
|
	if self.Ammo ~= nil then
|
|
		self.Ammo.Value = self.ClipSize
|
|
	end
|
|
	self.Clips = self.Tool:FindFirstChild("Clips")
|
|
	if self.Clips ~= nil then
|
|
		self.Clips.Value = self.StartingClips
|
|
	end
|
|
	self.Tool.Equipped:connect(function()
|
|
		self.Tool.Handle.Fire:Stop()
|
|
		self.Tool.Handle.Reload:Stop()
|
|
	end)
|
|
	self.Tool.Unequipped:connect(function()
|
|
		self.Tool.Handle.Fire:Stop()
|
|
		self.Tool.Handle.Reload:Stop()
|
|
	end)
|
|
	self.LaserObj = Instance.new("Part")
|
|
	self.LaserObj.Name = "Bullet"
|
|
	self.LaserObj.Anchored = true
|
|
	self.LaserObj.CanCollide = false
|
|
	self.LaserObj.Shape = "Block"
|
|
	self.LaserObj.formFactor = "Custom"
|
|
	self.LaserObj.Material = Enum.Material.Plastic
|
|
	self.LaserObj.Locked = true
|
|
	self.LaserObj.TopSurface = 0
|
|
	self.LaserObj.BottomSurface = 0
|
|
	--local tshellmesh=WaitForChild(script.Parent,'BulletMesh'):Clone()
|
|
	--tshellmesh.Scale=Vector3.new(4,4,4)
|
|
	--tshellmesh.Parent=self.LaserObj
|
|
|
|
	local tSparkEffect = Instance.new("Part")
|
|
	tSparkEffect.Name = "Effect"
|
|
	tSparkEffect.Anchored = false
|
|
	tSparkEffect.CanCollide = false
|
|
	tSparkEffect.Shape = "Block"
|
|
	tSparkEffect.formFactor = "Custom"
|
|
	tSparkEffect.Material = Enum.Material.Plastic
|
|
	tSparkEffect.Locked = true
|
|
	tSparkEffect.TopSurface = 0
|
|
	tSparkEffect.BottomSurface = 0
|
|
	self.SparkEffect=tSparkEffect
|
|
|
|
	local tshell = Instance.new('Part')
|
|
	tshell.Name='effect'
|
|
	tshell.FormFactor='Custom'
|
|
	tshell.Size=Vector3.new(1, 0.4, 0.33)
|
|
	tshell.BrickColor=BrickColor.new('Bright yellow')
|
|
	tshellmesh=WaitForChild(script.Parent,'BulletMesh'):Clone()
|
|
	tshellmesh.Parent=tshell
|
|
	self.ShellPart = tshell
|
|
|
|
	self.DownVal.Changed:connect(function()
|
|
		while self.DownVal.Value and self.check and not self.Reloading do
|
|
			self.check = false
|
|
			local humanoid = self.Tool.Parent:FindFirstChild("Humanoid")
|
|
			local plr1 = game.Players:GetPlayerFromCharacter(self.Tool.Parent)
|
|
			if humanoid ~= nil and plr1 ~= nil then
|
|
				if humanoid.Health > 0 then
|
|
					local spos1 = (self.Tool.Handle.CFrame * self.BarrelPos).p
|
|
					delay(0, function() self:SendBullet(spos1, self.AimVal.Value, self.Spread, self.SegmentLength, self.Tool.Parent, self.Colors[1], self.GunDamage, self.FadeDelayTime) end)
|
|
				else
|
|
					self.check = true
|
|
					break
|
|
				end
|
|
			else
|
|
				self.check = true
|
|
				break
|
|
			end
|
|
			wait(self.FireRate)
|
|
			self.check = true
|
|
			if not self.Automatic then
|
|
				break
|
|
			end
|
|
		end
|
|
	end)
|
|
|
|
	self.ReloadingVal.Changed:connect(function() if self.ReloadingVal.Value then self:Reload() end end)
|
|
|
|
end
|
|
|
|
|
|
|
|
function GunObject:Reload()
|
|
	self.Reloading = true
|
|
	self.ReloadingVal.Value = true
|
|
	if self.Clips ~= nil then
|
|
		if self.Clips.Value > 0 then
|
|
			self.Clips.Value = Clips.Value - 1
|
|
		else
|
|
			self.Reloading = false
|
|
			self.ReloadingVal.Value = false
|
|
			return
|
|
		end
|
|
	end
|
|
	self.Tool.Handle.Reload:Play()
|
|
	for i = 1, self.ClipSize do
|
|
		wait(self.ReloadTime/self.ClipSize)
|
|
		self.Ammo.Value = i
|
|
	end
|
|
	self.Reloading = false
|
|
	self.Tool.Reloading.Value = false
|
|
end
|
|
|
|
|
|
|
|
function GunObject:SpawnShell()
|
|
	local tshell=self.ShellPart:Clone()
|
|
	tshell.CFrame=self.Handle.CFrame
|
|
	tshell.Parent=Workspace
|
|
	game.Debris:AddItem(tshell,2)
|
|
end
|
|
|
|
function KnockOffHats(tchar)
|
|
	for _,i in pairs(tchar:GetChildren()) do
|
|
		if i:IsA('Hat') then
|
|
			i.Parent=game.Workspace
|
|
		end
|
|
	end
|
|
end
|
|
|
|
function KnockOffTool(tchar)
|
|
	for _,i in pairs(tchar:GetChildren()) do
|
|
		if i:IsA('Tool') then
|
|
			i.Parent=game.Workspace
|
|
		end
|
|
	end
|
|
end
|
|
|
|
function GunObject:SendBullet(boltstart, targetpos, fuzzyness, SegmentLength, ignore, clr, damage, fadedelay)
|
|
	if self.Ammo.Value <=0 then return end
|
|
	self.Ammo.Value = self.Ammo.Value - 1
|
|
	self:SpawnShell()
|
|
	self.Fire.Pitch = (math.random() * .5) + .75
|
|
	self.Fire:Play()
|
|
	self.DoFireAni.Value = not self.DoFireAni.Value
|
|
	print(self.Fire.Pitch)
|
|
	local boltdist = self.Range
|
|
	local clickdist = (boltstart - targetpos).magnitude
|
|
	local targetpos = targetpos + (Vector3.new(math.random() - .5, math.random() - .5, math.random() - .5) * (clickdist/100) * self.fuzzyness)
|
|
	local boltvec = (targetpos - boltstart).unit
|
|
	local totalsegments = math.ceil(boltdist/SegmentLength)
|
|
	local lastpos = boltstart
|
|
	for i = 1, totalsegments do
|
|
		local newpos = (boltstart + (boltvec * (boltdist * (i/totalsegments))))
|
|
		local segvec = (newpos - lastpos).unit
|
|
		local boltlength = (newpos - lastpos).magnitude
|
|
		local bolthit, endpos = CastRay(lastpos, segvec, boltlength, ignore, false)
|
|
		DrawBeam(lastpos, endpos, clr, fadedelay, self.LaserObj)
|
|
		if bolthit ~= nil then
|
|
			local h = bolthit.Parent:FindFirstChild("Zombie")
|
|
			if h ~= nil then
|
|
				local plr = game.Players:GetPlayerFromCharacter(self.Tool.Parent)
|
|
				if plr ~= nil then
|
|
					local creator = Instance.new("ObjectValue")
|
|
					creator.Name = "creator"
|
|
					creator.Value = plr
|
|
					creator.Parent = h
|
|
				end
|
|
				if hit.Parent:FindFirstChild("BlockShot") then
|
|
						hit.Parent:FindFirstChild("BlockShot"):Fire(newpos)
|
|
						delay(0, function() self:HitEffect(endpos, BrickColor.new('Medium stone grey'),5) end)
|
|
				else
|
|
					if(hit.Name=='Head') then
|
|
						KnockOffHats(hit.Parent)
|
|
					elseif hit.Name=='Left Leg' or hit.Name=='Right Leg' then
|
|
						h.WalkSpeed=h.WalkSpeed/1.5
|
|
					elseif hit.Name=='Left Arm' or hit.Name=='Right Arm' then
|
|
						KnockOffTool(hit.Parent)
|
|
					end
|
|
					if GoreOn then delay(0,function() self:HitEffect(endpos, BrickColor.new('Bright red'),20) end) end
|
|
					h:TakeDamage(damage)
|
|
				end
|
|
			else
|
|
				delay(0, function() self:HitEffect(endpos, BrickColor.new('Medium stone grey'),5) end)
|
|
			end
|
|
			break
|
|
		end
|
|
		lastpos = endpos
|
|
		wait(Rate)
|
|
	end
|
|
|
|
	if self.Ammo.Value < 1 then
|
|
		self:Reload()
|
|
	end
|
|
|
|
end
|
|
|
|
|
|
|
|
function GunObject:MakeSpark(pos,tcolor)
|
|
	local effect=self.SparkEffect:Clone()
|
|
	effect.BrickColor = tcolor
|
|
	effect.CFrame = CFrame.new(pos)
|
|
	effect.Parent = game.Workspace
|
|
	local effectVel = Instance.new("BodyVelocity")
|
|
	effectVel.maxForce = Vector3.new(99999, 99999, 99999)
|
|
	effectVel.velocity = Vector3.new(math.random() * 15 * SigNum(math.random( - 10, 10)), 		math.random() * 15 * SigNum(math.random( - 10, 10)), math.random() * 15 * SigNum(math.random( - 10, 10)))
|
|
	effectVel.Parent = effect
|
|
	effect.Size = Vector3.new(math.abs(effectVel.velocity.x)/30, math.abs(effectVel.velocity.y)/30, math.abs(effectVel.velocity.z)/30)
|
|
	wait()
|
|
	effectVel:Destroy()
|
|
	local effecttime = .5
|
|
	game.Debris:AddItem(effect, effecttime * 2)
|
|
	local startTime = time()
|
|
	while time() - startTime < effecttime do
|
|
		if effect ~= nil then
|
|
			effect.Transparency = (time() - startTime)/effecttime
|
|
		end
|
|
		wait()
|
|
	end
|
|
	if effect ~= nil then
|
|
		effect.Parent = nil
|
|
	end
|
|
end
|
|
|
|
function GunObject:HitEffect(pos,tcolor,numSparks)
|
|
	for i = 0, numSparks, 1 do
|
|
		Spawn(function() self:MakeSpark(pos,tcolor) end)
|
|
	end
|
|
	
|
|
end
|
|
|
|
--[[/Member functions]]
|
|
|
|
|
|
--[[Static functions]]
|
|
|
|
function Round(number, decimal)
|
|
	decimal = decimal or 0
|
|
	local mult = 10^decimal
|
|
	return math.floor(number * mult + .5)/mult
|
|
end
|
|
|
|
function SigNum(num)
|
|
	if num == 0 then return 1 end
|
|
	return math.abs(num)/num
|
|
end
|
|
|
|
--this is a little bad, but shouldn't really be part of the 'class' of the gun
|
|
local Intangibles = {shock=1, bolt=1, bullet=1, plasma=1, effect=1, laser=1, handle=1, effects=1, flash=1,}
|
|
function CheckIntangible(hitObj)
|
|
	print(hitObj.Name)
|
|
	return Intangibles[(string.lower(hitObj.Name))] or hitObj.Transparency == 1
|
|
end
|
|
|
|
function CastRay(startpos, vec, length, ignore, delayifhit)
|
|
	if length > 999 then
|
|
		length = 999
|
|
	end
|
|
	hit, endpos2 = game.Workspace:FindPartOnRay(Ray.new(startpos, vec * length), ignore)
|
|
	if hit ~= nil then
|
|
		if CheckIntangible(hit) then
|
|
			if delayifhit then
|
|
				wait()
|
|
			end
|
|
			hit, endpos2 = CastRay(endpos2 + (vec * .01), vec, length - ((startpos - endpos2).magnitude), ignore, delayifhit)
|
|
		end
|
|
	end
|
|
	return hit, endpos2
|
|
end
|
|
|
|
function DrawBeam(beamstart, beamend, clr, fadedelay, templatePart)
|
|
	local dis = 2 --(beamstart - beamend).magnitude
|
|
	local tlaser=templatePart:Clone()
|
|
	tlaser.BrickColor = clr
|
|
	tlaser.Size = Vector3.new(.12, .12, dis + .2)
|
|
	tlaser.CFrame = CFrame.new((beamend+beamstart)/2, beamstart) * CFrame.new(0, 0, - dis/2)
|
|
	tlaser.Parent = game.Workspace
|
|
	game.Debris:AddItem(tlaser, fadedelay)
|
|
end
|
|
|
|
--[[/Static functions]]
|
|
|
|
|
|
GunObject:Initialize()</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="LocalScript" referent="RBX2">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">LocalScript</string>
|
|
<ProtectedString name="Source">-- Made by Stickmasterluke
|
|
-- edited by fusroblox
|
|
|
|
function WaitForChild(obj, name)
|
|
	while not obj:FindFirstChild(name) do
|
|
		wait()
|
|
		print("1waiting for " .. name)
|
|
	end
|
|
	return obj:FindFirstChild(name)
|
|
end
|
|
|
|
local function FindCharacterAncestor(subject)
|
|
	if subject and subject ~= Workspace then
|
|
		if subject:FindFirstChild('Humanoid') then
|
|
			return subject
|
|
		else
|
|
			return FindCharacterAncestor(subject.Parent)
|
|
		end
|
|
	end
|
|
	return nil
|
|
end
|
|
|
|
local Tool = script.Parent
|
|
|
|
local GunObj ={
|
|
	Reloading = "http://www.roblox.com/asset/?id=94155503",
|
|
	
|
|
	Cursors = {
|
|
		"http://www.roblox.com/asset/?id=94154683", -- black
|
|
		"http://www.roblox.com/asset/?id= 94154829", -- red
|
|
		"http://www.roblox.com/asset/?id=94155503",
|
|
		"http://www.roblox.com/asset/?id=94155569"
|
|
	},
|
|
	
|
|
	ClipSize = 8,
|
|
	Equipped = false,
|
|
	
|
|
	Player = game.Players.localPlayer,
|
|
	Ammo = WaitForChild(script.Parent,"Ammo"),
|
|
	Clips,
|
|
	Gui = WaitForChild(Tool,"AmmoHud"),
|
|
	NumberImages={},
|
|
	IdleAni,
|
|
	MyMouse
|
|
	
|
|
}
|
|
|
|
local ChestWeld
|
|
Tool.Equipped:connect(function(mouse) GunObj:OnEquipped(mouse) end)
|
|
local initialized=false
|
|
|
|
function GunObj:Initialize()
|
|
	if initialized then return end
|
|
	initialized=true
|
|
	self.Ammo.Changed:connect(function()self:UpdateGui()end)
|
|
|
|
	WaitForChild(Tool, "Reloading")
|
|
	print('got to connections!!!!! ')
|
|
	Tool.Reloading.Changed:connect(function() self:UpdateGui() end)
|
|
	Tool.Unequipped:connect(function() self:OnUnequipped() end)
|
|
	
|
|
	Tool.DoFireAni.Changed:connect(PlayFireAni)
|
|
	self.NumberImages['0']=94105090
|
|
	self.NumberImages['1']=94099941
|
|
	self.NumberImages['2']=94105282
|
|
	self.NumberImages['3']=94105353
|
|
	self.NumberImages['4']=94105393
|
|
	self.NumberImages['5']=94105402
|
|
	self.NumberImages['6']=94105413
|
|
	self.NumberImages['7']=94105478
|
|
	self.NumberImages['8']=94105560
|
|
	self.NumberImages['9']=94105576
|
|
|
|
	local bar=WaitForChild(self.Gui,'Bar')
|
|
	self:UpdateNumbers(self.ClipSize..'', WaitForChild(bar,'TotalAmmo'))
|
|
end
|
|
|
|
function GunObj:UpdateNumbers(data,frame)
|
|
	if string.len(data)==0 then
|
|
		data= '0'..data
|
|
	end
|
|
	if string.len(data)==1 then
|
|
		data= '0'..data
|
|
	end
|
|
|
|
	local digit=WaitForChild(WaitForChild(frame,'1'),'digit')
|
|
	if digit.Image ~='http://www.roblox.com/asset/?id='..self.NumberImages[string.sub(data,1,1)] then
|
|
		local ndigit=digit:Clone()
|
|
		ndigit.Position=UDim2.new(ndigit.Position.X.Scale,ndigit.Position.X.Offset,ndigit.Position.Y.Scale,ndigit.Position.Y.Offset-65)
|
|
		ndigit.Image='http://www.roblox.com/asset/?id='..self.NumberImages[string.sub(data,1,1)]
|
|
		ndigit.Parent=digit.Parent
|
|
		ndigit:TweenPosition(digit.Position, "Out", "Quad", .1)
|
|
		digit.Name='oldDigit'
|
|
		digit:TweenPosition(UDim2.new(digit.Position.X.Scale,digit.Position.X.Offset,digit.Position.Y.Scale,digit.Position.Y.Offset+65), "Out", "Quad", .25)
|
|
		game.Debris:AddItem(digit,1)
|
|
	end
|
|
	digit=WaitForChild(WaitForChild(frame,'2'),'digit')
|
|
	if digit.Image ~='http://www.roblox.com/asset/?id='..self.NumberImages[string.sub(data,2,2)] then
|
|
		ndigit=digit:Clone()
|
|
		ndigit.Position=UDim2.new(ndigit.Position.X.Scale,ndigit.Position.X.Offset,ndigit.Position.Y.Scale,ndigit.Position.Y.Offset-65)
|
|
		ndigit.Image='http://www.roblox.com/asset/?id='..self.NumberImages[string.sub(data,2,2)]
|
|
		ndigit.Parent=digit.Parent
|
|
		ndigit:TweenPosition(UDim2.new(digit.Position.X.Scale,digit.Position.X.Offset,digit.Position.Y.Scale,0), "Out", "Quad", .25)
|
|
		digit.Name='oldDigit'
|
|
		digit:TweenPosition(UDim2.new(digit.Position.X.Scale,digit.Position.X.Offset,digit.Position.Y.Scale,digit.Position.Y.Offset+65), "Out", "Quad", .25)
|
|
		game.Debris:AddItem(digit,1)
|
|
	end
|
|
end
|
|
|
|
function GunObj:UpdateGui()
|
|
	if self.Equipped then
|
|
		local Player = game.Players.localPlayer
|
|
		if Player ~= nil then
|
|
			if self.Ammo == nil then
|
|
				--self.Gui.Bar.GunLabel.Text ="Futuro Heavy Pistol"
|
|
				--self.Gui.Bar.AmmoLabel.Text = ""
|
|
			else
|
|
				--self.Gui.Bar.GunLabel.Text ="Futuro Heavy Pistol"
|
|
				--self.Gui.Bar.AmmoLabel.Text = tostring(self.Ammo.Value).."/"..tostring(self.ClipSize)
|
|
				self:UpdateNumbers(tostring(self.Ammo.Value),WaitForChild(self.Gui.Bar,'AmmoLeft'))
|
|
			end
|
|
			if Tool.Reloading.Value then
|
|
				--self.Gui.Bar.AmmoLabel.Text = "Reloading"
|
|
			end
|
|
		end
|
|
	end
|
|
end
|
|
|
|
function GunObj:CursorUpdate(mouse)
|
|
	local reloadCounter=0
|
|
	while self.Equipped do
|
|
		if Tool.Reloading.Value then
|
|
			reloadCounter=reloadCounter+1
|
|
			if reloadCounter%20<10 then
|
|
				mouse.Icon = self.Cursors[3]
|
|
			else
|
|
				mouse.Icon = self.Cursors[4]
|
|
			end
|
|
		elseif mouse.Target and FindCharacterAncestor(mouse.Target) then
|
|
			mouse.Icon = self.Cursors[2]
|
|
		else
|
|
			mouse.Icon = self.Cursors[1]
|
|
		end
|
|
		wait(1/30)
|
|
	end
|
|
end
|
|
|
|
local InReload=false
|
|
|
|
function GunObj:OnEquipped(mouse)
|
|
	self:Initialize()
|
|
	if mouse ~= nil then
|
|
		self.Equipped = true
|
|
		local Player = game.Players.LocalPlayer
|
|
		if Player ~= nil then
|
|
			local humanoid=WaitForChild(Player.Character,'Humanoid')
|
|
			if not self.IdleAni then
|
|
				self.IdleAni = humanoid:LoadAnimation(WaitForChild(script.Parent,'idle'))
|
|
				self.IdleAni:Play()
|
|
			end
|
|
			local plrgui = WaitForChild(Player,"PlayerGui")
|
|
			self.Gui.Parent = plrgui
|
|
			mouse.Button1Down:connect(function()
|
|
				if not Tool.Down.Value then
|
|
					Tool.Aim.Value = mouse.Hit.p
|
|
					Tool.Down.Value = true
|
|
					while Tool.Down.Value do
|
|
						Tool.Aim.Value = mouse.Hit.p
|
|
						wait()
|
|
					end
|
|
				end
|
|
			end)
|
|
			mouse.Button1Up:connect(function()
|
|
				Tool.Down.Value = false
|
|
			end)
|
|
			mouse.KeyDown:connect(function(key)
|
|
				if key=='r' and not Tool.Reloading.Value and not Tool.Down.Value and self.Ammo.Value ~=8 and self.Ammo.Value ~=0 and not InReload then
|
|
					Tool.Reloading.Value=true
|
|
				end
|
|
			end)
|
|
			--mouse.Icon = self.Cursors[1]
|
|
			Tool.Reloading.Changed:connect(function(val)
|
|
				if mouse ~= nil and self.Equipped then
|
|
					if val then
|
|
						--mouse.Icon = self.Cursors.Reloading
|
|
					else
|
|
						--mouse.Icon = self.Cursors[1]
|
|
					end
|
|
					local Player = game.Players.LocalPlayer
|
|
					if Player ~= nil then
|
|
						local gui = WaitForChild(Player.PlayerGui, "AmmoHud")
|
|
						local humanoid=WaitForChild(Player.Character,'Humanoid')
|
|
						self:UpdateGui()
|
|
						if Tool.Reloading.Value then
|
|
							--gui.Bar.AmmoLabel.Text = "Reloading"
|
|
						end
|
|
					end
|
|
				end
|
|
			end)
|
|
			self:UpdateGui()
|
|
			MyMouse=mouse
|
|
			Spawn(function() self:CursorUpdate(mouse) end )
|
|
		end
|
|
	end
|
|
end
|
|
|
|
function GunObj:OnUnequipped()
|
|
	if self.IdleAni then
|
|
		self.IdleAni:Stop()
|
|
		self.IdleAni:Destroy()
|
|
		self.IdleAni=nil
|
|
	end
|
|
	self.Gui.Parent = Tool
|
|
	self.Equipped = false
|
|
	print('in unequipp')
|
|
	if ChestWeld then
|
|
		print('chestweldexists')
|
|
		ChestWeld:Destroy()
|
|
	end
|
|
	local Player = game.Players.localPlayer
|
|
	if Player ~= nil then
|
|
		local gui = WaitForChild(Player.PlayerGui,"AmmoHud")
|
|
		--gui.Bar.GunLabel.Text = ""
|
|
		--gui.Bar.AmmoLabel.Text = ""
|
|
	end
|
|
end
|
|
|
|
function PlayFireAni()
|
|
	wait(.1)
|
|
	local aniTrack = WaitForChild(Tool.Parent,"Humanoid"):LoadAnimation(Tool.FireAni)
|
|
	aniTrack:Play(0,1,1)
|
|
end
|
|
|
|
local function weldBetween(a, b)
|
|
local weld = Instance.new("Weld")
|
|
weld.Part0 = a
|
|
weld.Part1 = b
|
|
weld.C0 = CFrame.new()
|
|
weld.C1 = b.CFrame:inverse() * a.CFrame
|
|
weld.Parent = a
|
|
return weld;
|
|
end
|
|
|
|
|
|
function PlayReloadAni()
|
|
	InReload=true
|
|
	local aniTrack = WaitForChild(Tool.Parent,"Humanoid"):LoadAnimation(Tool.Reload)
|
|
	local torso=WaitForChild(Tool.Parent,'Torso')
|
|
	local oldWeld
|
|
	for _,i in pairs(WaitForChild(Tool.Parent,'Right Arm'):GetChildren()) do
|
|
		if i:IsA('Weld') and i.Part1==Tool.Handle then
|
|
			oldWeld=i
|
|
		end
|
|
	end
|
|
	if not oldWeld then
|
|
		print('What... no old weld!')
|
|
		return
|
|
	end
|
|
	ChestWeld= weldBetween(torso,Tool.Handle)
|
|
	oldWeld.Part1=nil
|
|
	aniTrack:Play(0,1,2)
|
|
	wait(4)
|
|
	oldWeld.Part1=Tool.Handle
|
|
	ChestWeld:Destroy()
|
|
	ChestWeld=nil
|
|
	InReload=false
|
|
end
|
|
|
|
Tool.Reloading.Changed:connect(function() if Tool.Reloading.Value then PlayReloadAni() end end)
|
|
</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Part" referent="RBX3">
|
|
<Properties>
|
|
<bool name="Anchored">false</bool>
|
|
<float name="BackParamA">-0.5</float>
|
|
<float name="BackParamB">0.5</float>
|
|
<token name="BackSurface">0</token>
|
|
<token name="BackSurfaceInput">0</token>
|
|
<float name="BottomParamA">-0.5</float>
|
|
<float name="BottomParamB">0.5</float>
|
|
<token name="BottomSurface">4</token>
|
|
<token name="BottomSurfaceInput">0</token>
|
|
<int name="BrickColor">107</int>
|
|
<CoordinateFrame name="CFrame">
|
|
<X>-0.300000012</X>
|
|
<Y>0</Y>
|
|
<Z>-0.300000012</Z>
|
|
<R00>0</R00>
|
|
<R01>0</R01>
|
|
<R02>-1</R02>
|
|
<R10>0</R10>
|
|
<R11>1</R11>
|
|
<R12>-0</R12>
|
|
<R20>1</R20>
|
|
<R21>0</R21>
|
|
<R22>-0</R22>
|
|
</CoordinateFrame>
|
|
<bool name="CanCollide">true</bool>
|
|
<float name="Elasticity">0.5</float>
|
|
<float name="Friction">0.300000012</float>
|
|
<float name="FrontParamA">-0.5</float>
|
|
<float name="FrontParamB">0.5</float>
|
|
<token name="FrontSurface">0</token>
|
|
<token name="FrontSurfaceInput">0</token>
|
|
<float name="LeftParamA">-0.5</float>
|
|
<float name="LeftParamB">0.5</float>
|
|
<token name="LeftSurface">0</token>
|
|
<token name="LeftSurfaceInput">0</token>
|
|
<bool name="Locked">true</bool>
|
|
<token name="Material">256</token>
|
|
<string name="Name">Handle</string>
|
|
<float name="Reflectance">0</float>
|
|
<float name="RightParamA">-0.5</float>
|
|
<float name="RightParamB">0.5</float>
|
|
<token name="RightSurface">0</token>
|
|
<token name="RightSurfaceInput">0</token>
|
|
<Vector3 name="RotVelocity">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<float name="TopParamA">-0.5</float>
|
|
<float name="TopParamB">0.5</float>
|
|
<token name="TopSurface">3</token>
|
|
<token name="TopSurfaceInput">0</token>
|
|
<float name="Transparency">0</float>
|
|
<Vector3 name="Velocity">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<token name="formFactorRaw">3</token>
|
|
<token name="shape">1</token>
|
|
<Vector3 name="size">
|
|
<X>0.510000467</X>
|
|
<Y>1.18000245</Y>
|
|
<Z>1.34999704</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
<Item class="SpecialMesh" referent="RBX4">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=95356090</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">Mesh</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1.79999995</X>
|
|
<Y>1.79999995</Y>
|
|
<Z>1.79999995</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=95387789</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Sound" referent="RBX5">
|
|
<Properties>
|
|
<bool name="Looped">false</bool>
|
|
<string name="Name">Fire</string>
|
|
<float name="Pitch">0.821169138</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>http://www.roblox.com/asset/?id=95309366</url></Content>
|
|
<float name="Volume">1</float>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Sound" referent="RBX6">
|
|
<Properties>
|
|
<bool name="Looped">false</bool>
|
|
<string name="Name">Reload</string>
|
|
<float name="Pitch">1</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>http://www.roblox.com/asset/?id=95309699</url></Content>
|
|
<float name="Volume">1</float>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Vector3Value" referent="RBX7">
|
|
<Properties>
|
|
<string name="Name">Aim</string>
|
|
<Vector3 name="Value">
|
|
<X>7370.47461</X>
|
|
<Y>-428.252258</Y>
|
|
<Z>-6819.59961</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="IntValue" referent="RBX8">
|
|
<Properties>
|
|
<string name="Name">Ammo</string>
|
|
<int name="Value">25</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="BoolValue" referent="RBX9">
|
|
<Properties>
|
|
<string name="Name">Down</string>
|
|
<bool name="Value">false</bool>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="IntValue" referent="RBX10">
|
|
<Properties>
|
|
<string name="Name">NoClips</string>
|
|
<int name="Value">0</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="BoolValue" referent="RBX11">
|
|
<Properties>
|
|
<string name="Name">Reloading</string>
|
|
<bool name="Value">false</bool>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Animation" referent="RBX12">
|
|
<Properties>
|
|
<Content name="AnimationId"><url>http://www.roblox.com/Asset?ID=95383980</url></Content>
|
|
<string name="Name">FireAni</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="BoolValue" referent="RBX13">
|
|
<Properties>
|
|
<string name="Name">DoFireAni</string>
|
|
<bool name="Value">false</bool>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ScreenGui" referent="RBX14">
|
|
<Properties>
|
|
<string name="Name">AmmoHud</string>
|
|
</Properties>
|
|
<Item class="Frame" referent="RBX15">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">true</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">Bar</string>
|
|
<UDim2 name="Position">
|
|
<XS>1</XS>
|
|
<XO>-200</XO>
|
|
<YS>1</YS>
|
|
<YO>-170</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>200</XO>
|
|
<YS>0</YS>
|
|
<YO>60</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="Frame" referent="RBX16">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">AmmoLeft</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>10</XO>
|
|
<YS>0</YS>
|
|
<YO>5</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>65</XO>
|
|
<YS>0</YS>
|
|
<YO>50</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="Frame" referent="RBX17">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">1</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>30</XO>
|
|
<YS>0</YS>
|
|
<YO>40</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="ImageLabel" referent="RBX18">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94130434</url></Content>
|
|
<string name="Name">ImageLabel</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>1</XS>
|
|
<XO>0</XO>
|
|
<YS>1</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ImageLabel" referent="RBX19">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94099941</url></Content>
|
|
<string name="Name">digit</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.0500000007</XS>
|
|
<XO>0</XO>
|
|
<YS>0.0500000007</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.899999976</XS>
|
|
<XO>0</XO>
|
|
<YS>0.899999976</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Frame" referent="RBX20">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">2</string>
|
|
<UDim2 name="Position">
|
|
<XS>1</XS>
|
|
<XO>-30</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>30</XO>
|
|
<YS>0</YS>
|
|
<YO>40</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="ImageLabel" referent="RBX21">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94130434</url></Content>
|
|
<string name="Name">ImageLabel</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>1</XS>
|
|
<XO>0</XO>
|
|
<YS>1</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ImageLabel" referent="RBX22">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94099941</url></Content>
|
|
<string name="Name">digit</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.0500000007</XS>
|
|
<XO>0</XO>
|
|
<YS>0.0500000007</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.899999976</XS>
|
|
<XO>0</XO>
|
|
<YS>0.899999976</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
</Item>
|
|
<Item class="ImageLabel" referent="RBX23">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94100300</url></Content>
|
|
<string name="Name">slash</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.5</XS>
|
|
<XO>-20</XO>
|
|
<YS>0</YS>
|
|
<YO>5</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>30</XO>
|
|
<YS>0</YS>
|
|
<YO>40</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Frame" referent="RBX24">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">TotalAmmo</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.5</XS>
|
|
<XO>10</XO>
|
|
<YS>0</YS>
|
|
<YO>5</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>65</XO>
|
|
<YS>0</YS>
|
|
<YO>50</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="Frame" referent="RBX25">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">true</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">1</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>30</XO>
|
|
<YS>0</YS>
|
|
<YO>40</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="ImageLabel" referent="RBX26">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94130434</url></Content>
|
|
<string name="Name">ImageLabel</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>1</XS>
|
|
<XO>0</XO>
|
|
<YS>1</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ImageLabel" referent="RBX27">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94099941</url></Content>
|
|
<string name="Name">digit</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.0500000007</XS>
|
|
<XO>0</XO>
|
|
<YS>0.0500000007</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.899999976</XS>
|
|
<XO>0</XO>
|
|
<YS>0.899999976</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Frame" referent="RBX28">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<string name="Name">2</string>
|
|
<UDim2 name="Position">
|
|
<XS>1</XS>
|
|
<XO>-30</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0</XS>
|
|
<XO>30</XO>
|
|
<YS>0</YS>
|
|
<YO>40</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<token name="Style">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">1</int>
|
|
</Properties>
|
|
<Item class="ImageLabel" referent="RBX29">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94130434</url></Content>
|
|
<string name="Name">ImageLabel</string>
|
|
<UDim2 name="Position">
|
|
<XS>0</XS>
|
|
<XO>0</XO>
|
|
<YS>0</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>1</XS>
|
|
<XO>0</XO>
|
|
<YS>1</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ImageLabel" referent="RBX30">
|
|
<Properties>
|
|
<bool name="Active">false</bool>
|
|
<Color3 name="BackgroundColor3">4288914085</Color3>
|
|
<float name="BackgroundTransparency">1</float>
|
|
<Color3 name="BorderColor3">4279970357</Color3>
|
|
<int name="BorderSizePixel">1</int>
|
|
<bool name="ClipsDescendants">false</bool>
|
|
<bool name="Draggable">false</bool>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=94099941</url></Content>
|
|
<string name="Name">digit</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.0500000007</XS>
|
|
<XO>0</XO>
|
|
<YS>0.0500000007</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.899999976</XS>
|
|
<XO>0</XO>
|
|
<YS>0.899999976</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<token name="SizeConstraint">0</token>
|
|
<bool name="Visible">true</bool>
|
|
<int name="ZIndex">2</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
</Item>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Animation" referent="RBX31">
|
|
<Properties>
|
|
<Content name="AnimationId"><url>http://www.roblox.com/Asset?ID=95383474</url></Content>
|
|
<string name="Name">idle</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Animation" referent="RBX32">
|
|
<Properties>
|
|
<Content name="AnimationId"><url>http://www.roblox.com/Asset?ID=95384819</url></Content>
|
|
<string name="Name">Reload</string>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX33">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=95387759</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">BulletMesh</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>3</X>
|
|
<Y>3</Y>
|
|
<Z>3</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=95387789</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Camera" referent="RBX34">
|
|
<Properties>
|
|
<Ref name="CameraSubject">null</Ref>
|
|
<token name="CameraType">0</token>
|
|
<CoordinateFrame name="CoordinateFrame">
|
|
<X>-0.314913273</X>
|
|
<Y>-0.104227833</Y>
|
|
<Z>1.40682602</Z>
|
|
<R00>0.999961853</R00>
|
|
<R01>-0.00053252076</R01>
|
|
<R02>-0.00872084685</R02>
|
|
<R10>-0</R10>
|
|
<R11>0.998140872</R11>
|
|
<R12>-0.0609494448</R12>
|
|
<R20>0.00873709004</R20>
|
|
<R21>0.0609471202</R21>
|
|
<R22>0.998102784</R22>
|
|
</CoordinateFrame>
|
|
<float name="FieldOfView">70</float>
|
|
<CoordinateFrame name="Focus">
|
|
<X>-0.300000012</X>
|
|
<Y>0</Y>
|
|
<Z>-0.300000012</Z>
|
|
<R00>1</R00>
|
|
<R01>0</R01>
|
|
<R02>0</R02>
|
|
<R10>0</R10>
|
|
<R11>1</R11>
|
|
<R12>0</R12>
|
|
<R20>0</R20>
|
|
<R21>0</R21>
|
|
<R22>1</R22>
|
|
</CoordinateFrame>
|
|
<string name="Name">ThumbnailCamera</string>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
</roblox> |