August 19, 2024

Делаем систему крови возможность персонажа "красиво" умирать

На прошлом уроке мы уже сделали основу и в конце урока как бонус я посоветовал добавить одну строчку кода которая будет убирать ногу у нашего персонажа local character = hit.Parent local humanoid = character:FindFirstChild("Humanoid") if humanoid then — Попробуем найти левую и правую ногу local leftLeg = character:FindFirstChild("Left Leg") or character:FindFirstChild("LeftLowerLeg") or character:FindFirstChild("LeftFoot") local rightLeg = character:FindFirstChild("Right Leg") or character:FindFirstChild("RightLowerLeg") or character:FindFirstChild("RightFoot") — Удаляем левую ногу, если она найдена if leftLeg then leftLeg:Destroy() end чтобы при заходе на наш кирпич и персонажа убиралась левая нога и он истекал кровью постепенно начнем урока с того что вспомним как пользоваться рандомом

достаточно предельно все просто пользуемся библеотечной функцией библеотеки math - random, тут просто если нам выпадает единица из функции тогда удаляем левую ногу если 2 то правую

если из фукнции выпадает число один то переменной legToRemove присваиваем значение переменной leftleg который в свою очередь ссылается уже на обьект класса Humanoid left leg

c двойкой все тоже самое

зачем же мы сделали весь этот скрипт в кирпиче наверное если мы будем делать свой боевик или шутер то нужно скрипт размещать в другом месте да это правда но из кирпича мы в будущем сделаем капкан и мину в этом уроке мы добавим текстуру нашему кирпичу

берем какой нибудь меш из тулбокса

в свойствах нашего Mesh копируем такой параметр как Meshid

добавляем вот такую вот новую строчку кода в код:

local mesh = Instance.new("SpecialMesh") mesh.MeshId = "rbxassetid://ВАШ_ID_МЕША" — Укажите ID меша капкана"rbxassetid://

mesh.Scale = Vector3.new(1, 1, 1) — Масштабирование меша, можно изменить под размер детали
mesh.Parent = part — Применяем меш к Part

Что тут происходит

Шаг 1: Создание объекта SpecialMesh

local mesh = Instance.new("SpecialMesh")
  • Что происходит?
    • Этот код создает новый объект SpecialMesh, который представляет собой специальный 3D-меш, используемый для изменения формы и текстуры базовой части (Part).
    • Instance.new — это функция, которая создает новый объект определенного типа. В данном случае это SpecialMesh.
  • Зачем это нужно?
    • Обычные части (Part) в Roblox имеют простую геометрическую форму (куб, шар и т.д.). Меш позволяет использовать более сложные 3D-модели, такие как капкан или другой объект.

Шаг 2: Присваивание MeshId

MeshId = "rbxassetid://ВАШ_ID_МЕША"
  • Что происходит?
    • Здесь MeshId устанавливается на конкретный идентификатор меша. Этот ID указывает Roblox, какой именно 3D-меш должен быть применен.
    • ID меша можно найти в Roblox библиотеке, где хранятся различные модели. Он обычно выглядит как числовой код (например, "rbxassetid://1234567890").
  • Зачем это нужно?
    • Этот ID связывает созданный меш с конкретной моделью, например, моделью капкана, которая загружается и накладывается на вашу часть.

Шаг 3: Настройка масштаба

mesh.Scale = Vector3.new(1, 1, 1)
  • Что происходит?
    • Эта строка устанавливает размер меша, используя векторные координаты (X, Y, Z). В данном случае масштаб меша задан как 1, 1, 1, что означает его исходный размер.
  • Зачем это нужно?
    • Масштабирование меша позволяет сделать модель больше или меньше по трем осям (X, Y, Z). Например, если модель капкана слишком большая для части, вы можете уменьшить ее до нужных пропорций.

Шаг 5: Привязка меша к части

luaCopy codemesh.Parent = part
  • Что происходит?
    • Этот код привязывает созданный меш к объекту part, который должен уже существовать в игре.
  • Зачем это нужно?
    • Привязка меша к части (например, вашему кирпичу или капкану) позволяет изменить форму и текстуру этой части. Меш становится визуальной частью объекта, и игроки видят не обычный куб или сферу, а сложную 3D модель.

Итог:

Этот код создает 3D-модель (меш) капкана, текстурирует её, масштабирует до нужного размера и привязывает к вашему объекту в игре. Благодаря этому, вместо обычной базовой формы части (Part) вы получите более сложный и детализированный объект.

итог теперь мы имеем капкан при контакте с ним у персонажа пропадает нога начинается кровотечение и уменьшается здоровье теперь осталось сделать эффект схлопывания капкана

находим в тулбоксе модельку уже закрытого капкана и пихаем ее также как и прошлый меш внутрь нашего парта(*part)

теперь придумываем одну хитрость которая позволит нам в этом уроке миновать работу с анимациями

в начале мы установили наш меш и установили его айди теперь после переноса меша "закрытого капкана" добавляем следующий код

Что тут происходит

в нашей функции которая проверяет касался ли игрок нашего капкана(,брика,парта)

когда она активируется

мы делаем наш капкан невидимым

part.Transparency = 1 мы обратились к свойствам нашего кирпича с помощью переменной которая на него ссылается

local part = script.Parent

мы делаем наш первый капкан невидимым но в тоже время наш второй меш который закрытый капкан делаем видимым(я изначально сделал его невидимым он будет видимым только при касании игроком капкана тем самым создавая эффект "схлопывания или закрывания" нашего капкана)

теперь в функции которая вызывается когда наш Гуманоид,(персонаж,игрок

мы делаем точно такие же действия только наоборот

наш второй капкан который закрытый делаем невидимым а второй снова видимым

Смотрим на результат

хорошо теперь в качестве практики

1.*Cделайте чтобы персонаж не мог выбраться из капкана(он был заморожен,застрял и тд)*

2.*Сделайте мину,бомбу, чтобы при взрыве у персонажа появлась кровь и тд*

3.*Придумайте свой вариант ловушки и свой вариант реализации*

На этом все можете свои решения,реализации,

скидывать в коментарии под уроком.