local UserInputService = game:GetService("UserInputService")
local Players = game:GetService("Players")
local AssetService = game:GetService("AssetService")
local TweenService = game:GetService("TweenService")
local Gomu = [Link]
local isEquipped = false
local cooldown = 3 -- Длительность отката в секундах
local stretchingTime = 0.45 -- Время растяжения в секундах
local stretchingLength = 35 -- Расстояние растяжения
local returnOffset = [Link](0, 0, 0) -- Отступ для возврата руки ниже игрока
local damageAmount = 25 -- Урон, наносимый инструментом
local ReplicatedStorage = game:GetService("ReplicatedStorage")
local function onEquipped()
print("Гому Гому Взят")
isEquipped = true
end
local function onUnequipped()
print("Гому Гому Убран")
isEquipped = false
end
local function getAppearanceFromPlayer(player)
local character = [Link]
if character then
local characterAppearanceId = [Link]
local success, appearance = pcall(function()
return AssetService:GetAssetInfo(characterAppearanceId)
end)
if success and appearance and appearance:IsA("AssetInfo") then
return appearance
end
end
return nil
end
local function getColorFromPlayer(player)
local appearance = getAppearanceFromPlayer(player)
if appearance then
local skinColor = [Link]
if skinColor then
return [Link](skinColor)
end
end
return [Link]("Pastel brown")
end
local function createAndAnimatePart(character, player, targetPosition)
-- Воспроизведение анимации
local humanoid = character:FindFirstChild("Humanoid")
if humanoid then
local PistolAnimation =
ReplicatedStorage:FindFirstChild("Animations"):FindFirstChild("Pistol")
if PistolAnimation then
local animTrack = humanoid:LoadAnimation(PistolAnimation)
animTrack:Play()
end
end
local newPart = [Link]("Part")
[Link] = [Link](0.773, 0.844, 2.748)
[Link] = true
[Link] = true
local playerColor = getColorFromPlayer(player)
[Link] = playerColor
-- Устанавливаем материал парта в "Смуф пластик"
[Link] = [Link]
local characterHumanoid = character:FindFirstChild("Humanoid")
local characterHead = character:FindFirstChild("Head")
if characterHumanoid and characterHead then
local startPosition = [Link]
local direction = (targetPosition - startPosition).unit
local endPosition = startPosition + direction * stretchingLength +
returnOffset -- Учитываем отступ для возврата
[Link] = startPosition
[Link] = character -- Перемещаем созданный Part в папку
Abilities
local rotation = [Link](startPosition, endPosition)
[Link] = rotation -- Устанавливаем ориентацию парты
local newSize = [Link](0.773, 0.844, (startPosition -
endPosition).Magnitude) -- Удлиняем партию
local tweenInfoStretch = [Link](stretchingTime)
local tweenGoalStretch = {}
[Link] = newSize
local tweenStretch = TweenService:Create(newPart, tweenInfoStretch,
tweenGoalStretch)
local tweenInfoShrink = [Link](stretchingTime)
local tweenGoalShrink = {}
[Link] = [Link](0.773, 0.844, 2.748) -- Возвращаем к
исходной длине
local tweenShrink = TweenService:Create(newPart, tweenInfoShrink,
tweenGoalShrink)
tweenStretch:Play()
[Link]:Connect(function()
tweenShrink:Play()
[Link]:Connect(function()
newPart:Destroy()
print("Part удален")
end)
end)
-- Добавляем возможность нанесения урона при попадании инструмента во
что-либо
[Link]:Connect(function(hit)
local characterHit = [Link]:FindFirstChild("Humanoid")
if characterHit and [Link] ~= [Link] then
[Link] = [Link] - damageAmount
print("Нанесен урон " .. damageAmount .. " здоровью.")
end
end)
else
newPart:Destroy()
print("Не удалось найти голову игрока")
end
end
local function hideAndShowArm()
[Link]:Connect(onEquipped)
[Link]:Connect(onUnequipped)
local canUseAbility = true
[Link]:Connect(function(input, gameProcessedEvent)
if isEquipped and not gameProcessedEvent and [Link] ==
[Link].E and canUseAbility then
print("Клавиша 'E' нажата")
local character = [Link]
if character then
local player =
[Link]:GetPlayerFromCharacter(character)
if player then
local mouse = player:GetMouse()
local targetPosition = [Link].p
createAndAnimatePart(character, player,
targetPosition)
local PistolEvent =
ReplicatedStorage:FindFirstChild("GomuEvents"):FindFirstChild("Pistol")
if PistolEvent then
PistolEvent:Fire(player)
end
canUseAbility = false
wait(cooldown)
canUseAbility = true
end
end
end
end)
end
hideAndShowArm()