935 lines
28 KiB
Plaintext
935 lines
28 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">false</bool>
|
|
<bool name="Enabled">true</bool>
|
|
<CoordinateFrame name="Grip">
|
|
<X>0.0500000007</X>
|
|
<Y>-1.31955695</Y>
|
|
<Z>-0.941427648</Z>
|
|
<R00>1</R00>
|
|
<R01>0</R01>
|
|
<R02>0</R02>
|
|
<R10>0</R10>
|
|
<R11>0.906307757</R11>
|
|
<R12>0.42261824</R12>
|
|
<R20>0</R20>
|
|
<R21>-0.42261824</R21>
|
|
<R22>0.906307757</R22>
|
|
</CoordinateFrame>
|
|
<string name="Name">Carnagecopia</string>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=98345995</url></Content>
|
|
<string name="ToolTip">Carnagecopia</string>
|
|
</Properties>
|
|
<Item class="Part" referent="RBX1">
|
|
<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">0</token>
|
|
<token name="BottomSurfaceInput">0</token>
|
|
<int name="BrickColor">194</int>
|
|
<CoordinateFrame name="CFrame">
|
|
<X>23.9200001</X>
|
|
<Y>78.125</Y>
|
|
<Z>-45.125</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>
|
|
<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">0</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.839999974</X>
|
|
<Y>1.14999998</Y>
|
|
<Z>3.54999995</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
<Item class="SpecialMesh" referent="RBX2">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=98331889</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>2</X>
|
|
<Y>2</Y>
|
|
<Z>2</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=98332070</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Sound" referent="RBX3">
|
|
<Properties>
|
|
<bool name="Looped">false</bool>
|
|
<string name="Name">ReloadSound</string>
|
|
<float name="Pitch">1</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>http://www.roblox.com/Asset?ID=94132726</url></Content>
|
|
<float name="Volume">1</float>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Sound" referent="RBX4">
|
|
<Properties>
|
|
<bool name="Looped">false</bool>
|
|
<string name="Name">Equip</string>
|
|
<float name="Pitch">1.33000004</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>http://www.roblox.com/Asset?ID=97103817</url></Content>
|
|
<float name="Volume">0.5</float>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="LocalScript" referent="RBX5">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">MouseIcon</string>
|
|
<ProtectedString name="Source">local MOUSE_ICON = 'rbxasset://textures/GunCursor.png'
|
|
local RELOADING_ICON = 'rbxasset://textures/GunWaitCursor.png'
|
|
|
|
local Tool = script.Parent
|
|
|
|
local Mouse = nil
|
|
|
|
local function UpdateIcon()
|
|
	Mouse.Icon = Tool.Enabled and MOUSE_ICON or RELOADING_ICON
|
|
end
|
|
|
|
local function OnEquipped(mouse)
|
|
	Mouse = mouse
|
|
	UpdateIcon()
|
|
end
|
|
|
|
local function OnChanged(property)
|
|
	if property == 'Enabled' then
|
|
		UpdateIcon()
|
|
	end
|
|
end
|
|
|
|
Tool.Equipped:connect(OnEquipped)
|
|
Tool.Changed:connect(OnChanged)
|
|
</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Script" referent="RBX6">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">Launcher</string>
|
|
<ProtectedString name="Source">-----------------
|
|
--| Constants |--
|
|
-----------------
|
|
|
|
local COOLDOWN = 4 -- Seconds until tool can be used again
|
|
|
|
-- RocketPropulsion Fields
|
|
local TARGET_RADIUS = 5
|
|
local MAX_SPEED = 75
|
|
local MAX_TORQUE = Vector3.new(4e6, 4e6, 0)
|
|
local MAX_THRUST = 50000
|
|
local THRUST_P = 500
|
|
local THRUST_D = 50000
|
|
|
|
local TARGET_OVERSHOOT_DISTANCE = 10000000
|
|
|
|
local ROCKET_MESH_ID = 'http://www.roblox.com/asset/?id=94690081'
|
|
local ROCKET_MESH_SCALE = Vector3.new(2, 2, 2)
|
|
local ROCKET_PART_SIZE = Vector3.new(2,2.4,1)
|
|
|
|
local VELOCITY = 110 -- constant
|
|
local VELOCITY_SQAURED = VELOCITY * VELOCITY
|
|
local VELOCITY_TO_FOURTH = VELOCITY_SQAURED * VELOCITY_SQAURED
|
|
|
|
--------------------
|
|
--| WaitForChild |--
|
|
--------------------
|
|
|
|
-- Waits for parent.child to exist, then returns it
|
|
local function WaitForChild(parent, childName)
|
|
	assert(parent, "ERROR: WaitForChild: parent is nil")
|
|
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
|
|
	return parent[childName]
|
|
end
|
|
|
|
-----------------
|
|
--| Variables |--
|
|
-----------------
|
|
|
|
local DebrisService = Game:GetService('Debris')
|
|
local PlayersService = Game:GetService('Players')
|
|
|
|
local Tool = script.Parent
|
|
local ToolHandle = Tool.Handle
|
|
|
|
local RocketScript = WaitForChild(script, 'Rocket')
|
|
|
|
local SwooshSound = WaitForChild(script, 'Swoosh')
|
|
local BoomSound = WaitForChild(script, 'Boom')
|
|
local ReloadSound = WaitForChild(ToolHandle, 'ReloadSound')
|
|
local EquipSound
|
|
|
|
local MyModel = nil
|
|
local MyPlayer = nil
|
|
|
|
local BaseRocket = nil
|
|
local RocketClone = nil
|
|
|
|
local RocketMeshes = WaitForChild(Tool,'RocketMeshes')
|
|
|
|
local textGui=WaitForChild(Tool,'textGui')
|
|
|
|
local Kills=WaitForChild(Tool,'Kills')
|
|
|
|
local InUltra=false
|
|
|
|
-----------------
|
|
--| Functions |--
|
|
-----------------
|
|
|
|
function computeLaunchAngle(dx,dy,grav)
|
|
	-- arcane
|
|
	-- http://en.wikipedia.org/wiki/Trajectory_of_a_projectile
|
|
	
|
|
	local g = math.abs(grav)
|
|
	local inRoot = (VELOCITY_TO_FOURTH) - (g * ((g*dx*dx) + (2*dy*VELOCITY_SQAURED)))
|
|
	if inRoot <= 0 then
|
|
		return .25 * math.pi
|
|
	end
|
|
	local root = math.sqrt(inRoot)
|
|
	local inATan1 = ((VELOCITY_SQAURED) + root) / (g*dx)
|
|
|
|
	local inATan2 = ((VELOCITY_SQAURED) - root) / (g*dx)
|
|
	local answer1 = math.atan(inATan1)
|
|
	local answer2 = math.atan(inATan2)
|
|
	return math.min(answer1,answer2)
|
|
end
|
|
|
|
local function MakeBaseRocket()
|
|
	-- Set up the rocket part
|
|
	local rocket = Instance.new('Part')
|
|
	rocket.Name = 'Rocket'
|
|
	rocket.FormFactor = Enum.FormFactor.Custom --NOTE: This must be done before changing Size
|
|
	rocket.Size = ROCKET_PART_SIZE
|
|
	rocket.CanCollide = false
|
|
	rocket.BottomSurface = Enum.SurfaceType.Smooth
|
|
	rocket.TopSurface = Enum.SurfaceType.Smooth
|
|
|
|
	-- Add the mesh
|
|
	local mesh = RocketMeshes[math.random(RocketMeshes.Value)]:Clone()--Instance.new('SpecialMesh', rocket)
|
|
	--mesh.MeshId =
|
|
	mesh.Scale = ROCKET_MESH_SCALE
|
|
	--mesh.TextureId = ToolHandle.Mesh.TextureId
|
|
	mesh.Parent=rocket
|
|
|
|
	-- Add fire
|
|
	local fire = Instance.new('Fire', rocket)
|
|
	fire.Heat = 5
|
|
	fire.Size = 2
|
|
|
|
|
|
	local spin = Instance.new('BodyAngularVelocity')
|
|
	spin.maxTorque=Vector3.new(999999,999999,999999)
|
|
	spin.angularvelocity=Vector3.new(math.random()*30-15,math.random()*30-15,math.random()*30-15)
|
|
	spin.Parent=rocket
|
|
	
|
|
	-- Clone the sounds
|
|
	local swooshSoundClone = SwooshSound:Clone()
|
|
	swooshSoundClone.Parent = rocket
|
|
	local boomSoundClone = BoomSound:Clone()
|
|
	boomSoundClone.Parent = rocket
|
|
|
|
	-- Attach creator tags
|
|
	local creatorTag = Instance.new('ObjectValue', rocket)
|
|
	creatorTag.Name = 'creator' --NOTE: Must be called 'creator' for website stats
|
|
	creatorTag.Value = MyPlayer
|
|
	local iconTag = Instance.new('StringValue', creatorTag)
|
|
	iconTag.Name = 'icon'
|
|
	iconTag.Value = Tool.TextureId
|
|
|
|
	-- Finally, clone the rocket script and enable it
|
|
	local rocketScriptClone = RocketScript:Clone()
|
|
	rocketScriptClone.Parent = rocket
|
|
	rocketScriptClone.Disabled = false
|
|
|
|
	return rocket
|
|
end
|
|
|
|
local function OnEquipped()
|
|
	MyModel = Tool.Parent
|
|
	MyPlayer = PlayersService:GetPlayerFromCharacter(MyModel)
|
|
	BaseRocket = MakeBaseRocket()
|
|
	RocketClone = BaseRocket:Clone()
|
|
	EquipSound = WaitForChild(ToolHandle, 'Equip')
|
|
	EquipSound:Play()
|
|
end
|
|
|
|
local function OnActivated(targetOverride)
|
|
	if (Tool.Enabled or InUltra) and MyModel and MyModel:FindFirstChild('Humanoid') and MyModel.Humanoid.Health > 0 then
|
|
		Tool.Enabled = false
|
|
|
|
		-- Pick a target
|
|
		local targetPosition = targetOverride or MyModel.Humanoid.TargetPoint
|
|
|
|
		-- Position the rocket clone
|
|
		local spawnPosition = ToolHandle.Position + (ToolHandle.CFrame.lookVector * (ToolHandle.Size.z / 2))
|
|
		RocketClone.CFrame = CFrame.new(spawnPosition, targetPosition) --NOTE: This must be done before assigning Parent
|
|
		DebrisService:AddItem(RocketClone, 30)
|
|
		RocketClone.Parent = Workspace
|
|
|
|
		local startPosition = spawnPosition
|
|
		local mouse_pos=targetPosition
|
|
		local dir = mouse_pos - startPosition
|
|
		dir = dir.unit
|
|
	
|
|
		local launch = startPosition + 3 * dir
|
|
	
|
|
		local delta = mouse_pos - launch
|
|
		
|
|
		local dy = delta.y
|
|
		
|
|
		local new_delta = Vector3.new(delta.x, 0, delta.z)
|
|
		delta = new_delta
|
|
	
|
|
		local dx = delta.magnitude
|
|
		local unit_delta = delta.unit
|
|
		
|
|
		-- acceleration due to gravity in RBX units
|
|
		local g = (-9.81 * 20)
|
|
	
|
|
		local theta = computeLaunchAngle( dx, dy, g)
|
|
|
|
		local vy = math.sin(theta)
|
|
		local xz = math.cos(theta)
|
|
		local vx = unit_delta.x * xz
|
|
		local vz = unit_delta.z * xz
|
|
		
|
|
		RocketClone.Velocity = Vector3.new(vx,vy,vz) * VELOCITY
|
|
|
|
|
|
		wait(0) --TODO: Remove when sounds realize they can be played as soon as they enter the Workspace
|
|
		
|
|
		-- Swoosh!
|
|
		local swooshSound = RocketClone:FindFirstChild('Swoosh')
|
|
		if swooshSound then
|
|
			swooshSound:Play()
|
|
		end
|
|
|
|
		-- Prepare the next rocket to be fired
|
|
		BaseRocket:Destroy()
|
|
		BaseRocket = MakeBaseRocket()
|
|
		RocketClone = BaseRocket:Clone()
|
|
|
|
		ReloadSound:Play()
|
|
		if not InUltra then
|
|
			wait(COOLDOWN)
|
|
		end
|
|
|
|
		-- Stop the reloading sound if it hasn't already finished
|
|
		ReloadSound:Stop()
|
|
|
|
		Tool.Enabled = true
|
|
	end
|
|
end
|
|
|
|
local function OnUnequipped()
|
|
	ReloadSound:Stop() --TODO: This does not work online
|
|
end
|
|
|
|
function updateUltra()
|
|
	if Kills.Value>2 then
|
|
		Kills.Value=0
|
|
		InUltra=true
|
|
		local tgui=textGui:Clone()
|
|
		tgui.Parent=MyPlayer.PlayerGui
|
|
		game.Debris:AddItem(tgui,10)
|
|
		local startTime=tick()
|
|
		while tick()-startTime<10 do
|
|
			OnActivated()
|
|
			wait(.5)
|
|
		end
|
|
		InUltra=false
|
|
	end
|
|
end
|
|
|
|
--------------------
|
|
--| Script Logic |--
|
|
--------------------
|
|
|
|
|
|
Kills.Changed:connect(updateUltra)
|
|
Tool.Equipped:connect(OnEquipped)
|
|
Tool.Activated:connect(OnActivated)
|
|
Tool.Unequipped:connect(OnUnequipped)
|
|
Tool.ChildAdded:connect(OnChildAdded) --NOTE: Added for Action Button
|
|
|
|
</ProtectedString>
|
|
</Properties>
|
|
<Item class="Sound" referent="RBX7">
|
|
<Properties>
|
|
<bool name="Looped">false</bool>
|
|
<string name="Name">Boom</string>
|
|
<float name="Pitch">1</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>rbxasset://sounds/collide.wav</url></Content>
|
|
<float name="Volume">1</float>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Sound" referent="RBX8">
|
|
<Properties>
|
|
<bool name="Looped">true</bool>
|
|
<string name="Name">Swoosh</string>
|
|
<float name="Pitch">1</float>
|
|
<bool name="PlayOnRemove">false</bool>
|
|
<Content name="SoundId"><url>http://www.roblox.com/Asset?ID=98318391</url></Content>
|
|
<float name="Volume">1</float>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Script" referent="RBX9">
|
|
<Properties>
|
|
<bool name="Disabled">true</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">Rocket</string>
|
|
<ProtectedString name="Source">-----------------
|
|
--| Constants |--
|
|
-----------------
|
|
|
|
local BLAST_RADIUS = 6
|
|
local BLAST_PRESSURE = 750000
|
|
|
|
-- Rocket will fly through things named these
|
|
local ROCKET_IGNORE_LIST = {rocket = 1, handle = 1, effect = 1, water = 1} --NOTE: Keys must be lowercase, values must evaluate to true
|
|
|
|
--------------------
|
|
--| WaitForChild |--
|
|
--------------------
|
|
|
|
-- Waits for parent.child to exist, then returns it
|
|
local function WaitForChild(parent, childName)
|
|
	assert(parent, "ERROR: WaitForChild: parent is nil")
|
|
	while not parent:FindFirstChild(childName) do parent.ChildAdded:wait() end
|
|
	return parent[childName]
|
|
end
|
|
|
|
-----------------
|
|
--| Variables |--
|
|
-----------------
|
|
|
|
local DebrisService = Game:GetService('Debris')
|
|
|
|
local Rocket = script.Parent
|
|
local CreatorTag = WaitForChild(Rocket, 'creator')
|
|
|
|
local Connection = nil
|
|
|
|
-----------------
|
|
--| Functions |--
|
|
-----------------
|
|
|
|
-- Returns the ancestor that contains a Humanoid, if it exists
|
|
local function FindCharacterAncestor(subject)
|
|
	if subject and subject ~= Workspace then
|
|
		local humanoid = subject:FindFirstChild('Humanoid')
|
|
		if humanoid then
|
|
			return subject, humanoid
|
|
		else
|
|
			return FindCharacterAncestor(subject.Parent)
|
|
		end
|
|
	end
|
|
	return nil
|
|
end
|
|
|
|
local hitHuman=false
|
|
|
|
local function OnExplosionHit(hitPart)
|
|
	if hitPart then
|
|
		local _, humanoid = FindCharacterAncestor(hitPart.Parent)
|
|
		if humanoid and humanoid.Health > 0 then
|
|
			if CreatorTag.Value.Character:FindFirstChild('Carnagecopia') then
|
|
				local tkills= CreatorTag.Value.Character:FindFirstChild('Carnagecopia'):FindFirstChild('Kills')
|
|
				if tkills and not hitHuman then
|
|
					tkills.Value=tkills.Value+1
|
|
					hitHuman=true
|
|
				end
|
|
			end
|
|
		end
|
|
	end
|
|
end
|
|
|
|
local function OnTouched(otherPart)
|
|
	if Rocket and otherPart then
|
|
		-- Fly through anything in the ignore list
|
|
		if ROCKET_IGNORE_LIST[string.lower(otherPart.Name)] then
|
|
			return
|
|
		end
|
|
|
|
		-- Fly through the creator
|
|
		local myPlayer = CreatorTag.Value
|
|
		if myPlayer and myPlayer.Character and myPlayer.Character:IsAncestorOf(otherPart) then
|
|
			return
|
|
		end
|
|
|
|
		-- Create the explosion
|
|
		local explosion = Instance.new('Explosion')
|
|
		explosion.BlastPressure = BLAST_PRESSURE
|
|
		explosion.BlastRadius = BLAST_RADIUS
|
|
		explosion.Position = Rocket.Position
|
|
		explosion.Hit:connect(OnExplosionHit)
|
|
		explosion.Parent = Workspace
|
|
|
|
		-- Start playing the boom sound
|
|
		local boomSound = Rocket:FindFirstChild('Boom')
|
|
		if boomSound then
|
|
			boomSound:Play()
|
|
		end
|
|
|
|
		-- NOTE:
|
|
		-- If we just destroyed the rocket at this point, the boom sound would be destroyed too,
|
|
		-- so instead we will hide the rocket, keep it in the same spot, and schedule it for deletion
|
|
|
|
		-- Stop playing the swoosh sound
|
|
		local swooshSound = Rocket:FindFirstChild('Swoosh')
|
|
		if swooshSound then
|
|
			swooshSound:Stop()
|
|
		end
|
|
|
|
		-- Put out the fire
|
|
		local fire = Rocket:FindFirstChild('Fire')
|
|
		if fire then
|
|
			fire:Destroy()
|
|
		end
|
|
|
|
		Rocket.Transparency = 1
|
|
		Rocket.CanCollide = false
|
|
		Rocket.Anchored = true
|
|
		DebrisService:AddItem(Rocket, 3)
|
|
|
|
		-- Destroy the connection so this method won't be called again
|
|
		Connection:disconnect()
|
|
	end
|
|
end
|
|
|
|
--------------------
|
|
--| Script Logic |--
|
|
--------------------
|
|
|
|
-- Arm the rocket and save the touch connection so we can disconnect it later
|
|
Connection = Rocket.Touched:connect(OnTouched)
|
|
</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="IntValue" referent="RBX10">
|
|
<Properties>
|
|
<string name="Name">RocketMeshes</string>
|
|
<int name="Value">6</int>
|
|
</Properties>
|
|
<Item class="SpecialMesh" referent="RBX11">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=16190555</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">1</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1.60000002</X>
|
|
<Y>1.60000002</Y>
|
|
<Z>1.60000002</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=16190577</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX12">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=28937301</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">2</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=28937670</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX13">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=13073626</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">3</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1.5</X>
|
|
<Y>1.5</Y>
|
|
<Z>1.5</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=13073598</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX14">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=40311092</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">4</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=40311049</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>0.699999988</X>
|
|
<Y>0.699999988</Y>
|
|
<Z>0.699999988</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX15">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=16215477</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">5</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>1.04999995</X>
|
|
<Y>1.04999995</Y>
|
|
<Z>1.04999995</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=16215451</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="SpecialMesh" referent="RBX16">
|
|
<Properties>
|
|
<token name="LODX">2</token>
|
|
<token name="LODY">2</token>
|
|
<Content name="MeshId"><url>http://www.roblox.com/asset/?id=16940906</url></Content>
|
|
<token name="MeshType">5</token>
|
|
<string name="Name">6</string>
|
|
<Vector3 name="Offset">
|
|
<X>0</X>
|
|
<Y>0</Y>
|
|
<Z>0</Z>
|
|
</Vector3>
|
|
<Vector3 name="Scale">
|
|
<X>0.800000012</X>
|
|
<Y>0.800000012</Y>
|
|
<Z>0.800000012</Z>
|
|
</Vector3>
|
|
<Content name="TextureId"><url>http://www.roblox.com/asset/?id=16940893</url></Content>
|
|
<Vector3 name="VertexColor">
|
|
<X>1</X>
|
|
<Y>1</Y>
|
|
<Z>1</Z>
|
|
</Vector3>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="ScreenGui" referent="RBX17">
|
|
<Properties>
|
|
<string name="Name">textGui</string>
|
|
</Properties>
|
|
<Item class="Frame" 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>
|
|
<string name="Name">Frame</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.25</XS>
|
|
<XO>0</XO>
|
|
<YS>0.75</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.5</XS>
|
|
<XO>0</XO>
|
|
<YS>0.100000001</YS>
|
|
<YO>0</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="LocalScript" referent="RBX19">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">ElementShaker</string>
|
|
<ProtectedString name="Source">local Element = script.Parent
|
|
|
|
local ShakeSpeed = .05
|
|
|
|
local ShakeAmount = 5
|
|
|
|
local StartPosition=Element.Position
|
|
|
|
while true do
|
|
	local angle= math.random()*math.pi*2
|
|
	Element:TweenPosition(StartPosition+UDim2.new(0,math.cos(angle)*ShakeAmount,0,math.sin(angle)*ShakeAmount), "Out", "Quad", ShakeSpeed, true)
|
|
	wait(ShakeSpeed+.01)
|
|
end</ProtectedString>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="ImageLabel" 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>
|
|
<Content name="Image"><url>http://www.roblox.com/asset/?id=98341554</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">1</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
<Item class="Frame" 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>
|
|
<string name="Name">Frame</string>
|
|
<UDim2 name="Position">
|
|
<XS>0.25</XS>
|
|
<XO>0</XO>
|
|
<YS>0.75</YS>
|
|
<YO>0</YO>
|
|
</UDim2>
|
|
<UDim2 name="Size">
|
|
<XS>0.5</XS>
|
|
<XO>0</XO>
|
|
<YS>0.100000001</YS>
|
|
<YO>0</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="LocalScript" referent="RBX22">
|
|
<Properties>
|
|
<bool name="Disabled">false</bool>
|
|
<Content name="LinkedSource"><null></null></Content>
|
|
<string name="Name">ElementShaker</string>
|
|
<ProtectedString name="Source">local Element = script.Parent
|
|
|
|
local ShakeSpeed = .05
|
|
|
|
local ShakeAmount = 5
|
|
|
|
local StartPosition=Element.Position
|
|
|
|
while true do
|
|
	local angle= math.random()*math.pi*2
|
|
	Element:TweenPosition(StartPosition+UDim2.new(0,math.cos(angle)*ShakeAmount,0,math.sin(angle)*ShakeAmount), "Out", "Quad", ShakeSpeed, true)
|
|
	wait(ShakeSpeed+.01)
|
|
end</ProtectedString>
|
|
</Properties>
|
|
</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=98341065</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">1</int>
|
|
</Properties>
|
|
</Item>
|
|
</Item>
|
|
</Item>
|
|
<Item class="IntValue" referent="RBX24">
|
|
<Properties>
|
|
<string name="Name">Kills</string>
|
|
<int name="Value">0</int>
|
|
</Properties>
|
|
</Item>
|
|
<Item class="Camera" referent="RBX25">
|
|
<Properties>
|
|
<Ref name="CameraSubject">null</Ref>
|
|
<token name="CameraType">0</token>
|
|
<CoordinateFrame name="CoordinateFrame">
|
|
<X>21.965271</X>
|
|
<Y>78.1268539</Y>
|
|
<Z>-47.4067459</Z>
|
|
<R00>-0.631106079</R00>
|
|
<R01>-0.0419355072</R01>
|
|
<R02>-0.77456218</R02>
|
|
<R10>-3.7252903e-009</R10>
|
|
<R11>0.9985376</R11>
|
|
<R12>-0.0540617406</R12>
|
|
<R20>0.775696516</R20>
|
|
<R21>-0.0341186896</R21>
|
|
<R22>-0.63018316</R22>
|
|
</CoordinateFrame>
|
|
<float name="FieldOfView">70</float>
|
|
<CoordinateFrame name="Focus">
|
|
<X>24.4460411</X>
|
|
<Y>78.3000031</Y>
|
|
<Z>-45.3883934</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> |