PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Server Funktionen werden nicht ausgefürt



Schnittlauch
29.03.2007, 17:16
Hallo
Immer wenn ich eine Funktion wie Player:StripWeapons oder sonstige
funktionen mache, passiert nichts.
Sachen wie Player:UserID() funktionieren aber prima.
LUA Errors gibt es auch keine.

Was kann ich dagegen machen?

Pac_187
29.03.2007, 20:04
Wenn du das von allen Personen machen willst, dürfte das ganze so aussehen:





for k, v in pairs(player.GetAll()) do
v:StripWeapons()
Msg( v:Nick() .. " wurde entwaffnet\n")
end



Dieses Script entfernt die Waffen aller Spieler auf dem Server und schreibt deren
Namen in die Console.


Falls das dass ist was du möchtest :D


Andernfalls habe ich keine Ahnung

Schnittlauch
30.03.2007, 10:37
Ja das ist es, aber ich frage mich warum meine Funktion nur halb funktioniert.


function newlife( player )
print( "Beginning new life!" )
print( "Remove Weapons by ID "..tostring( player:UserID() ) ) --ab hier nicht mehr, aber kein Error
player:StripWeapons( true )
end

--Hooks
hook.Add( "PlayerSpawn", "playerSpawn", newlife)

Pac_187
30.03.2007, 10:59
Es heißt doch player.UserID() (mit Punkt) oder etwa nicht?

Außerdem musst du dann bei player.UserID() eine 1 in die Klammern schreiben
also: player.UserID( 1 )

Weil du ja einen bestimmten Spieler haben willst, nämlich den mit der ID 1,
der Nächste hat dann die 2, usw.

( dürfte der 1. Auf dem Server sein )

-----


Hab das mal umgeschrieben.

( Hab´s aber nicht getestet! )


Das ganze dürfte dann so aussehen:



function newlife( player )
print( "Beginning new life!" )
print( "Removed weapons of player: " .. tostring( player.Nick():StripWeapons() ) )
end

-- Hooks
hook.Add( "PlayerSpawn", "playerSpawn", newlife )




Ich teste es gleich noch...


Aber vielleicht ist das ja die Lösung :)

// Funkt net :-?

Schnittlauch
30.03.2007, 11:19
player:userid() funktioniert, aber das Weapons strippen nicht.

Neico
30.03.2007, 12:17
schomal geguckt Strip Weapons brauhc kein true versuchs mal ohne wenn nich guck cih sogar nochmal nach da ich eben erst aufgestanden bin bin ich aber nopch zu müd das jetzt zu machen :D

auserdem nachdem alle waffen gestript wurden musst dennen wenigstens die toolgun und die physgun geben

Pac_187
30.03.2007, 12:22
Erstmal müssen wir es schaffen die Waffen zu entnehmen ;)

An das mit der Tool und Physgun hab ich schon gedacht.

Schnittlauch
30.03.2007, 12:25
One true gehts auch nicht.

Neico
30.03.2007, 12:45
function newlife( user )

for k,v in pairs( player.GetAll() ) do
v:StripWeapons();
v:PrintMessage( HUD_PRINTCONSOLE, "Beginning new life!\n Removed weapons of player: " .. v:Nick() .. "" );
v:GetWeapon("weapon_physgun");
v:GetWeapon("gmod_toolgun");
v:GetWeapon("gmod_camera");
end
end
-- Hooks
hook.Add( "PlayerSpawn", "playerSpawn", newlife )


das sollte besser gehen :D

Pac_187
30.03.2007, 13:17
Du hast ein "end" vergessen ;)

Musst ja noch die Function beenden!


// Geht auch nicht!

Der StripWeapon Befehl scheint irgendwie im Ars** zu sein

Schnittlauch
30.03.2007, 13:18
function newlife( user )

for k,v in pairs( player.GetAll() ) do
v:StripWeapons();
v:PrintMessage( HUD_PRINTCONSOLE, "Beginning new life!\n Removed weapons of player: " .. v:Nick() .. "" );
v:GetWeapon("weapon_physgun");
v:GetWeapon("gmod_toolgun");
v:GetWeapon("gmod_camera");
end

-- Hooks
hook.Add( "PlayerSpawn", "playerSpawn", newlife )


das sollte besser gehen :D

OK, thx, ich versuch es

ps: hast ein end vergessen.

Pac_187
30.03.2007, 13:20
Wie auf der vorherigen Seite erwähnt, funktioniert das Script auch net :-?

Warscheinlich ist der Befehl kaputt...

Schnittlauch
30.03.2007, 14:07
Hmpf, olles Source Update. :mad:

Neico
30.03.2007, 14:38
habs end mal reingemacht und mach das script mal auf meinen server wenns da geht weiß ich nich waser habt :D

ok er macht alles bis aufs stripen ich guck mal waser hat und mach wenn möglich nen fix für

PS. mein server heißt übrigens [YaS#2] der rest hintendran is dynamisch daher schreib ichs nich :D

so hba denn command manuel gemacht ghet also liegts am hook ich guck mal bei welchem es geht

aVoN
01.04.2007, 14:30
Es heißt doch player.UserID() (mit Punkt) oder etwa nicht?

Außerdem musst du dann bei player.UserID() eine 1 in die Klammern schreiben
also: player.UserID( 1 )

Weil du ja einen bestimmten Spieler haben willst, nämlich den mit der ID 1,
der Nächste hat dann die 2, usw.

( dürfte der 1. Auf dem Server sein )

-----


Hab das mal umgeschrieben.

( Hab´s aber nicht getestet! )


Das ganze dürfte dann so aussehen:



function newlife( player )
print( "Beginning new life!" )
print( "Removed weapons of player: " .. tostring( player.Nick():StripWeapons() ) )
end

-- Hooks
hook.Add( "PlayerSpawn", "playerSpawn", newlife )




Ich teste es gleich noch...


Aber vielleicht ist das ja die Lösung :)

// Funkt net :-?
Mal zu Sachen Lua-Funktionalität:
DerSpieler:UserID() führt die fuktion UserID() auf den Player DerSpieler direckt aus.
Wenn du den Spieler also schon hast, musst du nur :UserID an ihm ausführen.
Benutzt du allerdings einen Punkt, musst du in der Klasse Player die Funktion UserID aufrufen und den Spieler als Argument übergeben.
Player.UserID(der_spieler)

Einmal führst du also eine Fuktion auf ein Objekt aus, und einmal direkt aus der Klasse. Beides geht, obwohl ich dir zu Herzen legen würde, die Objektorientierte Schreibweise zu benutzen.