AW: Ein Lua Command Macro
Wichtige Informationen:
- Es ist ein Richtiger server, der aber über linux läuft.
- hlds/srcds/orangebox/garrysmod/lua/autorun/server/
derzeitiger name der datei:
command_calypso.lua (es ist eine lua datei)
Dein neues script habe ich ausprobiert, er gibt garnichts aus.
wenn ich !test in denn chat schreibe, passiert nix...
AW: Ein Lua Command Macro
Überprüf einmal ob die Datei überhaupt geladen wird. (Schreib einfach mal irgend nen Blödsinn, also ungültigen Lua-Code, in die Datei. Beim Starten des Servers sollte dann ein Lua-Error in der Console kommen.)
AW: Ein Lua Command Macro
hmm tatsächlich ...
Code:
[ERROR] lua/autorun/server/command_calypso.lua:18: ')' expected (to close '(' at line 9) near 'end'
1. unknown - lua/autorun/server/command_calypso.lua:0
[ERROR] lua/autorun/server/command_calypso.lua:18: ')' expected (to close '(' at line 9) near 'end'
1. unknown - lua/autorun/server/command_calypso.lua:0
das spuckt er mir aus
AW: Ein Lua Command Macro
Beim Schreiben des im Spoiler stehenden Textes sind mir 2 Sachen aufgefallen. Probier es einmal mit folgendem Code:
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
end
RunConsoleCommand("say", "test")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, teamChat) -- Der Dritte Parameter ist "True" gibt an, ob die Nachricht im Team-Chat geschrieben wurde und nicht ob sie im Public-Chat geschrieben wurde
if teamChat then return end -- Die Überprüfung hier müssen wir jetzt auch anpassen (von "Wenn nicht Public-Chat dann abbrechen" zu "Wenn Team-Chat dann abbrechen")
if msg == "!test" then
if ply:IsSuperAdmin() then
ply:RunCommandList() end
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end) -- Die Klammer von hook.Add( sollte hier noch geschlossen werden.
Spoiler:
Sollte obiges nicht funktionieren... (hier klicken)
Das ist gut, du kannst dir nun sicher sein, dass die Datei zumindest geladen wird.
Nun probieren wir ob der Hook "PlayerSay" richtig ausgeführt wird.
Dazu fügst du folgenden Code in die Datei ein:
Code:
hook.Add("PlayerSay", "Calypso Chat Command", function(ply, msg, teamChat)
return "[Calypso] " .. msg
end)
Egal was du in den Chat schreibst, es sollte vor der Nachricht nun immer noch "[Calypso] " erscheinen.
AW: Ein Lua Command Macro
Okey, gut...
Der obere hat nicht fonktioniert, doch wenn ich das mit dem 2. code mache fonktioniert es, es erscheint jetzt immer [Calypso] vor jeder nachricht
Beim ersten code erscheint wieder folgende fehlermeldung:
Code:
[ERROR] lua/autorun/server/command_calypso.lua:18: ')' expected (to close '(' at line 9) near 'end'
1. unknown - lua/autorun/server/command_calypso.lua:0
[ERROR] lua/autorun/server/command_calypso.lua:18: ')' expected (to close '(' at line 9) near 'end'
1. unknown - lua/autorun/server/command_calypso.lua:0
AW: Ein Lua Command Macro
Schau dir meinen oberen Post nochmal genau an. Vor allem die letzte Zeile. Hast du die ")" auch eingefügt?
AW: Ein Lua Command Macro
Ja, auch nach genaueren nachschauen :shock: ändert sich dabei nix
die ) ist direkt hinter end
so sieht das jetzt bei mir aus:
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
end
RunConsoleCommand("say", "test")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, teamChat)
if teamChat then return end
if msg == "!test" then
if ply:IsSuperAdmin() then
ply:RunCommandList() end
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end)
AW: Ein Lua Command Macro
Ah jetzt sehe ich den Fehler
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
end
RunConsoleCommand("say", "test")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, teamChat)
if teamChat then return end
if msg == "!test" then
if ply:IsSuperAdmin() then
ply:RunCommandList() end
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end)
Dieses "end" gehört natürlich weg.
Spoiler:
Aktueller Code richtig formatiert würde so aussehen
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
end
RunConsoleCommand("say", "test")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, teamChat)
if teamChat then return end
if msg == "!test" then
if ply:IsSuperAdmin() then
ply:RunCommandList()
end
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end)
Das letzte "end" bleibt hier übrig/ist zu viel, die Klammer gehört auch ein end früher
AW: Ein Lua Command Macro
Mein server verarscht mich -.-
wenn der server hochfährt, kann er die lua datei (endlich) lesen, jedoch wenn ich dann im chat "!test" eingebe kommt in der Console
Code:
[ERROR] lua/autorun/server/command_calypso.lua:13: attempt to call method 'RunCommandList' (a nil value)
1. fn - lua/autorun/server/command_calypso.lua:13
2. unknown - addons/ulib/lua/ulib/shared/hook.lua:183
[ERROR] lua/autorun/server/command_calypso.lua:13: attempt to call method 'RunCommandList' (a nil value)
1. fn - lua/autorun/server/command_calypso.lua:13
2. unknown - addons/ulib/lua/ulib/shared/hook.lua:183
AW: Ein Lua Command Macro
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
end
RunConsoleCommand("say", "test")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, teamChat)
if teamChat then return end
if msg == "!test" then
if ply:IsSuperAdmin() then
ply:RunCommandList()
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end)
Das "ply:" vor "RunCommandList()" muss noch weg.