Напиши скрипт в Roblox Studio: Напиши скрипт на удары, блоки и бег
Удары будут на ЛКМ, у ударов будет анимация и с каждым ударом будет сносится 2 единицы урона, каждый третий удар будет включать Ragdoll противнику на 2 секунды.
Блок же будет блокировать все удары, блок будет работать только спереди, если ударить сзади человека с блоком то блок не поможет, у блока который активируется на F также будет анимация, и блок будет замедлять игрока который его ставит.
А бег будет ускорять игрока. Также когда человек бежит нельзя будет ставить
блок, бег будет на Lshift
lua
-- Определение переменных и настройка скрипта
local player = script.Parent -- Получаем объект игрока
local humanoid = player:WaitForChild("Humanoid") -- Получаем компонент Humanoid игрока
local canBlock = true -- Переменная, указывающая, может ли игрок блокировать удары
local isBlocking = false -- Переменная, указывающая, блокирует ли игрок удары
local blockCooldown = 2 -- Переменная, задающая время ожидания перед следующим блоком (в секундах)
local blockDuration = 2 -- Переменная, задающая продолжительность действия блока (в секундах)
local blockSlowdownAmount = 0.5 -- Переменная, указывающая, насколько должна замедлиться скорость игрока при блокировке
local canAttack = true -- Переменная, указывающая, может ли игрок наносить удары
local attackDamage = 2 -- Переменная, указывающая урон, наносимый ударом
local attackCooldown = 0.5 -- Переменная, указывающая время ожидания перед следующим ударом (в секундах)
local canRun = true -- Переменная, указывающая, может ли игрок бегать
local runMultiplier = 2 -- Переменная, указывающая множитель ускорения при беге
-- Обработчик события "Button1Down" (ЛКМ)
local function onButton1Down()
if canAttack then -- Проверяем, может ли игрок атаковать
canAttack = false -- Блокируем атаку на время отката
humanoid:MoveTo(humanoid.RootPart.Position + humanoid.RootPart.CFrame.LookVector * 10) -- Пример смещения игрока вперед при ударе
-- Здесь можно добавить анимацию удара
-- Наносим урон противнику
-- Предполагается, что у каждого противника есть скрипт с переменной "Damage" (урон)
local character = humanoid:FindFirstChildOfClass("Model") -- Получаем модель игрока
if character then
local humanoidRootPart = character:FindFirstChild("HumanoidRootPart") -- Получаем корневую часть игрока
if humanoidRootPart then
local targetHumanoid = humanoidRootPart:FindFirstChildOfClass("Humanoid") -- Получаем компонент Humanoid цели
if targetHumanoid then
targetHumanoid.Health = targetHumanoid.Health - attackDamage -- Наносим урон
end
end
end
wait(attackCooldown) -- Ожидаем заданное время отката
canAttack = true -- Разблокируем атаку
end
end
-- Обработчик события "Button1Up" (отпущена ЛКМ)
local function onButton1Up()
-- Здесь можно добавить логику для анимации ожидания
end
-- Обработчик события "Button2Down" (ПКМ)
local function onButton2Down()
if canBlock then -- Проверяем, может ли игрок блокировать
isBlocking = true -- Устанавливаем флаг блокировки
canBlock = false -- Блокируем блокировку на время ожидания перед следующим блоком
humanoid.WalkSpeed = humanoid.WalkSpeed * blockSlowdownAmount -- Замедляем игрока при блокировке
-- Здесь можно добавить анимацию блока
end
end
-- Обработчик события "Button2Up" (отпущена ПКМ)
local function onButton2Up()
isBlocking = false -- Снимаем флаг блокировки
wait(blockCooldown) -- Ожидаем заданное время ожидания перед следующим блоком
canBlock = true -- Разблокируем блокировку
humanoid.WalkSpeed = humanoid.WalkSpeed / blockSlowdownAmount -- Восстанавливаем скорость игрока
end
-- Обработчик события "Running" (бег)
local function onRunning(speed)
if canRun and speed > 0 then -- Проверяем, может ли игрок бегать и движется ли он
humanoid.WalkSpeed = humanoid.WalkSpeed * runMultiplier -- Увеличиваем скорость игрока при беге
canBlock = false -- Блокируем блокировку при беге
canAttack = false -- Блокируем атаку при беге
elseif canRun and speed <= 0 then -- Если игрок останавливается
humanoid.WalkSpeed = humanoid.WalkSpeed / runMultiplier -- Восстанавливаем скорость игрока
canBlock = true -- Разблокируем блокировку
canAttack = true -- Разблокируем атаку
end
end
-- Подключаем обработчики событий к объекту игрока
player:WaitForChild("PlayerGui"):WaitForChild("MainGui"):WaitForChild("MoveControls").Top.LeftLMouseButton.MouseButton1Down:Connect(onButton1Down)
player:WaitForChild("PlayerGui"):WaitForChild("MainGui"):WaitForChild("MoveControls").Top.LeftLMouseButton.MouseButton1Up:Connect(onButton1Up)
player:WaitForChild("PlayerGui"):WaitForChild("MainGui"):WaitForChild("MoveControls").Top.RightLMouseButton.MouseButton1Down:Connect(onButton2Down)
player:WaitForChild("PlayerGui"):WaitForChild("MainGui"):WaitForChild("MoveControls").Top.RightLMouseButton.MouseButton1Up:Connect(onButton2Up)
humanoid.Running:Connect(onRunning)
В этом скрипте мы определяем различные переменные и настраиваем скрипт. У каждого действия (удары, блокировка и бег) есть своя переменная, контролирующая, может ли игрок выполнять это действие. Одновременно выполнить несколько действий невозможно, чтобы избежать конфликтов.
Обработчик onButton1Down отвечает за удары. При нажатии ЛКМ (Button1Down) скрипт проверяет, может ли игрок атаковать. Затем мы получаем противника, расчет урона и воспроизводим анимацию удара.
Обработчик onButton1Up нужен, чтобы добавить логику для анимации ожидания между ударами. В данном примере он пустой, но вы можете указать здесь игру анимацию.
Обработчик onButton2Down отвечает за блокировку. При нажатии ПКМ (Button2Down) скрипт проверяет, может ли игрок блокировать. Затем мы устанавливаем флаг блокировки, замедляем скорость игрока и воспроизводим анимацию блока.
Обработчик onButton2Up нужен, чтобы добавить логику ожидания перед следующим блоком и восстановить скорость игрока.
Обработчик onRunning отвечает за бег. Если игрок начинает бегать (скорость больше 0), мы увеличиваем его скорость и блокируем блокировку и атаку. Если игрок останавливается, мы восстанавливаем его скорость и разблокируем блокировку и атаку.
Все обработчики событий подключены к соответствующим кнопкам в пользовательском интерфейсе (GUI), предполагая, что у вас есть GUI, в котором есть кнопки для ударов, блока и бега. Вы должны адаптировать имена GUI и кнопок к вашей конкретной настройке.
Таким образом, при использовании этого скрипта в Roblox Studio, игрок сможет наносить удары, блокировать удары и бежать. Скрипт учитывает условия для каждого действия и включает соответствующие анимации и логику.Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет
Нажимая «Регистрация» или «Войти через Google», вы соглашаетесь с Публичной офертой, даете Согласие на обработку персональных данных, а также подтверждаете что вам есть 18 лет