]> git.xonotic.org Git - xonotic/xonotic.git/commitdiff
convert the txt files explicitly to DOS format, and make them "binary" in .gitattributes
authorRudolf Polzer <divVerent@xonotic.org>
Wed, 24 Aug 2011 21:06:12 +0000 (23:06 +0200)
committerRudolf Polzer <divVerent@xonotic.org>
Wed, 24 Aug 2011 21:06:12 +0000 (23:06 +0200)
Docs/.gitattributes [new file with mode: 0644]
Docs/compile-settings.txt
Docs/egyptsoc/egyptsoc_readme.txt
Docs/egyptsoc/permission.txt
Docs/eventlog.txt
Docs/htmlfiles/weaponimg/weapon-images.txt
Docs/mapdownload.txt
Docs/mapping.txt
Docs/scorelog.txt

diff --git a/Docs/.gitattributes b/Docs/.gitattributes
new file mode 100644 (file)
index 0000000..f96575f
--- /dev/null
@@ -0,0 +1 @@
+*.txt -crlf
index 847f7cb997961472a50d8cdc8a2a071786258b52..851432c55a16299783c2a8cf203bd85022bb48d3 100644 (file)
@@ -1,50 +1,50 @@
-This file contains the q3map2 compile settings used to compile the maps that are part of Nexuiz.
-There are also compile-scripts for some maps (mapname.sh). 
-They can be found in your Nexuiz/data/maps folder
-
-------------
-Standard
-------------
-
-"...q3map2.exe" -meta "...nexuizmap.map"
-"...q3map2.exe" -vis "...nexuizmap.bsp"
-"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...nexuizmap.bsp"
-
-------------
-Only update the entities.
-------------
-
-"...q3map2.exe" -onlyents "...nexuizmap.map"
-
-------------
-bloodprison.map
-------------
-
-"...q3map2.exe" -meta -samplesize 8 -mv 1000000 -mi 6000000 "...bloodprisonctf.map"
-"...q3map2.exe" -scale 1.2 "...bloodprisonctf.bsp"
-"...q3map2.exe" -vis "...bloodprisonctf.bsp"
-"...q3map2.exe" -light -deluxe -fast -filter -deluxe -patchshadows -samples 3 "...bloodprisonctf.bsp"
-
-------------
-final_rage.map
-------------
-
-"...q3map2.exe" -meta -v -samplesize 8 -skyfix -np 50 "...final_rage.map"
-"...q3map2.exe" -vis -v "...final_rage.map"
-"...q3map2.exe" -light -deluxe -compensate 1.4 -fast -gamma 1.5 -patchshadows -areascale 1.5 -pointscale 2 -v -bounce 3 -bouncegrid "...final_rage.map"
-
-------------
-reslimed.map
-------------
-
-"...q3map2.exe" -meta -patchmeta -v "...reslimed.map"
-"...q3map2.exe" -vis "...reslimed.bsp"
-"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...reslimed.bsp"
-
-------------
-strength.map
-------------
-
-"...q3map2.exe" -meta "...strength.map"
-"...q3map2.exe" -vis "...strength.bsp"
-"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...strength.bsp"
+This file contains the q3map2 compile settings used to compile the maps that are part of Nexuiz.\r
+There are also compile-scripts for some maps (mapname.sh). \r
+They can be found in your Nexuiz/data/maps folder\r
+\r
+------------\r
+Standard\r
+------------\r
+\r
+"...q3map2.exe" -meta "...nexuizmap.map"\r
+"...q3map2.exe" -vis "...nexuizmap.bsp"\r
+"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...nexuizmap.bsp"\r
+\r
+------------\r
+Only update the entities.\r
+------------\r
+\r
+"...q3map2.exe" -onlyents "...nexuizmap.map"\r
+\r
+------------\r
+bloodprison.map\r
+------------\r
+\r
+"...q3map2.exe" -meta -samplesize 8 -mv 1000000 -mi 6000000 "...bloodprisonctf.map"\r
+"...q3map2.exe" -scale 1.2 "...bloodprisonctf.bsp"\r
+"...q3map2.exe" -vis "...bloodprisonctf.bsp"\r
+"...q3map2.exe" -light -deluxe -fast -filter -deluxe -patchshadows -samples 3 "...bloodprisonctf.bsp"\r
+\r
+------------\r
+final_rage.map\r
+------------\r
+\r
+"...q3map2.exe" -meta -v -samplesize 8 -skyfix -np 50 "...final_rage.map"\r
+"...q3map2.exe" -vis -v "...final_rage.map"\r
+"...q3map2.exe" -light -deluxe -compensate 1.4 -fast -gamma 1.5 -patchshadows -areascale 1.5 -pointscale 2 -v -bounce 3 -bouncegrid "...final_rage.map"\r
+\r
+------------\r
+reslimed.map\r
+------------\r
+\r
+"...q3map2.exe" -meta -patchmeta -v "...reslimed.map"\r
+"...q3map2.exe" -vis "...reslimed.bsp"\r
+"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...reslimed.bsp"\r
+\r
+------------\r
+strength.map\r
+------------\r
+\r
+"...q3map2.exe" -meta "...strength.map"\r
+"...q3map2.exe" -vis "...strength.bsp"\r
+"...q3map2.exe" -light -bounce 3 -deluxe -fast -filter -patchshadows -samples 2 "...strength.bsp"\r
index a457e02b3f548bb9615f14ac618298a642bdeb2a..0bed9ea60d55706933ddca9417c3d16e2657ae94 100644 (file)
@@ -1,61 +1,61 @@
-============================================================
-Date:             13th August 2001.
-file:             tp-egyptian.zip
-author:           Sock 
-email:            sock@planetquake.com
-URL:              http://www.planetquake.com/simland
-New URL:          http://www.simonoc.com/pages/materials/tpegypt/index.htm
-Version:          1.5
-
-============================================================
-
-COPYRIGHT NOTICES
------------------
-
-If you use any of these Egyptian shader/textures I kindly ask
-YOU to give me credit for my work within your README file or
-TEXT file distributed with your map/mod.
-
-============================================================
-
-Testing of Shaders
-------------------
-
-* All of the shaders included with this texture pack have been 
-  tested with Q3 point release 1.27g.
-
-============================================================
-
-Instructions for using the Egyptian Texture Pack
----------------------------------------------------
-
-** You must have installed the Q3 editor tools first **
-
-1. Extract the tp-egyptian.zip file in the BASEQ3 directory.
-   This will create 6 texture directory under the
-   BASEQ3/TEXTURES directory as follows :-
-
-   BASEQ3/TEXTURES/EGYPTSOC_FLOOR
-   BASEQ3/TEXTURES/EGYPTSOC_MAT
-   BASEQ3/TEXTURES/EGYPTSOC_SFX
-   BASEQ3/TEXTURES/EGYPTSOC_TRIM
-   BASEQ3/TEXTURES/EGYPTSOC_TRIMD
-   BASEQ3/TEXTURES/EGYPTSOC_WALL
-   
-2. Goto the SCRIPTS sub-directory under the BASEQ3
-   directory and find the following 
-   file :- SHADERLIST.TXT.
-   
-3. Open this file up in a text editor and add the
-   following line at the bottom of the file.
-   
-   EGYPTSOC
-   
-4. Close the file and open Q3Radiant and you should
-   find on the texture menu the 1 new subdirectory.
-
-For a full explaination of each texture/shader please
-refer to the website.
-
-Enjoy
-Sock
+============================================================\r
+Date:             13th August 2001.\r
+file:             tp-egyptian.zip\r
+author:           Sock \r
+email:            sock@planetquake.com\r
+URL:              http://www.planetquake.com/simland\r
+New URL:          http://www.simonoc.com/pages/materials/tpegypt/index.htm\r
+Version:          1.5\r
+\r
+============================================================\r
+\r
+COPYRIGHT NOTICES\r
+-----------------\r
+\r
+If you use any of these Egyptian shader/textures I kindly ask\r
+YOU to give me credit for my work within your README file or\r
+TEXT file distributed with your map/mod.\r
+\r
+============================================================\r
+\r
+Testing of Shaders\r
+------------------\r
+\r
+* All of the shaders included with this texture pack have been \r
+  tested with Q3 point release 1.27g.\r
+\r
+============================================================\r
+\r
+Instructions for using the Egyptian Texture Pack\r
+---------------------------------------------------\r
+\r
+** You must have installed the Q3 editor tools first **\r
+\r
+1. Extract the tp-egyptian.zip file in the BASEQ3 directory.\r
+   This will create 6 texture directory under the\r
+   BASEQ3/TEXTURES directory as follows :-\r
+\r
+   BASEQ3/TEXTURES/EGYPTSOC_FLOOR\r
+   BASEQ3/TEXTURES/EGYPTSOC_MAT\r
+   BASEQ3/TEXTURES/EGYPTSOC_SFX\r
+   BASEQ3/TEXTURES/EGYPTSOC_TRIM\r
+   BASEQ3/TEXTURES/EGYPTSOC_TRIMD\r
+   BASEQ3/TEXTURES/EGYPTSOC_WALL\r
+   \r
+2. Goto the SCRIPTS sub-directory under the BASEQ3\r
+   directory and find the following \r
+   file :- SHADERLIST.TXT.\r
+   \r
+3. Open this file up in a text editor and add the\r
+   following line at the bottom of the file.\r
+   \r
+   EGYPTSOC\r
+   \r
+4. Close the file and open Q3Radiant and you should\r
+   find on the texture menu the 1 new subdirectory.\r
+\r
+For a full explaination of each texture/shader please\r
+refer to the website.\r
+\r
+Enjoy\r
+Sock\r
index 324729d1e6584f30d56e92484b0621836b9c203b..52666e6ffc68be2ea505033d8e5ad3699400016a 100644 (file)
@@ -1,11 +1,11 @@
-Hello, 
-
-greetings from a conference in greece. I just got permission from Simon O'Callaghan to distribute the textures from http://www.simonoc.com/pages/materials/tpegypt/index.htm under the terms of the GPL with future versions of Nexuiz, provided classical attribution is given and that the game documentation includes a link to http://www.simonoc.com/pages/materials.htm so artists can find his stuff. 
-
-Thanks alot Simon! 
-
-This is good news, as some Nexuiz community maps use these textures, albeit as of yet licensed under a GPL-incompatible Creative Commons license. 
-
-Does anybody feel like creating bumpmaps/normalmaps and glossmaps for that set of textures?
-
--- SavageX
+Hello, \r
+\r
+greetings from a conference in greece. I just got permission from Simon O'Callaghan to distribute the textures from http://www.simonoc.com/pages/materials/tpegypt/index.htm under the terms of the GPL with future versions of Nexuiz, provided classical attribution is given and that the game documentation includes a link to http://www.simonoc.com/pages/materials.htm so artists can find his stuff. \r
+\r
+Thanks alot Simon! \r
+\r
+This is good news, as some Nexuiz community maps use these textures, albeit as of yet licensed under a GPL-incompatible Creative Commons license. \r
+\r
+Does anybody feel like creating bumpmaps/normalmaps and glossmaps for that set of textures?\r
+\r
+-- SavageX\r
index 1152b4346959b45dcccb472cb42dd9392164f11c..030ba52f28a4a30c2794979fb849fa57264b8d3a 100644 (file)
-cvars:
-______________
-
-   sv_eventlog                    master switch (default: 0)
-   sv_eventlog_files              print frags, scores and captures for separate files each match (default: 0)
-   sv_eventlog_console            print frags, scores and captures to serverconsole during the match (default: 1)
-   sv_logscores_bots              choose whether bot are included in stats or not (default: 0)
-                                
-   sv_eventlog_files_counter      number of matches logged until now
-   sv_eventlog_files_nameprefix   file name prefix to be used (default: nexuiz)
-   sv_eventlog_files_namesuffix   file name extension to be used (default: .log)
-   sv_eventlog_files_timestamps   prefix log lines in the files with :time events (default: 1)
-
-log format:
-______________
-
-   :logversion:3
-   :gamestart:<gametype>_<mapname>:<matchid>
-   :gameinfo:mutators:LIST:mutator1:mutator2:...
-
-      (note that mutators are listed by their cvar name with g_ removed,
-      unless such a cvar is 1 by default - then the mutator is listed with
-      a no_ prefix if the cvar is 0)
-
-   :gameinfo:end
-   :join:<ID>:<slot>:<ip>:<nickname>
-   :join:<ID>:<slot>:bot:<nickname>
-   :name:<ID>:<nickname>
-   :part:<ID>
-   :team:<ID>:<team>:<jointype>
-   :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
-   :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>
-   :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>
-   :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>
-   :ctf:steal:<flagcolor>:<ID of attacker>
-   :ctf:dropped:<flagcolor>:<ID of dropper>
-   :ctf:pickup:<flagcolor>:<ID of attacker>
-   :ctf:capture:<flagcolor>:<ID of attacker>
-   :ctf:return:<flagcolor>:<ID of defender>
-   :ctf:returned:<flagcolor>
-   :dom:taken:<previouscolor>:<ID of player>
-   :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:destroyed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:destroyed_holdingkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:dropkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:losekey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:push:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :keyhunt:pushed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>
-   :scores:<gametype>_<mapname>:<map runtime>
-   :labels:player:<head1><flags>,<head2><flags>,...
-   :player:see-labels:<score1>,<score2>,...:<playtime>:<team>:<ID>:<nickname>
-   :player:see-labels:<score1>,<score2>,...:<playtime>:spectator:<ID>:<nickname>
-   :labels:teamscores:<head1><flags>,<head2><flags>,...
-   :teamscores:see-labels:<score1>,<score2>,...:<team>
-   :end
-   :restart
-   :gameover
-   :vote:suggested:<mapname>:<playerid>
-   :vote:keeptwo:<mapname>:<mapvotes>:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:...:didn't vote:<notvoters>
-   :vote:finished:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:<mapname>:<mapvotes>:...:didn't vote:<notvoters>
-   :vote:suggestion_accepted:<mapname>
-   :vote:vcall:<ID of player>:<vote command display string>
-   :vote:vyes:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
-   :vote:vno:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
-   :vote:vtimeout:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>
-   :vote:vstop:<ID of stopper>
-   :vote:vlogin:<ID of player>
-   :vote:vdo:<ID of player>:<do command display string>
-   :time:<YYYY-MM-DD HH:MM:SS>
-   :recordset:<ID of player>:<time in seconds>
-
-   Note that only the :join and :player lines ever contain player names. The
-   :time event only appears in the log files if sv_eventlog_files_timestamps
-   is 1; there is no way to log these time stamps to the console (for console
-   timestamps, set timestamps to 1).
-
-team colors:
-    1 = No Team (Domination)
-    5 = Red Team
-   14 = Blue Team
-   13 = Yellow Team
-   10 = Pink Team
-
-join types:
-    1 = connect
-    2 = auto
-    3 = manual
-    4 = spectating
-    6 = adminmove
-
-label flags:
-   !! = primary sorting key
-   <!! = primary sorting key, lower is better
-   ! = secondary sorting key
-   <! = secondary sorting key, lower is better
-   < = lower is better
-
-itemstring:
-   <weaponid><flags>
-   or
-   <weaponid><flags>|<runes>
-
-   where flags can contain:
-         F = player carries the flag
-         S = player has strength
-         I = player has the shield
-         T = player is typing (console, menu or chat)
-   
-   and weapon IDs are:
-         1 = Laser
-                2 = Shotgun
-                3 = Uzi
-         4 = Mortar
-         5 = Electro
-         6 = Crylink
-         7 = Nex
-         8 = Hagar
-         9 = Rocket Launcher
-        10 = Port-O-Launch
-        11 = MinstaNex
-        12 = Grappling Hook
-        13 = Heavy Laser Assault Cannon
-        14 = T.A.G. Seeker
-
-   runes/curses are stored as a bit mask with the following values:
-         1 = Strength
-         2 = Defense
-         4 = Regeneration
-         8 = Speed
-        16 = Vampire
-      8192 = Weakness
-     16384 = Vulnerability
-     32768 = Venom
-     65536 = Slow
-    131072 = Empathy
-
-death type:
-   either a weapon ID ORed with weapon death flags, or one of:
-     10000 = fallen to death
-     10001 = telefragged
-     10002 = drowned
-     10003 = killed by a trap / fallen into the void
-     10004 = lava
-     10005 = slime
-     10006 = console kill
-     10007 = (MinstaGib) out of ammo
-     10008 = swamp
-     10009 = team change
-     10010 = auto team change
-     10011 = camping protection
-        10012 = player became too fast (should never happen)
-        10013 = health rot
-        10014 = mirror damage
-        10015 = g_touchexplode
-        10100 = turret
-       10150 = spiderbot miniguns
-       10151 = spiderbot rocket
-       10152 = spiderbot, cushed by
-       10300 = custom deathmessage
-
-   weapon death flags are:
-       256 = secondary fire
-          512 = splash damage
-         1024 = bounced projectile
-         2048 = head shot (MinstaNex only)
-         4096 = unused flag
-
-There will be a log analyzer parsing this file format soon. Note that weapon
-IDs are below 10000.
+cvars:\r
+______________\r
+\r
+   sv_eventlog                    master switch (default: 0)\r
+   sv_eventlog_files              print frags, scores and captures for separate files each match (default: 0)\r
+   sv_eventlog_console            print frags, scores and captures to serverconsole during the match (default: 1)\r
+   sv_logscores_bots              choose whether bot are included in stats or not (default: 0)\r
+                                \r
+   sv_eventlog_files_counter      number of matches logged until now\r
+   sv_eventlog_files_nameprefix   file name prefix to be used (default: nexuiz)\r
+   sv_eventlog_files_namesuffix   file name extension to be used (default: .log)\r
+   sv_eventlog_files_timestamps   prefix log lines in the files with :time events (default: 1)\r
+\r
+log format:\r
+______________\r
+\r
+   :logversion:3\r
+   :gamestart:<gametype>_<mapname>:<matchid>\r
+   :gameinfo:mutators:LIST:mutator1:mutator2:...\r
+\r
+      (note that mutators are listed by their cvar name with g_ removed,\r
+      unless such a cvar is 1 by default - then the mutator is listed with\r
+      a no_ prefix if the cvar is 0)\r
+\r
+   :gameinfo:end\r
+   :join:<ID>:<slot>:<ip>:<nickname>\r
+   :join:<ID>:<slot>:bot:<nickname>\r
+   :name:<ID>:<nickname>\r
+   :part:<ID>\r
+   :team:<ID>:<team>:<jointype>\r
+   :kill:frag:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
+   :kill:tk:<ID of killer>:<ID of victim>:type=<death type>:items=<itemstring of killer>:victimitems=<itemstring of victim>\r
+   :kill:suicide:<ID>:<ID>:type=<death type>:items=<itemstring>\r
+   :kill:accident:<ID>:<ID>:type=<death type>:items=<itemstring>\r
+   :ctf:steal:<flagcolor>:<ID of attacker>\r
+   :ctf:dropped:<flagcolor>:<ID of dropper>\r
+   :ctf:pickup:<flagcolor>:<ID of attacker>\r
+   :ctf:capture:<flagcolor>:<ID of attacker>\r
+   :ctf:return:<flagcolor>:<ID of defender>\r
+   :ctf:returned:<flagcolor>\r
+   :dom:taken:<previouscolor>:<ID of player>\r
+   :keyhunt:capture:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:carrierfrag:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:collect:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:destroyed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:destroyed_holdingkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:dropkey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:losekey:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:push:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :keyhunt:pushed:<ID of player>:<points for player>:<ID of key owner>:<points for key owner>:<name of key>\r
+   :scores:<gametype>_<mapname>:<map runtime>\r
+   :labels:player:<head1><flags>,<head2><flags>,...\r
+   :player:see-labels:<score1>,<score2>,...:<playtime>:<team>:<ID>:<nickname>\r
+   :player:see-labels:<score1>,<score2>,...:<playtime>:spectator:<ID>:<nickname>\r
+   :labels:teamscores:<head1><flags>,<head2><flags>,...\r
+   :teamscores:see-labels:<score1>,<score2>,...:<team>\r
+   :end\r
+   :restart\r
+   :gameover\r
+   :vote:suggested:<mapname>:<playerid>\r
+   :vote:keeptwo:<mapname>:<mapvotes>:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
+   :vote:finished:<mapname>:<mapvotes>:::<mapname>:<mapvotes>:<mapname>:<mapvotes>:...:didn't vote:<notvoters>\r
+   :vote:suggestion_accepted:<mapname>\r
+   :vote:vcall:<ID of player>:<vote command display string>\r
+   :vote:vyes:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
+   :vote:vno:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
+   :vote:vtimeout:<yescount>:<nocount>:<abstaincount>:<notvoters>:<mincount>\r
+   :vote:vstop:<ID of stopper>\r
+   :vote:vlogin:<ID of player>\r
+   :vote:vdo:<ID of player>:<do command display string>\r
+   :time:<YYYY-MM-DD HH:MM:SS>\r
+   :recordset:<ID of player>:<time in seconds>\r
+\r
+   Note that only the :join and :player lines ever contain player names. The\r
+   :time event only appears in the log files if sv_eventlog_files_timestamps\r
+   is 1; there is no way to log these time stamps to the console (for console\r
+   timestamps, set timestamps to 1).\r
+\r
+team colors:\r
+    1 = No Team (Domination)\r
+    5 = Red Team\r
+   14 = Blue Team\r
+   13 = Yellow Team\r
+   10 = Pink Team\r
+\r
+join types:\r
+    1 = connect\r
+    2 = auto\r
+    3 = manual\r
+    4 = spectating\r
+    6 = adminmove\r
+\r
+label flags:\r
+   !! = primary sorting key\r
+   <!! = primary sorting key, lower is better\r
+   ! = secondary sorting key\r
+   <! = secondary sorting key, lower is better\r
+   < = lower is better\r
+\r
+itemstring:\r
+   <weaponid><flags>\r
+   or\r
+   <weaponid><flags>|<runes>\r
+\r
+   where flags can contain:\r
+         F = player carries the flag\r
+         S = player has strength\r
+         I = player has the shield\r
+         T = player is typing (console, menu or chat)\r
+   \r
+   and weapon IDs are:\r
+         1 = Laser\r
+                2 = Shotgun\r
+                3 = Uzi\r
+         4 = Mortar\r
+         5 = Electro\r
+         6 = Crylink\r
+         7 = Nex\r
+         8 = Hagar\r
+         9 = Rocket Launcher\r
+        10 = Port-O-Launch\r
+        11 = MinstaNex\r
+        12 = Grappling Hook\r
+        13 = Heavy Laser Assault Cannon\r
+        14 = T.A.G. Seeker\r
+\r
+   runes/curses are stored as a bit mask with the following values:\r
+         1 = Strength\r
+         2 = Defense\r
+         4 = Regeneration\r
+         8 = Speed\r
+        16 = Vampire\r
+      8192 = Weakness\r
+     16384 = Vulnerability\r
+     32768 = Venom\r
+     65536 = Slow\r
+    131072 = Empathy\r
+\r
+death type:\r
+   either a weapon ID ORed with weapon death flags, or one of:\r
+     10000 = fallen to death\r
+     10001 = telefragged\r
+     10002 = drowned\r
+     10003 = killed by a trap / fallen into the void\r
+     10004 = lava\r
+     10005 = slime\r
+     10006 = console kill\r
+     10007 = (MinstaGib) out of ammo\r
+     10008 = swamp\r
+     10009 = team change\r
+     10010 = auto team change\r
+     10011 = camping protection\r
+        10012 = player became too fast (should never happen)\r
+        10013 = health rot\r
+        10014 = mirror damage\r
+        10015 = g_touchexplode\r
+        10100 = turret\r
+       10150 = spiderbot miniguns\r
+       10151 = spiderbot rocket\r
+       10152 = spiderbot, cushed by\r
+       10300 = custom deathmessage\r
+\r
+   weapon death flags are:\r
+       256 = secondary fire\r
+          512 = splash damage\r
+         1024 = bounced projectile\r
+         2048 = head shot (MinstaNex only)\r
+         4096 = unused flag\r
+\r
+There will be a log analyzer parsing this file format soon. Note that weapon\r
+IDs are below 10000.\r
index b8c06a28d6cbedbec528015d940d60f3e46b8b67..1ce898bf370b4d87eef2eff301808d1675c685e9 100644 (file)
@@ -1,14 +1,14 @@
-Made using the included map file (edited to contain the name of the current gun) at fov 90, 1280x768, normal settings except gl_picmip 0.
-
-Partial image cropped out, then edited using ImageMagick with the parameters
-
--level -3%,70%,1 -geometry 209x240
-
-respective
-
--level -3%,70%,1 -geometry 162x80
-
-The crop regions were:
-
-firstperson = bottom 627x310 pixels (later scaled down to 240 height)
-thirdperson = 288x331 pixels, anchored at the right foot of marine (bottom left corner on the image)
+Made using the included map file (edited to contain the name of the current gun) at fov 90, 1280x768, normal settings except gl_picmip 0.\r
+\r
+Partial image cropped out, then edited using ImageMagick with the parameters\r
+\r
+-level -3%,70%,1 -geometry 209x240\r
+\r
+respective\r
+\r
+-level -3%,70%,1 -geometry 162x80\r
+\r
+The crop regions were:\r
+\r
+firstperson = bottom 627x310 pixels (later scaled down to 240 height)\r
+thirdperson = 288x331 pixels, anchored at the right foot of marine (bottom left corner on the image)\r
index d7692000ee90fce5f86bed668a15a427be7fe2a5..66386b0fe6a756940884ab4122e72c4408cf7afd 100644 (file)
@@ -1,98 +1,98 @@
-map download:
-______________
-
-
-CLIENT SIDE:
-
-Should already work without configuration. You can however use the following
-cvars for further tuning:
-
-   cl_curl_enabled              download support enabled (master switch, default: 1)
-   cl_curl_maxdownloads         maximum number of downloads at once (default: 1)
-   cl_curl_maxspeed             maximum total speed in KiB/s (default: 100)
-
-Downloaded packages end up in |Nexuiz/data/dlcache/| or
-|~/.nexuiz/data/dlcache/| and are only used till you exit Nexuiz.
- If you want to play them localy or use them to setup a server of your
-own you can "accept" the packages by moving it one level up - right
-next to your config.cfg.
-
-You should regularily clean up your cache to save space and make the maps
-you really want available from the menu.
-
-
-SERVER SIDE:
-
-First of all, you need a HTTP or FTP server to host your PK3s. You can either
-use some web space provider, or set up your own. For this, use any FTP or HTTP
-server software you want (HTTP: lighttpd, Apache, thttpd; FTP: Filezilla,
-vsftpd). HTTP is to be preferred because it works better for firewalled
-players.
-
-On the server, you need to set up where to download the PK3s of the maps you
-are running. You can either use the cvar
-
-   sv_curl_defaulturl           default download URL
-
-to set it to some site, or put a file named "curl_urls.txt" in the data
-directory of the following format:
-
-   pattern        url
-   pattern        url
-   pattern        url
-   ...
-
-where always the first wildcard pattern match is taken.
-
-   data*          -
-   strale*        http://stralemaps.invalid/
-   *              http://all.the.other.stuff.invalid/id/here.php?pak=
-   foo*           http://wont.get.here.invalid/
-
-The pk3 name will be appended to the URL by DarkPlaces. Note that you NEED to
-append a trailing slash if you refer to a directory. If you specify a "-" as
-URL, the package will not be offered for download.
-
-
-INFORMATION FOR MIRROR/MAP SERVER ADMINS:
-
-The Referer is always set to dp://serverhost:serverport/, the User-Agent
-always starts with "Nexuiz". Look at this sample log line:
-
-141.2.16.3 - - [06/Jun/2006:19:43:14 +0000] "GET /~polzer/temp/nexmaps.php?filename=o-fun.pk3 HTTP/1.1" 302 - "dp://141.2.16.3:26000/" "Nexuiz Linux 21:26:17 Jun  6 2006"
-
-
-If you want to set up a redirection service, here is a sample PHP code for you
-to start from:
-
-<?
-
-function findmap($filename)
-{
-    # insert your database query or whatever you want here
-    if($filename == "foo.pk3")
-        return "http://barserver.invalid/foo.pk3";
-    return FALSE;
-}
-
-function bailout($code, $title, $message)
-{
-    header("HTTP/1.1 $code $title");
-    echo "<html><title>$title</title><h1>$title</h1>$message</html>";
-    exit(0);
-}   
-
-$filename = $_GET['filename'];
-
-$useragent = getenv("HTTP_USER_AGENT");
-if(strpos($useragent, "Nexuiz ") !== 0)
-    bailout(403, "Forbidden", "You're not a Nexuiz client.");
-    
-$url = findmap($filename);
-if(!$url)
-    bailout(404, "Not Found", "Well... try another file name?");
-    
-header("HTTP/1.1 302 Moved Temporarily");
-header("Location: $url");
-
-?>
+map download:\r
+______________\r
+\r
+\r
+CLIENT SIDE:\r
+\r
+Should already work without configuration. You can however use the following\r
+cvars for further tuning:\r
+\r
+   cl_curl_enabled              download support enabled (master switch, default: 1)\r
+   cl_curl_maxdownloads         maximum number of downloads at once (default: 1)\r
+   cl_curl_maxspeed             maximum total speed in KiB/s (default: 100)\r
+\r
+Downloaded packages end up in |Nexuiz/data/dlcache/| or\r
+|~/.nexuiz/data/dlcache/| and are only used till you exit Nexuiz.\r
+ If you want to play them localy or use them to setup a server of your\r
+own you can "accept" the packages by moving it one level up - right\r
+next to your config.cfg.\r
+\r
+You should regularily clean up your cache to save space and make the maps\r
+you really want available from the menu.\r
+\r
+\r
+SERVER SIDE:\r
+\r
+First of all, you need a HTTP or FTP server to host your PK3s. You can either\r
+use some web space provider, or set up your own. For this, use any FTP or HTTP\r
+server software you want (HTTP: lighttpd, Apache, thttpd; FTP: Filezilla,\r
+vsftpd). HTTP is to be preferred because it works better for firewalled\r
+players.\r
+\r
+On the server, you need to set up where to download the PK3s of the maps you\r
+are running. You can either use the cvar\r
+\r
+   sv_curl_defaulturl           default download URL\r
+\r
+to set it to some site, or put a file named "curl_urls.txt" in the data\r
+directory of the following format:\r
+\r
+   pattern        url\r
+   pattern        url\r
+   pattern        url\r
+   ...\r
+\r
+where always the first wildcard pattern match is taken.\r
+\r
+   data*          -\r
+   strale*        http://stralemaps.invalid/\r
+   *              http://all.the.other.stuff.invalid/id/here.php?pak=\r
+   foo*           http://wont.get.here.invalid/\r
+\r
+The pk3 name will be appended to the URL by DarkPlaces. Note that you NEED to\r
+append a trailing slash if you refer to a directory. If you specify a "-" as\r
+URL, the package will not be offered for download.\r
+\r
+\r
+INFORMATION FOR MIRROR/MAP SERVER ADMINS:\r
+\r
+The Referer is always set to dp://serverhost:serverport/, the User-Agent\r
+always starts with "Nexuiz". Look at this sample log line:\r
+\r
+141.2.16.3 - - [06/Jun/2006:19:43:14 +0000] "GET /~polzer/temp/nexmaps.php?filename=o-fun.pk3 HTTP/1.1" 302 - "dp://141.2.16.3:26000/" "Nexuiz Linux 21:26:17 Jun  6 2006"\r
+\r
+\r
+If you want to set up a redirection service, here is a sample PHP code for you\r
+to start from:\r
+\r
+<?\r
+\r
+function findmap($filename)\r
+{\r
+    # insert your database query or whatever you want here\r
+    if($filename == "foo.pk3")\r
+        return "http://barserver.invalid/foo.pk3";\r
+    return FALSE;\r
+}\r
+\r
+function bailout($code, $title, $message)\r
+{\r
+    header("HTTP/1.1 $code $title");\r
+    echo "<html><title>$title</title><h1>$title</h1>$message</html>";\r
+    exit(0);\r
+}   \r
+\r
+$filename = $_GET['filename'];\r
+\r
+$useragent = getenv("HTTP_USER_AGENT");\r
+if(strpos($useragent, "Nexuiz ") !== 0)\r
+    bailout(403, "Forbidden", "You're not a Nexuiz client.");\r
+    \r
+$url = findmap($filename);\r
+if(!$url)\r
+    bailout(404, "Not Found", "Well... try another file name?");\r
+    \r
+header("HTTP/1.1 302 Moved Temporarily");\r
+header("Location: $url");\r
+\r
+?>\r
index ebbb3d689cf49826251fcf303175aebbbfc85501..6a120886718db2b2f6fc949017313c2cb48e627e 100644 (file)
-==============
-=Mapping Help=
-==============
-
-While I can't help you make a map, I can help you get it listed in the menu and
-working in the maplist. :p  The central object is the .mapinfo file, but
-there's much more available.
-
-Table of Contents
------------------
-I        Map Lists & Scripts
-         (get your map listed and working)
-  i.     mapinfo
-  ii.    mapname.cfg
-
-II       Map Image
-
-III      Domination
-
-IV       CTF
-
-V        Rune Match
-
-VI       Race/CTS
-
-VII      Nexball
-
-Appendix A - Advanced mapinfo
-
-Appendix B - Helpful extras
-  i.     Team Colors
-  ii.    Text Colors
-
-Appendix C - Advanced Darkplaces shaders
-
-========================
-=I. Map Lists & Scripts=
-========================
-
-There now is just a single script/cfg file available to you, containing all map
-specific settings:
-
-mapname.mapinfo
-
-The mapinfo is actually required - however, the game is so nice that it
-automatically generates a draft of it for you.
-
-------------------
--The mapinfo file-
-------------------
-
-*cue even more scary music*
-
-The mapinfo file is basically what gets your map listed in the menu, and sets
-up the options needed to change to it. If no mapinfo file exists, the menu
-will automatically generate a rough draft for you on game startup. It will get
-stored into data/data/mapname.mapinfo.
-
-As an example, let's say I make a map called "wazat1.bsp". As long as I'm
-fantasizing, I might as well say this map is so well done I'm actually willing
-to release it for friends, neighbors, fellow forum visitors and other people
-who like me to judge me by. Let's also assume that I want domination,
-deathmatch/team deathmatch and runematch to all be playable on my map.
-
-This is very easy. First, I start the game and exit it again so the game writes
-data/data/wazat1.mapinfo for me. The file may look like:
-
-    title Wazat's Great Map
-    description Bleh.
-    author Unknown
-    _diameter 1966.839355
-    _spawnpoints 5
-    has weapons
-       cdtrack 5
-    gametype dm // defaults: timelimit=20 pointlimit=30 leadlimit=0
-    gametype dom // defaults: timelimit=20 pointlimit=200 teams=2 leadlimit=0
-    gametype rune // defaults: timelimit=20 pointlimit=200 leadlimit=0
-    gametype lms // defaults: timelimit=20 lives=9 leadlimit=0
-    gametype arena // defaults: timelimit=20 pointlimit=10 leadlimit=0
-
-As I see, the menu autodetected that my map may be suitable for deathmatch,
-domination, runematch, last man standing and arena. But I want the map to be
-played in domination, deathmatch, team deathmatch, runematch only, and I also
-want different timelimits/fraglimits, so I will change the "gametype" lines to:
-
-    gametype dom pointlimit=100 timelimit=15
-    gametype rune pointlimit=1000 timelimit=25
-    gametype dm pointlimit=40 timelimit=15
-    gametype tdm pointlimit=50 timelimit=0 teams=2
-
-Also, while I am at it, I should fix the placeholders in the map description lines:
-
-    title Wibble
-    description A large multi level arena map
-    author Wazat
-
-Although not entirely necessary, I will now move the .mapinfo file from
-data/data/maps/wazat1.mapinfo to data/maps/wazat1.mapinfo, so it is at the same
-place as my map. Next time I start the game, my map will be shown supporting
-the right game modes and with the right description in the menu.
-
-Also, note the "has weapons" line. If this line is not there (which happens if
-the map contains no weapon entities other than the Nex), the map will run in
-MinstaGib only and not be shown in the menu normally. So if you look for your
-map and don't find it, add "has weapons" to the mapinfo file, and make sure you
-have weapon entities placed.
-
-There's much more power in a mapinfo file. See Appendix A for more details.
-
-Gametype        | Syntax                                                                                                   | Notes
-----------------+----------------------------------------------------------------------------------------------------------+-------------------------------------------------------
-Deathmatch      | gametype dm [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |
-Team Deathmatch | gametype tdm [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams
-Domination      | gametype dom [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams, only if map has no dom_team ents
-CTF             | gametype ctf [timelimit=...] [pointlimit=...] [caplimit=...] [leadlimit=...]                             | pointlimit if g_ctf_win_mode is 2, otherwise caplimit
-Runematch       | gametype rune [timelimit=...] [pointlimit=...] [leadlimit=...]                                           |
-LMS             | gametype lms [timelimit=...] [lives=...] [leadlimit=...]                                                 |
-Arena           | gametype arena [timelimit=...] [pointlinit=...] [leadlimit=...]                                          |
-Key Hunt        | gametype kh [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                 | 2, 3, or 4 teams
-Assault         | gametype as [timelimit=...]                                                                              | never uses points
-Onslaught       | gametype ons [timelimit=...]                                                                             | never uses points
-Race            | gametype rc [timelimit=...] [qualifying_timelimit=...] [laplimit=...] [teamlaplimit=...] [leadlimit=...] | g_race_teams: teamlaplimit is used instead of laplimit
-CTS             | gametype cts [timelimit=...] [skill=...]                                                                 | never uses points
-CA              | gametype ca [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |
-Nexball         | gametype dm [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |
-
-
-===============
-=II. Map Image=
-===============
-
-So, you've got your map listed in the menu and it plays properly, but the menu
-isn't showing your picture! Or the picture is scaled badly! What manner of man
-would create such an accursed abomination?!
-
-Well... That sounds like something I'd do. :D
-
-And it is really easy: just make a screenshot of the map in action (preferably
-with crosshair and HUD switched off), and place it next to the map as
-mapname.jpg. For best rendering and file size, make the image in 4:3 aspect
-ratio, but scale it to the resolution 256x256 or possibly 512x512. It will look
-skewed in your image editing app, but the menu will show it right, and your
-graphics card LOVES images of such dimension.
-
-
-=================
-=III. Domination=
-=================
-
-In order to get Domination working well in your map, you need to place dom_team
-and dom_controlpoint entites. You *must* have at least 3 dom_team entities - 2
-minimum teams and one blank one (empty netname and no team). You can have up to
-4 teams (5 dom_team entities), and remember: if you set 3 teams, the third team
-must be the yellow one, according to the team order.
-
-Dom Team
---------
-classname  dom_team
-netname    name of team (Red Team). Set to "" or don't define for the required
-           blank team.
-cnt        color of the team. See the "Helpful Extras" section for info.
-model      When this team captures control points, the points turn to this
-           model. If this is the neutral team, points start out as this model.
-noise      Sound to be played on the control point when it's captured. Only
-           players nearby will hear it.
-noise1     Sound to be played to all players when the control point is
-           captured. Also good for an annoncer voice ("Red Team has captured a
-           control point")
-
-Control Points
---------------
-classname  dom_controlpoint
-message    message to be displayed to all players when this point is captured,
-           preceded by the team's name. This defaults to " has captured a control point".
-           You can specify different names for each point, for example " has captured the
-           Lava Room".
-origin     where in the map this point is
-wait       How often this point gives its controlling team frags.
-frags      How many frags this point gives each wait cycle.
-
-Here is an example entry in a .ent file that includes colored text and 3 teams:
-
-{
-"classname" "dom_team"
-"netname" ""
-"model" "models/domination/dom_unclaimed.md3"
-}
-{
-"classname" "dom_team"
-"netname" "^4Blue Team"
-"cnt" "13"
-"noise" ""
-"noise1" "domination/claim.wav"
-"model" "models/domination/dom_blue.md3"
-}
-{
-"classname" "dom_team"
-"netname" "^1Red Team"
-"cnt" "4"
-"noise" ""
-"noise1" "domination/claim.wav"
-"model" "models/domination/dom_red.md3"
-}
-{
-"netname" "^3Yellow Team"
-"cnt" "12"
-"noise" ""
-"noise1" "domination/claim.wav"
-"model" "models/domination/dom_yellow.md3"
-}
-{
-"netname" "^6Pink Team"
-"cnt" "9"
-"noise" ""
-"noise1" "domination/claim.wav"
-"model" "models/domination/dom_pink.md3"
-}
-{
-"classname" "dom_controlpoint"
-"message" " ^3has captured the ^1Hallways"
-"origin" "-206.0 -488.8 -150.0"
-"frags" "3"
-"wait" "5"
-"scale" "1.3"
-}
-{
-"classname" "dom_controlpoint"
-"message" " ^3has captured the ^1Lavaroom"
-"origin" "1457.1  19.9 -110.0"
-"frags" "1"
-"wait" "5"
-}
-{
-"classname" "dom_controlpoint"
-"message" " ^3controls the ^1Nex & Strength"
-"origin" "-259.8 299.3  5"
-"frags" "1"
-"wait" "5"
-}
-{
-"classname" "dom_controlpoint"
-"message" " ^3has captured the ^1Upper Platform"
-"origin" "539.7 1206.0 182.0"
-"frags" "1"
-"wait" "5"
-}
-{
-"classname" "dom_controlpoint"
-"message" " ^3has captured the ^1Teleport Room"
-"origin" "-1000.0 636.2 -16.0"
-"frags" "1"
-"wait" "5"
-}
-
-
-As you can see in the example, there are 5 dom_team ents: one blank, Red, Blue,
-Yellow and Pink. Each control point has a different message (giving it a
-special name), and the one in the hallways gives 3 frags every 5 seconds
-instead of just one, making it more valuable.
-
-If your map contains the required entities for Domination, the menu will
-automatically detect it for supporting Domination. To force the map to get
-re-detected after you add such entities, delete the data/data/mapname.mapinfo
-file - or simply edit it to add the "gametype dom" line.
-
-
-=========
-=IV. CTF=
-=========
-
-Capture the flag needs at least 1 CTF flag per team, and can also make use of
-team spawnpoints.
-
-CTF Flags
----------
-classname  item_flag_team1 or item_flag_team2
-angle      direction the flag will point
-model      model of the flag (default: models/ctf/flag_red.md3 or
-           models/ctf/flag_blue.md3)
-noise      sound played when flag is stolen (default: "ctf/take.wav")
-noise1     sound played when flag is returned by a teammate (default:
-           "ctf/return.wav")
-noise2     sound played when flag is captured (default: "ctf/capture.wav")
-noise3     sound played when flag returns itself (default: "ctf/respawn.wav")
-
-Team Spawnpoints
-----------------
-classname  info_player_team1 or info_player_team2
-*note: These function just like info_player_deathmatch, but for one team only.
-If you don't make team spawnpoints, info_player_deathmatch is used instead.
-
-If your map contains the required entities for CTF, the menu will automatically
-detect it for supporting CTF. To force the map to get re-detected after you add
-such entities, delete the data/data/mapname.mapinfo file - or simply edit it to
-add the "gametype ctf" line.
-
-==============
-=V. Runematch=
-==============
-
-Runematch needs only one type of entity to work: rune spawn points. You will
-need at least one for each rune (5 minimum at the time of this writing), though
-you should probably have more than that in the map. Just give the points a
-classname and origin.
-
-Rune Spawnpoints
-----------------
-classname  runematch_spawn_point
-
-If your map contains the required entities for Runematch, the menu will automatically
-detect it for supporting Runematch. To force the map to get re-detected after you add
-such entities, delete the data/data/mapname.mapinfo file - or simply edit it to
-add the "gametype rune" line.
-
-==============
-=VI. Race/CTS=
-==============
-
-Making a race map is not hard: you need some special spawnpoints, and some checkpoints.
-
-Spawnpoints
------------
-classname  info_player_race
-target     targetname of the checkpoint
-race_place for finish line checkpoints, the place of the point, or -1 to make it qualifying/CTS-only, or unset to let all the other players spawn
-
-Checkpoints
------------
-classname  trigger_race_checkpoint
-targetname some name to target the checkpoint with
-cnt        number of the checkpoint (or 0 for finish line)
-
-Note that checkpoints are brush entities, and they should be somewhat thick and
-cover the full volume the player could use to get past them.
-
-Example of entity placement:
-
-                         ###
-    ---------------------###---
-   /    9999  7  5  3  1>###   \
-  /     9999 8  6  4  2 >###    \
- |     ------------------###     |
-%%%%%%%%                 ###|    |
-%%%%%%%%                 $$$|    |
- | ^ ^ ------------------$$$     |
- \                       $$$ <  /
-  \                      $$$ < /
-   ----------------------$$$---
-                         $$$
-
-###:  classname = trigger_race_checkpoint, cnt = 0, targetname = finish
-$$$:  classname = trigger_race_checkpoint, cnt = 1, targetname = cp1
-%%%:  classname = trigger_race_checkpoint, cnt = 2, targetname = cp2
->:    classname = info_player_race,                 target = finish, angle = 0
-1:    classname = info_player_race,                 target = finish, angle = 0, race_place = 1
-2:    classname = info_player_race,                 target = finish, angle = 0, race_place = 2
-....
-8:    classname = info_player_race,                 target = finish, angle = 0, race_place = 8
-9:    classname = info_player_race,                 target = finish, angle = 0, race_place = 9
-<:    classname = info_player_race,                 target = cp1,    angle = 180
-^:    classname = info_player_race,                 target = cp2,    angle = 90
-
-If your map contains the required entities for Race, the menu will automatically
-detect it for supporting Race. To force the map to get re-detected after you add
-such entities, delete the data/data/mapname.mapinfo file - or simply edit it to
-add the "gametype rc" line.
-
-CTS maps do not use checkpoints with race_place set, so you can leave them out
-for CTS maps.
-
-The skill parameter in the mapinfo entry for CTS shall be in the range from 0 (easy) to 10 (impossible).
-
-=============
-=VI. Nexball=
-=============
-
-There are three required entities: nexball_redgoal, nexball_bluegoal, and one of nexball_basketball
-or nexball_football. There are also optional nexball_yellowgoal and nexball_pinkgoal entities (don't
-add a pink goal when there is no yellow goal on the map, it will crash)
-
-Goals are made just like any other regular triggers. You can use multiple brushes for one trigger,
-but avoid this if possible.
-
-There are also two other goal-like entities, nexball_fault and nexball_bound, the first taking a point
-from the team that hits the trigger with the ball, the second simply returning it. You can spawn the
-ball inside a goal-like trigger, this can be useful for basketball maps with separate teams and a
-common ball spawn.
-The different keys for the entities are documented in entities.def.
-
-The ball is affected by trigger_impulse, but not by trigger_push or teleporters.
-
-You should better avoid patches on the field, as collisions can sometimes get buggy on these.
-
-
-===============================
-=Appendix A - Advanced mapinfo=
-===============================
-
-You now know how to make a basic, bare-bones mapinfo to set up a couple options
-and load your map. However, there's much more you can do!  Consider these
-senarios:
-
-1. The laser has too high of a force for laser jumps and ruins CTF
-2. I don't want players to start out with the shotgun, but with the machinegun
-   instead
-3. The map takes so much server CPU performance that the anti-wallhack can't be
-   made active
-
-Each of these situations can be resolved with ease with a little work in the
-mapinfo file.
-
-To do this, I can add the following lines to my mapinfo file:
-
-    settemp_for_type ctf g_balance_laser_primary_force 200
-    settemp_for_type all g_start_weapon_shotgun 0
-    settemp_for_type all g_start_weapon_uzi 1
-    settemp_for_type all sv_cullentities_trace 0
-
-These "settemp" settings are automatically removed when the map is left and
-another is loaded. As you can see, it is possible to make per-mode temporary
-settings, and global ones.
-
-Similar settings are also possible for the client:
-
-    clientsettemp_for_type all r_shadow_glossexponent 96
-
-Another possibility is to specify fog settings in the mapinfo, for convenience
-in case you set sv_foginterval by it too (to force the fog on the clients):
-
-    fog 0.2 0.25 0.3 0.3 1 1500
-    settemp_for_type all sv_foginterval 5
-
-
-=============================
-=Appendix B - Helpful Extras=
-=============================
-
-----------------
--i. Team Colors-
-----------------
-When you need to set an entity's color or team, use these values:
-
-Red
----
-Team:      5
-Color:     4
-
-Blue
-----
-Team:      14
-Color:     13
-
-Yellow
-------
-Team:      13
-Color:     12
-
-Pink
------
-Team:      10
-Color:     9
-
-
-----------------
--i. Text Colors-
-----------------
-Occasionally you may want to print text in color, such as team names. Here are your options:
-
-1  Red
-2  Green
-3  Yellow
-4  Blue
-5  Cyan
-6  Magenta
-7  White
-8  Grey (transparent)
-9  Grey (solid)
-0  Black
-
-==========================================
-=Appendix C - Advanced Darkplaces shaders=
-==========================================
-
-Shader parameters for DP's own features:
-- dp_reflect <distort> <r> <g> <b> <a>
-  Makes surfaces of this shader reflective with r_water. The reflection is
-  alpha blended on the texture with the given alpha, and modulated by the given
-  color. distort is used in conjunction with the normalmap to simulate a
-  nonplanar water surface.
-- dp_refract <distort> <r> <g> <b>
-  Makes surfaces of this shader refractive with r_water. The refraction
-  replaces the transparency of the texture. distort is used in conjunction with
-  the normalmap to simulate a nonplanar water surface.
-- dp_water <reflectmin> <reflectmax> <refractdistort> <reflectdistort> <refractr> <refractg> <refractb> <reflectr> <reflectg> <reflectb> <alpha>
-  This combines the effects of dp_reflect and dp_refract to simulate a water
-  surface. However, the refraction and the reflection are mixed using a Fresnel
-  equation that makes the amount of reflection slide from reflectmin when
-  looking parallel to the water to reflectmax when looking directly into the
-  water. The result of this reflection/refraction mix is then layered BELOW the
-  texture of the shader, so basically, it "fills up" the alpha values of the
-  water. The alpha value is a multiplicator for the alpha value on the texture
-  - set this to a small value like 0.1 to emphasize the reflection and make
-  the water transparent; but if r_water is 0, alpha isn't used, so the water can
-  be very visible then too.
-
+==============\r
+=Mapping Help=\r
+==============\r
+\r
+While I can't help you make a map, I can help you get it listed in the menu and\r
+working in the maplist. :p  The central object is the .mapinfo file, but\r
+there's much more available.\r
+\r
+Table of Contents\r
+-----------------\r
+I        Map Lists & Scripts\r
+         (get your map listed and working)\r
+  i.     mapinfo\r
+  ii.    mapname.cfg\r
+\r
+II       Map Image\r
+\r
+III      Domination\r
+\r
+IV       CTF\r
+\r
+V        Rune Match\r
+\r
+VI       Race/CTS\r
+\r
+VII      Nexball\r
+\r
+Appendix A - Advanced mapinfo\r
+\r
+Appendix B - Helpful extras\r
+  i.     Team Colors\r
+  ii.    Text Colors\r
+\r
+Appendix C - Advanced Darkplaces shaders\r
+\r
+========================\r
+=I. Map Lists & Scripts=\r
+========================\r
+\r
+There now is just a single script/cfg file available to you, containing all map\r
+specific settings:\r
+\r
+mapname.mapinfo\r
+\r
+The mapinfo is actually required - however, the game is so nice that it\r
+automatically generates a draft of it for you.\r
+\r
+------------------\r
+-The mapinfo file-\r
+------------------\r
+\r
+*cue even more scary music*\r
+\r
+The mapinfo file is basically what gets your map listed in the menu, and sets\r
+up the options needed to change to it. If no mapinfo file exists, the menu\r
+will automatically generate a rough draft for you on game startup. It will get\r
+stored into data/data/mapname.mapinfo.\r
+\r
+As an example, let's say I make a map called "wazat1.bsp". As long as I'm\r
+fantasizing, I might as well say this map is so well done I'm actually willing\r
+to release it for friends, neighbors, fellow forum visitors and other people\r
+who like me to judge me by. Let's also assume that I want domination,\r
+deathmatch/team deathmatch and runematch to all be playable on my map.\r
+\r
+This is very easy. First, I start the game and exit it again so the game writes\r
+data/data/wazat1.mapinfo for me. The file may look like:\r
+\r
+    title Wazat's Great Map\r
+    description Bleh.\r
+    author Unknown\r
+    _diameter 1966.839355\r
+    _spawnpoints 5\r
+    has weapons\r
+       cdtrack 5\r
+    gametype dm // defaults: timelimit=20 pointlimit=30 leadlimit=0\r
+    gametype dom // defaults: timelimit=20 pointlimit=200 teams=2 leadlimit=0\r
+    gametype rune // defaults: timelimit=20 pointlimit=200 leadlimit=0\r
+    gametype lms // defaults: timelimit=20 lives=9 leadlimit=0\r
+    gametype arena // defaults: timelimit=20 pointlimit=10 leadlimit=0\r
+\r
+As I see, the menu autodetected that my map may be suitable for deathmatch,\r
+domination, runematch, last man standing and arena. But I want the map to be\r
+played in domination, deathmatch, team deathmatch, runematch only, and I also\r
+want different timelimits/fraglimits, so I will change the "gametype" lines to:\r
+\r
+    gametype dom pointlimit=100 timelimit=15\r
+    gametype rune pointlimit=1000 timelimit=25\r
+    gametype dm pointlimit=40 timelimit=15\r
+    gametype tdm pointlimit=50 timelimit=0 teams=2\r
+\r
+Also, while I am at it, I should fix the placeholders in the map description lines:\r
+\r
+    title Wibble\r
+    description A large multi level arena map\r
+    author Wazat\r
+\r
+Although not entirely necessary, I will now move the .mapinfo file from\r
+data/data/maps/wazat1.mapinfo to data/maps/wazat1.mapinfo, so it is at the same\r
+place as my map. Next time I start the game, my map will be shown supporting\r
+the right game modes and with the right description in the menu.\r
+\r
+Also, note the "has weapons" line. If this line is not there (which happens if\r
+the map contains no weapon entities other than the Nex), the map will run in\r
+MinstaGib only and not be shown in the menu normally. So if you look for your\r
+map and don't find it, add "has weapons" to the mapinfo file, and make sure you\r
+have weapon entities placed.\r
+\r
+There's much more power in a mapinfo file. See Appendix A for more details.\r
+\r
+Gametype        | Syntax                                                                                                   | Notes\r
+----------------+----------------------------------------------------------------------------------------------------------+-------------------------------------------------------\r
+Deathmatch      | gametype dm [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |\r
+Team Deathmatch | gametype tdm [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams\r
+Domination      | gametype dom [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                | 2, 3, or 4 teams, only if map has no dom_team ents\r
+CTF             | gametype ctf [timelimit=...] [pointlimit=...] [caplimit=...] [leadlimit=...]                             | pointlimit if g_ctf_win_mode is 2, otherwise caplimit\r
+Runematch       | gametype rune [timelimit=...] [pointlimit=...] [leadlimit=...]                                           |\r
+LMS             | gametype lms [timelimit=...] [lives=...] [leadlimit=...]                                                 |\r
+Arena           | gametype arena [timelimit=...] [pointlinit=...] [leadlimit=...]                                          |\r
+Key Hunt        | gametype kh [timelimit=...] [pointlimit=...] [teams=...] [leadlimit=...]                                 | 2, 3, or 4 teams\r
+Assault         | gametype as [timelimit=...]                                                                              | never uses points\r
+Onslaught       | gametype ons [timelimit=...]                                                                             | never uses points\r
+Race            | gametype rc [timelimit=...] [qualifying_timelimit=...] [laplimit=...] [teamlaplimit=...] [leadlimit=...] | g_race_teams: teamlaplimit is used instead of laplimit\r
+CTS             | gametype cts [timelimit=...] [skill=...]                                                                 | never uses points\r
+CA              | gametype ca [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |\r
+Nexball         | gametype dm [timelimit=...] [pointlimit=...] [leadlimit=...]                                             |\r
+\r
+\r
+===============\r
+=II. Map Image=\r
+===============\r
+\r
+So, you've got your map listed in the menu and it plays properly, but the menu\r
+isn't showing your picture! Or the picture is scaled badly! What manner of man\r
+would create such an accursed abomination?!\r
+\r
+Well... That sounds like something I'd do. :D\r
+\r
+And it is really easy: just make a screenshot of the map in action (preferably\r
+with crosshair and HUD switched off), and place it next to the map as\r
+mapname.jpg. For best rendering and file size, make the image in 4:3 aspect\r
+ratio, but scale it to the resolution 256x256 or possibly 512x512. It will look\r
+skewed in your image editing app, but the menu will show it right, and your\r
+graphics card LOVES images of such dimension.\r
+\r
+\r
+=================\r
+=III. Domination=\r
+=================\r
+\r
+In order to get Domination working well in your map, you need to place dom_team\r
+and dom_controlpoint entites. You *must* have at least 3 dom_team entities - 2\r
+minimum teams and one blank one (empty netname and no team). You can have up to\r
+4 teams (5 dom_team entities), and remember: if you set 3 teams, the third team\r
+must be the yellow one, according to the team order.\r
+\r
+Dom Team\r
+--------\r
+classname  dom_team\r
+netname    name of team (Red Team). Set to "" or don't define for the required\r
+           blank team.\r
+cnt        color of the team. See the "Helpful Extras" section for info.\r
+model      When this team captures control points, the points turn to this\r
+           model. If this is the neutral team, points start out as this model.\r
+noise      Sound to be played on the control point when it's captured. Only\r
+           players nearby will hear it.\r
+noise1     Sound to be played to all players when the control point is\r
+           captured. Also good for an annoncer voice ("Red Team has captured a\r
+           control point")\r
+\r
+Control Points\r
+--------------\r
+classname  dom_controlpoint\r
+message    message to be displayed to all players when this point is captured,\r
+           preceded by the team's name. This defaults to " has captured a control point".\r
+           You can specify different names for each point, for example " has captured the\r
+           Lava Room".\r
+origin     where in the map this point is\r
+wait       How often this point gives its controlling team frags.\r
+frags      How many frags this point gives each wait cycle.\r
+\r
+Here is an example entry in a .ent file that includes colored text and 3 teams:\r
+\r
+{\r
+"classname" "dom_team"\r
+"netname" ""\r
+"model" "models/domination/dom_unclaimed.md3"\r
+}\r
+{\r
+"classname" "dom_team"\r
+"netname" "^4Blue Team"\r
+"cnt" "13"\r
+"noise" ""\r
+"noise1" "domination/claim.wav"\r
+"model" "models/domination/dom_blue.md3"\r
+}\r
+{\r
+"classname" "dom_team"\r
+"netname" "^1Red Team"\r
+"cnt" "4"\r
+"noise" ""\r
+"noise1" "domination/claim.wav"\r
+"model" "models/domination/dom_red.md3"\r
+}\r
+{\r
+"netname" "^3Yellow Team"\r
+"cnt" "12"\r
+"noise" ""\r
+"noise1" "domination/claim.wav"\r
+"model" "models/domination/dom_yellow.md3"\r
+}\r
+{\r
+"netname" "^6Pink Team"\r
+"cnt" "9"\r
+"noise" ""\r
+"noise1" "domination/claim.wav"\r
+"model" "models/domination/dom_pink.md3"\r
+}\r
+{\r
+"classname" "dom_controlpoint"\r
+"message" " ^3has captured the ^1Hallways"\r
+"origin" "-206.0 -488.8 -150.0"\r
+"frags" "3"\r
+"wait" "5"\r
+"scale" "1.3"\r
+}\r
+{\r
+"classname" "dom_controlpoint"\r
+"message" " ^3has captured the ^1Lavaroom"\r
+"origin" "1457.1  19.9 -110.0"\r
+"frags" "1"\r
+"wait" "5"\r
+}\r
+{\r
+"classname" "dom_controlpoint"\r
+"message" " ^3controls the ^1Nex & Strength"\r
+"origin" "-259.8 299.3  5"\r
+"frags" "1"\r
+"wait" "5"\r
+}\r
+{\r
+"classname" "dom_controlpoint"\r
+"message" " ^3has captured the ^1Upper Platform"\r
+"origin" "539.7 1206.0 182.0"\r
+"frags" "1"\r
+"wait" "5"\r
+}\r
+{\r
+"classname" "dom_controlpoint"\r
+"message" " ^3has captured the ^1Teleport Room"\r
+"origin" "-1000.0 636.2 -16.0"\r
+"frags" "1"\r
+"wait" "5"\r
+}\r
+\r
+\r
+As you can see in the example, there are 5 dom_team ents: one blank, Red, Blue,\r
+Yellow and Pink. Each control point has a different message (giving it a\r
+special name), and the one in the hallways gives 3 frags every 5 seconds\r
+instead of just one, making it more valuable.\r
+\r
+If your map contains the required entities for Domination, the menu will\r
+automatically detect it for supporting Domination. To force the map to get\r
+re-detected after you add such entities, delete the data/data/mapname.mapinfo\r
+file - or simply edit it to add the "gametype dom" line.\r
+\r
+\r
+=========\r
+=IV. CTF=\r
+=========\r
+\r
+Capture the flag needs at least 1 CTF flag per team, and can also make use of\r
+team spawnpoints.\r
+\r
+CTF Flags\r
+---------\r
+classname  item_flag_team1 or item_flag_team2\r
+angle      direction the flag will point\r
+model      model of the flag (default: models/ctf/flag_red.md3 or\r
+           models/ctf/flag_blue.md3)\r
+noise      sound played when flag is stolen (default: "ctf/take.wav")\r
+noise1     sound played when flag is returned by a teammate (default:\r
+           "ctf/return.wav")\r
+noise2     sound played when flag is captured (default: "ctf/capture.wav")\r
+noise3     sound played when flag returns itself (default: "ctf/respawn.wav")\r
+\r
+Team Spawnpoints\r
+----------------\r
+classname  info_player_team1 or info_player_team2\r
+*note: These function just like info_player_deathmatch, but for one team only.\r
+If you don't make team spawnpoints, info_player_deathmatch is used instead.\r
+\r
+If your map contains the required entities for CTF, the menu will automatically\r
+detect it for supporting CTF. To force the map to get re-detected after you add\r
+such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
+add the "gametype ctf" line.\r
+\r
+==============\r
+=V. Runematch=\r
+==============\r
+\r
+Runematch needs only one type of entity to work: rune spawn points. You will\r
+need at least one for each rune (5 minimum at the time of this writing), though\r
+you should probably have more than that in the map. Just give the points a\r
+classname and origin.\r
+\r
+Rune Spawnpoints\r
+----------------\r
+classname  runematch_spawn_point\r
+\r
+If your map contains the required entities for Runematch, the menu will automatically\r
+detect it for supporting Runematch. To force the map to get re-detected after you add\r
+such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
+add the "gametype rune" line.\r
+\r
+==============\r
+=VI. Race/CTS=\r
+==============\r
+\r
+Making a race map is not hard: you need some special spawnpoints, and some checkpoints.\r
+\r
+Spawnpoints\r
+-----------\r
+classname  info_player_race\r
+target     targetname of the checkpoint\r
+race_place for finish line checkpoints, the place of the point, or -1 to make it qualifying/CTS-only, or unset to let all the other players spawn\r
+\r
+Checkpoints\r
+-----------\r
+classname  trigger_race_checkpoint\r
+targetname some name to target the checkpoint with\r
+cnt        number of the checkpoint (or 0 for finish line)\r
+\r
+Note that checkpoints are brush entities, and they should be somewhat thick and\r
+cover the full volume the player could use to get past them.\r
+\r
+Example of entity placement:\r
+\r
+                         ###\r
+    ---------------------###---\r
+   /    9999  7  5  3  1>###   \\r
+  /     9999 8  6  4  2 >###    \\r
+ |     ------------------###     |\r
+%%%%%%%%                 ###|    |\r
+%%%%%%%%                 $$$|    |\r
+ | ^ ^ ------------------$$$     |\r
+ \                       $$$ <  /\r
+  \                      $$$ < /\r
+   ----------------------$$$---\r
+                         $$$\r
+\r
+###:  classname = trigger_race_checkpoint, cnt = 0, targetname = finish\r
+$$$:  classname = trigger_race_checkpoint, cnt = 1, targetname = cp1\r
+%%%:  classname = trigger_race_checkpoint, cnt = 2, targetname = cp2\r
+>:    classname = info_player_race,                 target = finish, angle = 0\r
+1:    classname = info_player_race,                 target = finish, angle = 0, race_place = 1\r
+2:    classname = info_player_race,                 target = finish, angle = 0, race_place = 2\r
+....\r
+8:    classname = info_player_race,                 target = finish, angle = 0, race_place = 8\r
+9:    classname = info_player_race,                 target = finish, angle = 0, race_place = 9\r
+<:    classname = info_player_race,                 target = cp1,    angle = 180\r
+^:    classname = info_player_race,                 target = cp2,    angle = 90\r
+\r
+If your map contains the required entities for Race, the menu will automatically\r
+detect it for supporting Race. To force the map to get re-detected after you add\r
+such entities, delete the data/data/mapname.mapinfo file - or simply edit it to\r
+add the "gametype rc" line.\r
+\r
+CTS maps do not use checkpoints with race_place set, so you can leave them out\r
+for CTS maps.\r
+\r
+The skill parameter in the mapinfo entry for CTS shall be in the range from 0 (easy) to 10 (impossible).\r
+\r
+=============\r
+=VI. Nexball=\r
+=============\r
+\r
+There are three required entities: nexball_redgoal, nexball_bluegoal, and one of nexball_basketball\r
+or nexball_football. There are also optional nexball_yellowgoal and nexball_pinkgoal entities (don't\r
+add a pink goal when there is no yellow goal on the map, it will crash)\r
+\r
+Goals are made just like any other regular triggers. You can use multiple brushes for one trigger,\r
+but avoid this if possible.\r
+\r
+There are also two other goal-like entities, nexball_fault and nexball_bound, the first taking a point\r
+from the team that hits the trigger with the ball, the second simply returning it. You can spawn the\r
+ball inside a goal-like trigger, this can be useful for basketball maps with separate teams and a\r
+common ball spawn.\r
+The different keys for the entities are documented in entities.def.\r
+\r
+The ball is affected by trigger_impulse, but not by trigger_push or teleporters.\r
+\r
+You should better avoid patches on the field, as collisions can sometimes get buggy on these.\r
+\r
+\r
+===============================\r
+=Appendix A - Advanced mapinfo=\r
+===============================\r
+\r
+You now know how to make a basic, bare-bones mapinfo to set up a couple options\r
+and load your map. However, there's much more you can do!  Consider these\r
+senarios:\r
+\r
+1. The laser has too high of a force for laser jumps and ruins CTF\r
+2. I don't want players to start out with the shotgun, but with the machinegun\r
+   instead\r
+3. The map takes so much server CPU performance that the anti-wallhack can't be\r
+   made active\r
+\r
+Each of these situations can be resolved with ease with a little work in the\r
+mapinfo file.\r
+\r
+To do this, I can add the following lines to my mapinfo file:\r
+\r
+    settemp_for_type ctf g_balance_laser_primary_force 200\r
+    settemp_for_type all g_start_weapon_shotgun 0\r
+    settemp_for_type all g_start_weapon_uzi 1\r
+    settemp_for_type all sv_cullentities_trace 0\r
+\r
+These "settemp" settings are automatically removed when the map is left and\r
+another is loaded. As you can see, it is possible to make per-mode temporary\r
+settings, and global ones.\r
+\r
+Similar settings are also possible for the client:\r
+\r
+    clientsettemp_for_type all r_shadow_glossexponent 96\r
+\r
+Another possibility is to specify fog settings in the mapinfo, for convenience\r
+in case you set sv_foginterval by it too (to force the fog on the clients):\r
+\r
+    fog 0.2 0.25 0.3 0.3 1 1500\r
+    settemp_for_type all sv_foginterval 5\r
+\r
+\r
+=============================\r
+=Appendix B - Helpful Extras=\r
+=============================\r
+\r
+----------------\r
+-i. Team Colors-\r
+----------------\r
+When you need to set an entity's color or team, use these values:\r
+\r
+Red\r
+---\r
+Team:      5\r
+Color:     4\r
+\r
+Blue\r
+----\r
+Team:      14\r
+Color:     13\r
+\r
+Yellow\r
+------\r
+Team:      13\r
+Color:     12\r
+\r
+Pink\r
+-----\r
+Team:      10\r
+Color:     9\r
+\r
+\r
+----------------\r
+-i. Text Colors-\r
+----------------\r
+Occasionally you may want to print text in color, such as team names. Here are your options:\r
+\r
+1  Red\r
+2  Green\r
+3  Yellow\r
+4  Blue\r
+5  Cyan\r
+6  Magenta\r
+7  White\r
+8  Grey (transparent)\r
+9  Grey (solid)\r
+0  Black\r
+\r
+==========================================\r
+=Appendix C - Advanced Darkplaces shaders=\r
+==========================================\r
+\r
+Shader parameters for DP's own features:\r
+- dp_reflect <distort> <r> <g> <b> <a>\r
+  Makes surfaces of this shader reflective with r_water. The reflection is\r
+  alpha blended on the texture with the given alpha, and modulated by the given\r
+  color. distort is used in conjunction with the normalmap to simulate a\r
+  nonplanar water surface.\r
+- dp_refract <distort> <r> <g> <b>\r
+  Makes surfaces of this shader refractive with r_water. The refraction\r
+  replaces the transparency of the texture. distort is used in conjunction with\r
+  the normalmap to simulate a nonplanar water surface.\r
+- dp_water <reflectmin> <reflectmax> <refractdistort> <reflectdistort> <refractr> <refractg> <refractb> <reflectr> <reflectg> <reflectb> <alpha>\r
+  This combines the effects of dp_reflect and dp_refract to simulate a water\r
+  surface. However, the refraction and the reflection are mixed using a Fresnel\r
+  equation that makes the amount of reflection slide from reflectmin when\r
+  looking parallel to the water to reflectmax when looking directly into the\r
+  water. The result of this reflection/refraction mix is then layered BELOW the\r
+  texture of the shader, so basically, it "fills up" the alpha values of the\r
+  water. The alpha value is a multiplicator for the alpha value on the texture\r
+  - set this to a small value like 0.1 to emphasize the reflection and make\r
+  the water transparent; but if r_water is 0, alpha isn't used, so the water can\r
+  be very visible then too.\r
+\r
index a1e4a0735fa9beb9a1f8f189bdb8c07813736d7b..b894bd6961b231f04400466d615b4ce8b789d67a 100644 (file)
@@ -1,44 +1,44 @@
-cvars:
-______________
-
-   sv_logscores_console                print scores to serverconsole after each match (default: 0, set to 1 to enable)
-   sv_logscores_file           print scores to a file after each match (default: 0)
-   sv_logscores_filename       filename of the output file if sv_logscores_file is enabled (default: "scores.log",
-                                 the file will be stored in Nexuiz/data/data or ~/.nexuiz/data/data)
-   sv_logscores_bots           choose whether bot are included in stats or not (default: 0)
-
-
-commands:
-______________
-
-   printstats                  print current scores to file/console (requires sv_logscores_console and/or 
-                                 sv_logscores_file to be enabled)
-
-
-log format:
-______________
-
-example:
-   
-   :scores:dm_nexdm01:131
-   :player:1:7:129:1:GrooveMachine
-   :player:1:4:129:1:DanceWithMe
-   :player:10:1:130:3:Player
-   :end
-   
-   start of a new section:     :scores:<gametype>_<mapname>:<map runtime>              (if the dump was triggered
-                                  by "printstats", the line starts with :status:)
-   player entry:               :player:<frags>:<deaths>:<playtime>:<team>:<nickname>   (playername might contain ":",
-                                  so be sure your parser doesn't split them, playtime is messured in seconds)
-   section end:                        :end
-
-team colors:
-   Red Team    =  5
-   Blue Team   = 14
-   Yellow Team = 13
-   Pink Team   = 10
-
-   other team numbers may appear in free for all games
-
-   for an example parser (written in php, thanks to tChr) have a look at:
-      http://excalibur.nvg.ntnu.no/nexuiz/statsparser
+cvars:\r
+______________\r
+\r
+   sv_logscores_console                print scores to serverconsole after each match (default: 0, set to 1 to enable)\r
+   sv_logscores_file           print scores to a file after each match (default: 0)\r
+   sv_logscores_filename       filename of the output file if sv_logscores_file is enabled (default: "scores.log",\r
+                                 the file will be stored in Nexuiz/data/data or ~/.nexuiz/data/data)\r
+   sv_logscores_bots           choose whether bot are included in stats or not (default: 0)\r
+\r
+\r
+commands:\r
+______________\r
+\r
+   printstats                  print current scores to file/console (requires sv_logscores_console and/or \r
+                                 sv_logscores_file to be enabled)\r
+\r
+\r
+log format:\r
+______________\r
+\r
+example:\r
+   \r
+   :scores:dm_nexdm01:131\r
+   :player:1:7:129:1:GrooveMachine\r
+   :player:1:4:129:1:DanceWithMe\r
+   :player:10:1:130:3:Player\r
+   :end\r
+   \r
+   start of a new section:     :scores:<gametype>_<mapname>:<map runtime>              (if the dump was triggered\r
+                                  by "printstats", the line starts with :status:)\r
+   player entry:               :player:<frags>:<deaths>:<playtime>:<team>:<nickname>   (playername might contain ":",\r
+                                  so be sure your parser doesn't split them, playtime is messured in seconds)\r
+   section end:                        :end\r
+\r
+team colors:\r
+   Red Team    =  5\r
+   Blue Team   = 14\r
+   Yellow Team = 13\r
+   Pink Team   = 10\r
+\r
+   other team numbers may appear in free for all games\r
+\r
+   for an example parser (written in php, thanks to tChr) have a look at:\r
+      http://excalibur.nvg.ntnu.no/nexuiz/statsparser\r