id Software's Usenet Group Posts Archive!

quake/articles/1996/art-437



Path: mantis!not-for-mail


From: soft@iphthp.physik.uni-mainz.de (Johannes Plass)


Newsgroups: rec.games.computer.quake.announce


Subject: ANNOUNCE: ServerModules-1.8.2


Date: 2 Sep 1996 19:35:01 +0100


Organization: Johannes Gutenberg-Universität Mainz, Germany


Lines: 258


Sender: tony@mantis.co.uk


Approved: quake@mantis.co.uk


Message-ID: <507au0$hll@kralle.zdv.Uni-Mainz.DE>


Reply-To: plass@dipmza.physik.uni-mainz.de





The files


ServerModules-1.8.2.txt


ServerModules-1.8.2.zip


have been uploaded to ftp.cdrom.com and may be found in


ftp://ftp.cdrom.com/pub/quake/newstuff/


ftp://ftp.cdrom.com/pub/quake/quakec/misc/


soon.



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



###### Changes:


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



The following is an excerpt from the list of changes in version 1.8.2:



# Added module 'Telefrag' which reduces the risk of getting


telefragged by respawning players.



# Added module 'ExitRules' which forbids players to exit a level


too early.


Imposed ExitRules may only be overriden by player voting.



# Added module 'Vote' which allows players to use the command


vote-exit: to vote for exiting the current level immediately.


vote-exitrules: to vote for disabling the level's ExitRules.



# Added module 'LevelSelect' which allows to specify which levels are


offered on the server and in which order they are to be played.



# Observer: allow observers to pass through teleporters and


closed doors.


To ensure that observers flying around can not be noticed by


regular players, observers pass doors and teleporters silently.


That is, doors are not opened and teleporters don't produce fog


or sound when an observer slips through them.



# Observer: provide command 'observer-noclip' to turn clipping


on or off.



# Added module 'Init' which executes a series of 'init' calls on


the client side when a player connects to a server.


This module is used to set the skin of a player automatically.


See the module description for more details and an example


of what a player should add to his autoexec.cfg in order to


let the server auto-detect his favorite skin.



# Skin: removed the 'lookspring' lookup used for skin detection


since it didn't work (except under the unfortunate circumstances


used to test this feature).



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



###### Overview:



This is a set of deathmatch oriented QuakeC patches.


The patches are to be installed on servers only.


To a large extent they are organized in a module-like structure:



Module Telefrag:


Reduces the risk of getting telefragged by respawning players.


When a player respawns the module tries to find a spot which is not


occupied by another player. If such a spot is available the player


will respawn there. Only if no such spot is found the player will


respawn in occupied space, thereby telefragging another player.


Note that telefragging caused by players leaving teleporters is not


affected.



Module ExitRules:


Disallows to exit a level too early.


Players can only exit a level


- if at least one player has reached a minimum number of frags


(which is 40 by default).


- and if a certain time has passed on the current level (which


is 1 minute by default).


These ExitRules may be disabled by voting (see Module Vote).


The ExitRules valid for the current level are displayed when


the player enters the level.


Levels like 'dm1'-'dm6','start' and 'end' don't impose ExitRules.



Module Vote:


Allows decisions based on a majoriy of player votes.


Players may use the console commands


vote-exit: to vote for exiting a level immediately.


vote-exitrules: to vote for disabling the rules imposed by


the module ExitRules.


Votes are counted every few seconds.


Voting for exiting allows to leave levels which don't provide an


exit.


Voting via 'vote-exit' and 'vote-exitrules' may both be used to


override the ExitRules for the current level.


The console command 'help-vote' provides some help on available


voting options.



Module KickSuicider:


Players suiciding twice within two minutes are kicked out of the


game.



Module Observer:


As observer you just watch what's happening, without interacting


with other players or with the environment.


This especially means that other players will not notice you when you


are an observer.


As observer you can


- fly around.


- quickly jump to another observation point by pressing 'jump'.


- join the game as regular player by pressing 'fire'.


You can turn into an observer by pressing 'jump' when you


are dead.


When you connect to the server you automatically start as observer.


The command 'help-observer' provides help on the observer mode.



Module Motd:


When connecting to the server a message-of-the-day may be


center-printed to the player's screen.


A moment later, information about local server settings and


extensions is dumped to the player's console.



Module Skin:


This is a slightly improved version of Dennis Noordsij's


(lnoordsi@inter.NL.net) Multiskin, which allows players to use


different skins (see also section Acknowledgements below).


The improvements have the effect that


- corpses show the correct skin.


- skins are preserved across level changings (so that players


have to choose their skin only once).


- the commands 'skin-next' and 'skin-prev' may be used to change


the skin.


- the command 'help-skin' provides some help about available


commands.


- names for Multiskin-1.1 skins and for Top20Skins-1.0 skins are


shown when the player chooses a skin.


Players certainly still have to use proper player and player-head


model files containing the actual skins to be displayed.


ServerModules supports


- the MultiSkin 1.1 PLAYER.MDL file which may be found on


Dennis Noordsij's QuakeC page:


http://web.inter.NL.net/users/L.J.Noordsij/qc.htm


- the Top20Skins PLAYER.MDL and H_PLAYER.MDL file included in the


skin collection


ftp://ftp.cdrom.com/pub/quake/graphics/mdl/top20skins-1.0.zip


When using this set of skins gibbed heads will show the correct


skin also.



Module Init:


Allows client side initialization when connecting to the server


by causing the client to execute a sequence of 'init' commands.


Example:


A player puts the following lines into his autexec.cfg:


alias init init02


alias init02 "init-nextskin; alias init init03; " // skin 2


alias init03 "init-nextskin; alias init init04; " // skin 3


alias init04 "init-nextskin; alias init init05; " // skin 4


alias init05 "init-nextskin; alias init init06; " // skin 5


alias init06 "init-nextcall; alias init init07; color 3; "


alias init07 ""


These lines cause that a short time after the player connected


to the server


- he is assigned the skin number 5.


- his color changes to 3.


- he says 'Hi' to everybody else.


How it works:


The server first tells the client to execute the command 'init'.


The client executes 'init' which includes either 'init-nextskin'


or 'init-nextcall', both of which tell the server to again let


the client execute the command 'init'. This continues until in


the example above the empty assignment 'init07' terminates the


sequence. Apart from triggering the next step 'init-nextskin'


also increases the skin number by one.


Please note that this module is in an experimental state since


it is not clear how it works for high-ping-time/large-packet-loss


connections, so please tell me about your experiences.



Module LevelSelect:


Allows to specify which levels are offered on the server and in which


order they are to be played.


By default this module is used to modify the original level order


such that instead of the end level the level sequence dm1-...-dm6-end


is played when selecting the end map on the start level (the players


must exit the levels dm1-dm6 and end by voting (see Module Vote)).



Module Messages:


Allows to selectively enable or disable messages about picking up ammo,


armor, backpacks, keys, health, powerups and weapons.


By default these messages are suppressed.



Module Rank:


The command 'rank' displays a sorted ranking table with entries


in the format


X TOTAL = KILLS DEATHS ACCIDENTS = PLAYER


where


X = letter 'D' if the player is dead, letter 'O' if


the player is an observer


PLAYER = the name of the player


TOTAL = his total score


KILLS = how many he killed


DEATHS = how often he got killed by other players


ACCIDENTS = number of self-caused, deathly accidents


A Suicide counts as double-accident.


The default formula for calculating TOTAL is


TOTAL = 3*KILLS - DEATHS - 3*ACCIDENTS


The command 'help-rank' provides help on the format of the ranking


table and should explain the (local) formula used to calculate the


total score as well.



Module ServerConsole:


Does nothing except except of printing some messages to the server


console when a player suicides, is killed, enters the game or is


telefragged by another player.



Module ServerHelp:


Provides the command 'server-help', used to display some help on


server settings and extensions in the player console.



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



###### Copyright:


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



/*


**


** Copyright (C) 1996 Johannes Plass


**


** This program is free software; you can redistribute it and/or modify


** it under the terms of the GNU General Public License as published by


** the Free Software Foundation; either version 2 of the License, or


** (at your option) any later version.


**


** This program is distributed in the hope that it will be useful,


** but WITHOUT ANY WARRANTY; without even the implied warranty of


** MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the


** GNU General Public License for more details.


**


** You should have received a copy of the GNU General Public License


** along with this program; if not, write to the Free Software


** Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.


**


** Author: Johannes Plass (plass@dipmza.physik.uni-mainz.de)


**


*/



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



###### Acknowledgements:


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



The module 'Skin' is based on Dennis Noordsij's (lnoordsi@inter.NL.net)


Multiskin QuakeC patch.


Please see Dennis Noordsij's QuakeC page


http://web.inter.NL.net/users/L.J.Noordsij/qc.htm


for further details about MultiSkin.




Regards,



Johannes Plass (plass@dipmza.physik.uni-mainz.de)