QIRC is a IRC client, that connects to a single IRC channel and relays all messages to a running QUAKE3.EXE.
All IRC messages appear in game as ordinary chat messages. It's also possible to post into this group form
the Quake 3 console. Since my own client doesn't work with all IRC servers (exspecially the QuakeNet servers),
I put all the Quake 3 interface code into a DLL, that is used by a mIRC script.
This is much more convenient and flexible than my own IRC client.
QIRC - an IRC standalone client for Quake 3 .
Date : 31/05/2000
Size : 66 KB
QIRC for mIRC. A mIRC plugin for Quake 3 Arena.
Date : 06/06/2000
Size : 14 KB
QIRC DLL source code for VC++
Date : 06/06/2000
Size : 3 KB
A screenshot of the QIRC client
For all Quake developers, this is a little description of QIRC's tricky "Quake 3 Remote Control Technology (TM)".
When playing Quake in fullscreen there exists a nonvisible console window under Win32.
To see this window switch to window-mode (r_fullscreen 0) and make it visible (viewlog 1, it's cheat-protected, so use devmap).
You can send commands to the quake client by typing them in this console window.
With this technique you have total control over a local q3 client or server.
First, get the handle of this non-visible console window: HWND hwnd = FindWindow("Q3 WinConsole","Quake 3 Console"); With this handle enumerate through all child windows with: EnumChildWindows( hwnd,EnumChildProc,NULL); QIRC sends the keys in the function EnumChildProc with : for (int i = 0; i<length;i++) SendMessage(hwnd,WM_CHAR ,command[i],1); // and the CR SendMessage(hwnd,WM_CHAR ,13,1); To read the feedback messages I used: SendMessage(hwnd,WM_GETTEXT ,(WPARAM)sizeof(console), (LPARAM) console); To read the current console content. To clear the console use: SendMessage(hwnd,WM_SETTEXT ,(WPARAM)NULL,(LPARAM)"");