PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Entitie Kollidieren lassen



humanexecuter
13.08.2008, 11:43
Hi,Ich hab mir ein Entitie gebastelt welches , wenn man auf ein Spawnicon , in einem Derma Fenster klickt, Spawnt.
Funktioniert alles Prima , doch Das entitie lässt sich nicht bewegen mit der Physgun , man kann durch schießen und durch laufen.
Was ist da schiefgegangen?

Hier ein Abschnitt vom Code:


local druglab = vgui.Create( "SpawnIcon",inventorypanel)
druglab:SetPos( 5,30 )
druglab:SetModel("models/props_combine/combine_mine01.mdl")

druglab.DoClick = function( druglab )
surface.PlaySound( "ui/buttonclickrelease.wav")
dlab = ents.Create( "prop_physics" )
dlab:SetPos( ply:GetShootPos() )
dlab:Spawn()
dlab:SetModel("models/props_combine/combine_mine01.mdl")
if ( !dlab:IsValid() ) then return end
end

end

Scarecrow
13.08.2008, 12:16
local druglab = vgui.Create( "SpawnIcon",inventorypanel)
druglab:SetPos( 5,30 )
druglab:SetModel("models/props_combine/combine_mine01.mdl")

druglab.DoClick = function( druglab )
surface.PlaySound( "ui/buttonclickrelease.wav")
dlab = ents.Create( "prop_physics" )
dlab:SetPos( ply:GetShootPos() )
dlab:Spawn()
dlab:SetModel("models/props_combine/combine_mine01.mdl")
if ( !dlab:IsValid() ) then return end
end

end


Zunächst einmal ist die Zeile mit dem if() irgendwie sinnlos, weil die Funktion am Ende ist und sowiso bendet wird.

Dein eigentlicher Fehler liegt höchstwahrscheinlich daran, dass du das Entity noch nicht aktiviert hast.

Es fehlt also noch ein "dlab:Activate()".

humanexecuter
13.08.2008, 12:36
danke :-D

aVoN
30.08.2008, 15:16
Ich tippe eher drauf, dass du das Model setzt nachdem du das entity gespawnt hast.
Demnach kann das entity nicht wissen, welche physikalischen Eigenschaften es hat.

Also erst dlab:SetModel() und dann dlab:Spawn().

dlab:Activate() kann es eventuell auch lösen aber wird nicht benötigt wenn du meine Methode oben verwendest.