Archiv verlassen und diese Seite im Standarddesign anzeigen : kurze lua frage
ALL YOU CAN EAT
31.07.2008, 00:56
hi ich hab ne frage an die von euch die sich mit gmod lua auskennen.
Könnt ihr über die paar zeilen mal schauen, weil wenn ich diese function im spiel aufrufen möchte sagt mir das spiel das player eine nil value wäre. Wie definiere ich diese nun ?
local function test1()
for k, pl in pairs(player.GetAll()) do
if pl == LocalPlayer() then
elseif pl:Frags() then
surface.PlaySound( "XYZ.mp3" )
end
end
end
concommand.Add("fragtest", test1)
monky2k6
31.07.2008, 02:48
"than elseif"?
Wad soll dad den? :gmod:
Was willst du mit der Funktion überhaupt erreichen?
humanexecuter
31.07.2008, 09:03
Ich versag auch immer wenn ich mit einer Player Variable rum hantiere >.< :oops:
Das Problem ist das player Serverseitig ist und das Skript wahrscheinlich Clientside ist (LocalPlayer() geht nur Clientside).
ALL YOU CAN EAT
31.07.2008, 15:06
Ist es nicht so das "player" von beidem genutz werden kann von client und server.
Meine Frage an dich:
Was willst du nachher machen?
Denn jetzt ergibt das Script 0 ( NULL ) Sinn!
Du guckst nach ob der Spieler der eigene Spieler ist,
dann sagst du er soll was machen, hast ihm aber nichts
zugewiesen was er machen soll...
Dann fragst du wie viel Frags ein jeder hat
und sagst er soll was machen :spinner:
Aber wie soll er denn wissen wann er es machen soll?
Du musst ihm schon sagen dass er ab z.B. 10 Frags etwas machen soll!
-----
Sammel noch mal dein Konzept zusammen und fange von Vorne an ;)
Bis jetzt würde da gar nichts funktionieren.
ALL YOU CAN EAT
31.07.2008, 16:14
ja eigentlich wollte ich das bei einem kill etwas ausgeführt wird dabei ist es egal ob es sound;text oder commando ausgeführt wird und wie sag ich denn ab welcher anzahl von frags es ausgeführt wird player:Frags(10) oder wie ordne ich einen Wert player:Frags() zu ?
Du solltest dir wirklich mal die Beschreibung des Befehls durchlesen
und nicht davon ausgehen das er ausgeführt wird, wenn jemand gekillt wird ;)
http://wiki.garrysmod.com/wiki/?title=Player.Frags
// Clientside!
if LocalPlayer():Frags() == 10 then
LocalPlayer():ChatPrint( "You've reached 10 frags!" )
elseif LocalPlayer():Frags() < 10 then
LocalPlayer():ChatPrint( "You have less than 10 Frags!" )
elseif LocalPlayer():Frags() > 10 then
LocalPlayer():ChatPrint( "You have over 10 frags!" )
end
Pack das einfach mal in eine Lua-Datei ( speicher diese im Lua Ordner )
und führe sie im Spiel folgender Maßen über die Console aus:
lua_openscript_cl <NAME_DER_DATEI.lua>
Natürlich ohne die < >!
Du wirst sehen er wird immer was anderes ausgeben wenn du
unter, über oder genau 10 Frags hast!
ALL YOU CAN EAT
31.07.2008, 16:52
danke für die hilfe:D
-------------
hab mich wohl zu früh gefreut
ich bekomm wieder einen Fehler >>>
"'LocalPlayer' (a nil value)"
An was kann das liegen ?
Da du es mit lua_openscript ausführst und nicht mit lua_openscript_cl !
ALL YOU CAN EAT
31.07.2008, 23:10
Wie kann man eigentlich eine Funktion solange ausführen lassen bis ein bestimmtes Ereignis statt findet?
Scarecrow
01.08.2008, 08:09
Wie kann man eigentlich eine Funktion solange ausführen lassen bis ein bestimmtes Ereignis statt findet?
Indem du eine Funktion schreibst, die solange ihre Dinger ausführt, bis ein Ereignis eintritt.
PS: Wisst ihr, euer Problem ist nicht lua, euer Problem (ich meine jetzt alle im Allgemeinen) ist euer Verständis für Logik.
//Achtung! Pseudocode!
function ausfuehrung()
if ereignis == 0 then return end //hier wird die Funktion mit Return umgehend gestoppt, wenn das Ereignis nicht zugetroffen ist.
[anweisungen]
end
Ich glaub Alternativ könnte man da auch ein Timer im endlos Loop nehmen,und den dann "zerstören" wenn das ereignis eintritt
function Recall()
//Get me a cookie
end
timer.Create("Looptimer",0.1,0,Recall)
function Ereignis()
timer.Destroy("Looptimer")
end
Hier ist noch eine andere Loop-Methoden:
// Schreibt dir "Lets count: 1-30" 30 mal inne Console
for i=1, 30 do
Msg( "Lets count: "..i.."\n" ) // "\n" ist dazu da um eine neue Zeile anzufangen!
end
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.