UNR ClanWar Quake2 Mod

By [UNR]Finn

V2.00 | August 22, 1998

Purpose

This Mod was developed to simplify the process of setting up and running duel team matches. Full teamplay rules have been added in order to simplify matches, as well as automating the process of starting, timing and finishing matches. The team score is retained even if individuals drop mid-way during a match, and scores are also saved when switching between levels.

On CTF levels, normal Capture The Flag rules are used, including the grapple and slightly weaker powershield. Non-CTF levels are played with the grapple disabled by default, and use of the normal DM powershield. Players may also customise the matches with server configurable weapons/ammo/health and armour. Weapons may also be disabled for further customisation.

Installation

The contents of the .zip file should be extracted to a CLANWAR directory under the Quake2 directory.

To use Vwep, you will also need the Vwep pak file.

Included in the archive are two versions of the .dll, one optimised for Pentium based computers and one for Pentium Pro/Pentium II based computers. By default, the Pentium based .dll is used. If your computer has the Pentium Pro/Pentium II chip, then you will need to copy the .dll from the ppro directory and replace the default one with it.

Credits

This mod is based on Threewave CTF by Zoid and is modified by Andrew 'Finn' Southgate. The maplist command is based on code by Bent P. Svendsen (decker@post1.tele.dk). Additional thanks to everyone who helped beta-test for their general patience in putting up with a programmer :-).

Programmer:

- Finn

Beta Testers:

- My entire Q2 clan, Unreal (Tas, Yaku, 155, Luke, Skid, Inqy, Inso, Dia, Juboy, Rude)
- Other good friends (SPoG, Raven)

Dedicated to Carla…. we’ll miss you hon…

If you want to find out more about my clan, Unreal, visit http://clans.quake2.co.uk/unreal/

Misc.

This was done 100% in Borland C++. If anyone is feeling kind, then a donation of Watcom C++ would allow me to produce a better optimised version :-).

I thought I had better stick in one of those standard disclaimers here. I have tried my best to make sure that this is virus free and I certainly have not added any malicious code. But, you know the score. If by any chance this mod does damage to your computer, kill your cat, or run off with your spouse, I cannot be held responsible.

New Commands

Commands can only be entered from the server console or by using the RCON command.

Sv ScoreReset | Resets the scores of all players and both teams.
Sv MatchStart <Delay> | This initiates a countdown of <delay> seconds and then restarts the current map with a reset score and safety switched off.
Sv Clear [Variable] | Due to a limitation of RCON it is impossible to clear a variable once it is set using the RCON command. This command simply clears a server console variable. E.g.: Sv Clear password
Sv Default | Sets all Weapon/Ammo/Health/Armour settings to default, then restarts the server to update map.
Sv maplist | Displays a list of all available maps and a brief description of each. This command isn't available to client admins as the amount of data to print overflows them. Based on code by Bent P. Svendsen (decker@post1.tele.dk)

New Server variables:

Sv_admin_password <password> | This sets the admin password, allowing clients with the correct admin password to set up games without full RCON access. By default it is clear, disabling admins.
Sv_Vwep <1|0> | With the addition of Vwep I have added a way to disable it, so that the regular model displays. When Sv_Vwep is set to 1 then Vwep models are display, when set to zero, the regular (shotgun) model displays.
Sv_Safety <1|0> | For those annoying times when admins are trying to organise something and the players’ just wont quit firing, I have created a safety variable. When set to 1, it simply stops anyone firing just like a safety catch on a real gun would. Also, it prevents players picking up items or capturing the flag.
Sv_freeze <1|0> | For those really annoying players who still manage to annoy even when they can’t fire, this simply stops anyone from moving. This can be used as a temporary pause, but as it doesn't stop time, Quad's, 666 etc will still run out.
Motd<1 to 10> | I have added a Message of the Day setup, to set the text displayable on the Motd. There are ten variables, Motd1, Motd2... Motd10. Each of these contains a string that is printed in the center of the Motd window. If this is not set to anything, there is a default Motd. To simplify setting the Motd by RCON, all underscore ('_') characters are converted to spaces.
ShowStatus <1|0> | When this is set, a message is displayed on the Motd informing new clients if a match is on or not. This uses Motd9 and Motd10 to give information.
Team1 <team1name> | This sets the name of Team 1. Default is RED
Team2 <team2name> | This sets the name of Team 2. Default is BLUE
Weap_[weapon] [value] | [weapon] can be grapple, blaster, shotgun, supershotgun, machinegun, chaingun, grenadelauncher, rocketlauncher, hyperblaster, railgun or bfg. If [value] is negative then that weapon will not be allowed on the level. If [value] is zero, then it will be allowed in level but player will not start with that weapon. If [value] is positive, then players will start with that weapon. Since the blaster or grapple are not found in the level, if they are not set for the players to start with, they are effectively disabled. Note: If grapple is set to zero, it will be banned even on CTF levels.
Ammo_[ammotype] [quantity] | [ammotype] can be shells, bullets, cells, slugs, grenades or rockets. Quantity sets the amount of that ammo-type players start with.
Max_[ammotype] [quantity] | Sets the maximum amount of that ammo players can carry. (Ammo packs and bandoleers give multiples of these figures)
Initial_health [quantity] | Sets how much health players start with.
Max_health [quantity] | Sets maximum health players can achieve from health packs.
Initial_armour [quantity] | Sets how much armour players start with.
skin1 [filename] | Sets the skin that team 1 is forced to wear when force_skin is set to 1. Default is "ctf_r"
skin2 [filename] | Sets the skin that team 2 is forced to wear when force_skin is set to 1. Default is "ctf_b"
Force_skin | When set to 1, force clients to use their team's skin.
Lock_skin | When set to 1, stops clients changing their skin
radio 1/0 | when 1 allows radio
allow_ppm_radio 1/0 | when set, allows radio for all ppms, otherwise just uses male/female radio wavs
runauto 1/0 | When set, resets score at end of level
stdlogfile 1/0 | When set to one produces a gibstats logfile in quake2 dir
stdlogname <filename> | Name of gibstats logfile default is stdLog.log
server_only | Runs in server side only mode (DM only - not ctf) this uses the dogtag graphic instead of ctf pics
spam_protection 1/0 | When 1 spam protection is active
spam_incr <value> | This is added to the clients "spam vlaue" every time they say something
spam_threshold <value> | When the "spam value" reaches this value in a given period of time, the client is classed as "spamming"
spam_quiet <value> | Delay before client can speak for each "spam"
sv_max_rate <value> | This sets the maximum rate clients can set

New Client commands:

Admin_pword [password] | Sets the client admin password.
Admin [command] | If the client’s admin password is correct, then this executes the command. Command can be any of the Sv commands without the SV part (e.g. "rcon Sv default" would become "admin default") However, it cannot be used with ‘Sv Clear’. This command may also be used with any of the following: map, status, kick or set. Note: ‘admin set’ cannot be used to change rcon_password or the game variable. Also all Admin commands are logged to the server log with the client’s name and ip.
TimeLeft | Displays current time left in current match
Settings | Displays current weapon/ammo/health/armour settings
LockCam | Toggles whether rotatecam chasecamera follows player as they turn
chasemode | Changes chasecamera mode
adminmenu | If admin_pword is correct, displays admin menu
play_team <file> | plays radio wav to teammates
say_player <name> <msg> | send msg just to one player
team_say <msg> | sends msg to teammates so specs cant read

History (History only started with v1.11)

V2.00

V1.146

Fixed: Changing to a CTF map, then a DM map enabled grapple on DM, now fixed.

Fixed: Cleaned up some of the pre-caching code to be more suitable to fully working auto d/l in 3.17.

Added: Maplist command, based on code by Bent P. Svendsen (decker@post1.tele.dk)

Added: Audible countdown to match start.

V1.145

Fixed: Small say_team bug, legacy of DM code.

Fixed: The powershield bug.

Added: sv_admin_pword variable.

Added: Admin_Pword client side command.

Added: Admin command to change settings without RCON.

Added: Spectators see the team name appended before messages for easy identification.

Added: force_skin variable.

Added: lock_skin variable.

Added: skin1 and skin2 variables.

V1.14 (First proper public release)

Fixed: Now can’t capture flag with safety on.

Added: Can’t pick up items with safety on.

Added: Sv Freeze Command.

Added: New HUD messages for Freeze and Safety status.

V1.13

Fixed: Full rewrite from the ground up - cleaned up some quick hacks from earlier and generally improved some badly done areas.

Fixed: Woo! Found the irritating auto-d/l attempt of flash2/tris.md2

Added: Full CTF support - CTF rules on CTF levels, Works as UKCCL Mod on non-CTF levels. Added: Name change to show change of emphasis of Mod.

Added: Fully configurable as to what weapons/ammo/health/armour players start with.

Added: Weapons can now be banned.

Added: Sv Default command added to set all settings to Q2 defaults.

Added: Settings command to show all current settings for weapons/ammo etc.

V1.11

Fixed: D'oh! I wasn't seeding the random number generator... meant there was a certain order to where clients respawn...

Fixed: Switching teams no longer gives a -1 to the score of destination team.

Fixed: No longer displays when spectators change skins during match.

Added: Both Sv Timeleft and TimeLeft commands.

Added: Spectator score now shows current time left in match.

Added: Client side pak cleaned up - now smaller :-).

Added: Scoreboard cleaned up, removed un-needed code to do with flags.

Added: Sv Clear [Varname] command, e.g. Sv Clear Password.

Added: Underscores now converted to spaces on Message of the Day to help with RCON.

Added: Customisable team names.

Added: Message of the day shows when a match is on.