/* AMXX Mod script. 
* 
*  Warcraft 3 XP 
*  Original idea and code by SpaceDude
*
*  Version 2.6.3
*
*  Configuration file
*
*  Read readme.txt for a desription of the plugin.
*  Read installer.txt for installation information.
*  Read changelog.txt for info about this plugins history of changes.
*		
*
*  Update/Modifications by: 	Mr. B, Dopefish, Tri Moon, Mike4066, [AoL]LuckyJ, 
*				[AoL]Demandred, Pimp Daddy, Denkkar Seffyd, rACEmic,
*				willyumyum, trinity, ferret, Lazarus Long
* 
*  Maintainer of the 2.6.x code: Michael McKoy a.k.a. "ferret"
*  Maintainer of the 2.5.x and prior code: Ryan Schulze a.k.a. "DopeFish"
*
*
* (C)2003-2005 "Spacedude" and all people listed under "Update/Modifications"
*
*
* This program is free software; you can redistribute it and/or
* modify it under the terms of the GNU General Public License
* as published by the Free Software Foundation; either version 2
* of the License, or (at your option) any later version.
*
* This program is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with this program; if not, write to the Free Software
* Foundation, Inc., 59 Temple Place - Suite 330, Boston, MA  02111-1307, USA.
*
* Give credit where due. 
* http://www.opensource.org/
* http://www.gnu.org/
*
*
* Support Forum:
* http://wc3mods.net/forums/index.php?c=6
*/


/* 
 ------------ Enter Warcraft 3 configuration area ------------------

   #### IMPORTANT ####

   If you change something here, you will have to recompile the plugin
   Linux: ./amxxsc warcraft3.sma -o../plugins/warcraft3.amxx
   Win:     amxxsc warcraft3.sma -o../plugins/warcraft3.amxx

   This file shows all possible configuration options with a brief description 
   of the option. Lines with a // in front of them are comments. If you want
   to change an option simply remove the // in front of the #define. You do not 
   need to set all options, only the ones you want to change.
   
   This makes upgrading to newer versions easier, and gives you a better overview
   of which options you have changed. This also makes it possible to make a very 
   simple warcraft.cfg, if you for example only want long term with vault saving
   and the rest of the options should stay default, a warcraft3.cfg file with the
   following two lines would suffice.
   #define SHORT_TERM 0
   #define VAULT_SAVE 1

   The file warcraft3.cfg MUST exist (the file can be empty though).

   #### IMPORTANT ####

*/

// #########################################################
// #### SERVER SETUP -- MAKE SURE THAT THESE ARE RIGHT! ####
// #########################################################

//#define SHORT_TERM 0		// Set this to 0 for long-term XP, and 1 for short-term XP.
				// Configuration if the server is Steam or non-Steam is taken from the AMX setting
				// in include/amxconst.inc now.

// If you set SHORT_TERM to 0 and activate long-term XP, you need a way to save the experience
// There are two methods, VAULT and MySQL. Both are extremely fast. One uses MySQL to store and
// the other uses AMX's VAULT, which is a file on your disk. Vault is default. If you enable
// MySQL, vault is automaticly disabled.
//#define MYSQL_ENABLED 1	// Set this to 1 to use mySQL database saving rather than vault.

// Language of ingame messages and menus from the warcraft3 plugin
// Please select only one. Change LANG_ENG to 0 if you pick German or French
//#define LANG_ENG 1  		// English
//#define LANG_GER 0  		// Deutsch  / German
//#define LANG_FRE 0 		// Français / French

// ### WARNING ###
// The following should only be used by experienced server operators! These are methods of converting
// various forms of saved experience between one another. If you do not know what you're doing
// you need to leave this alone!
//
// These provide the only method for converting from the old war3users.ini file to the new VAULT!

//#define CONVERT_TO_VAULT 0	// Convert from old war3users.ini file to Vault saving method. This
				// will check for the file war3users.ini, and if it exists will
				// convert it to Vault. Vault move war3users.ini to a file called
				// war3users.bak. After conversion, this will not occur again unless
				// you recreate war3users.ini.
				
//#define VAULT_PROTECT 1	// Turning this on will stop the conversion from war3users.ini from
				// overwriting information already in the Vault. This is on by default.
				// Turning this off could essentially provide a method of altering the
				// Vault indirectly by creating your own war3index.ini. The Vault would
				// convert and load the new information the next time the map changes or
				// the server starts.
				
				
// ##########################
// #### END SERVER SETUP ####
// ##########################


// ################
// #### TWEAKS ####
// ##############################################################################################################
// PART 1: CRITICAL TWEAKS -- PLEASE LOOK OVER THESE
// ##############################################################################################################

// DAYS_BEFORE_DELETE MYSQL_AUTO_PRUNING do not work 100% correct at the moment, I would not recommend using them
// Vault pruning works fine.
//#define DAYS_BEFORE_DELETE 14		// no longer uses the sv_daysbeforedelete cvar.  
					// However many days before deleting XP
					// or pruning from MySQL database.

//#define MYSQL_AUTO_PRUNING 0		// Automatically prunes the database of old users at a mapchange 
					// occuring between 5:36 to 5:59 AM. Use at your own risk...

//#define VAULT_PRUNE_LIMIT 5		// This is how often the vault prunes players. Default is every 5 days. 
					// This is not the same as DAYS_BEFORE_DELETE.
					// Every 5 days it will check for players 14 days
					// old, and delete those players from the vault.				

//#define SAVE_WITH_IP 0		// Set to 1 if the plugin should save via IP instead of AuthID
					// Useful for servers running a patched cs1.6 for LAN
					
//#define STARTINGLEVEL 0		// Which level should players start out at. Useful for long term servers
					// or for clanwars / leagues.					

#define EXPANDED_RACES 1		// This line controls what races are available. By default, only the
					// original four races are available. By uncommenting this, you enable
					// the expanded races (8 total).


// END PART 1
// ##############################################################################################################
// PART 2: NONCRITICAL TWEAKS -- YOU CAN SAFELY IGNORE THIS
// ##############################################################################################################
// These are settings to adjust the behavoir of the plugin to match your needs

//#define BOMBPLANT_XP_BONUS 6		// What you see is what you get 
//#define DEFUSE_XP_BONUS 6		// These are set correctly for longterm XP
//#define HOSTAGE_XP_BONUS 6		// Ex: 87 bomb plant bonus, gives you87 XP
//#define KILLRESCUEMAN_XP_BONUS 6	// For short term XP, this is multiplied by 10
//#define KILL_BOMB_CARRIER 6		// Set to 0 to disable entirely. Otherwise set to base XP to award.
//#define VIP_KILL_BONUS 6		// Set to VIP killing reward. Note: You can give exactly 0 XP for this, 
					// by setting to 0.
//#define VIP_ESCAPE_BONUS 6		// Set to VIP escape reward.
//#define TOME_XP_BONUS 20		// XP for buy a tome of experience.

//#define HOSTAGE_TOUCH_BONUS 1 	// Set 1 to enable.
//#define ATTEMPT_DEFUSE_BONUS 1 	// Set 1 to enable. 

//#define HEADSHOT_BONUS 3 		// Set integer to number given as reward for headshot kills.
//#define DEFUSER_KILL_BONUS 1 		// Set 1 to enable. Gives Bonus for killing the bomb defuser.
//#define BOMB_EVENT_BONUS 0		// Set 1 to enable. Bonus for spawn, pickup, drop bomb.
//#define VIP_SPAWN_BONUS 0		// Set 1 to enable.

//#define OBJECTIVE_XP_PRINT 1		// If enabled, will print private messages to client console showing the XP 
					// they gain for completeting an objective.
					// This will let even the n00bs catch on to quick XP
					// gain by being near the action.

//#define HOSTAGE_KILL_MAX 3		// Max hostages that can be killed without punishment.	
//#define HOSTAGE_KILL_SLAP 1		// Set 1 to enable. Slaps player.	
//#define HOSTAGE_KILL_XP 1 		// Set 1 to enable. Removes XP.	
//#define FORGIVE_HOSTKILL_ROUND 1 	// Set 1 to enable. Resets hostages killed tracking each round.
//#define HOSTAGE_TAX 0			// Punishment for "stealing" Hostages from Teammates, dosen't always work

					// Prevent XP exploits using objectives on a near empty server (ex: at 5:00 AM)
//#define XPLOIT_PROTECT 4		// Set minimum number of players for objective XP handouts.
					// Ex: Set to 4, you need exactly 4 players for XP Bonus'.	

//#define OPT_RESETSKILLS 1 		// Option in the warcraft3 menu to allow skills (not XP) to be reset 
					// in the next round. Player can then rechoose his skills if turned on.
					
//#define ITEMS_DROPABLE 1		// Do players drop their item (if they have one) when they die?
					// Ankh and Tomb are ignored. 
					// REQUIRES Vexd Module
					
//#define SHOPMENU_IN_BUYZONE 1		// Restrict shopmenu to buyzone area, can be controlled 
					// by the cvar mp_shopzone to turn off on certain maps

//#define NON_ULTIMATE_VIP 1		// Stop VIP's from using Ultimate abilities. Warns them too.
					// Set 1 to deny them their powers.	

// END PART 2
// ##############################################################################################################
// PART 3: Ultimate, Skills and Race Tweaking Area
// ##############################################################################################################
// These are settings to adjust the Skills and Ultimates of the different races. 

//#define ULTIMATESEARCHTIME 50 	// How long you hear beep beep beep for... default is 50.
//#define ULTIMATE_WARMUP 10.0		// Ultimates do not work for X seconds with this feature.
//#define ULTIMATE_READY_SOUND 0	// Set 1 to enable. When your ultimate is ready again it says "Power Restored".	
//#define ULTIMATE_READY_ICON 1		// Flashes a Lightning symbol on the left when Ultimate is ready.
//#define ULTIMATE_FIRST_ROUND 1	// Turn this off and Ultimates are unavailable the first round of a map

// ## Undead options ##
//#define EXPLOSION_RANGE 200     	// Undead Suicide bomber is usually at 300 range
//#define WARN_SUICIDERS 1 		// Tells Undead Scourges their bomb is armed when they hit ultimate key.
					// A second key press then detonates it. 			
//#define EXPLOSION_MAX_DAMAGE 75	// Damage inflicted by Undead explosion.

// ## Human options ##
//#define TELEPORT_COOLDOWN 20.0	// Default is 20.0
//#define KNIFEINVISIBILITY 70  	// Max invisibility with knife (255-0, 0=invisible 255=totally visible).
//#define BLINK_HUMAN_ULTIMATE 1 	// Set 1 to enable. Teleports player to where they are aiming. 
					// Note: to balance it, I made players "dizzy" when they do it.
//#define RETRY_COOLDOWN 3.0		// Default is 3.0, no effect if BLINK_HUMAN_ULTIMATE is 0
//#define BLINK_RADIUS 250		// In this radius, enemies with the immunity necklace will cause the 
					// teleport to fail. (For Human Blink ultimate only).	

// ## Orc options ##
//#define CHAINLIGHTNING_COOLDOWN 40.0	// Default is 40.0
//#define LIGHTNING_DAMAGE 50		// Orc lightning is usually at 50 HP damage
//#define ORCNECKLACE 1 		// Set to 1 if the Necklace should protect against Orc Grenades
//#define ORCNADELESS 1			// Set to 1 if you want orc nades to do less damage if Orc Necklace
					// isn't allowed. Set to 0 for full damage. Default is 1.
//#define ORCNADE_CVAR 0 		// Set to 1 to create an Orc Grenade CVAR. 				
					// mp_alloworcnade 0 to disable orc grenades.
					// Recommend plugin to set it for specific maps.
					// Get one here: http://amxmod.net/forums/viewtopic.php?p=40104

// ## Night Elf options ##
//#define NIGHTELF_DROPWEAPON 0		// If turned on enemy drop the weapon they are holding when 
//#define ENTANGLEROOTS_COOLDOWN 40.0	// Default is 40.0
					// caught by entangle roots

// Modify level requirements for getting the Ultimate skill.
//#define MODIFIED_ULT_LEVEL 0 		// Set 1 to enable modified skill requirements.				
//#define UNDEAD_ULT 6			// Default values is 6 for each race.
//#define HUMAN_ULT 6
//#define ORC_ULT 6
//#define ELF_ULT 6						
//#define BLOOD_ELF_ULT 6		// EXPANDED RACE
//#define TROLL_ULT 6			// EXPANDED RACE
//#define DWARF_ULT 6			// EXPANDED RACE
//#define LICH_ULT 6			// EXPANDED RACE

// ## EXPANDED RACE SECTION ## //

// ## Blood Elf options ##
//#define SHADOWSTRIKE_DAMAGE 10       	// damage done by blood elf shadowstrike
//#define SHADOWSTRIKE_DURATION 10    	// duration of blood elf shadowstrike
//#define SHADOWSTRIKE_COOLDOWN 40.0  	// cooldown period of blood elf shadowstrike

// ## Troll options ##
//#define HEALINGWAND_HEALTH 10		// How much health does healing wand restore each seconds? Default is 10. (5 seconds = 50 health)
//#define HEALINGWAND_RANGE 400		// How close teammates have to be to be healed. Default is 200
//#define HEALINGWAND_COOLDOWN 40.0 	// Cooldown period for Healing Wand

// ## Dwarf options ##
//#define DWARF_SMOKE 0			// Uncomment this to stop dwarves from getting smoke grenades.
//#define AVATAR_DURATION 2.0		// The avatar ultimate will last this long, def 3.0 seconds
//#define AVATAR_COOLDOWN 40.0 		// Cooldown period for Avatar

// ## Lich options ##
//#define FROSTNOVA_RANGE 400		// How close enemies have to be to be affected, default 400
//#define FROSTNOVA_DURATION 5.0	// How long enemies affected will be slowed. Default 5 seconds
//#define FROSTNOVA_COOLDOWN 40.0	// Cooldown period for Frostnova

// END PART 3
// ##############################################################################################################
// PART 4: Experimental or Highly Advanced Settings
// ##############################################################################################################
// These include advanced or experimental options that server owners may want to use or try.

// ------
// This setting is a performance option related to how we save players. By default, we save all players
// at the end of every round. This sometimes causes a burst of lag during the last kill of the round on
// servers that have a large amount of players saved. If you disable this, players will only be saved
// when the map changes or when they disconnect. This is slightly less reliable but has better performance.
//
// Default: ENABLED
// ------
//#define ROUNDEND_SAVEALL 1

// ------
// This setting controls whether or not the troll regen skill and troll ultimate will cause a green flash
// each time the player is healed. This can cause the effect of flash bangs to be reset, giving trolls
// an advantage in that area. By default, we will do the green flash. You can turn it off by setting
// this to 0.
//
// Default: ENABLED
// ------
//#define TROLL_REGEN_FLASH 0

// ------
// This setting will cause pistols dropped by reincarnating players to be deleted from the map. This uses a
// good deal of CPU and will hurt server performance if enabled.
//
// Default: DISABLED
// ------
//#define REINCARNATION_DELETE 1

// ------
// This setting controls how far the human "Blink" ultimate can teleport a player. By default, the limitation
// is not enabled. Uncomment the following 3 defines to activate it. The second two defines control how far
// the player can travel vertically and horizontally. The default height is 60, about twice the double doors
// on aztec. The horizontal default is 1200, about the length of the pit in aztec between the two double door
// sets.
//
// Default: DISABLED
// ------
//#define TELEPORT_RESTRICTION 0
//#define TELEPORT_RESTRICTION_HEIGHT 60
//#define TELEPORT_RESTRICTION_DISTANCE 1200

// ------
// This is a "fix" for orcs spamming their critical grenade. Its experimental. If an orc throws a second
// grenade in the same round, they will be teleported in a fashion that will result in them being killed or
// damaged by their nade. This is disabled by default and may not always work.
//
// Default: DISABLED
// ------
//#define ORC_SPAM_FIX 1

// ------
// This activates the "new" damage_event() function. It was designed to be better on performance but
// has a memory leak at this time. Use at your own risk, very experimental and may not result in any
// performance gains at all.
// WARNING: As of AMX Mod X 1.5x setting this option renders a compiler error, so don't use it or, even
//          better, fix it.
//
// Default: DISABLED
// ------
//#define NEW_DAMAGEEVENT 1

// ------
// This activates the viewing of all communications between the plugin and the DBI module, as well as
// the resulting return codes. Enabling this WILL degrade performance and won't bring any benefit at
// all, it's here for diagnostic and development only. Leave it alone!
// ------
//#define SQL_DEBUG 1

// END PART 4


