Help
file for the hal TFC admin bot
and the hal client
Version:
1.8 beta
By Tony
Johnson ([email protected])
-------------------------------------------------------------------------
Contents:
1) Introduction and
installation
2) Getting hal to connect to the server
3) Using hal to control the server
- Using hal from outside the
game
- Using hal from inside the
game
4) Setting up user
accounts
5) Configuring user levels
and votable maps
6) Logging on to the
server
- Logging on from the client
- Logging on from the server program
1)
Introduction and installation
There are two parts to the
hal software, the server program and the client
program. Since the server program is the most important, I will start with
that. The hal server program is the piece of software
that is run by somebody who knows the rcon password
for the server and is willing to be in control of the server for the period of
time that the program is running on their machine. The hal
server does not, and normally is not, run on the same machine as the Half life
server is running. It is versatile in that sense, and because it does not have
to be installed on the server itself (unlike other mods),
it is perfect for those clans that borrow servers for matches or practices,
since they have control for the time they know the rcon
password and they do not need to change anything on the server whatsoever.
Once running and correctly configured (see chapter 2),
hal will connect to the server and introduce itself
to the players on the server. From this point on the person running hal has full control of the server, as if they were sitting
in the console in half life with the rcon password
and port ready typed. From here the person can talk to the players in the
server via the box underneath the messages window, and he can see their response.
By removing the "say" command that is placed by default in the box,
they can execute any command on the server as they desire, as if sitting in
the server room with the console up on their screen (no need to type the "rcon"
prefix to any commands). For example, they may want to change the map ("changelevel
2fort") as well as all of the other half life server commands, which
fill up a document about 35 pages long, and I'm not including it. You can
find the guide (server and client commands) at the half life command centre
(http://www.planethalflife.com/commands).
Regarding the hal client program, this program is used by people who want
to communicate with the hal server program to authorise
themselves before they join the game. It is very simple to use and is covered
in chapter. To install the zip, use winzip, or any
other unzipping program to extract the files to a directory of your choice,
and double click on the halclient.exe file to run it.
2)
Getting hal to connect to the server
The degree of difficulty that you encounter upon
configuring hal to correctly connect to your game
server will depend upon your network set up.
At home, I am in possesion of a cable modem
connection and a small hardware router PC, with NAT and the like. This only
incited me to ensure that hal would work with almost
any network situation it was faced with.
Before I leap into the
complexities of getting hal working in a complicated
network environment, I'll start by describing how to get it to work if you have
a direct connection to the internet (dial up, or cable modem plugged straight
into your computer, and other types where the IP address that your computer
has, is the same as the IP that someone else would be able to reach you at). If
you don't know what I'm talking about, this is probably all you need to do:
- Load up hal and goto the setup. In the
connection tab, click "Get IPs on startup".
- Every time you load
hal, it will detect your IP address.
- Type in the server
IP and port, and the rcon password into the
appropriate boxes.
- If you have a
firewall, ensure that it allows port 28889 on TCP through
(as
a server), and whichever port you choose in the "log port" too.
- Press the
"Connect" button, and hal will connect to
the server and announce its presence to all those playing.
- From here you have
control of the server, and everything should be working properly.
- If you receive a
"Time out" error, see the next section to try to work out what is
wrong.
To access the boxes that I
describe in this section, you will need to press the "Advanced"
button after hal has loaded.
The three boxes are used
in the following way:
The "Bot IP" is the IP address of your
computer. This must be the IP of the computer you are running hal on, since this is where the connection is started from.
If you are using NAT or some such connection sharing and you are not the
"host PC", then you must set this to your internal IP
address.
The "Bot port" is the port that all data from the game
server will be sent to on your computer. You can change this so it is easier to
use "port maps" or "port forwarding", on linux.
The "Log IP" is
the IP address that the game server is told to relay all the information about
what is happening on the server to. This must be the external IP address if
you're in a NAT situation. Imagine you were at the game server, and wanted to
send a message to your PC, the IP address that you would use is the one that
goes here.
The "Advertised
IP" is the IP that the server sets so that people using the hal client can connect to the hal
server. Imagine you were sitting at someone's PC playing on the game server,
and you want to send a message to the hal server. The
IP address you would use is the one that goes here. If you think of two
situations for this, ie: hal
on a local server, game server on the LAN, but you want people to be able to
use the hal client from inside and outside the
network, this is covered in the last chapter.
When you have decided what
IPs to put in the boxes, do so, and press connect,
and it will work.
If the progress box does
not get past “Checking server…” then it is likely that the game server is
offline or that it cannot be reached from your pc. Try pinging
the game server in Gamespy or your favourite server scanning program. Also try pinging the server from dos. If these turn out to be
successful, try changing your bot port.
NB: If in any of your
server config files, there are options to change
logging settings, you must remove them otherwise hal
will lose connectivity on map change.
3)
Using hal to control the server
- Using hal from outside
the game
When using hal from outside the game (on the desktop), it is best to
imagine that you are sitting on the computer running the game server.
The box underneath the “Messages” window is for entering commands to send to
the server.
You do not
need to type “rcon” before any of the commands
that you enter into this box. Treat them as if you are typing them straight
into the game server console. These are not hal
commands. These are sent straight to the server, and are used in the same
format as rcon.
Example commands:
“say
hello” - Makes the console say “(botname) <your text>” to all the players in the game
“changelevel 2fort” – Changes the map to 2fort.
“kick
<playername>” – Kicks the player from the game.
As you can see, these commands are identical to any rcon
commands that you have used before. These are not the same as hal’s in-game commands.
The “Current Users” box
shows a list of all the people currently in the server at the time. This list
is updated every 15 seconds, and when anyone joins or leaves the game. To kick
or ban or temporarily ban (30 minutes) someone from the server, click on their
name in the box, and the hit the appropriate button above it.
-Using hal from inside the server
Using hal
from inside the game server is as simple as talking to another player. You do
not use the console at all to use hal, you use global chat (defaults to the “Y” key).
To speak to hal, press Y and then say “hal”, or whatever the bot is
named. The bot will respond to you with a greeting.
For a list of commands that you can use with hal,
look at the “commands.txt” file which was included with this installer.
They are also all on the
website at http://come.to/halbot.
Some commands in hal can only be used by people with a certain
“authorization level”. The reason for this is to stop people who should not
have control of the server from using commands that they shouldn’t do, like
“kick” or “ban” or “map” for example.
To find out your access level, type “hal access”. For your auth level to be anything other than zero, you will need to have a user account on hal, and have used the hal client to authorise yourself. This is covered in the next two sections.
IMPORTANT: Because of the way hal's command interpreter works, to issue commands to people whos names have spaces in them, replace the spaces in their name with a ".
eg: Someone called [ILP] -FD-
You would say: hal kick
[ILP]"-FD-
4)
Setting up user accounts
User accounts are what you
need if you want to have a high authorization level in the game so that you can
use privileged commands. It is important that the person who runs hal on a server has set up the users correctly so that the people who he or she wants to give access to, can obtain
this access.
To set up a user account,
goto the options menu, and click the “users…” option.You will be presented with a screen.
From this screen you can
add, delete and edit the users in your system, the process for which is very
obvious.
The user level that you
give them relates to the range of commands that they can use. This is
determined by what levels you set in the “options > setup” menu, where you
can determine the minimum user level required to use the certain commands. Some
of the levels apply to more than one command:
The server shutdown level,
also used for “deauthall”
The server
restart level, also used for “lan” and “exec”
The friendly fire level,
used for all the class limits, “timelimit”, “startnow”, “abortvote”,
“footsteps”, “prematch”, “ceasefire”
The name that you enter
for the player here must be exactly the same as the name that they
connect to the game server with. If it is not, authing
will not work. If the player you wish to add has stupid characters in their
name, get them to change it.
5)
Logging on to the server
By logging on to the
server, you are letting the hal server know exactly
who you
are and for authorising to
work, you must have a valid account on the hal
server.
-Using the hal client
The hal
server will not authorise a player just by their name, that
would be far too insecure. The player must use the hal
client before they connect to the game server, where they enter their player
name, the password you specify for them in the users section, and the game
server IP address and port. Then they press connect, and after it has
authorised them, join the game server.
When they use the hal client, the hal server will
authorise them if they have the correct username and password combination. They
will be added to the “IP Watch” list, and this will appear in the lower right
hand, green, box on the hal server screen. The hal server waits for a connection from that IP address with
someone with that name, and when it finds that, it authorises them in the game,
and they can use the commands that you allow them to.
Normal players joining the
game do not need to use the client, only people who are specifically authorised
to use hal’s higher level commands.
The hal
client includes the functionality to deal with complex network situations.
You can use a manual
override on the ip for the hal
server by using this string in the “server” field:
“hal: <hal server ip>,<ip that the server
will see you connect from>”
eg:
“hal: 10.1.1.2,62.225.177.25”
Note the comma separating
the two addresses, the semicolon and the space after hal
-Using the hal server
The hal server program also includes a built in hal client. If you press the “Log on” button, underneath
the “h”, and fill in your details, which must match the details in the users
file, and the ip address from which the
server will see you connect from, then when you join the game, you will be auth’d in the same way as the hal
client would work.
Thanks for using hal, please check the site for updates
© Tony Johnson 2001