-
Ein Lua Command Macro
Ich habe nun stunden voller sucherrei hinter mir und langsam verliere ich die lust, weshalb ich nun dieses Thema aufgemacht habe...
Im grunde suche ich ein Relativ einfaches Lua Makro was folgendes tun könnte:
Wenn ich etwas bestimmtes im chat eintippe (was am besten nur ich als server owner machen kann).
Im chat wird zuerstmal ein bestimmter text angezeigt, danach sollen mehrere befehle ausgeführt werden, gefolgt von einem weiteren text im chat. Fertig.
Lua technisch bin ich selber erst noch am lernen... aber ich schliesse daraus das ich nichts gefunden habe, es etwas zu schwer für mich wäre...
Schonmal Danke im Vorraus ;)
-
AW: Ein Lua Command Macro
in autorun/server:
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Hier kommt ein chattext")
v:PrintMessage(HUD_PRINTCENTER,"Hier kommt ein Text in der mitte des Bildschirms")
v:Ban(1337,"So isses!") --alle bannen (1337 minuten )
end
RunConsoleCommand("hostname", "H4rtzer Build | Unsere props sind von der caritas")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, public)
if not public then return end
if not msg == "ISCH BAHN EUSCH ALLEH!" then return end
if evolve then
if not ply:EV_HasPrivilege("Chatcommand1) then return end
ply:RunCommandList()
else
if ply:IsSuperAdmin() then ply:RunCommandList()
end
end
Wenn du nun "ISCH BAHN EUSCH ALLEH!" (ohne die " " ) in den Chat eingibst, passiert was schönes :P
Keine ahnung ob der Code funktioniert.. Habe den ohne zu testen aus dem Kopf geschrieben ..
-
AW: Ein Lua Command Macro
Danke schön, hat mir sehr geholfen
PS: trotz das ich lua anfänger bin, seh ich was passieren wird, aber das ist ja auch nicht schwer zu erkennen :P
Trotzdem Danke :D
-
AW: Ein Lua Command Macro
Ich habe gerade gesehen das du das für Evolve geschrieben hast :S
was muss ich machen wenn ich das für ULX und ULib haben möchte?
-
AW: Ein Lua Command Macro
ohne das Evolve zeug, welches eh nicht ging da man die Privilegien in einem Plugin festlegen muss..
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Hier kommt ein chattext")
v:PrintMessage(HUD_PRINTCENTER,"Hier kommt ein Text in der mitte des Bildschirms")
v:Ban(1337,"So isses!") --alle bannen (1337 minuten )
end
RunConsoleCommand("hostname", "H4rtzer Build | Unsere props sind von der caritas")
end
hook.Add("PlayerSay","Chat command dingens", function(ply ,msg, public)
if not public then return end
if not msg == "ISCH BAHN EUSCH ALLEH!" then
if ply:IsSuperAdmin() then ply:RunCommandList() end
end
end
-
AW: Ein Lua Command Macro
hmm, es fonktioniert irgendwie nicht
so mache ich das:
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, public)
if not public then return end
if not msg == "!test" then
if ply:IsSuperAdmin() then ply:RunCommandList() end
end
end
wenn ich dann auf den server gehe und !test eingebe passiert jedoch nix...
-
AW: Ein Lua Command Macro
Code:
if not msg == "!test" then
Wenn NICHT Nachricht gleich "!test" dann
Das "not" muss da weg, aktuell überprüfst du ob die Nachricht nicht gleich "!test" ist. Probier mal etwas anderes in den Chat zu schreiben, dann sollte es ausgeführt werden.
-
AW: Ein Lua Command Macro
Oh, ja hatte das erste beispiel kopiert, und dass vergessen :P
-
AW: Ein Lua Command Macro
nope ändert sich nix, hab das "not" rausgenommen, und dann mal probiert, aber nix.
Egal ob mit not oder nicht egal was ich mache es klappt nicht >.<
hat das möglicherweise mit linux zu tun oder ist das egal?
braucht die Lua. datei ein bestimmten namen?
-
AW: Ein Lua Command Macro
Bist du auf dem Server wo du das probierst auch Super Admin? Probier mal folgenden Code, wenn du nicht die Super Admin bist sollte die Meldung "Du bist kein Super Admin" kommen.
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, public)
if not public 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
Es wäre auch toll wenn du mal einige Informationen hier veröffentlichst. z.B. ob du nur lokal entwickelst oder zum Testen einen eigenen dedicated Server aufgesetzt hast? Läuft das ganze dann bei dir zuhause? Oder auf einem "echten" Server? Da du "Linux" geschrieben hast geh ich davon aus, dass du einen dedicated Server einsetzt? Post bitte einmal die Ausgabe von "ls [pfad zum server]/lua/*".
-
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.
-
AW: Ein Lua Command Macro
Jaa :D es Fonktioniert endlich :D
Jetzt hab ich nur noch eine letzte frage :S
kann man mehrere kommands darüber auch ausführen?
Hier nochmal das Fontkionierende Script ;) Für alle die es auch haben wollen xD
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
RunCommandList()
else
ply:PrintMessage(HUD_PRINTTALK,"Du bist kein Super Admin")
end
end
end)
-
AW: Ein Lua Command Macro
Kopiere einfach das "RunConsoleCommand("say", "test")" und füg es mehrmals ein? Oder was meinst du mit "mehrere kommandos damit ausführen"?
-
AW: Ein Lua Command Macro
ne hat sich erledigt, aber ne andere frage, wie kann ich ulx befehle dadurch ausführen?
-
AW: Ein Lua Command Macro
ULX ist lediglich die Grafische Oberfläche (glaub ich). Ich denke du meinst ULib.
Es kommt ganz darauf an was du machen willst. Um im obigen beispiel die Spieler (über ULib) zu kicken kannst du folgenden Code verwenden:Um einen Spieler beispielsweise vom Server zu kicken
Code:
function RunCommandList()
for k,v in pairs(player.GetAll()) do
v:PrintMessage(HUD_PRINTTALK,"Test")
v:PrintMessage(HUD_PRINTCENTER,"Test")
ULib.kick(v, "Kick-Grund")
end
RunConsoleCommand("say", "test")
end
[...restlicher Code]
Andere Funktionen (beispielsweise Slap statt Kick) findest du in der Dokumentation von ULib
http://ulyssesmod.net/docs/index/Functions.html
-
AW: Ein Lua Command Macro
ahh, okey danke für deine gedult und hilfe :)
-
AW: Ein Lua Command Macro
Neues Thema
Da es ja irgendwie dazu gehöhrt erkunde ich mich hier ;)
Ein weiteres Kleines .Lua macro, das im grunde folgendes kann:
Wenn ich wie im vorherigen script etwas im chat schreibe wie "!shutdown"
es ein Countdown von ca. 15 minuten im chat gibt...
Also ungefähr das wenn ich "!shutdown" Schreibe,
Code:
Chat: Der server wird in 15 minuten heruntergefahren.
Chat: Der server wird in 10 minuten heruntergefahren.
Chat: Der server wird in 05 minuten heruntergefahren.
Chat: Der server wird in 03 minuten heruntergefahren.
Chat: Der server wird in 01 minute heruntergefahren.
conconsole.killserver
Ich hab es schon versucht jedoch ohne erfolg...
wäre dankbar für hilfe :D