Боевая система roblox studio
Как сделать систему оглушения?
у меня есть скрипт который создает хитбокс при попадании которого дается урон, но я хотел что б помимо урона, врагу давалось оглушение, при котором он не может атаковать, и скорость ходьбы и прыжка = 0
ещё хотел бы, что б мои удары оглушали не только игроков, но и нпс
Чтобы добавить систему оглушения в твою боевую систему в Roblox Studio, можно доработать твой скрипт хитбокса. Вот пример, как это можно реализовать:
### Основные шаги:
1. **Добавить дебафф "Оглушение"**: Создать состояние "оглушен" для целей, которое временно отключает возможность атаки и передвижения.
2. **Работа с NPC и игроками**: Использовать универсальный подход, который работает как для NPC, так и для игроков.
3. **Таймер для снятия оглушения**: Установить таймер, чтобы оглушение автоматически снималось через заданный интервал.
### Пример реализации:
Вот пример скрипта для твоего хитбокса:
local hitbox = script.Parent -- Хитбокс
local stunDuration = 2 -- Продолжительность оглушения (в секундах)
-- Функция для обработки оглушения
local function applyStun(target)
if not target or not target:IsA("Model") then return end
local humanoid = target:FindFirstChildOfClass("Humanoid")
if not humanoid then return end
-- Проверяем, не оглушен ли уже
if target:FindFirstChild("Stunned") then return end
-- Создаем флаг оглушения
local stunFlag = Instance.new("BoolValue")
stunFlag.Name = "Stunned"
stunFlag.Parent = target
-- Отключаем передвижение и прыжки
humanoid.WalkSpeed = 0
humanoid.JumpPower = 0
-- Если это игрок, можно добавить проверку на возможность атаки
local player = game.Players:GetPlayerFromCharacter(target)
if player then
-- Пример: отключение атаки
local canAttack = player:FindFirstChild("CanAttack")
if canAttack then
canAttack.Value = false
end
end
-- Таймер снятия оглушения
task.delay(stunDuration, function()
-- Восстанавливаем параметры
if humanoid then
humanoid.WalkSpeed = 16 -- Стандартная скорость
humanoid.JumpPower = 50 -- Стандартная сила прыжка
end
if player then
local canAttack = player:FindFirstChild("CanAttack")
if canAttack then
canAttack.Value = true
end
end
-- Удаляем флаг оглушения
if stunFlag and stunFlag.Parent then
stunFlag:Destroy()
end
end)
end
-- Обработчик попадания
hitbox.Touched:Connect(function(hit)
local target = hit.Parent
applyStun(target) -- Применяем оглушение
end)
### Объяснение кода:
1. **Флаг "Stunned"**:
- Мы добавляем объект `BoolValue` с именем `"Stunned"`, чтобы пометить цель как оглушенную и избежать повторного применения эффекта, пока он активен.
2. **Ограничения**:
- Оглушение устанавливает скорость передвижения и силу прыжка в `0`.
- Если цель — игрок, можно использовать дополнительные параметры, такие как отключение атаки через свойства.
3. **Снятие эффекта**:
- После завершения времени действия (переменная `stunDuration`), параметры скорости и прыжка восстанавливаются, а флаг `"Stunned"` удаляется.
4. **Универсальность**:
- Скрипт ищет `Humanoid` у цели, что позволяет работать как с NPC, так и с игроками.
### Что ещё можно доработать:
- **Эффект оглушения**: Добавь визуальные эффекты (например, текст "Stunned" над целью или особую анимацию).
- **Урон**: Убедись, что урон всё ещё применяется, даже если добавлено оглушение.
- **Оптимизация**: Используй проверки, чтобы избегать конфликтов с другими системами (например, если уже есть статус "Stunned").
Если у тебя уже есть детали системы урона или хитбоксов, можешь прислать их, чтобы доработать этот код под твою логику!
У игрока отключи все что есть с помощью скрипта. У нпс отключи скрипт.
Для создания системы оглушения в Roblox Studio можно использовать несколько шагов. Сначала, в вашем скрипте, который создает хитбокс, добавьте проверку на попадание в игрока или NPC. После попадания, помимо урона, примените оглушение, установив флаг, который будет блокировать атаки. Установите скорость передвижения и прыжка в 0, используя свойства `Humanoid.WalkSpeed` и `Humanoid.JumpPower`. Не забудьте добавить таймер, чтобы оглушение действовало ограниченное время, после чего вернуть значения обратно. Таким образом, ваш скрипт будет универсален для игроков и NPC.