[mohaa] Server control programs for Linux

[-SF-]Shockwave shockwave at clanshortfuse.com
Sun Sep 8 23:59:13 EDT 2002


Hi Mazzic,

Thanks a lot for the information!  I didn't know about the "sessionx"
command,  but I'm looking forward to using it when I add TK auto-kick
functionality to my program.  The problem I found with the "developer 2"
setting and the "join allies / join axis" command messages is that they
don't assure that the player actually completes the request successfully.
For example, they can be denied due to server imposed mandatory wait periods
before switching teams and you would never know.  The only way I have found
that indicates success or failure before your mention of the "sessionx"
command was to induce localization errors by removing the localization.txt
file.  That way, failure messages would show up in the server output.  This
is obviously not the best approach given the necessity in some circumstances
for the existence of a localization file, so I am very pleased to hear about
you success with "sessionx".

I've been busy programming lately, but I will make it a point to check out
your server.  The stuff you have been able to do sounds intriguing.  Thanks
again for your help!


Shockwave


----- Original Message -----
From: "Mazzic" <mazzic at yahoo.com>
To: <mohaa at icculus.org>
Sent: Sunday, September 08, 2002 12:11 PM
Subject: Re: [mohaa] Server control programs for Linux


> 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