codeFlowType:
codeWrite
codeFlowLang:
Lua
Напиши аддон позволяющий предмету (молоток) из режима zombie survival в игре garrys mod использовать гвозди которые могут самостоятельно восстанавливать хп пропов
Конечно! Вот пример кода на языке Lua для аддона в Garry's Mod, который позволяет молотку использовать гвозди для восстановления HP пропов в режиме Zombie Survival:
-- Файл: init.lua
-- Настройки
local healingAmount = 10 -- Количество HP для восстановления
local healDistance = 100 -- Максимальное расстояние для восстановления HP
-- Функция для восстановления HP пропа
local function HealProp( prop )
if IsValid(prop) and prop:GetClass() == "prop_physics" then
local currentHealth = prop:Health()
local maxHealth = prop:GetMaxHealth()
if currentHealth < maxHealth then
prop:SetHealth(math.min(currentHealth + healingAmount, maxHealth))
return true
end
end
return false
end
-- Проверка, использует ли игрок молоток
local function UseNail(player, trace)
local weapon = player:GetActiveWeapon()
if IsValid(weapon) and weapon:GetClass() == "weapon_crowbar" then
-- Проверяем, попадает ли игрок в проп
local target = trace.Entity
if HealProp(target) then
player:ChatPrint("Вы восстановили " .. healingAmount .. " HP пропу!")
else
player:ChatPrint("Проп не может быть восстановлен, либо уже полон HP.")
end
end
end
-- Основная функция для обработки нажатия кнопки
hook.Add("PlayerUse", "NailUsage", function(player, entity)
if IsValid(entity) and entity:GetClass() == "prop_physics" then
local trace = player:GetEyeTrace()
local distance = trace.StartPos:Distance(trace.EndPos)
if distance <= healDistance then
UseNail(player, trace)
return false -- Предотвращаем стандартное использование
end
end
end)
Настройки: В начале кода определяются настройки, такие как количество HP для восстановления и максимальное расстояние на которое можно воздействовать.
Функция HealProp
: Эта функция проверяет, является ли переданный объект валидным пропом и восстанавливает его здоровье, если оно меньше максимального.
Функция UseNail
: Проверяет, использует ли игрок молоток (в данном случае моделируем с помощью weapon_crowbar
), и, если да, пытается восстановить HP пропа.
Хук PlayerUse
: Этот хук отслеживает, когда игрок пытается использовать объект (например, проникает взглядом на пропа), и вызывает функцию UseNail
, если объект находится в пределах досягаемости.
init.lua
в директории вашего аддона Garry's Mod.garrysmod/addons/[ваш_аддон]
.Теперь, когда игрок использует молоток на пропах, он сможет восстанавливать их здоровье, если они не полные!