[mohaa] Server control programs for Linux

Mazzic mazzic at yahoo.com
Sun Sep 8 12:11:52 EDT 2002


Hello Shockwave,

I have written my own MOHAA adminsitration utility and with the use of the
log file and RCON commands and have been able to handle TK'ers.  Sounds like
your going down the right track.

Here is how I have done it.  Since you have Developer 2 set you are getting
alot of info.  Such as who joined Allies or Axis.  Keep that info in memory.
What you don't have is if they joined by using AutoJoin.  The log file will
just say they autojoined but never indicates which side.

If you have kept track of players names and which slots they are in, you can
do a RCON SESSIONx command.  whereas the x is slot number that player is in.
It will tell you which weapon the player is using and which side he is on.
1=spectator 3=ally 4=axis.  One thing you should do in your code is enforce
a unique name feature.  No two players are allowed to have the exact name.
Since you have to scan your list of players by name to turn into a slot
number, you could be referencing the wrong one if two people have the same
name.

Then to check for TK's it is a simple matter of seeing which sides the
killer and victim are on.  If both are the same side, whola a TK has
occurred.

I also keep some ingame stats.  Counting peoples kills, deaths, tks, etc.  I
watch the chat messages for some vulgar language and issue warnings.  I do a
RCON SV_MAPLIST to retrieve the list of the maps.  Players can say !NEXTMAP
and the program will message back to the server with the name of the next
map.

If your intersted in seeing it in action, connect to my server.  In gamespy
its Mazzic's Server  otherwise it is at IP 63.170.71.60.  Type !HELP in the
chat window for a list of commands.

-Mazzic


----- Original Message -----
From: "[-SF-]Shockwave" <shockwave at clanshortfuse.com>
To: <mohaa at icculus.org>
Sent: Thursday, September 05, 2002 12:11 PM
Subject: Re: [mohaa] Server control programs for Linux


> Hello all,
>
> I want to thank Rodney and scratch for pointing out the "clientkick"
> command.  I've been trying to use "kill" because I didn't know there was
any
> other command available.  This makes everything so much simpler!
>
> As far as determining which players are on what team, I have noticed that
> setting "developer 2" shows more detailed information, however it only
> displays the command invoked and doesn't indicate whether it was
successful
> or not.  As a test, I removed the localization file from my global
directory
> and it helps a little because it will yield a "localization error" message
> with text stating either that the join took place or the error encountered
> while executing the command.  Another idea I had was to track every kill
and
> check it against the team scores.  With the developer cvar set greater
than
> 0, every kill message is broadcast to the log.  If the team score is
> decreased after a kill that isn't a suicide, then it makes sense that a
> player killed a teammate.  I'm going to have to play around with it a bit
> and see if I can get it to work reliably.
>
> Regarding scratch's question about how banning would work, here's my idea.
> Each time a player joins, the list of players and their IP's would be
> refreshed and tabled.  I figure that a common file of banned IP's can be
> read and kept in memory for comparison.  If there is a match, the player
> would be kicked.  Since I'm already intercepting the server log output and
> have the ability to interrogate it, this should be possible.
>
> I also like the idea of changing maps and game types dynamically.  There
is
> a server variable "sv_maplist" that I have manually edited via the server
> console to make the map rotation change without forcing a restart, but I
> didn't try changing to a map that wasn't applicable to the game type
already
> set.  I'll play around with that and see what specifying a map that
belongs
> to a different gametype will do when I get a chance.  Thanks for the
> suggestion, Hammer.
>
> For the record, I haven't seen Crow King's utility but I hear that a lot
of
> people like it.  I guess I should download it and give it a try at some
> point.  I personally didn't want to be forced to use a Windows PC to
handle
> that function which is part of the reason I wanted to develop something
that
> would run under Linux.
>
> I want to be sure to say that I really appreciate all the feedback.
Anyone
> who is interested in kicking the tires will definitely get the
opportunity.
> I do have a stable version of the programs currently running on my own
> server, but as I said before they only have the limited functionality I
> mentioned earlier.  Once I smooth some of the rough edges, I'll release
them
> for testing.
>
>
> Shockwave
>




More information about the Mohaa mailing list