Тебе надо было сделать функцию ENT:SpawnFunction
для установки владельца сразу после спавна энтити.
ENT.Type = "anim"
ENT.Base = "base_gmodentity"
ENT.PrintName = "Wide Large"
ENT.Category = "URLPaint"
ENT.Author = "crester"
ENT.Spawnable = true
if SERVER then
-- Установка владельца при спавне
function ENT:SpawnFunction(ply, tr, ClassName)
if not tr.Hit then return end
local ent = ents.Create(ClassName)
ent:SetPos(tr.HitPos + tr.HitNormal * 16)
ent:Spawn()
ent:Activate()
-- Установка владельца через CPPI (если поддерживается)
if CPPI then
ent:CPPISetOwner(ply)
end
-- Также можно сохранить владельца вручную, если CPPI не используется
ent.Owner = ply
return ent
end
function ENT:Initialize()
self:SetModel("models/crester/urlpaint/painting_2.mdl")
self:PhysicsInit(SOLID_VPHYSICS)
self:SetMoveType(MOVETYPE_VPHYSICS)
self:SetSolid(SOLID_VPHYSICS)
self:SetUseType(SIMPLE_USE)
end
function ENT:Use(caller)
if CPPI then
if self:CPPIGetOwner() ~= caller then
return
end
else
if not self.Owner then
self.Owner = caller
end
if self.Owner ~= caller then
return
end
end
net.Start("URLPaint Menu")
net.WriteEntity(self)
net.Send(caller)
end
function ENT:OnRemove()
if URLPaint.List[self] then
URLPaint.List[self] = nil
end
end
else
function ENT:Draw()
self:DrawModel()
if self:GetNWString("URLPaint Pic") == "" or Material(self:GetNWString("URLPaint Pic")):IsError() then
return
end
local ang = self:GetAngles()
ang:RotateAroundAxis(ang:Up(), 90)
ang:RotateAroundAxis(ang:Forward(), 90)
cam.Start3D2D(self:GetPos() + (self:GetUp() * 51.9) + (self:GetRight() * (self:OBBMaxs().y - 0.99)), ang, 0.0995)
surface.SetDrawColor(color_white)
surface.SetMaterial(Material(self:GetNWString("URLPaint Pic")))
surface.DrawTexturedRect(0, 0, 512, 512)
cam.End3D2D()
end
end