In der testtool.lua ist folgendes beinhalten:
Lua Code:
TOOL.Category = "Construction" TOOL.Name = "testtool" TOOL.Command = nil TOOL.ConfigName = "" function TOOL:LeftClick(tr) if(tr.Entity ~= nil and tr.Entity:IsValid() and tr.Entity:GetClass() == "prop_physics") then-- Wenn ausgewählte Entity ein Prop ist, ...
local ent = ents.Create("ent_irgendwas") ent:SetPos(tr.Entity:GetPos()) ent:SetAngles(tr.Entity:GetAngles()) ent:SetModel(tr.Entity:GetModel()) tr.Entity:Remove()-- ... dann ersetze sie mit "ent_irgendwas" an derselben Stelle, mit derselben Richtung
-- und mit gleichem Modell
end
end
Und in der init.lua von ent_irgendwas ist folgendes beinhalten:
Lua Code:
AddCSLuaFile("cl_init.lua") --Nur ENT:Draw mit DrawModel() AddCSLuaFile("shared.lua") --Nur ENT.x Daten include('shared.lua') function ENT:Initialize() self.Entity:SetColor(255,255,255,50) self.Entity:SetSolid(SOLID_VPHYSICS)end
Mit diesem Code will ich also bewirken, dass mit dem Tool ein Prop mit einer anderen Entity (hier ent_irgendwas) ersetzt werden kann.
Wenn ich die Entity per "ent_create ent_irgendwas" erstelle, erscheint ein transparentes ERROR-Modell, was zeigt, dass der Inhalt des Initialize-Hooks ausgeführt wird.
Jedoch, wenn ich ent_irgendwas durch das Tool erstelle, erscheint die Entity nicht transparent und hat keine Kollision. Das heißt, dass, wenn ich die Entity in einem Toolscript generiere, wird Initialize nicht aufgerufen. Kann ich das beheben oder ist es nicht ohne Umweg umgehbar?