Quake Voting Booth v2.7 - Allows players to vote on game settings such as noexit and teamplay. When a Quakematch is being played over ethernet by a group of friends or coworkers on an office or school network, agreeing on settings generally isn't that big of a problem. But when playing over the internet with 15 people you've never met in person, it's often difficult to agree on how the server should be set up, especially since the server, being dedicated (your server *is* dedicated *isn't it* ? ) can't have it's settings changed by players. Enter Qvote. Just install this utility on your server (no, the players don't have to have it) and the players will be able to decide democratically how they want the server configured. So far the only topics on the ballot are noexit and teamplay, but more are on the way (suggestions welcome). HOW TO USE QVOTE Server admins - Put this progs.dat in a subdirectory of your Quake directory (c:\quake\vote\progs.dat) and start quake with the command line option "-game vote" or whatever you called your subdirectory. If you need to recompile the progs.dat from source, see below. Players - From the console, type "voteexit" to vote for noexit = 0, or "votenoexit" for noexit = 1. "voteteams" votes for teamplay 1, "votenoteams" for teamplay 0. "votestats" shows the current voting status. You don't have to memorize these, however: just type "votehelp" at any time for a summary of these commands. SERVER DEFAULTS Qvote 2.7 utilizes server specified defaults in a different manner than previous versions. Players no longer automatically vote for the defaults on server connect, as this was causing gameplay problems. Instead, these default values for noexit and teamplay are used when not enough votes have yet been registered to constitute a majority. Tie votes are now resolved simply by leaving the setting at its current value. To change these defaults, you will have to modify the constants "noexitdefault" and "teamplaydefault" in vote.qc and then recompile the .qc files with Qcc. You can download and read instructions for use of Qcc at http://www.stomped.com. TEAMPLAY CVAR vs ACTUAL TEAMPLAY Keep in mind, the teamplay which you are voting on with Qvote does not actually enforce teamplay, it just turns on the teamplay cvar, which really only turns friendly fire on/off. If you have teamplay on, but everyone is a different color, not much is going to happen, except that people who happen to have the same color pants cannot damage each other. And even if you have gotten everyone to switch to team colors, you don't necessarily need to have the teamplay cvar on; personally, I like playing team games with teamplay set to 0 : it adds an extra element of strategy to the game, in that you can't just shoot first and ask questions later. CHANGES SINCE 2.6 I totally recoded the major algorithims, no longer basing counting off of player names but off of their actual entities ( I finally figured out how to do this.) Now players with the same name, and changing names durring the game shouldn't cause problems. Also, looking through my old code, I noticed some errors that seem to me like they should have kept the thing from working at all, strange, I received alot of feedback, but nobody told me it didn't work at all, which I now suspect. Anyway, it now *should* work. CHANGES SINCE 2.2 I finally started getting some user feedback on Qvote, and most of it was negative. Up until now, I've been receiving feedback mostly from fellow QuakeC coders commenting on my code, but not until recently did many servers actually start using Qvote, and therefore I wasn't getting much input on Qvote's interface and gameplay potential. Apparently the general consensus is that in it's current form, Qvote was really getting in the way, not just because of the info screens, but because of the automatic voting for defaults. Apparently, in large games, the noexit and teamplay settings were constantly getting set back and forth, and users were spending more time voting than gibbing each other. So in 2.5 I have attempted to make Qvote much more inobtrusive to gameplay. Autovoting has been nuked, and tie votes are resolved by keeping the setting at whatever it currently is, not by returning to deafult. And the command help display is no longer displayed every time you die, only when you connect and if you type "votehelp" (I still put in a reminder that "votehelp" shows commands each time a player dies, the reason being I want it to be fair - If some of the players missed the server connect message and don't know about voting then they don't have a say in anything, which sucks. The new message, however, is only one line, so it should be better. The reason I put in autovoting in the first place is because I didn't want one person to constitute a majority simply because he was the only one who had gotten around to voting. I've solved this in 2.5 by making a majority mean not just a majority over the opposition, but over everyone on the server, even those who haven't voted. If this has confused you, forget about it, just try out the new version, and I guarantee you it won't get in the way as much as previous versions. BUGS/CAVEATS My other QuakeC patch, Blood!, which makes Quake slightly bloodier (although realistically so, unlike the "violence" and "gore" patches, which are funny, but get old quick and take away from the suspension of disbelief) is included in this patch ( I didn't feel like editing it out of weapons.qc, if you want to, go ahead. ) Teamplay can only be voted to 1 or 0, so it won't work with enhanced teamplay patches which are activated by "teamplay x". Working on this. NOTE TO SERVER OPS If you're running a dedicated, up-most-of-the-time quakeserver and are using this patch on it, let me know; if I don't get any feedback I'll assume nobody's using it and quit working on it. THINGS TO LOOK FOR IN VERSION 3 More voting topics, such as : gravity, go to a specific map (not sure if this will be possible), kicking players who are being annoying (same here). Suggestions welcome. I recently saw (but haven't tried) a patch which forces teamplay, killing people who aren't obeying team rules. Sounds pretty cool; with the author's permission, I might include his code, enableable/disableable by user voting. LEGAL CRAP This patch may be freely distributed as long as no charge is made for it, (including CDROM or other for-profit compilation distributions) or for use of a server on which it is being run (which I don't think is legal anyway). I'd really rather you didn't use this as a base for your own patch, but I really can't stop you without going through even more legal BS, so go ahead if you feel the need. This is freeware, so no registration fee is required for it's use, but if you'd like to make a donation to a poor boy with a 486/66 8mb 14.4 machine, email me, I will be forever in your debt (I will also have more time and motivation to make more cool patches for you.) Kevin Bowen Lunatik flame@pacbell.net