Archiv verlassen und diese Seite im Standarddesign anzeigen : Frage zum Chat Befehl
Hallo,
nach einer längeren Pause von GMod möchte ich jetzt wieder anfangen und zu gleich auch mit Lua anfangen.
Nur zur Frage:
Ich probier im moment nur ein bisschen rum mit ner GameMode aber nun
würde ich gerne einen Chat Befehl machen, nur hab ich null Ahnung wie ich das machen muss :s
Hoffe ihr könnt mir helfen.
-Flaver
Terminator-X29B
14.10.2009, 16:47
Definiere "Chat-Befehl"? Was genau meinst du mit einem Chat Befehl? Soll der Befehl etwas aufrufen wie bei ULX das Menü?
monky2k6
14.10.2009, 18:00
Ein... Chatbefehl eben o_O
Also du gibst was in den Chat ein wie "/kick Mingebag" und der User mit dem Namen Mingebag wird gekickt z.B. :gmod:
don-banane
14.10.2009, 19:29
http://wiki.garrysmod.com/?title=Gamemode.PlayerSay
local commands = {
["kick"] = function(arg)
local name,txt = arg:match("([%w_]+)%s?(.*)") -- wieder pattern action :D
for k,v in pairs(player.GetAll()) do -- alle player
if v:Name():lower():find(name) then -- die mit dem argument was gemeinsam haben
v:Kick(txt ~= "" and txt or "The admin does not like you!") -- werden gekickt!
end
end
end,
["hp"] = function(arg)
local name,hp = arg:match("([%w_]+)%s?(.*)") -- wieder pattern action :D
for k,v in pairs(player.GetAll()) do -- alle player
if v:Name():lower():find(name) then -- die mit dem argument was gemeinsam haben
v:SetHealth(hp ~= "" and hp or 100) -- kriegen entweder die angegebenen oder 100 hp
end
end
end,
}
function ChatCommand(ply,text)
if text:sub(1,1) == "/" then -- wir haben den richtigen anfang!
local cmd,arg = text:sub(2):match("([%w_]+)%s(.+)") -- zeit fuer pattern action :)
if commands[cmd] then -- falls die funktion (kick,hp,...) existiert
commands[cmd](arg) -- ruft man sie mit dem argument auf
return "" -- und returned nichts, damit nichts im chat steht
end
end
end
hook.Add("PlayerSay","Record commands",ChatCommand)
Sowas? :P
Powered by vBulletin® Version 4.2.2 Copyright ©2025 Adduco Digital e.K. und vBulletin Solutions, Inc. Alle Rechte vorbehalten.