MQ2EQBC - MMOBugs Wiki

Revision as of 03:42, 8 July 2021 by Htw (talk | contribs) (→‎Top-Level Objects: Updated TLO members)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)

This article may be out of date. See MacroQuest2 Wiki:MQ2EQBC for the original article.

Description

MQ2EQBC (EQ box chat) is a plugin composed of two parts, a server (EQBCS) and a client (MQ2EQBC).

  • The server provides a similar service to an IRC server, but much more simple to set up.
  • The client is similar to the MQ2IRC client in that it monitors text that is sent to the EQBC server.
  • The main advantage of MQ2EQBC is that it allows remote commands to be sent directly to a single (or all connected) client(s).

This plugin was originally written by Omnictrl, with ascii38 providing maintenance for a period. The plugin is now maintained by pms. The server currently has no active maintainer.

The discussion thread regarding this plugin is found in the VIP forums here.
The current client source release is hosted here.
The current compiled server application is bundled with ieatacid's EQBC Interface application, and can be found at the link in this post.
An earlier version of the compiled server application is hosted by ascii here with the source available here.

For the development history of this plugin see the article here.


Video

Features

  • Allows remote commands via box chat much like mastermind does.
  • Allows you to remotely log into a different character (ie. load up cleric for rezzing). You can also do this locally if you want to recamp to another toon and go grab a carrot sandwich or something.
  • Allows you to control any connected client anywhere (ie. someone in your raid needs to afk for a while: they connect to your server, you remotely load macros and control their toon as needed until they return).
  • Is mostly compatible with scripts that already support MQ2Irc (replace '/i say' with '/bc').

Commands

/bccmd

  • /bccmd connect <server> <port> <password>
Connect to server on port using password (defaults: 127.0.0.1 2112). Note: Once you connect, it will remember that connection, so next time you just have to type "/bccmd connect".
  • /bccmd quit
Disconnects from the server
  • /bccmd help
Show Help
  • /bccmd status
Show if connected or not
  • /bccmd reconnect
Close the current connection and connect again
  • /bccmd names
List everyone that is connected to the server
  • /bccmd colordump
Show color codes
  • /bccmd toggle control
Allow remote control
  • /bccmd toggle window
Toggle the dedicated EQBC window
  • /bccmd toggle autoconnect
Toggle auto connect
  • /bccmd toggle compatmode
Toggle IRC compatability mode
  • /bccmd toggle reconnect
Toggle auto-reconnect mode on server disconnect
  • /bccmd setreconnectsecs #
Set the number of seconds to wait until reconnecting (default 15)
  • /bccmd stopreconnect
Stop trying to reconnect for now
  • /bccmd relog <charname>
The relog command will select the next character if you reach character selection screen within 60 seconds of the command. Otherwise, it times out. It does not camp for you. To reset, enter the relog command with no charname.
  • /bccmd channels <channel list>
Set the list of channels to receive tells from.
  • /bccmd toggle localecho
Toggle echoing my commands back to me if I am in channel
  • /bccmd version
Show version
  • /bccmd toggle tellwatch
Toggle relay of tells received to /bc
  • /bccmd toggle guildwatch
Toggle relay of guild chat received to /bc
  • /bccmd toggle groupwatch
Toggle relay of group chat received to /bc
  • /bccmd toggle fswatch
Toggle relay of fellowship chat received to /bc
  • /bccmd toggle silentcmd
Toggle display of 'CMD: [command]' echo
  • /bccmd toggle savebychar
Toggle saving of custom UI window settings to Window or CharName sections of the configuration file

/bc

  • /bc your text here
Send "your text here" to the server.

/bct

  • /bct ToonName your text here
Send "your text here" to ToonName.
  • /bct ToonName //command
Send /command to ToonName.

/bca

  • /bca //command
Send /command to all connected clients, excluding the client you issued the command from.

/bcaa

  • /bcaa //command
Send /command to all connected clients, including the client you issued the command from.

/bcg

  • /bcg //command
Send /command to all connected clients in your group, excluding the client you issued the command from.
  • /bcg your text here
Send "your text here" to all connected clients in your group, excluding the client you issued the command from.

/bcga

  • /bcga //command
Send /command to all connected clients in your group, including the client you issued the command from.
  • /bcga your text here
Send "your text here" to all connected clients in your group, including the client you issued the command from.

/bcz

  • /bcz //command
Send /command to all connected clients in the same zone as the client you issue the command from, excluding the client you issued the command from. *Requires MQ2NetBots to be loaded and active*
  • /bcz your text here
Send "your text here" to all connected clients in the same zone as the client you issue the command from, excluding the client you issued the command from. *Requires MQ2NetBots to be loaded and active*

/bcza

  • /bcza //command
Send /command to all connected clients in the same zone as the client you issue the command from, including the client you issued the command from. *Requires MQ2NetBots to be loaded and active*
  • /bcza your text here
Send "your text here" to all connected clients in the same zone as the client you issue the command from, including the client you issued the command from. *Requires MQ2NetBots to be loaded and active*

/bcfont

  • /bcfont #
Sets the font size of the UI window, similar to the /mqfont command

/bcmin

  • /bcmin
Minimizes the UI window, similar to the /mqmin command

/bcclear

  • /bcclear
Clears the buffer of the UI window, similar to the /mqclear command

Configuration File

The EQBC client will create the configuration file MQ2EQBC.ini in your root MQ2 folder.
An example of this configuration file is as follows:

[Settings]
AllowControl=1
AutoConnect=1
AutoReconnect=1
ReconnectRetrySeconds=15
LocalEcho=0
SaveByCharacter=0
SilentCmd=1
TellWatch=1
GuildWatch=1
GroupWatch=1
FSWatch=1
UseWindow=1

[Window]
ChatTop=600
ChatBottom=800
ChatLeft=700
ChatRight=1100
Fades=0
Alpha=255
FadeToAlpha=255
Duration=500
Locked=1
Delay=2000
BGType=1
BGTint.red=0
BGTint.green=0
BGTint.blue=0
FontSize=3
UseMyTitle=1
WindowTitle=Custom Title Goes Here With No Quotes

[Last Connect]
Server=10.0.0.1
Port=2112
  • The Window Title line is not created by default.
  • If you wish to use a custom window title you must change UseMyTitle to 1 and then manually add the WindowTitle line before loading the plugin.

EQBCS

EQBCS is a server that can be run as a console application on windows, or as either a foreground application or daemon on a Unix-like system (tested with Linux and FreeBSD).

It currently takes the following command line parameters:

  • -p <port> which is the port you want to bind to (default is 2112, which is dedicated to the Canadian trio Rush).
  • -i <address> which is the IP address that you want to the server to listen on if there is more than one network interface in the computer (default is to listen on all interfaces, which is what you want unless you know otherwise).
  • -l <file> will send all output to <file> rather than to the screen.
  • -d will cause the application to run as a deamon process in the background (UNIX only).

Examples:

C:\> eqbcs              Listens on port 2112
C:\> eqbcs -p 4224      Listens on port 4224
C:\> eqbcs -l log.txt   Listens on port 2112 and sends all server output to the file log.txt.
C:\> eqbcs ftp          Does not work, it does not look up service names to map to port, and the text won't work.

EQBCS as a Windows Service

  1. Download the Windows Resource Kit 2003
  2. Run the executable to install the Resource Kit
  3. Open up a command prompt and run the following to install a service stub (default install location used in this example):
  4. You may substitute "EQBC Service" with whatever name you would like to give to the service for display purposes
    "C:\Program Files\Windows Resource Kits\Tools\instsrv.exe" "EQBC Service" "C:\Program Files\Windows Resource Kits\Tools\srvany.exe"
    or if you're running 64 bit,
    "C:\Program Files (x86)\Windows Resource Kits\Tools\instsrv.exe" "EQBC Service" "C:\Program Files (x86)\Windows Resource Kits\Tools\srvany.exe"
  5. Run regedit to edit the Windows registry, and navigate to the following registry key: HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\EQBC Service
  6. From the Edit menu, select New, select Key, and name the new key Parameters
  7. Highlight the Parameters key
  8. From the Edit menu, select New, select String Value, and name the new value Application
  9. From the Edit menu, select Modify, and type in the full path name and application name of EQBCS, including the drive letter and file extension. If you are using a recent install of macroquest, it will be:
  10. C:\MacroQuest2\MQ2EQBCS.exe
  11. Now go to Start and Run and type in services.msc
  12. From here scroll down to EQBC Service (or whatever name you gave the service above), right-click and select Properties
  13. On the General tab, change the Startup type to Automatic
  14. Click the Start button to start your service
  15. Select the Recovery tab, and you have the option of changing the drop-down boxes for First-Failure and so on to Restart the service
  16. Select OK and you are finished

EQBC Interface

EQBC Interface is an application developed by ieatacid to allow communication with EQBCS outside of the EverQuest game client.
The discussion thread for this application is found in the VIP forums here.

The most recent release of this application also allows you to view detailed information about characters connected to your server by selecting their name, which will display their statistics on the right-hand side of EQBC Interface. The interval of how often to poll the selected character is configurable by the user so that this information can be very close to real-time.

Top-Level Objects

  • bool ${EQBC.Connected} : Am I connected?
  • string ${EQBC.Server} : Server name connected to
  • string ${EQBC.Port} : Server port connected to
  • string ${EQBC.ToonName} : Character name as shown on server
  • int ${EQBC.Setting[name]} : Value of Setting indicated by name
  • string ${EQBC.Names} : All names connected to the server
  • bool ${EQBC.GotNames} : Indicates whether your client has received the name list from the server
  • int ${EQBC.Packets} : Total packets received
  • int ${EQBC.HeartBeat} : Timestamp in ms of last communication with the server

Examples

Sending commands to other toons:

/bct ToonName //sit
/bct ToonName //stand
/bct ToonName //macro ninjalooter
/bct ToonName //endmacro
/bca /multiline ; /bct toon1 //mac toon1mac; /bct toon2 //mac toon2mac; /bct toon3 //mac toon3mac
/noparse /bct ToonName //bc ${Me.PctHPs} (Has ToonName output to EQBC it's current Hitpoints, /noparse disables parsing of the MQ2Data ${Me.PctHPs})

See Also