\ \ | | |\ __ |\ |\ \ \ | | | \ / \ / / | \ | \ \ \| | | |\ \ / / \ \ / / | |\ \ | |\ \ \| | | | \ \ \ \ / / | | \ \ | | \ \ | | | | \ \ \ / / | | \ \ | |\ \ \ | | | | | | / / \ | | | | | |\ \ \ | | | | | | / / \ \ __ | | | | | | \ \ | | | | | | / / \ \ / / | | | | | | \ | | | | | | / / \_/ | | | | | | Copyright 1992 Dwarven Development. "If it ain't dwarven, it ain't worth it's weight in bailing wire." Changes: The only playability change made for this release was the change in the /pipe command, which now requires pipelines. Internally it got ugly, I added in the capability to handle either of Arty's RXSOCKET versions. The user does not need to know which version he/she is running on, the client will figure that out on it's own. Requirements: This client was written on a VM/CMS rel 6 machine with FAL 2.2, and it also operates running VM/ESA. It uses Atry Ecock's RXSOCKET MODULE 0.1f available from the LISTSERV@PUCC, or RXSOCKET MODULE 2.0 available from LISTSERV@CUNYVM. It also utilizes CMS PIPELINES for the /pipe client command. I cannot gaurantee that this software will run on anything else and I doubt that I would be able to get it running on anything else since I do not have access to any other system, and am by no means a VM/CMS guru. History: Empclient Exec was written one weekend when I was completely fed up with the lack of support for empire clients for VM, I do not know of any publically released empire clients for VM, and only one client for mudders (so expect a couple of mud related clients soon if you are looking for one of them too.) Support: This client is probably far from being done (I hope), and changes will be made and sent out as added and tested. This client should not be considered anything other than an alpha release since I haven't had anyone else play with it, and I am sure there are hundreds of bugs that will crop up. If you happen to find one of these critters, send me mail describing what happened and if you happen to know how to fix it that would help also. I don't gaurantee that it will be fixed imediately (I hope so, but things happen) but I will atleast put it in a BUGS file so that others know it exists and can avoid it until it is fixed. If you have any ideas that you would like to see implemented or have implemented yourself send me mail and I will see what I can do about getting them into the next release. One thing to note, if they deal with fullscreen mode I doubt they will get put in for awhile. I looked into using fullscreen mode after seeing the only other client out for VM, but I decided to stay away from that aspect due to system response time in fullscreen mode, and some of the other wierd aspects that I don't fully understand when dealing with fullscreen mode in VM. How To Use It: Empclient is a pretty simple client to invoke it you can either use EMPCLIENT address port country rep or you can use a names file if you are keeping track of more than one game. The format of the names file is : :nick.name_of_game :ipa.address_of_game :prt.port_of_game :coun.your_country_name :rep.your_password both the coun and rep fields are optional, but if you specify them the client will try and log in for you. I have added in a few built in commands to make life easier for those of us who don't get the bonuses afford to the unix users out there. All internal (client) commands are preceeded with a / (if you don't like this syntax you can change the leading charcter by changing the CMD_PREFIX variable in the initialization procedure. ALIAS Set up an alias for a command or string of commands. /alias command-alias command{;command;.....} The alias command allows you to set up a one word command to do a series of commands. See the section on macros for the full syntax of aliases. ANNOUNCE Send a file to the game to be posted as an announcement. /announce filename filetype filemode The announce command will break the file up into 512 character blocks, or as cloase as it can get without splitting lines. The only problem that I have found is that it adds a blank line where it breaks the file up. CMS Send a command to cms for execution. /cms command Send a command to cms. (e.g. flist or any other cms command, including other execs) DUMPHISTORY Dump a section of history to a file. /dumphistory x y Dumps the output from history x y to the file DUMPHISTORY FILE A EXEC Dump a file onto the stack to be sent interactively to the server. /exec filename filetype filemode Pushes a file onto the stack to be read as if it were keyboard input. It has the added advantage of being able to issue client commands along with empire commands. HISTORY Show a section of the history buffer. /history x{,y} Show the last x lines of output from the server, or the range the last x to the last y of lines of output from the server. LOG Dump all output from the server to a file. /log filename filetype filemode (a|e|b Start logging the output from the server. The (a|e|b allows you to circumvent the prompt if the file already exits. /log off Shuts logging off. PIPE Send output from a server-command through a pipeline. /pipe server-command | rest_of_pipe Sends the output of the server-command to a cms pipeline. QUIT Close the socket and exit from empclient. /quit Close the socket. This does not send a logoff to the game, it just drops the connection. QUOTE Send a file to the server. /quote filename filetype filemode Send the file filename filetype filemode down the socket to the server. Quote does not allow the use of client commands in the file, but it does have the advantage of not waiting on command output from the server before sending the next command down the line. REPEAT Send a string to the server multiple times. /repeat NUM string Sends the string to the server NUM times just as if you typed it in that many times. Repeat does not wait for each command to end before it sends the next, it can be thought to be equivalent of making a file with the string in it NUM many times and then issuing a /quote on the file. TELEGRAM Send a file to the server as a telegram. /telegram country filename filetype filemode Send the file filename filetype filemode to country via a telegram. The client will break the file up at end-of-lines so that it never sends more than 512 bytes pere telegram command. I have noticed a 'bug', the client seems to send an additional blank line where it breaks the file up into chunks. Macros: The macro language is pretty basic, you define an alias and whenever you issue the alias preceded by a slash it will send the command to the server. You may define an alias to be more than one line of commands by seperating each line with a semi-colon (;). You may also issue client commands in a macro by preceding them with a slash. eg: /alias print_pop /pipe cen * >>file pop file a;/cms print pop file a This will make an alias which will dump the census information into a file named pop file a and then it will print it out. You may also use command line arguments in an alias by preceding the argument number by a $ in the macro it will replace the $number with that numbered argument, if that argument was not specified it will replace it with a blank. eg: /alias mandp /pipe map $1 >> file mandp file a (e; /pipe prod $1 >> file mand file a (a This will dump the map and the production output for whatever is defined in argument 1 of the alias. For instance, if you issued a /mandp #1 it would dump the map and production report for realm #1 or /mandp -10:10,-10:10 would dump the map and production report for the area -10:10,-10:10. Tools: I haven't spent alot of time working on tools, but I am trying to add stuff in so that it will be easier to use them in conjunction with the client. I think that most of the basic stuff can be done with the /pipe ___ >> ___ command and aliases. If you check where you got this client there should be some simple tools, if I mailed it to you I should have sent some simple stuff with it. GLOBALVs: I added in a check for a version files which is a simple output parser that pulls information out of the version command and stores some of the values in a file, which if found it loads the values as global variables to be accessed by tools.