PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Gamemode: Playerentity kann nicht übergeben werden?



Jack_Miller
26.05.2013, 15:08
Aus einem mir unerklärlichen Grund, ist es dem Script nicht möglich das Playerentity durch den timer.Simple zu übergeben...
Automatisch bei jedem connect bekomme ich den unten angegebenen Fehler.


function SteamIDGet( ply )
local steamID = ply:SteamID() //Zeile 25
ply:SetNWString("SteamID", SteamID)
spieler_gibts(ply)
end

function PlayerInitialSpawn( ply )
timer.Simple(2.0, SteamIDGet, ply)

end
hook.Add("PlayerInitialSpawn", "Player Betritt Server", PlayerInitialSpawn)


[ERROR] gamemodes/millerrp/gamemode/sql.lua:25: attempt to index local 'ply' (a
nil value)
1. unknown - gamemodes/millerrp/gamemode/sql.lua:25

Ich hoffe ihr könnt mir sagen was ich da übersehe... und meinen Sonntag retten :D

Scarecrow
26.05.2013, 19:38
Funktioniert dein Script auch ohne timer.Simple nicht?

RP-01
26.05.2013, 19:48
Du übergibst "ply" nicht an SteamIDGet.

function SteamIDGet( ply )
local steamID = ply:SteamID() //Zeile 25
ply:SetNWString("SteamID", SteamID)
spieler_gibts(ply)
end

function PlayerInitialSpawn( ply )
timer.Simple(2.0, SteamIDGet(ply) ) //da war der Fehler

end
hook.Add("PlayerInitialSpawn", "Player Betritt Server", PlayerInitialSpawn)
..sollte gehen.


Und warum machst du überhaupt einen Networked String namens SteamID auf den Player? Die Funktion ply:SteamID ist doch ohnehin shared, also client- und serverseitig nutzbar.

Und ich weiß zwar nicht was die Funktion spieler_gibts tut, aber du kannst auch zu jedem Zeitpunkt nach den InitialSpawn per bereits vorhandener Funktionen überprüfen, ob ein spezifischer Spieler/welche Spieler noch zu dem Server connected ist/sind.


Sonntag gerettet? :D