PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : ClientSide SteamID



Stoned
18.10.2008, 12:54
da die funktion ply:SteamID() nur serverside is, hab ich mir gedacht es muss doch auch nen weg geben, dass man als client alle steamID's bekommt oder?

ich dachte an status, und dann aus der console das auslesen, aber wie ginge das?

mfg

Scarecrow
18.10.2008, 13:00
Nein, benutzt ply:UID(), damit kommst du, wenn es online ist, an die SteamID, und wenn es offline ist, an die PlayerID.
Das wäre allemal besser, vorallem, weil man nicht das ganze System umstellen muss.

PS: Wenn du Status in die Console eingibst und der Server ist offline, siehst du auch nur die PlayerID.

Stoned
18.10.2008, 13:15
Nein, benutzt ply:UID(), damit kommst du, wenn es online ist, an die SteamID, und wenn es offline ist, an die PlayerID.
Das wäre allemal besser, vorallem, weil man nicht das ganze System umstellen muss.

PS: Wenn du Status in die Console eingibst und der Server ist offline, siehst du auch nur die PlayerID.

ply:UID() ? -- :19: attempt to call method 'UID' (a nil value)
ply:UniqueID() is auch server only ...

SMILIE
18.10.2008, 17:21
LocalPlayer():SteamID();

Auf der Client seite kannst du auf den Spieler mit LocalPlayer() zugreifen und da soweit ich weis auch auf die ganzen Funktionen dies am serverseitig am Spieler gibt auch zugreifen.

Das mit dem ply is teilweise irreführend. ply ist keine globale Variable, sondern die wird meistens nur bei dem Funktionsaufruf mitgegeben. (keine Gewähr dafür aber ich bin mir ziemlich sicher)

BennyG
18.10.2008, 17:28
LocalPlayer():SteamID();

Auf der Client seite kannst du auf den Spieler mit LocalPlayer() zugreifen und da soweit ich weis auch auf die ganzen Funktionen dies am serverseitig am Spieler gibt auch zugreifen.

Das mit dem ply is teilweise irreführend. ply ist keine globale Variable, sondern die wird meistens nur bei dem Funktionsaufruf mitgegeben. (keine Gewähr dafür aber ich bin mir ziemlich sicher)

Wasn Schrott,es geht darum das die Funktion SteamID nur Serverseitig funktioniert....



Ist es dir möglich ein Hook zu verwenden wie Player Connect oder Player Authed?
Ich meine beide geben die Steam ID der Spieler wieder und sind shared.

Ansonsten erstell doch einfach auf den Server ne Funktion die du per ConCommand aufrufst.
Diese wiederum sendet eine Usermessage zurück an den Client,die alle Steam ID's enthählt.(Wenn das Spieler Objekt uninteressant ist.)

SMILIE
18.10.2008, 18:13
Wasn Schrott,es geht darum das die Funktion SteamID nur Serverseitig funktioniert....



Ist es dir möglich ein Hook zu verwenden wie Player Connect oder Player Authed?
Ich meine beide geben die Steam ID der Spieler wieder und sind shared.

Ansonsten erstell doch einfach auf den Server ne Funktion die du per ConCommand aufrufst.
Diese wiederum sendet eine Usermessage zurück an den Client,die alle Steam ID's enthählt.(Wenn das Spieler Objekt uninteressant ist.)

Also bei mir hat das immer ohne Probleme funktioniert.
Und außerdem hast du grad selbst gesagt das es Funktionen gibt die die SteamID zurückgeben und shared sind und somit auch am Client.

Scarecrow
18.10.2008, 18:35
ply:UID() ? -- :19: attempt to call method 'UID' (a nil value)
ply:UniqueID() is auch server only ...

Ja, ich meine UniqueID, ich habs halt schnell aus dem Kopp gezaubert.
Ich hab die Frage auch voll falsch verstanden, ich depp.

Mein Tipp: Usermessages.

BennyG
18.10.2008, 18:50
Also bei mir hat das immer ohne Probleme funktioniert.
Und außerdem hast du grad selbst gesagt das es Funktionen gibt die die SteamID zurückgeben und shared sind und somit auch am Client.

Nein,es kann gar nicht ohne Probleme funktioniert haben,da SteamID nur auf den Server existiert.
Und nein,ich habe nicht behauptet das es diese Funktionen gibt,den auf was ich mich bezog sind Hooks.

Stoned
18.10.2008, 22:09
wuha,

1.) ich habe keinen server ( darum die frage auch clientside - ganz ohne server )
2.) ich dachte wie gesagt an status und aus der console auslesen falls das moeglich ist
3.) @benny, ich hab ma wiki gesucht und das gefunden

function GM:PlayerConnect( name, address, steamid )
print( "Player " .. name .. " has joined from ip " .. address .. " with steamid " .. steamid )
end


ist das auf dem client ausfuerbar?

BennyG
19.10.2008, 00:11
wuha,

1.) ich habe keinen server ( darum die frage auch clientside - ganz ohne server )
2.) ich dachte wie gesagt an status und aus der console auslesen falls das moeglich ist
3.) @benny, ich hab ma wiki gesucht und das gefunden

function GM:PlayerConnect( name, address, steamid )
print( "Player " .. name .. " has joined from ip " .. address .. " with steamid " .. steamid )
end


ist das auf dem client ausfuerbar?

zum 2.Nein,du kannst die Konsole nicht irgendwie auslesen.

Ansonsten,benutzt lieber PlayerAuthed,PlayerConnect macht öfters Probleme.
Auch wenn des Wiki angibt das der Hook Shared ist,kann ich leider auch nicht mit 100% Sicherheit sagen das es aufen Client klappt.

Scarecrow
19.10.2008, 12:31
3.) Gamemode-Funktionen sind nur serverseitig ausführbar, soweit nicht anders deklariert. Wäre ja auch zu schade :D

Mentos
15.11.2008, 22:48
Ich weiß das das Theater nicht mehr das neuste ist aber ich verstehe da was nicht !
wenn ich status eingebe (auf meinem server bekomme ich das :
] status
hostname: Garry's Mod
version : 1.0.0.5/14 3575 insecure
map : gm_construct at: 823 x, -209 y, -78 z
players : 1 (1 max)

# userid name uniqueid connected ping loss state adr
# 2 "-----" UNKNOWN 01:20 20 0 active loopback


:ich sehe da keine richtige id und 01:20 20 0
kann es ja unmöglich sein...
das unknown müsste ja der standpunkt meiner selbst sein aber da steht halt nix... :(

Bitte um hilfe mfg Mentos

BennyG
16.11.2008, 00:27
Hat zwar rein gar nichts mit den eigentlichen Thema zu tun,aber es liegt daran das die Steam ID nicht angezeigt wird im Singleplayer bzw. im Lokal erstellten Server.
Join einfach mal einen Multiplayer Server...

Mentos
16.11.2008, 10:09
ich bedanke mich^^