//==============================================================================
// GxCoop v2.13
//==============================================================================

//=================
Change Log:

6/21/11	-	Initial release!


//=================
Abstract:
	GxCoop is the spiritual successor of xCoop. It runs on the JGrass platform
(requires min. version of JGrass v2.1).

	The goal of GxCoop is to provide a simple set of controls over gameplay
mechanics to the end user, including control over HUD/Scoreboard elements, level
advance controls, friendly fire controls and playerclass translation controls.

//=================
Installation:
	The following files should be included with this README:
	-GxCoop.u		(Main file)
	-GxCoop_Shared.u	(Main file)
	-GxCoop.ini
	-GxCoop.int

	Place all files in your Unreal's system directory. Change the following
line in your JGrass.ini file:

	GameLogicHandlerClass=GxCoop.GxCoop

	GxCoop will now automatically load with your server when running JGrass.

	You do not need to add GxCoop to serverpackages, but you do need to add
GxCoop_shared to serverpackages to allow clients to see summoned playerstarts.

//=================
Help / Walkthrough:
	
	To configure GxCoop you have two options. You can either open GxCoop.ini
or access the variables through Advaced Options (GameTypes->JGrass->Handlers->
GameLogicHandlers->GxCoop).

	Note: Any variable with a * may have its behavior overridden by the SecurityHandler
class that you are running.

[FriendlyFire]
bNullifyFFDamage* - 	When set to true, all friendly fire damage is set to 0.
bReportFF - 				If true, then players will be alerted to who is shooting them
								in the event of friendly fire.
FFDamageScaling* - 	Multiplies all friendly fire damage by this scaling value. This
								can be used to reduce the amount of damage imparted from
								friendly fire.
								
[Items]
bRespawnInventory* -		If true, all inventory in the map will respawn. Does not apply
									to thrown or dropped inventory.
GiveItem -						List of inventory that will be given to players/NPCs upon
									spawning. Each entry must be in PackageName.ClassName
									format.
InventoryRespawnTime -	Amount of time that must pass between respawning of
									inventory items in the map. Only used if bRespawnInventory
									is true.
									
[Maps]
bOverrideMapEnds	-		If true, then map ends will be overridden with the config
									setting specified in the table (see below).
bUseMapTimers -			If true, then map timers will be used for automatic ending
									as specified in the table (see below).
DefaultMapTimerMinutes -	If a map timer in the table is unspecified then this value
										will be used by default.
MapOverrideTable
	MapName -			Filename of the map. Examples are "Chizra.unr" 
								and "SpireVillage.unr"
	MapTimerMinutes -	Amount of minutes that will pass before the level is 
									automatically ended. Requires bUseMapTimers to be 
									true to be active.
	NextMapOverride* -	Name of the next map to travel to. Only true if 
									bOverrideMapEnds is true.

[Messages]
bSilentBroadcastMessages -		If true, then all messages broadcasted by GxCoop
												will not trigger beep sounds on the client.
EnteredMessage - 	Text message that is broadcasted upon player join. The name
								of the incoming player is prepended to this string.
LeftMessage - 			Same as EnteredMessage, but broadcasted upon player exit.
PreLoginConnectingMessage -	Same as EnteredMessage, but broadcasted upon
												a player's initial connection request to server.
MapTimerMessage -	Messages broadcasted at map timer intervals. Specify the
								seconds and message broadcasted to enable the message.

[Misc]
bShowEnds -			If true, all endings will be visible to clients.

[Player]
PlayerReplacementName - 	Player name that is assigned to incoming players
											that do not have a name set (i.e. their name is set
											to "Player")
ClassMappingTable*
	ClassName -		The name of the class to map from. Examples include "MALEONE"
							and "SKAARJPLAYER". You do not need to specify the package name,
							only the class.
	ReplacementClass* -		The class that the incoming player with matching classname
										should be mapped to. Requires PackageName.ClassName
										formatting.
								
[Score]
ScoreMapping -		Table that outlines custom score values to be awarded to
							players upon killing certain enemies.
	EnemyName - 	Full PackageName.ClassName of the enemy to specify a point
							value for.
	PointYield - 		Points to yield to the player upon killing the associated enemy.
	
[Startup]
StartupCommand -		List of commands that will be executed automatically upon
								level switch & server start.
								
[Visuals]
	[Variables]
		bHUDCompatibilityMode -		If true, all messages broadcasted by GxCoop
													will be broadcasted in compat. mode. This
													ensures that the messages will render on any
													specified HUD (i.e. it will set the Event field of
													all messages to 'event'). If false, the event
													field will be set to 'GGameLogicHandler' which
													can be implemented by supporting HUDs.
		HUDClass - 		Fully qualified PackageName.ClassName string denoting
								the class of the custom HUD to load.
		ScoreBoardClass -		Same as HUDClass, but for the ScoreBoard.
		
	---
		
	In addition to the above variables, GxCoop supports several custom commands.
The following is a list of custom commands, including their CommandName and 
Effect.  You should alter your SecurityHandler config appropriately if necessary 
(check your SecurityHandler's help on adding custom commands). All commands 
must be prefixed with the "Custom" command (for example, "Custom Help" would 
be a valid command)

[Custom Commands]
CommandName		|	Effect
-------------------------------------------------------------------------------------------------------------------
Help						-	Displays all custom commands available to the user.

KNI						-	Destroys all inventory that is near the user.

KNP						-	Destroys all nearby pawns near the user, with the
								exception of PlayerPawns.

AddStart				-	Creates a priority playerstart at the user's location. This
								playerstart will have priority over all stock playerstarts --
								players will respawn at any priority playerstart if there is
								one. If there are multiple, then one will be selected at
								random.
								
RemoveStarts		-	Destroys all priority playerstarts in the map.

(all commands from the superclass GCoopGame are inherited)
								
								
//=================
Conclusion:
	If you have any questions or comments, feel free to email me at 
	pravin_prabhu at hotmail.com.

You can also post on the UDHQ forums, found at 
	http://udhq.falconpunch.net/phpBB3/

Keep it Unreal!
-Pravin "Pcube" Prabhu
http://udhq.org

END





