Problem mit Entity.GetName()
Hey leutz,
ich hab' hier ein kleines Problem, welches sich einfach nicht lösen lassen will. :-?
Also, hier ist ein gekürzter (das unwesentliche habe ich rausgeschnitten) Ausschnit der funktion mit der ich Probleme habe, aus einer sent, die ich editiert habe:
Code:
function ENT:GetClosest( Table )
local Closest = 90000000
local Ent = nil
local Pos = self.Entity:GetPos()
if( Table ) then
for k, v in pairs(Table) do
if( v:GetClass() == "monster_generic" ) then
getclos2 = v:GetName()
end
local allplayers = player.GetAll( )
for k,v in pairs ( allplayers ) do
v:PrintMessage( HUD_PRINTTALK, getclos2 );
end
if( v:GetPos():Distance( Pos ) < self.MoveDistance and v:GetPos():Distance( Pos ) > self.MinDistance ) then
if( v:GetPos():Distance( Pos ) < Closest ) then
end
end
end
else
return nil
end
if( Ent ) then
return Ent
else
return nil
end
end
Alles was unter PrintMessage steht könnt ihr ignorieren.
Die Funktion des sents besteht darin, alle umliegenden Entities zu finden, das monster_generic entity zu filtern, und damit dann später etwas zu machen...
Das Problem liegt bei
Code:
if( v:GetClass() == "monster_generic" ) then
getclos2 = v:GetName()
end
(rot markiert)
, denn in der Konsole bekomme ich den Fehler
Code:
entities/sent_schedule/init.lua:128: attempt to call method 'GetName' (a nil value)
.
Allerdings macht dieser Fehler eigentlich keinen Sinn.
Ersetze ich nämlich
Code:
if( v:GetClass() == "monster_generic" ) then
getclos2 = v:GetName()
end
durch
Code:
getclos2 = v:GetClass()
printet er mir ingame alle Entities in den Chat-Bereich, die sich in der Nähe des sents befinden, und dort listet er mir unter anderem auch ein monster_generic auf, also weiß ich, dass er das Entity findet, allerdings verstehe ich nicht, warum die funktion dann nicht funktioniert und mir diesen Error ausgibt...
Hat jemand 'ne Ahnung was falsch ist oder woran es liegen könnte?
MfG,
Silver
AW: Problem mit Entity.GetName()
Nu aber:
Das sollte Abhilfe schaffen.
Code:
local getclose = nil
for k, v in pairs( ents.FindByName( "monster_generic" ) ) do
if v:IsValid() then
getclose = v:GetName()
end
end
du solltest in variablen namen keine Zahlen verwenden, dass kommt nicht so gut!
;)
AW: Problem mit Entity.GetName()
Zitat:
Zitat von
Pac_187
Nu aber:
Das sollte Abhilfe schaffen.
Code:
local getclose = nil
for k, v in pairs( ents.FindByName( "monster_generic" ) ) do
if v:IsValid() then
getclose = v:GetName()
end
end
Danke, klappt aber leider auch nicht. :-?
Keine errors, allerdings printet der mir auch nichts in den chat-bereich.
Und wieso eigentlich ents.FindByName? Monster_generic ist der classname, nicht der targetname.
Und wozu ist das "local getclose = nil" gut?
Zitat:
Zitat von
Pac_187
du solltest in variablen namen keine Zahlen verwenden, dass kommt nicht so gut!
;)
Wusste ich nicht; beschäftige mich noch nicht so lange mit lua, aber danke für den Tipp. ;)
MfG,
Silver
AW: Problem mit Entity.GetName()
Irgendwie komme ich hier voll durcheinander,
ist wohl zu spät :bash:
Versuch es mal mit ents.FindByClass( "monster_generic" )
AW: Problem mit Entity.GetName()
Clientside oder Serverside?
Clientside hat nämlich kein Entity.GetName.