Привет! Я расскажу тебе, как написать скрипт в Roblox Studio для ударов, блоков и бега․ Все описанные функции будут работать в игре․Для начала, нужно создать новый скрипт в Roblox Studio․ Я назову его ″CombatScript″․lua
— Настройки урона
local damage 2 — количество урона от одного удара
local knockbackForce 250 — сила отталкивания противника при ударе
local ragdollDuration 2 — длительность Ragdoll анимации (в секундах)
local knockbackCoolDown 0․5 — время задержки между ударами (в секундах)
— Настройки блока
local blockDuration 1 — длительность анимации блока (в секундах)
local blockSlowdown 0․5 — коэффициент замедления игрока при активации блока
— Настройки бега
local speedMultiplier 1․5 — множитель скорости при беге
— Получаем игрока
local player game․Players․LocalPlayer
local character player․Character or player․CharacterAdded⁚Wait
— Получаем нужные части тела
local humanoid character⁚WaitForChild(″Humanoid″)
local rightHand character⁚WaitForChild(″RightHand″)
local leftHand character⁚WaitForChild(″LeftHand″)
— Функция для удара
local function onAttack
if humanoid․Health < 0 then
return
end
if tick ー (lastAttackTime or 0) < knockbackCoolDown then
return
end
-- Проигрываем анимацию удара
humanoid⁚LoadAnimation(script․Parent⁚WaitForChild(″AttackAnimation″))⁚Play
-- Наносим урон
local currentHealth humanoid․Health
humanoid․Health currentHealth ー damage
-- Отталкиваем противника
local mouse player⁚GetMouse
local target mouse․Target
if target then
local direction (target․Position ⎼ character․PrimaryPart․Position)․unit
local knockback direction * knockbackForce
target․Parent․Humanoid․PlatformStand true
target․Parent․Humanoid⁚Ragdoll(ragdollDuration)
target⁚SetPrimaryPartCFrame(target⁚GetPrimaryPartCFrame knockback)
wait(ragdollDuration)
target․Parent․Humanoid․PlatformStand false
end
lastAttackTime tick
end
-- Функция для блока
local function onBlock
if humanoid․Health < 0 then
return
end
-- Проигрываем анимацию блока
humanoid⁚LoadAnimation(script․Parent⁚WaitForChild(″BlockAnimation″))⁚Play
-- Замедляем игрока
humanoid․WalkSpeed humanoid․WalkSpeed * blockSlowdown
wait(blockDuration)
humanoid․WalkSpeed humanoid․WalkSpeed / blockSlowdown
end
-- Функция для бега
local function onSprint
if humanoid․Health < 0 then
return
end
-- Ускоряем игрока
humanoid․WalkSpeed humanoid․WalkSpeed * speedMultiplier
end
-- Обработка нажатий кнопок
game⁚GetService(″UserInputService″)․InputBegan⁚Connect(function(input)
if input․UserInputType Enum․UserInputType․MouseButton1 then -- ЛКМ
onAttack
elseif input․KeyCode Enum․KeyCode․F then -- F
onBlock
elseif input․KeyCode Enum․KeyCode․LeftShift then -- LeftShift
onSprint
end
end)