-------------------------------------------------------------------------------
Expert Quake4 Documentation and release notes
-------------------------------------------------------------------------------

                                 Plugs and Thanks
                                 ---------------- 

Development Forum	-- http://expertctf.net/forum
Community Forum	   	-- http://expertctf.com/forum 
Support 		-- http://expertctf.net


Coding:
------
    done BY Incinerator @ http://expertctf.net

Scripts:
--------
    done by Incinerator

New Graphics:
-------------
    done by Incinerator

Note of Thanks to:


Models:
------
    done by LDASH @ http://violationentertainment.com
    Thanks for your time and awesome modeling skills
    PowerUp models, Back Pack, hook model, and grenades

Skins for HIgh Visibilty:
------------------------ 
     I would like to thank q4max team for providing the base code for fullbright
     skinning and graphics to get fullbright skins in the game. The q4max team
     is located @ http://q4max.com. Thanks again AnthonyJ and team.

     I would also like to extend a big Thanks to the X^Tigre  @ http://www.baseft.com  
     for allowing expert to use the high visibilty skin code and graphics.

     Note: No longer using graphics, however touches of the code are bing used.

Additional Code:
---------------
    done by Myrkul -- health and ammo regen code as well as a few other bits.
    

Beta testers:
------------
    
    All the guys on the http://expertctf.com/forum, you all 
    know who you are, Thanks :)

PR By:
-----

    Lil-Goner for getting the word out about the mod.
 

New Content:
-----------
   some Sounds from archived Q3 battlebots http://planetquake.com/battlebots
        
-------------------------------------------------------------------------------

                            8-10-2006 -- Changes/Updates
                            ----------------------------
1. Upgraded the scripts and code to Quake 4 version 1.3 SDK
2. Fixed some gui bugs
3. Added a new xctf icon


                            5-6-2006 -- Changes/Updates
                            ---------------------------
1.  Upgraded the code to 1.2 Base code for the sdk.
2.  Added 3 XCTF Powerups, Powershield,  Mutant Jump, and Vampire Artifact
	a. Powershield - when active , will reduce damage you take by half 
	b. Mutant Jump, Lets you jump at crazy distances
	c. Vampire Artifact, will give you a percentage of damage you deal to your health
	d. Included is a ctf sample map that shows the powerups and xctf items added
3.  Added  an XCTF Ammo Mega Pack. Used for non-ammor regen modes. 
4.  Fixed Expert weapons Give code, so proper items give with g_inhibitweaps cvar
5.  Fixed (hopefully) the cap times and print statements.

6.  Added an exec line on a per mape name basis on each map load to do custom cvar 
    changes per map. See doc below for more information. This is for servers only.

7.  Fixed a problem with the blaster and only weapon available where the game would lock up.
8.  Changed sound effects for the Grenade Primer weapon to distinguish it from the Launcher.
9.  Added an Expert Version Id var for clarification of Expert Id and older versions.(1.02)
10. Added the ability to change the amount of rail shots, server side  option
11. Added Armor regenning option via server cvar on/off 
12. Added the ability to customize what map items load, items, armor, health, powerups, weapons
13. Added max_health and Max_armor server side cvars
14. Added client side option to turn off projectile trails.
15. Changed the look of the gui a bit. 
16. Fixed a few gui bugs found.
17. Added new graphics for gui and icons for powerups and hud
18. Added the ability to load custom entity files per map
19. Added g_weaponmod server side bitflag to allow weapon mod weapons
20. By default any and all Expert powerups, items will load on maps regardless of inhibits settings
21. Removed Single Player from  gui options. No support for SP mode games.
22. Added a sound channel for the grapple, so grapple sounds don't get squashed by other events 


  

                            3-3-2006 -- Changes/Updates
                            ---------------------------
1. Finally fixed the grapple jitter on wall hanging
2. Added a new weapon (hand grenade with a Launcher) Primer Weapon
3. Back Pack Item added for dropping items on death ie. blaster and gauntlet
4. Alot of changes for Gui related items with the new Primer Weapon
5. Added menu items for binding weapons in the guis
  

-------------------------------------------------------------------------------
 
                            2-14-2006 -- Changes/Updates
                            ----------------------------
1. Fixed yet another code goof on my part with the hook code, removed changes
2. Linux Support via expertl.pk4 included in this release..
3. As always, remove old expert folder/versions and install the new

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

                            2-11-2006 -- Changes/Updates
                            ----------------------------
1. Still working on tweaking grapple move functions.
2. Grapple client 0 jitter corrected. Code bug..my bad
3. Weapons numbering was offset by 1, now corrected.
4. Added auto server grapple prediction (see hookpredict cvar below) 
5. As of this time Hand Grenade weapon is not ready, will release with next release
6. Added a function to remove grapple and stop pulling on hitting a teleporter(untested)
7. Grapple does damage now.. 
8. Grenades from Launcher now bounce 1nce and explode on 2nd impact.


			EXPERT CVARS and SETTINGS
-------------------------------------------------------------------------------
-------------------------------------------------------------------------------


Custom entity file loading per map 
-------------------------------------------------------------------------------
An expert server can now load custom entity files on map loading. The purpose is to 
allow adding of custom expert entities to any map.

Create a file named the same as the map file. Place it in the same path as the map.
Upon server loading the map files, it will also load any entities created in the 
entity file.

View the xctftestmap.pk4 for how to create the files and add entities to it. To view 
it, open it in winzip and view the ctf.ent file.

Example:
	maps/mp/q4ctf1.ent

Generally  speaking though, the best way to create them is to open a map in the editor,
add any Xctf entities you wouldn't see in a typical map. the save the file. Next, open 
the file in a word editor like notepad or wordpad for example, then cut and paste the 
xctf entities to the newly created .ent file.. save it and zip it to a file using the 
maps path. ie. maps/mp/*.* ....
This will allow the game to load the newly created entity file.

New Expert Entities include:

Mutant Jump powerup
Powershield Powerup
Vampire Artifact Powerup
Mega Ammo Pack
Back Pack

Any other standard Q4 items you wish to add to a map

*Note: The file name should be the actual map name and not the description name.
-------------------------------------------------------------------------------


Server map config options..The way it works
-------------------------------------------------------------------------------
What a server admin will need to do .

Create a "mapfilename".cfg and add any cvars or settings they wish to change
An example:
	With map q4ctf1, create a file named q4ctf1.cfg and place it in expert folder
	Add any config changes you want like 
	
	seta g_noclipregions 1 // removes clip areas in maps
	add any other serverside cvars per map..

The server will check for the existance of a .cfg with the servers map file name and
execute it. 

*Note: The file name should be the actual map name and not the description name.
-------------------------------------------------------------------------------


server Cvar inhibitweaps
-------------------------------------------------------------------------------
Uses bitflags to disable weapons
default setting is 81 

0    -- all weapons enabled (except dmg)
1    -- disables gauntlet
2    -- disables blaster
4    -- disables machinegun
8    -- disables shotgun
16   -- disables hyperblaster
32   -- disables grenade Launcher
64   -- disables Nailgun
128  -- disables Rocket Launcher
256  -- disables Rail Gun
512  -- disables Lightning Gun
1024 -- disables Primer weapon -- ranged grenade launcher based on weapon hold times

We never spawn a Dark Matter Gun

Usage: inhibitweaps 81 (This inhibits gauntlet, hyperblaster, and Nailgun)

You find your number by adding each value up to inhibit the particular weapon
1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256 + 512 + 1024 = 2047 

This will disable all and is not recommended..
-------------------------------------------------------------------------------

Server Cvar g_weaponmods
-------------------------------------------------------------------------------
Usage g_weaponmods (value)

Use Bitflags to set weapon mods given to players

0   - disables all weaponmods given
1   - Gives Weaponmod_machinegun_ammo
2   - Gives weaponmod_shotgun_ammo
4   - Gives weaponmod_hyperblaster_bounce
8   - Gives weaponmod_nailgun_power
16  - Gives weaponmod_nailgun_seek
32  - Gives weaponmod_rocketlauncher_homing
64  - Gives weaponmod_rocketlauncher_burst
128 - Gives weaponmod_railgun_penetrate	
256 - Gives weaponmod_lightninggun_chain

So, to use this properly add all the numbers of each weaponmod you want to allow
(1 + 2 + 4 + 8 + 16 + 32 + 64 + 128 + 256) == 511

the default setting is disabled or 0
-------------------------------------------------------------------------------

Server Cvar g_throwspeed
-------------------------------------------------------------------------------
Usage : g_throwspeed 1750 (default)

Sets a grapples speed traveling through the air before it collides with anything
-------------------------------------------------------------------------------


Server Cvar g_pullspeed
-------------------------------------------------------------------------------
Usage: g_pullspeed 650 (default)

Sets the pullspeed a grapple uses to pull a player to the grapples location
-------------------------------------------------------------------------------


Server Cvar g_grappleentity
-------------------------------------------------------------------------------
Usage: g_grappleentity "projectile_hook" (default)

This is for setting custom projectile .def for the grapple entity.

choices are:
	projectile_hook (default)
	projectile_hook_homing (untested in mp)
	projectile_explosive_hook(explodes on a player, same damage as a rocket)

Note:

I suggest you don't play with this unless you know what you are doing with it.
This will allow for custom grapple definitions of the projectile class


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

Server Cvar Lethality
-------------------------------------------------------------------------------
Usage: lethality 1.0(default)

This variable is an overall damage multiplier

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

Server Cvar fireoffset
-------------------------------------------------------------------------------
Usage: fireoffset 8(default)

This variable is used to offset the fire grapple Muzzle Point

Note:

1. Beta and may be removed at a later date
-------------------------------------------------------------------------------

Server Cvar grappleoffset
-------------------------------------------------------------------------------
Usage: grappleoffset

This variable is an Offset for grapple move pull in relation to the grapples
location and the players origin.

Note: 

1. Beta and may be removed at a later date
-------------------------------------------------------------------------------


Server Cvar g_skyhook
-------------------------------------------------------------------------------
Usage: g_skyhook 0|1

This variable Enables,Disables the hook grappling to the sky
Default is enabled , or 1
------------------------------------------------------------------------------- 


Server Cvar allowFallDamage
-------------------------------------------------------------------------------
Usage: allowFallDamage 1

Enables falling damage from server, 0 disables.

Default is allowed

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


Server Cvar g_inhibititems
-------------------------------------------------------------------------------
Usage: g_inhibititems 1(default)

This cvar sets the server to inhibit items on map spawn, Enabled by default.
Items included are pickups , weapons etc...
-------------------------------------------------------------------------------

Server Cvar noclipregions
-------------------------------------------------------------------------------
Usage: noclipregions 0|1

This variable enables and disables clip regions on maps. This is useful on maps
where the some areas are blocked off by invisible walls, known as clip regions,
and allows players more area to move around. 
 
Disabled by default.

Note:
    This should be set on a per map basis and tested on each map before utilizing
    it. Results may allow players to go outside proper bounds of maps and cause
    unforseen problems.

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


Server Cvar  g_inhibititems
-------------------------------------------------------------------------------
Usage: g_inhibititems 1|0

Enables or disables health items on maps Default is disabled or 1

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


Server CVar  g_inhibitpowerups
-------------------------------------------------------------------------------
Usage: g_inhibitpowerups 0|1

Inhibit Quake 4 powerups in maps default is disabled or 1

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


Server CVar g_inhibitweaponitems
-------------------------------------------------------------------------------
Usage: g_inhibitweaponitems 0|1


Inhibit weapon pickups on maps default disabled or 1

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


Server CVar g_inhibitammo
-------------------------------------------------------------------------------
Usage: g_inhibitammo 0|1


	Inhibits Ammo on maps default disabled or 1
-------------------------------------------------------------------------------


Server CVar g_inhibitarmor
-------------------------------------------------------------------------------
Usage: g_inhibitarmor 0|1

Inhibits Armor on maps default disabled or 1
-------------------------------------------------------------------------------


Server CVar g_armorregen
-------------------------------------------------------------------------------
Usage: g_armorregen 0|1

Enables or Disables Armor Reggenning - default disabled. Will start you with 50
and raise to g_maxarmor cvar

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


Server CVar g_healthregen
-------------------------------------------------------------------------------
Usage: g_healthregen 0|1

Enables or Disables health regenning, while enabled will raise health to 
g_maxhealth cvar
-------------------------------------------------------------------------------


Server CVar g_ammoregen
-------------------------------------------------------------------------------
Usage: g_ammoregen 0|1


Enable, disable Ammo regenning, default is enabled
-------------------------------------------------------------------------------


Server CVar g_railshots
-------------------------------------------------------------------------------
Usage: g_railshots 3

Set Rail fire count - 3 2 0r 1
-------------------------------------------------------------------------------


Server CVar g_maxhealth
-------------------------------------------------------------------------------
Usage: g_maxhealth 160

Set to override max health in player.def, max is 999
-------------------------------------------------------------------------------


Server CVar g_maxarmor
-------------------------------------------------------------------------------
Usage: g_maxarmor 120

Set max armor Value, default is 120 max 999
-------------------------------------------------------------------------------


Client Cvar hookpredict -- Updated 2-11-2006
-------------------------------------------------------------------------------
usage: hookpredict 0

Updated: Added a  way for the server to try to set your predict time it can be 
overriden by simply setting hookpredict cvar to something other then 0.

This is still clamped between -200 and 200.

Clamped means you can only use the range of numbers between -200 and 200, nothing 
above or below that will be used, if you set the number to -999, it will use -200.

This is to help clients smooth grapples prediction time on game servers

*Recommend that setting this should be based in the range of your ping

Note: 

1. negative values can improve your movement predictions.

2. Beta and may be removed at a later date.
-------------------------------------------------------------------------------


Client Cvar cg_forceteamcolors
-------------------------------------------------------------------------------
Usage cg_forceteamcolors 0,1, or 2

0-Don't Use Color Cvars, 1-Force colors by team, 2-Use cg_team|cg_enemy colors"

When set to 1, this will force the team colors to use colors based upon the team
you are on, Example, Marines will use bright green, Strogg will use orange

When this is set to 2, teamcolors will be set by using cg_teamcolor and
cg_enemycolor cvars.

Note: Also check these for setting the right skins, *_PM skin models use the 
      shader parms of the team and enemy color settings.   
g_forceMarineModel               ""
g_forceModel                     ""
g_forceStroggModel 		 ""

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

Client cvar cg_teamcolor
-------------------------------------------------------------------------------
Usage: cg_teamcolor "0 255 0" (defaults to green)

when cg_forceteamcolors is set to 2, cg_teamcolor cvar will be use to specify 
team colors

The 3 numbers used in order are: Red Green Blue, in that order, and are valid from
0 to 255 for each color 0 in red uses no red where as 255 is full red. 

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

Client Cvar cg_enemycolor
-------------------------------------------------------------------------------
Usage: cg_enemycolor "255 255 0"(default Orange)

when cg_forceteamcolors is set to 2, cg_enemycolor cvar will be use to specify 
team colors

The 3 numbers used in order are: Red Green Blue, in that order, and are valid from
0 to 255 for each color 0 in red uses no red where as 255 is full red. 

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

Client Cvar zoomoverride
-------------------------------------------------------------------------------
zoomoverride "0"  (default)

When setting this to 1, each weapons zooming can be overridden by a single zoomfov
value  in which you specify, valid values are 20 to 90. They are clamped values,
so if you type something outside that range it will use the closer of the 2 values.

When set to 0, the zooming for each weapon will be set to whatever the weapons 
zooming variable is set to.

All weapons in Expert now have zooming...
-------------------------------------------------------------------------------


client cvar ZoomFov
-------------------------------------------------------------------------------
Usage zoomFov 45 (default)

when zoomoverride is set to 1, the game sets alll weapons fov's to the zoomfov
value, and is clamped between 20 to 90. (Why use a zoom if your going to set it 
outside those values

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


Client CVar cg_noprojectiletrails
-------------------------------------------------------------------------------
cg_noprojectiletrails 0|1 


Turn on or off all projectile trails On = 0
-------------------------------------------------------------------------------
