Roblox · Захват флага · урок 7
Последние штрихи: выдача брони на базе, оружие из раздела «Оружие» и публикация.
Синим — что добавляем на этом уроке.
Workspace └─ Bases → Синие (Model) └─ ArmorGiver (Part) └─ ArmorScript (Script) StarterPack └─ оружие (Tool) — из раздела «Оружие»
Где: Workspace → Bases → Синие → ArmorGiver · Script
Зачем: Выдаёт броню.
-- деталь, выдающая броню
local giver = script.Parent
-- сколько здоровья добавляет
local BONUS = 100
-- касание
giver.Touched:Connect(function(hit)
-- персонаж
local character = hit.Parent
-- Humanoid
local humanoid = character:FindFirstChildOfClass("Humanoid")
-- не игрок, погиб или броня уже есть
if not humanoid or humanoid.Health <= 0 or character:GetAttribute("Armor") then return end
-- туловище R15 или R6
local torso = character:FindFirstChild("UpperTorso") or character:FindFirstChild("Torso")
-- нет туловища
if not torso then return end
-- у этого персонажа броня есть (после смерти — снова нет)
character:SetAttribute("Armor", true)
-- больше максимум
humanoid.MaxHealth += BONUS
-- полное здоровье
humanoid.Health = humanoid.MaxHealth
-- нагрудник
local plate = Instance.new("Part")
-- имя
plate.Name = "ArmorPlate"
-- чуть больше туловища
plate.Size = torso.Size + Vector3.new(0.3, 0.1, 0.3)
-- цвет как у выдачи
plate.Color = giver.Color
-- металл
plate.Material = Enum.Material.Metal
-- не мешает ходить
plate.CanCollide = false
-- лучи сквозь
plate.CanQuery = false
-- без веса
plate.Massless = true
-- на туловище
plate.CFrame = torso.CFrame
-- сварка
local weld = Instance.new("WeldConstraint")
-- туловище
weld.Part0 = torso
-- нагрудник
weld.Part1 = plate
-- в нагрудник
weld.Parent = plate
-- в персонажа
plate.Parent = character
-- конец функции
end)Запусти Play (или Run) и убедись: