Archiv verlassen und diese Seite im Standarddesign anzeigen : SEnt: Schriftzug auf Entities
Hallo, ich möchte wollte gerne einen Schriftzug auf meinen Entities haben,
der nur sichtbar ist, wenn man auf das Entity schaut. Also nicht:
AddWorldTip( self.Entity:EntIndex(), "text hier drin", 0.5, self.Entity:GetPos(), self.Entity )
weil das sieht man auch über hundert meter durch wände durch am Bildschirmrand. Wenn ihr etwas mit "DarkRP" anfangen könnt, ich meine einen Schriftzug wie dort auf den Moneyprintern oder auf den Waffen Shipments.
Und danke fürs helfen, learning by doing klappt auch nicht immer 100%ig
don-banane
12.02.2009, 11:13
function DrawText()
local tr = LocalPlayer():GetEyeTrace()
local pos = tr.Entity:GetPos()
pos.z = pos.z + 8
pos = pos:ToScreen()
if tr.Entity:GetClass() == "dein_entity" then
draw.SimpleText("Dein Text", "TargetID", pos.x, pos.y, Color(255,255,255,255),1,1)
end
end
hook.Add("HUDPaint", "DrawText", DrawText)
TargetID ist die Schriftart (die wird auch in DarkRP verwendet), du kannst aber auch andere nehmen und color ist in der üblichen RGBa form ;)
Kommt das in die "init.lua" oder die "cl_init.lua" ?
Und dnake für den Code
WeltEnSTurm
12.02.2009, 11:44
Kommt das in die "init.lua" oder die "cl_init.lua" ?
Und dnake für den Code
cl_init.
der server braucht das nicht sehn, sondern der client :V
Ich habe den code eingefügt, aber er will nicht so wie ich will. Hier ist die gesamte "cl_init.lua"
include("shared.lua")
function ENT:Initialize()
end
function DrawText()
local tr = LocalPlayer():GetEyeTrace()
local pos = tr.Entity:GetPos()
pos.z = pos.z + 8
pos = pos:ToScreen()
if tr.Entity:GetClass() == "weed_factury" then
draw.SimpleText("Marijuana Factury", "TargetID", pos.x, pos.y, Color(255,255,255,255),1,1)
end
end
hook.Add("HUDPaint", "DrawText", DrawText)
function ENT:Draw()
self.Entity:DrawModel()
end
function ENT:Think()
end
WeltEnSTurm
12.02.2009, 12:47
Irgendwas muss die funktion auch aufrufen.
Ich würde den "hook" nicht ins Entity packen sondern in eine extra Datei, diese dann unter:
lua/autorun/client/
speichern.
Also ich hab jetz eine extra file in /lua/autorun/client/
hook.Add("Ent.Draw", "DrawText", DrawText)
Und mein cl_init vom Entity
include("shared.lua")
function ENT:Initialize()
end
function ENT:Draw()
self.Entity:DrawModel()
end
function ENT:Think()
end
function DrawText()
local tr = LocalPlayer():GetEyeTrace()
local pos = tr.Entity:GetPos()
pos.z = pos.z + 8
pos = pos:ToScreen()
if tr.Entity:GetClass() == "weed_factory" then -- Weed Factory, das Entity
draw.SimpleText("Marijoana Factory", "TargetID", pos.x, pos.y, Color(255,255,255,255),1,1) -- Marijoana Factory, der Text
end
und es schreibt trotzdem keinen Text, wo hab ich meinen Fehler?
WeltEnSTurm
13.02.2009, 14:28
Vielleicht ENT:DrawText()? kA :P
don-banane
13.02.2009, 14:48
Ich würde auch die DrawText Funktion die extra Datei machen.
wenn ich die auch in ne extra datei packe dann könnte ich da ja auch mehrere
if blablabla then blablabla
reinhängen, um mehrere Entities mit einer Funktion zu beschriften.
Oder gäbe es da Probleme?
don-banane
13.02.2009, 15:33
Oder gäbe es da Probleme?
Nein, mach es ruhig so ;)
K, habe es fertig, so siehts aus:
function DrawText()
local tr = LocalPlayer():GetEyeTrace()
local pos = tr.Entity:GetPos()
pos.z = pos.z + 8
pos = pos:ToScreen()
if tr.Entity:GetClass() == "weed_factory" then
draw.SimpleText("Marijuana Factory", "TargetID", pos.x + 1, pos.y + 1, Color(0,0,0,200),1)
draw.SimpleText("Marijuana Factory", "TargetID", pos.x, pos.y, Color(255,255,255,200),1)
if tr.Entity:GetClass() == "water_factory" then
draw.SimpleText("Water Factory", "TargetID", pos.x + 1, pos.y + 1, Color(0,0,0,200),1)
draw.SimpleText("Water Factory", "TargetID", pos.x, pos.y, Color(255,255,255,200),1)
end
end
end
hook.Add("HUDPaint", "DrawText", DrawText)
Ps: Kommen noch ein paar Entities rein, das werden viele end`s werden^^
PPs: Mods ich glaube meine Frage ist beantwortet ihr könnt schließen:D
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.