PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : STool: TOOL.Owner nicht immer gültig



Joker
09.02.2010, 14:49
Mit diesem Code als Quelltext eines STools:

TOOL.Category = "Construction"
TOOL.Name = "test"
TOOL.Command = nil
TOOL.ConfigName = ""
function TOOL:Think()
print(self.Owner)
end
erhalte ich in der Console beim Halten des STools unaufhörlich folgendes:

[...]
Player [1][Joker]
[NULL Entity]
Player [1][Joker]
Player [1][Joker]
[NULL Entity]
Player [1][Joker]
Player [1][Joker]
Player [1][Joker]
[NULL Entity]
Player [1][Joker]
Player [1][Joker]
[NULL Entity]
Player [1][Joker]
Player [1][Joker]
Player [1][Joker]
[NULL Entity]
Player [1][Joker]
Player [1][Joker]
[...]
Daraus lässt sich schließen, dass der TOOL.Owner nicht immer gültig ist. Betrifft es nur mich oder taucht das Problem auch bei euch auf?

Scarecrow
09.02.2010, 22:57
Hmm interessant. Ich überprüf das mal morgen bei mir auch.

PS: Wobei das ja nich so schlimm ist/wäre, da es im Zehntelsekundentakt passiert und du so schnell niemals so genau prüfen müsstest, ob du der Owner bist oder nicht (sinnvoll wäre dann immer eine If-Verzweigung die prüft, ob der Owned != null ist).

WeltEnSTurm
10.02.2010, 09:14
Wie siehts farblich aus? (orange ist Clientside, blau serverside, nur falls dus noch nicht weißt)
und probier mal tool:GetOwner()

Joker
10.02.2010, 11:36
Mit self:GetOwner() ist es nun jeden Think gültig. Danke.


Wie siehts farblich aus?
Weiß, da es einfaches print ist. Die Fehlermeldungen bei Verwendung einer anwendenden Funktion sind blau.

WeltEnSTurm
10.02.2010, 12:09
Ah, probier MsgN(). Damit wird das auch die Farbe angezeigt.

BennyG
10.02.2010, 12:26
Mit diesem Code als Quelltext eines STools:

TOOL.Category = "Construction"
TOOL.Name = "test"
TOOL.Command = nil
TOOL.ConfigName = ""
function TOOL:Think()
print(self.Owner)
end
erhalte ich in der Console beim Halten des STools unaufhörlich folgendes:

Daraus lässt sich schließen, dass der TOOL.Owner nicht immer gültig ist. Betrifft es nur mich oder taucht das Problem auch bei euch auf?

Lass mich raten, du hast die Think in der shared.lua
Ist doch klar dass der Owner nur Serverseitig ausgegeben wird. :roll:

Joker
10.02.2010, 12:43
Lass mich raten, du hast die Think in der shared.lua
Ist doch klar dass der Owner nur Serverseitig ausgegeben wird. :roll:
Datei:

..\garrysmod\garrysmod\lua\weapons\gmod_tool\stool s\testtool.lua
--Tools haben kein cl_init und init.lua!
Quelltext:

TOOL.Category = "Construction"
TOOL.Name = "test"
TOOL.Command = nil
TOOL.ConfigName = ""
function TOOL:Think()
if(SERVER) then MsgN(self.Owner) end --serverseitig
end
Console:

[...]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[NULL Entity]
[...]