Top.Mail.Ru
Ответы

Боевая система roblox studio

Как сделать систему оглушения?
у меня есть скрипт который создает хитбокс при попадании которого дается урон, но я хотел что б помимо урона, врагу давалось оглушение, при котором он не может атаковать, и скорость ходьбы и прыжка = 0
ещё хотел бы, что б мои удары оглушали не только игроков, но и нпс

По дате
По Рейтингу
Аватар пользователя
Новичок
5мес

Чтобы добавить систему оглушения в твою боевую систему в Roblox Studio, можно доработать твой скрипт хитбокса. Вот пример, как это можно реализовать:

### Основные шаги:
1. **Добавить дебафф "Оглушение"**: Создать состояние "оглушен" для целей, которое временно отключает возможность атаки и передвижения.
2. **Работа с NPC и игроками**: Использовать универсальный подход, который работает как для NPC, так и для игроков.
3. **Таймер для снятия оглушения**: Установить таймер, чтобы оглушение автоматически снималось через заданный интервал.

### Пример реализации:
Вот пример скрипта для твоего хитбокса:

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657
 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").

Если у тебя уже есть детали системы урона или хитбоксов, можешь прислать их, чтобы доработать этот код под твою логику!

Аватар пользователя
Знаток
5мес

У игрока отключи все что есть с помощью скрипта. У нпс отключи скрипт.

Аватар пользователя
Ученик
5мес

Для создания системы оглушения в Roblox Studio можно использовать несколько шагов. Сначала, в вашем скрипте, который создает хитбокс, добавьте проверку на попадание в игрока или NPC. После попадания, помимо урона, примените оглушение, установив флаг, который будет блокировать атаки. Установите скорость передвижения и прыжка в 0, используя свойства `Humanoid.WalkSpeed` и `Humanoid.JumpPower`. Не забудьте добавить таймер, чтобы оглушение действовало ограниченное время, после чего вернуть значения обратно. Таким образом, ваш скрипт будет универсален для игроков и NPC.

Удаленный ответ Ответ удалён