Здравствуйте, я хочу сделать аддон и почти его доделал, осталось только сделать один таймер, ну так вот, я хочу сделать хев костюм, Худ для него и все остальное я сделал, но я хочу сделать еще и реген, как на хл2рп серверах (но для сандбокса) .
Сам код на энтити (init.lua):
с таймерами я не очень дружу, что то делать на них могу ну а что то нет. Поэтому прошу помощи, как сюда сделать реген хп и брони. Я пробовал делать и если понадобится то я могу скинуть что я вставлял в код, но смысла в этом нету. Язык луа я не прям таки хорошо знаю, поэтому если найдется человек
который найдет на меня время то пожалуйста распишите поподробней. Спасибо тому кто решится ответить
Сам код на энтити (init.lua):
Lua:
AddCSLuaFile("shared.lua")
AddCSLuaFile("cl_init.lua")
include("shared.lua")
util.AddNetworkString("hevsuit_send")
local mhevmdl
function ENT:Initialize()
self:SetModel("models/props_wasteland/controlroom_filecabinet002a.mdl")
self:SetSolid(SOLID_VPHYSICS)
self:DrawShadow(false)
self.busy = false
local phys = self:GetPhysicsObject()
if phys:IsValid() then phys:Wake() end
hevmdl = ents.Create("hev_suit_helper")
hevmdl:SetPos(self:GetPos() - Vector(0,0,35))
hevmdl:Spawn()
self:SetSuit(hevmdl)
hevmdl:SetSuit(self)
hevmdl.Think = function()
if IsValid(hevmdl) and IsValid(hevmdl:GetSuit()) then
hevmdl:SetPos(hevmdl:GetSuit():GetPos() - Vector(0,0,35))
hevmdl:SetAngles(hevmdl:GetSuit():GetAngles())
end
end
timer.Create("hevsuit_update_"..self:EntIndex(),hevSuit.RestoreTime,0,function() if IsValid(self) then self:SetUsed(false) end end)
timer.Create("hevsuit_updateent"..self:EntIndex(),5,0,function() self.busy = false end)
end
function ENT:SpawnFunction(ply, trace)
local ent = ents.Create("hev_suit")
ent:SetPos(trace.HitPos + trace.HitNormal * 35)
ent:Spawn()
ent:Activate()
return ent
end
function ENT:OnRemove() self:GetSuit():Remove() end
function ENT:OnTakeDamage() return end
function ENT:Touch(activator, ply)
if self.busy then return end
if not IsValid(activator) then return end
self.busy = true
if self:GetUsed() or activator.IsHEV then
activator:ChatPrint("You returned the suit.")
activator:SendLua("HEV_RestoreDefaults()")
self:SetUsed(false)
activator.IsHEV = false
activator:SetModel(activator.OldModel)
activator:SetHands(activator.OldHands)
return end
self:SetUsed(true)
if not activator.IsHEV then
activator.OldModel = activator:GetModel()
activator.OldHands = activator:GetHands()
net.Start("hevsuit_send")
net.Send(activator)
activator:ChatPrint("You obtained the hazard suit.")
activator.IsHEV = true
activator:SetModel("models/paynamia/bms/gordon_survivor_player.mdl")
end
local hands = ents.Create( "gmod_hands" )
if ( IsValid( hands ) ) then
activator:SetHands( hands )
hands:SetOwner( ply )
local cl_playermodel = activator:GetInfo( "cl_playermodel" )
local info = player_manager.TranslatePlayerHands( cl_playermodel )
if ( info ) then
hands:SetModel( "models/hevarms/bms/c_arms_bms_hev.mdl")
end
local vm = activator:GetViewModel( 0 )
hands:AttachToViewmodel( vm )
vm:DeleteOnRemove( hands )
activator:DeleteOnRemove( hands )
hands:Spawn()
hook.Add("inSuit.UpdateHands","inSuit",function(tab) handsmodel = tab.model end)
end
end
hook.Add("PlayerDeath","inSuit.Restore",function(ply)
ply:SendLua("HEV_RestoreDefaults()")
end)
с таймерами я не очень дружу, что то делать на них могу ну а что то нет. Поэтому прошу помощи, как сюда сделать реген хп и брони. Я пробовал делать и если понадобится то я могу скинуть что я вставлял в код, но смысла в этом нету. Язык луа я не прям таки хорошо знаю, поэтому если найдется человек
который найдет на меня время то пожалуйста распишите поподробней. Спасибо тому кто решится ответить