Untitled

mail@pastecode.io avatar
unknown
plain_text
7 months ago
2.0 kB
2
Indexable
Never
-- Задаём адрес инструмента Tool в переменной Gun
local Gun = script.Parent

-- Адрес объекта Bomb внутри Tool
local Bomb = Gun:FindFirstChild('Bomb')

-- Подключаем сервис доступа к хранилищу реплик
local ReplicatedStorage = game:GetService("ReplicatedStorage")

-- переменная перезарядки
-- false если можно стрелять
-- true если выстрел был сделан недавно
reload = false

-- функция выстрела
function bam()
	-- Проверка на перезарядку
	if reload == false then
		reload = true
		-- Создание копии крайней детали-бомбы
		local Bullet = Bomb:Clone()
		Gun.Bomb.CanCollide = false
		Gun.Bomb.Transparency = 1
		Bullet.Position = Bomb.Position
		Bullet.CanCollide = true
		Bullet.Parent = Gun
		Bullet.Name = "BombFired"

		local Thrust = Instance.new('BodyThrust', Bullet)
		-- Поправка значения силы под массу пули
		local mass = Bullet.AssemblyMass
		local randCoeff = math.random(100,300)
		Thrust.Force = Vector3.new(mass*randCoeff,197,0)

		-- Удаление WeldConstraint с проверкой
		local WeldCon1 = Bullet:FindFirstChild('WeldConstraint')
		if WeldCon1 ~= nil then
			WeldCon1:Destroy()
		end

		-- добавляем эффект огня и случайный цвет
		Instance.new('Fire',Bullet)
		Bullet.BrickColor = BrickColor.Random()
		-- Таймер на удаление через одну секунду
		game:GetService("Debris"):AddItem(Bullet, 1)
		-- ждём секунду и разрешаем сделать ещё один выстрел
		wait(1)
		Gun.Bomb.CanCollide = true
		Gun.Bomb.Transparency = 0
		reload = false
	end
end

-- Связываем нажатие кнопки мыши и функции выстрела
Gun.Activated:Connect(bam)

Leave a Comment