Kick Idlers UT2003 V2d
A mutator for UT2003
by TheCatcher
Forum: CatchersCTF Forums



KickIdlersUT2003V2d (Non-Umod)

This mutator Kicks Idle players to allow room for active players to connect to your server.

It was originally, loosly based on the KickIdlePlayers.u mutator for UnrealTournament.

 

---------------------------------------------------

This web page is a modified version of the web page for the UT KickIdlersV2d mutator.

This web page refers to MUTATE commands that can be entered at the console. The MUTATE command is NOT yet available in UT2003. As such the MUTATE commands do not work in KickIdlersUT2003V2d. Since the MUTATE commands don't work in UT2003, there was no reason to have the Advertise option, so it also does NOT work (I am contemplating re-enabling the Advertise option).

 

---------------------------------------------------

It has the following features.

It will not consider you idle if you change which direction you are looking (up, down, right, or left).

It will not consider you idle if you move (even by strafing).

It will not consider you idle if you fire a weapon (alt fire or primary fire).

It will not consider you idle if you are an Admin.

It will not consider you idle if you have the flag.

It supports player commands to view the idle players and can be configured by the server admin to allow players to kick idle players.

It is Admin configurable to not kick idle players unless the server is full (or a player issues the Mutate KickIdlers command). It defaults to only kicking idle players if the server is full.

It is Admin configurable to shut itself down (or not) at the end of the game - so players won't be kicked during end of game activities (like map voting). It defaults to shuting itself down at the end of the game.

It is Admin configurable so that if there are one or more idle players on the server, it will send a message every minute informing everyone on the server how many idle players there are. And a message every 4 minutes informing the users how to determine who the idle players are. And if the Admin has configured KickIdlersUT2003V2d to allow players to kick idle players then it will also tell players how to kick the idle players.

It is Admin configurable to allow players to kick all idle players.

When an idle player (or players) is kicked by KickIdlersUT2003V2d - KickIdlersUT2003V2d will inform everyone else on the server which player(s) has been kicked for being idle, how long the idle player(s) was idle, if applicable it will say who issued the Mutate KickIdlers command.

 

Since it doesn't kick idle players automatically, unless the server is full. It has 3 commands to allow the other players to see who the idle players are and how long they have been idle. And to allow the other players to kick the idle players from the server.

Mutate ShowSlackers - Will display a list of all the players that are on their way to becoming idle (have been idle for at least 1/2 of the Kick Time) and how long they have been idle.

Mutate ShowIdlers - Will display a list of all the idle players and how long they have been idle. It will also send a warning to all the idle players telling them which player has just issued the Mutate ShowIdlers command. And if the Server Admin has allowed players to kick Idle Players - it will warn the idle player that they are probably about to be kicked.

Mutate KickIdlers - Will kick ALL the idle players. It will tell the players being kicked who kicked them, and how long they were idle. It will also tell all the other players who kicked the idle players and how long each one was idle.

 

---------------------------------------------------

Installation Instructions:

Copy the following files to your UnrealTournament's System Floder

KickIdlersUT2003V2d.u

KickIdlersUT2003.int

KickIdlers.ini

To use this on a server (I don't know why anyone would run this in a single player game) add the following to your UCC.exe startup line.

?mutator=KickIdlersUT2003V2d.KickIdlers

The resulting command will look something like this.

ucc server CTF-DiamondSword.ut2?game=Botpack.CTFGame?mutator=KickIdlersUT2003V2d.KickIdlers ini=UnrealTournament.ini -log=server.log

If you are using mutliple mutators, the resulting command will look something like this.

ucc server CTF-DiamondSword.ut2?game=Botpack.CTFGame?mutator=ChatManagerV1ALPHA1.ChatManager,KickIdlersUT2003V2d.KickIdlers,BDBMapVote400.BDBMapVote ini=UnrealTournament.ini -log=server.log

Add a ServerPackages=KickIdlersUT2003V2d to the [Engine.GameEngine] section of your Server's UnrealTournament.ini file.

---------------------------------------------------

Customization:

The Server Admin can configure KickIdlersUT2003V2d with the following options in the Server's KickIdlers.ini file

[KickIdlersUT2003V2d.KickIdlers]

KickTime=300

OnlyKickWhenFull=True

ShutDownAfterGame=True

AllowKickIdlersCommand=True

AllowShowSlackersCommand=True

AdvertiseIdlers=True

AdvertiseInstructions=True

KickTime= [seconds] till an idle player is considered an idler.

OnlyKickWHenFull= [True | False] flag that allows the Server Admin to configure KickIdlersUT2003V2d to kick players when the server is full, or when it isn't.

ShutDownAfterGame= [True | False] flag to disable KickIdlersUT2003V2d after the game ends p this will keep it from kicking players during map voting. The reason I allowed this to be configurable is because there is a possibility that there are some mod game types that KickIdlersUT2003V2d may think have ended when they didn't.

AllowKickIdlersCommand= [True | False] flag allows the admin to decide if the other players on the server will have the right to use the Mutate KickIdlers command to kick the idle players.

AllowShowSlackersCommand= [True | False] flag allows the admin to decide if the other players on the server will have the right to use the Mutate ShowSlackers command to show the potential idle players.

Advertise= [True | False] flag that enables KickIdlers to broadcast the instructions on how to use it and display if there are any idle players currently on the server. Currently it broadcasts it's instructions once every 4 minutes. And it displays if there are any idlers once every minute.

 

---------------------------------------------------

In Game Customization:

The Server Admin can interogate KickIdlersUT2003V2d's configuration with the following in-game commands

admin get KickIdlersUT2003V2d.KickIdlers KickTime

admin get KickIdlersUT2003V2d.KickIdlers OnlyKickWhenFull

admin get KickIdlersUT2003V2d.KickIdlers ShutDownAfterGame

admin get KickIdlersUT2003V2d.KickIdlers AllowKickIdlersCommand

admin get KickIdlersUT2003V2d.KickIdlers AllowShowSlackersCommand

admin get KickIdlersUT2003V2d.KickIdlers AdvertiseIdlers

admin get KickIdlersUT2003V2d.KickIdlers AdvertiseInstructions

The Server Admin can configure KickIdlersUT2003V2d's configuration with the following in-game commands

admin set KickIdlersUT2003V2d.KickIdlers KickTime 300

admin set KickIdlersUT2003V2d.KickIdlers OnlyKickWhenFull True

admin set KickIdlersUT2003V2d.KickIdlers ShutDownAfterGame True

admin set KickIdlersUT2003V2d.KickIdlers AllowKickIdlersCommand True

admin set KickIdlersUT2003V2d.KickIdlers AllowShowSlackersCommand True

admin set KickIdlersUT2003V2d.KickIdlers AdvertiseIdlers True

admin set KickIdlersUT2003V2d.KickIdlers AdvertiseInstructions True

 

---------------------------------------------------

KickIdlersUT2003V2d adds the following feature KickIdlersV1c

1. It should no longer kick any type of spectator.

2. It should no longer kick any player that has used up all their lives and cannot respawn.

3. Changes the Advertise setting to AdvertiseIdlers and AdvertiseInstructions.

 

---------------------------------------------------

KickIdlersUT2003V1c adds the following feature KickIdlersV1b

1. In the event of a tie, it will only print "EOG: KickIdlers is shutting down." one time.

 

---------------------------------------------------

KickIdlersUT2003V1b adds the following feature KickIdlersV1a

1. No longer calls Super.GameHasEnded() in its GameHasEnded() routine.

BDB discovered that calling Super.GameHasEnded() (Controller.GameHasEnded()) was setting GameEnded state.

Which was causing Controller.uc to Destroy KickIdlers because in it's state GameEnded code it did "if ( !bIsPlayer ) Destroy();".

Which invalidated any existing pointers to our Controller.

The problem with this is that our GameHasEnded() routine was being called from a loop that was going through Controllers via a Controller.nextController.

But since our Controller was destroyed, it got an invalid access looking for our nextController link and crashed out of the loop.

 

---------------------------------------------------

KickIdlersUT2003V1a adds the following feature KickIdlersV1

1. Accurately detects tie games and doesn't spam "EOG: KickIdlers is shutting down."

 

---------------------------------------------------

Files contained in this ZIP file:

KickIdlersUT2003V2d.txt

KickIdlersUT2003V2d.u.uz

KickIdlersUT2003V2d.u

KickIdlersUT2003.int

KickIdlers.ini

 

---------------------------------------------------

If you have problems with this, let me know at GameServerAdmin@OHNOSoftware.com

TheCatcher