PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : Chat Commands



Stoned
13.07.2008, 10:58
wie der titel schon sagt, wollte ich wissen wie man console commands per clientside lua - chat aufrufen kann, also zB !time, dann macht der den cmd: time_print

kann mir wer ein beispiel fuer sowas geben ?

computer22
13.07.2008, 11:12
http://wiki.garrysmod.com/wiki/?title=Common_Code_Snippets#Searching_for_text_in_ chat

Lg
Comp.

Stoned
13.07.2008, 11:57
jo, thx, aber das ist es nicht genau :/ weiß jemand dazu noch was?

BennyG
13.07.2008, 12:34
Natürlich ist es dass,du musst nur noch hinzufügen dass er ein ConCommand ausführt.

Stoned
13.07.2008, 12:46
lol ich check es nicht :/ bitte ein beispiel...

BennyG
13.07.2008, 12:48
RunConsoleCommand (http://wiki.garrysmod.com/wiki/?title=G.RunConsoleCommand)("time_print")

anstelle des PrintMessage,da wir ja keine Nachricht im Chat haben wollen,sondern etwas in der Konsole ausgeführt...

Stoned
13.07.2008, 12:55
das mir schon klar, aber wenn ich jz zB !ip schreibe dann passiert nix :/ kein console cmd nix


function playerSaid( ply, saywhat )
if string.find(saywhat, "!ip") == 1 then -- Look for !ip in the player's chat -- and make sure it's the first in the sentence.
RunConsoleCommand("time_print")
end
end

hook.Add ( "PlayerSay", "playerSaid", playerSaid )

BennyG
13.07.2008, 13:08
Hmmm....Hätte mir den Schnipsel net genau angeschaut,nur überflogen,aber was macht das == 1 da?

SMILIE
13.07.2008, 13:11
Das ist dazu da damit !ip ganz am Anfang ist und nicht irgendwo in der Mitte.
Das Code Stück passt so eigentlich...

Stoned
13.07.2008, 13:32
aber warum geht es dann nicht? :S

Pac_187
13.07.2008, 15:04
Weil du noch keinen Consolencommand für "time_print" erstellt hast!

Stoned
13.07.2008, 15:30
Weil du noch keinen Consolencommand für "time_print" erstellt hast!

dann muesste zumindest "unknown command: time_print" kommen :/

btw der hook heißt ChatPrint nicht PlayerSay

BennyG
13.07.2008, 15:33
dann muesste zumindest "unknown command: time_print" kommen :/
Nein
btw der hook heißt ChatPrint nicht PlayerSay
Nein

burhan36
13.07.2008, 15:37
function GM:PlayerSay( ply, txt, pub )

if string.sub(txt,1,6) == "!spawn" then
Blahspawnfunction(ply)
end
return txt
end


also ich habs so in meiner init.lua

Stoned
13.07.2008, 15:45
clientside :/

BennyG
13.07.2008, 15:58
Clentside geht sowas soweit ich weiß nicht.
Es gibt kein Hook der Clientside die ChatTexte abruft...

Pac_187
13.07.2008, 16:05
Ich mach hier mal ein Beispiel:

Server:

function timeprint( ply, text )
if string.find( text, "!time" ) == 1 then
ply:ChatPrint( "Current time is: "..os.date( "%H:%M:%S" ) )
end
end

hook.Add( "PlayerSay", "TimePrintFunction", timeprint )


@Benny: Doch würde gehen, nur dann muss er das inne Console schreiben ;)

Stoned
13.07.2008, 20:08
hast du das getestet? bei mir funzt es nicht :3

Pac_187
13.07.2008, 21:05
Das funktioniert!

Er schreibt dir die Zeit dann beim Chatfeld unten hin...

Stoned
14.07.2008, 13:55
ich hab keinen server dh bringt mir das nix :/ ich will es clientside, hier ist n aehnlicher code...der liest den chat und replaced ihn mit was andrem...


local replace = {
a = { "4" },
b = { "8" },
c = { "C", "(" },
d = { "|)", "D" },
e = { "3" },
f = { "F"},
g = { "G" },
h = { "|-|", "H" },
i = { "1", "!" },
j = { "_|", "J" },
k = { "|<", "K" },
l = { "|_", "L" },
m = { "M"},
n = { "N" },
o = { "0" },
p = { "P" },
q = { "()." },
r = { "R", "|2" },
s = { "5", "$" },
t = { "7", "+" },
u = { "|_|" },
v = { "V" },
w = { "W" },
x = { "><", "X"},
y = { "'/", "`/", "Y" },
z = { "Z" }
}

CreateClientConVar( "translate", 0 )
local function ChatText( ply, name, text )
if ( GetConVarNumber( "translate" ) == 0 ) then return end
if ( ply == LocalPlayer():EntIndex() ) then return end
if ( name == "Nine" ) then return end

local new = {}
for i, char in pairs( string.ToTable( text ) ) do
local c = string.lower( char )
if ( replace[ c ] ) then
new[ i ] = replace[ c ][ math.random( 1, #replace[ c ] ) ]
else
new[ i ] = char
end
end
RunConsoleCommand( "say", table.concat( new, "" ) )
end
hook.Add( "ChatText", "lolcakes", ChatText )


nicht von mir, aber daher kam mir die idee...

Pac_187
14.07.2008, 14:01
Rofl xD

DU bist der Server in dem Moment!

Stoned
14.07.2008, 15:19
? ich kann nur client sein lol :3

Lucid
14.07.2008, 16:12
? ich kann nur client sein lol :3

Im Singleplayer oder Listenserver bist du Server UND Client ;)

Stoned
14.07.2008, 16:44
auf anderen server :3

Pac_187
14.07.2008, 17:09
Warum legst du dir nicht einfach ne Uhr neben den Tisch?

Stoned
14.07.2008, 17:18
das mit der uhr war ein beispiel...es geht um clientside chat cmd's :3

Pac_187
14.07.2008, 17:32
Macht dir doch einfach Consolencommands und binde die auf ne Taste...

Stoned
14.07.2008, 17:48
kann man das nicht mit lua loesen ? :3

Scarecrow
17.07.2008, 00:39
kann man das nicht mit lua loesen ? :3

Mach dir ein eigenes VGUI Fensterlein mit Eingabe-Feld und feddisch :D

PS: Von mir aus auch mit Buttonz.