//
// ************************************************
// ****   Warcraft:Source Mod for CS:S/DOD:S   ****
// ************************************************
// **** coded by kryptonite                    ****
// **** with credits to the community, Mattie, ****
// **** Awuh0 and all the supporters           ****
// ****                                        ****
// **** official website:                      ****
// ****    http://wc3source.de                 ****
// ************************************************
// **** Date: Dec 02, 2007, v0.77              ****
// ************************************************
//
// #############################################
// ### CONFIG IS NOW IN es_WCS_config_db.txt ###
// ###  edit the config file, nothing here   ###
// #############################################
block wcs_config
{
  // The config part moved. Check the file:
  // addons/eventscripts/wcs/es_WCS_config_db.txt
  // and edit the settings.
}
// #############################################
// ### DONT CHANGE ANYTHING BELOW THIS LINE  ###
// ### UNLESS YOU KNOW WHAT YOU ARE DOING !  ###
// #############################################

block load
{
  // logging and init the vars
  echo "-----------------------"
  echo "[WCS] Loading Warcraft:Source mod ..."
  // version info
  es_xset wcs_version "v0.77" "script version"
  es_xset wcs_lng_ver "v1.3" "language file version"
  es_xmakepublic wcs_version
  es echo [WCS] Version: server_var(wcs_version)
  // credits to the creator (don't modify!)
  es_xset wcs_creator "WCS by Kryptonite - http://wc3source.de" "The author of this mod"
  es_xmakepublic wcs_creator
  // for compatibility
  es_xset wcs_exists 0 "use the short var 'ex' in future"
  // global variables
  es_xset ex 0 "often used variable for es_exists"
  es_xset wcs_cmd 0 "holds a command code"
  es_xset wcs_key 0 "used for es_foreachkey"
  es_xset wcs_val 0 "used for es_foreachval"
  es_xset wcs_text 0 "typically for formating output"
  es_xset wcs_menu 0 "what menu is active"
  es_xset wcs_page 0 "on which page is the user"
  es_xset wcs_tmp 0 "temporary var"
  es_xset wcs_tmp1 0 "temporary var"
  es_xset wcs_tmp2 0 "temporary var"
  es_xset wcs_gravity 0 "gravity var"
  es_xset wcs_team 0 "team var: 0=unassigned, 1=spectator, 2=terrorist/american, 3=counter-terrorist/german (CSS and DOD:S)"
  es_xset wcs_author 0 "author of a race"
  es_xset wcs_team_targetn 0 "team target name, like #c or #t"
  es_xset wcs_allow_only 0 "restricted race?"
  es_xset wcs_magnitude 0 "strengh of an effect"
  es_xset wcs_radius 0 "radius of an effect"
  es_xset wcs_bonusxp 0 "additional XP per kill"
  es_xset wcs_ulti_allow 0 "allow ultimate now?"
  es_xset wcs_gamestarted 0 "is the game started (round_start)"
  es_xset wcs_shopcat 0 "shopmenu category"
  es_xset wcs_eventcat 0 "event category"
  es_xset wcs_length 0 "string length"
  es_xset wcs_strlen 0 "strigh length"
  //
  es_xset wcs_money 0
  es_xset wcs_cash 0
  es_xset wcs_phoenix 0
  es_xset wcs_type 0
  es_xset wcs_levelup 0
  es_xset wcs_infotext 0
  es_xset wcs_totalplayers 0
  es_xset wcs_lng 0
  es_xset wcs_lng2 0
  es_xset wcs_lng3 0
  es_xset wcs_alpha 0
  es_xset wcs_target 0
  es_xset wcs_flashid 0
  es_xset wcs_flashcounter 0
  es_xset wcs_flasheffect 0
  es_xset wcs_limit 0
  // user related
  es_xset wcs_id 0 "STEAM id var"
  es_xset wcs_sid 0 "STEAM id var"
  es_xset wcs_uid 0 "USER id var"
  es_xset wcs_user 0
  es_xset wcs_userid 0 "USER id var"
  es_xset wcs_targetid 0 "targeting userid"
  es_xset wcs_giveid 0
  es_xset wcs_removeid 0
  es_xset wcs_lastplayed 0 "date of last time played, unix timestamp"
  es_xset wcs_counter 0 "for countering"
  es_xset wcs_scounter 0 "the 2nd counter"
  es_xset wcs_race 0 "race id"
  es_xset wcs_racename 0 "race name"
  es_xset wcs_raceid 0 "race id"
  es_xset wcs_level 0 "player level"
  es_xset wcs_levelf 0
  es_xset wcs_unused 0 "unused skill points"
  es_xset wcs_unusedf 0
  es_xset wcs_xp 0 "player xp"
  es_xset wcs_xpf 0
  es_xset wcs_skill 0 "skill id"
  es_xset wcs_skilld 0 "skill description"
  es_xset wcs_credits 0 "credit amount"
  es_xset wcs_numberofskills 0 "number of race-skills"
  es_xset wcs_numberoflevels 0 "number of race-levels"
  es_xset wcs_skillnumber 0 "skill number"
  es_xset wcs_skilltype 0 "skill type"
  es_xset wcs_skillname 0 "skill name"
  es_xset wcs_skilldescr 0
  es_xset wcs_skilllevel 0
  es_xset wcs_name 0
  es_xset wcs_requiredlevel 0
  es_xset wcs_maxlevel 0
  es_xset wcs_curlevel 0
  es_xset wcs_alive 0
  es_xset wcs_adminadd 0
  es_xset wcs_itemactivate 0
  es_xset wcs_respawn 0
  es_xset wcs_immunity 0
  es_xset wcs_params 0
  es_xset wcs_armor 0
  es_xset wcs_player 0
  es_xset wcs_mole 0
  es_xset wcs_damage 0
  es_xset wcs_numeric 0
  es_xset wcs_silent 0
  es_xset wcs_total_level 0
  es_xset wcs_giveuserid 0
  es_xset wcs_amount 0
  es_xset wcs_reason 0
  es_xset wcs_forced 0
  es_xset wcs_longjump 0
  es_xset wcs_speed 0
  es_xset wcs_allowed 0
  es_xset wcs_adminff 0
  es_xset wcs_dead 0
  es_xset wcs_time 0
  es_xset wcs_op 0
  // shop
  es_xset wcs_descr 0
  es_xset wcs_cost 0
  es_xset wcs_level 0
  es_xset wcs_dab 0
  es_xset wcs_duration 0
  es_xset wcs_invis 0
  es_xset wcs_category 0
  es_xset wcs_iname 0
  es_xset wcs_icost 0
  es_xset wcs_ilevel 0
  es_xset wcs_idab 0
  // game stuff
  es_xset wcs_game 0 "the current game, CSS or DODS"
  es_xgetgame wcs_game
  es_xset wcs_game_css "Counter-Strike: Source" "original name for CSS"
  es_xset wcs_game_dods "Day of Defeat : Source" "original name for DODS"
  // new method to detect DOD:S...es_getgame doesn't work all time
  es_xexists ex variable "dod_bonusround"
  ifx true(ex) do
  {
    // load DOD:S support
    es_xloadevents "../dod/resource/modevents.res"
    es_xset wcs_game "Day of Defeat : Source"
  }
  es_xset wcs_wpn_knives "weapon_knife|weapon_amerknife|weapon_spade|weapon_punch"
  es_xset wcs_wpn_grenades "weapon_hegrenade|weapon_frag_ger|weapon_frag_us|weapon_riflegren_ger|weapon_riflegren_us"
  es_xset wcs_wpn_shotguns "weapon_m3|weapon_xm1014"
  // list of all items you can get
  es_xset wcs_wpn_all "weapon_vest|weapon_vesthelp|weapon_nvgs|weapon_c4|weapon_knife|weapon_usp|weapon_glock|weapon_p228|weapon_deagle|weapon_elite|weapon_fiveseven|weapon_m3|weapon_xm1014|weapon_mp5navy|weapon_tmp|weapon_p90|weapon_mac10|weapon_ump45|weapon_galil|weapon_famas|weapon_ak47|weapon_sg552|weapon_m4a1|weapon_aug|weapon_m249|weapon_scout|weapon_awp|weapon_g3sg1|weapon_sg550|weapon_flashbang|weapon_hegrenade|weapon_smokegrenade"
  es_xset wcs_wpn_all_dod "weapon_amerknife|weapon_colt|weapon_garand|weapon_thompson|weapon_bar|weapon_spring|weapon_30cal|weapon_bazooka|weapon_m1carbine|weapon_k98|weapon_spade|weapon_p38|weapon_mp40|weapon_mp44|weapon_k98_scoped|weapon_mg42|weapon_pschreckweapon_mg42|weapon_frag_us|weapon_smoke_us|weapon_riflegren_us|weapon_spade|weapon_c96|weapon_frag_ger|weapon_smoke_ger|weapon_riflegren_ger"
  es_xset wcs_eventarray1 "WCSpha|WCSphv|WCSpd|WCSpk|WCSps|WCSpsay"
  es_xset wcs_eventarray2 "player_attacker|player_victim|player_death|player_kill|player_spawn|player_say"
  es_xset wcs_validtypes "player_buy|player_death|player_kill|player_attacker|player_victim|player_spawn|player_say"
  es_xset wcs_roundcounter 0
  es_xset wcs_wardencounter 0
  es_xset wcs_round 0
  es_xset wcs_regenerate 0
  es_xset wcs_dice 0
  es_xset wcs_chance 0
  es_xset wcs_wall 0
  es_xset wcs_space " "
  es_xset wcs_void ""
  es_xset wcs_location_t 0
  es_xset wcs_location_c 0
  es_xset wcs_popupid 0
  es_xset wcs_itemid 0
  // race skills variables
  es_xset wcs_rand 0
  es_xset wcs_health 0
  es_xset wcs_dmg 0
  es_xset wcs_x1 0
  es_xset wcs_y1 0
  es_xset wcs_z1 0
  es_xset wcs_x2 0
  es_xset wcs_y2 0
  es_xset wcs_z2 0
  es_xset wcs_x 0
  es_xset wcs_y 0
  es_xset wcs_z 0
  es_xset wcs_log 0 "contains a log message"
  // debug setting
  es_xset wcs_debug 0 "flag for enabling debug mode"
  // load the config - load first !!
  es_xdoblock wcs/wcs_loadconfig
  // IMPORTANT
  es_xload wcs/WCSlanguage
  es_xload wcs/WCSfunctions
  es_xload wcs/WCSraces
  es_xload wcs/WCSshop
  es_xload wcs/WCSusers
  es_xload wcs/WCStop10
  es_xload wcs/WCSadmin
  es_xload wcs/WCSultimates
  es_xload wcs/WCSaddons
  es_xexists ex command su_mysqlfast
  ifx false(ex) do
  {
    if (server_var(wcs_cfg_enablesql) = 1) then echo [WCS] WARNING su_mysqlfast not found, disabling SQL support...
    es_xset wcs_cfg_enablesql 0
  }
  // SQL SUPPORT
  if (server_var(wcs_cfg_enablesql) = 1) then es_xload wcs/WCSsql
  es_xkeygroupcreate WCStmp
  // register custom commands
  es_xexists ex command wcs_reload
  if (server_var(ex) = 0) then es_xregcmd wcs_reload wcs/wcs_reload "Reloads the script, parameter: all, config, subscripts, db"
  ifx parse("wcs_nofeedback != 1") do
  {
    es_set wcs_vers server_var(wcs_version)
    es_xstring wcs_vers section 0 5
    es_format wcs_feedbackurl "http://wcs.despo-clan.de/feedback.php?wcsversion=%1&ip=%2&server=%3" server_var(wcs_vers) server_var(ip) server_var(hostname)
  }
  echo "[WCS] Loading done."
  echo "-----------------------"
}

block unload
{
  echo "-----------------------"
  // unload the mod, subscripts cleanup themselfs
  es_xunload wcs/WCSadmin
  es_xunload wcs/WCStop10
  es_xunload wcs/WCSusers
  es_xunload wcs/WCSshop
  es_xunload wcs/WCSlanguage
  es_xunload wcs/WCSraces
  es_xunload wcs/WCSfunctions
  es_xunload wcs/WCSultimates
  es_xunload wcs/WCSaddons
  if (server_var(wcs_cfg_enablesql) = "1") then es_xunload wcs/WCSsql
  es_xkeygroupdelete WCStmp
  // keygroup for race+shop info
  es_xkeygroupdelete WCSinfo
  echo "[WCS] Warcraft:Source mod disabled ..."
  echo "-----------------------"
}

// >>>>>>>>>>>>>>>>> START OF REWARD BLOCK >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DONE
event bomb_defused
{
  // give XP when the bomb is defused
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombdefused"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_defusexp) server_var(wcs_lng)
}

event bomb_planted
{
  // give XP when the bomb is planted
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombplanted"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_plantxp) server_var(wcs_lng)
}

event bomb_exploded
{
  // give XP when the bomb is exploded
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombexploded"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_explodexp) server_var(wcs_lng)
}

event hostage_rescued
{
  // give XP when a hostage is rescued
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_hostage"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_hostagexp) server_var(wcs_lng)
}
// <<<<<<<<<<<<<<<<< END OF REWARD BLOCK >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>

// >>>>>>>>>>>>>>>>> DOD:S EVENTS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>> DONE
event dod_tick_points
{
  wcs_getlanguage "wcs_lng" "wcs_lng_scoretick"
  es_xforeachkey wcs_key in "WCSuserdata" "es_getplayerteam wcs_team server_var(wcs_key);if (server_var(wcs_team) = event_var(team)) then wcs_givecredits server_var(wcs_key) server_var(wcs_tickcredits) server_var(wcs_lng) 0"
}

event dod_round_win
{
  wcs_getlanguage "wcs_lng" "wcs_lng_wonround"
  es_xforeachkey wcs_key in "WCSuserdata" "es_getplayerteam wcs_team server_var(wcs_key);if (server_var(wcs_team) = event_var(team)) then wcs_givecredits server_var(wcs_key) server_var(wcs_roundwoncredits) server_var(wcs_lng) 0"
}

event dod_bomb_planted
{
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombplanted"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_plantxp) server_var(wcs_lng)
}

event dod_bomb_defused
{
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombdefused"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_defusexp) server_var(wcs_lng)
}

event dod_bomb_exploded
{
  es_exists ex userid event_var(userid)
  wcs_getlanguage "wcs_lng" "wcs_lng_bombexploded"
  if (server_var(ex) = 1) then wcs_givexp event_var(userid) server_var(wcs_explodexp) server_var(wcs_lng)
}

event dod_round_start
{
  // stuff from round_end  
  es_xmath wcs_roundcounter + 1
  es_xkeycreate "WCStmp" "phoenix"
  es_xkeysetvalue "WCStmp" "phoenix" "2" "0"
  es_xkeysetvalue "WCStmp" "phoenix" "3" "0"
  // refresh ultimate countdown
  es_xset wcs_curtime 0
  es est_uptime wcs_curtime
  es_xforeachkey wcs_key in "WCSuserdata" "es_keysetvalue WCSuserdata server_var(wcs_key) ultimate server_var(wcs_curtime);es_keysetvalue WCSuserdata server_var(wcs_key) jetpack 0"
  if (server_var(wcs_cfg_savexpround) > 0) do
  {
    if (server_var(wcs_roundcounter) > 0) do
    {
      es_xcopy wcs_tmp wcs_roundcounter
      es_math wcs_tmp / server_var(wcs_cfg_savexpround)
      es_token wcs_tmp server_var(wcs_tmp) 1 "."
      es_math wcs_tmp * server_var(wcs_cfg_savexpround)
      if (server_var(wcs_tmp) = server_var(wcs_roundcounter)) do
      {
        ifx false(wcs_turbomode) do
        {
          ifx true(wcs_cfg_enabletxtfile) do
          {
		    es_xkeygroupsave WCSusers |wcs/WCSusers
            es_xkeygroupsave WCStop10 "|wcs/WCStop10"
            es_xmsg #multi #lightgreen: #green[WCS] #lightgreensaving world ...
	      }
        }
      }
    }
  }
}
// <<<<<<<<<<<<<<<<< END DOD:S BLOCKS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// >>>>>>>>>>>>>>>>> SERVER STUFF >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
event es_client_command
{
if (server_var(wcs_debug) = 1) then profile begin clientcmd
  // handle various client commands for the menus
  if (event_var(command) = menuselect) do
  {
    es_exists ex key WCSuserdata event_var(userid)
    ifx true(ex) do
    {
      es_keygetvalue wcs_menu WCSuserdata event_var(userid) menu
      if (server_var(wcs_menu) != "0") do
      {
        es_set wcs_userid event_var(userid)
        if (server_var(wcs_menu) = "race") then es_xdoblock wcs/WCSraces/wcs_race_handle
        if (server_var(wcs_menu) = "level") then es_xdoblock wcs/WCSusers/wcs_spendskills_handle
        if (server_var(wcs_menu) = "admin1") then es_xdoblock wcs/WCSadmin/wcs_admin1_handle
        if (server_var(wcs_menu) = "admin2") then es_xdoblock wcs/WCSadmin/wcs_admin2_handle
        if (server_var(wcs_menu) = "admin3") then es_xdoblock wcs/WCSadmin/wcs_admin_setting_handling
        if (server_var(wcs_menu) = "shop1") then es_xdoblock wcs/WCSshop/wcs_shop_handle
        if (server_var(wcs_menu) = "shop2") then es_xdoblock wcs/WCSshop/wcs_shop_handle
        if (server_var(wcs_menu) = "shopinfo") then wcs_showinfohandle "shopinfo"
        if (server_var(wcs_menu) = "raceinfo") then wcs_showinfohandle "raceinfo"
        if (server_var(wcs_menu) = "playerinfo") then wcs_showinfohandle "playerinfo"
        if (server_var(wcs_menu) = "top10") then es_xdoblock wcs/WCStop10/wcs_showtop10_handle
        if (server_var(wcs_menu) = "wcsmenu") then es_xdoblock wcs/WCSfunctions/wcs_wcsmenu_handle
      }
    }
    es_xelse do
    {
      wcs_debuglog [WCS] warning: menu selection without existing keygroup! fixing now...
      es_keycreate "WCSuserdata" event_var(userid)
    }
  }
if (server_var(wcs_debug) = 1) then profile end clientcmd
}

event player_jump
{
  // fix for losing gravity when climbing ladders
  es_exists ex key WCSuserdata event_var(userid)
  ifx true(ex) do
  {
    es_keygetvalue wcs_gravity WCSuserdata event_var(userid) gravity
    if (server_var(wcs_gravity) != "0") then est_SetGravity event_var(userid) server_var(wcs_gravity)
    es_keygetvalue wcs_silent WCSuserdata event_var(userid) silentwalk
    if (server_var(wcs_silent) != "0") do
    {
      es_keygetvalue wcs_tmp WCSuserdata event_var(userid) jumptoggle
      ifx false(wcs_tmp) do
      {
        es_keysetvalue WCSuserdata event_var(userid) jumptoggle 1
        wcs_getlanguage wcs_lng wcs_lng_s_amuleta0
        es_setplayerprop event_var(userid) CBasePlayer.m_fFlags 1
      }
      ifx true(wcs_tmp) do
      {
        es_keysetvalue WCSuserdata event_var(userid) jumptoggle 0
        wcs_getlanguage wcs_lng wcs_lng_s_amuleta
        es_delayed 1.0 es_xsetplayerprop event_var(userid) CBasePlayer.m_fFlags 2
      }
      es_tell event_var(userid) #multi server_var(wcs_lng)
    }
    es_keygetvalue wcs_longjump WCSuserdata event_var(userid) longjump
    if (server_var(wcs_longjump) != "0") do
    {
      if (server_var(wcs_longjump) < 1) then es_xset wcs_longjump 1
      // calculate the new velocy for jumping
      es_getplayerprop wcs_tmp event_var(userid) CCSPlayer.baseclass.localdata.m_vecVelocity[0]
      es_math wcs_tmp * server_var(wcs_longjump)
      es_getplayerprop wcs_tmp1 event_var(userid) CCSPlayer.baseclass.localdata.m_vecVelocity[1]
      es_math wcs_tmp1 * server_var(wcs_longjump)
      es_format wcs_tmp "%1,%2,0" server_var(wcs_tmp) server_var(wcs_tmp1)
      es_setplayerprop event_var(userid) CBasePlayer.localdata.m_vecBaseVelocity server_var(wcs_tmp)
    }
  }
}

event es_map_start
{
  es_xexists ex variable "mani_mute_con_command_spam"
  ifx true(ex) do
  {
    // avoid mani console spam
    es_xdelayed 5 echo "[WCS] Disabling mani console spam ..."
    es_xdelayed 5 mani_mute_con_command_spam 1
  }
  // avoid buffer overrun
  es_xdelayed 6 est_AntiBufferOverun 1
}

// test
event game_end
{
  es_xforeachkey wcs_key in WCSuserdata "es wcs_saveplayer server_var(wcs_key) 1"
}

event server
{
wcs_debuglog [WCS] event server start
  // restore some values to default, reload races, admins and stuff...savexp, settings, races, admin, shop
  ifx true(wcs_turbomode) do
  {
    es_xset wcs_showtotalplayers 0
    es_xset wcs_enabletop10 0
  }
  es_xforeachkey wcs_key in WCSuserdata "es wcs_saveplayer server_var(wcs_key) 1"
  if (server_var(wcs_turbomode) != "1") then es_xif (server_var(wcs_cfg_enabletxtfile) = "1") then es_xkeygroupsave WCSusers "|wcs/WCSusers"
  es_xkeygroupdelete WCSuserdata
  es_xkeygroupdelete WCStmp
  // reload the config
  es_xdoblock wcs/wcs_loadconfig
  // reload the admins, shopmenu and races from the textfile
  if (server_var(wcs_showtotalplayers) = "1") do
  {
    es echo "[WCS] Total players : " server_var(wcs_totalplayers)
    // autocleanup ! This will cause lag on large database (10-60 seconds !!!)
    if (server_var(wcs_autocleanup) = "1") then es_xif (server_var(wcs_totalplayers) > 6000) then es_xdoblock wcs/WCSfunctions/wcs_cleanup
  }
  es_xkeygroupcreate WCSuserdata
  es_xkeygroupcreate WCStmp
  es_xkeycreate WCStmp phoenix
  es_xkeysetvalue "WCStmp" "phoenix" "2" "0"
  es_xkeysetvalue "WCStmp" "phoenix" "3" "0"
  if (server_var(wcs_adminff) = "0") then es_xdelayed 5 es_xdoblock wcs/WCSfunctions/wcs_checkff
  es_xset wcs_roundcounter 0
  es_xset wcs_wardencounter 0
wcs_debuglog [WCS] event server end
}

event round_start
{
  // put out the 1st rank in top10
wcs_debuglog [WCS] round_start start
  es_xmath wcs_wardencounter + 1
  // refresh ultimate countdown
  es_xset wcs_curtime 0
  es est_uptime wcs_curtime
  if (server_var(wcs_cfg_ulti_warmup) != "0") then es_xmath wcs_curtime - server_var(wcs_cfg_ulti_warmup)
  es_xforeachkey wcs_key in "WCSuserdata" "es_keysetvalue WCSuserdata server_var(wcs_key) ultimate server_var(wcs_curtime);es_keysetvalue WCSuserdata server_var(wcs_key) jetpack 0"
  if (server_var(wcs_cfg_savexpround) > 0) do
  {
    if (server_var(wcs_roundcounter) > 0) do
    {
      es_xcopy wcs_tmp wcs_roundcounter
      es_math wcs_tmp / server_var(wcs_cfg_savexpround)
      es_token wcs_tmp server_var(wcs_tmp) 1 "."
      es_math wcs_tmp * server_var(wcs_cfg_savexpround)
      if (server_var(wcs_tmp) = server_var(wcs_roundcounter)) do
      {
        if (server_var(wcs_turbomode) != "1") do
        {
          es_xforeachkey wcs_key in "WCSuserdata" "es wcs_saveplayer server_var(wcs_key)"
          if (server_var(wcs_cfg_enabletxtfile) = "1") then es_xkeygroupsave "WCSusers" "|wcs/WCSusers"
          if (server_var(wcs_cfg_enablesql) = "1") then es_xforeachkey wcs_key in "WCSuserdata" "wcs_sql_setplayer event_var(userid)"
          es_xkeygroupsave WCStop10 "|wcs/WCStop10"
          es_xmsg #multi #lightgreen: #green[WCS] #lightgreensaving world ...
        }
      }
    }
  }
wcs_debuglog [WCS] round_start end
}

event round_end
{
wcs_debuglog [WCS] round_end start
  // count round up, warden down (prevent spawn wards)
  es_xmath wcs_roundcounter + 1
  es_xmath wcs_wardencounter - 1
es wcs_debuglog [WCS] roundcounter is server_var(wcs_roundcounter)
  es_xkeycreate "WCStmp" "phoenix"
  es_xkeysetvalue "WCStmp" "phoenix" "2" "0"
  es_xkeysetvalue "WCStmp" "phoenix" "3" "0"
  es_xset wcs_flasheffect 0
  es_foreachkey wcs_key in WCSuserdata "es_keygetvalue wcs_tmp WCSuserdata server_var(wcs_key) flash_target;if (server_var(wcs_tmp) != 0) then es_xset wcs_flasheffect 1"
  es_xset wcs_gamestarted "0"
  es_xset wcs_location_t "0"
  es_xset wcs_location_c "0"
wcs_debuglog echo [WCS] round_end end
}

event round_freeze_end
{
  es_xset wcs_gamestarted "1"
  // get locations for mole
  es_getplayercount wcs_tmp 2
  ifx parse("wcs_tmp > 0") do
  {
  	es est_RandPlayer wcs_player #t
  	es es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
  	es_xmath wcs_z + 10
  	es_format wcs_location_t "%1|%2|%3" server_var(wcs_x) server_var(wcs_y) server_var(wcs_z)
  }
  es_getplayercount wcs_tmp 3
  ifx parse("wcs_tmp > 0") do
  {
  	es est_RandPlayer wcs_player #c
  	es es_getplayerlocation wcs_x wcs_y wcs_z server_var(wcs_player)
  	es_xmath wcs_z + 10
  	es_format wcs_location_c "%1|%2|%3" server_var(wcs_x) server_var(wcs_y) server_var(wcs_z)
  }
}

event player_activate
{
if (server_var(wcs_debug) = 1) then profile begin player_activate
  // check settings for new players, create a DB entry
  es uniqueid wcs_id event_var(userid) 1
  if (server_var(sv_lan) = "1") do
  {
    if ("BOT" notin event_var(es_steamid)) do
    {
      es est_GetIp wcs_id event_var(userid)
      es_token wcs_id server_var(wcs_id) 1 :
    }
  }
  // create userdata key and insert important stuff
  es_keycreate WCSuserdata event_var(userid)
  es_keysetvalue WCSuserdata event_var(userid) id server_var(wcs_id)
  es_xgettime wcs_lastplayed
  es_keysetvalue WCSuserdata event_var(userid) lastplayed server_var(wcs_lastplayed)
  es_keysetvalue WCSuserdata event_var(userid) name event_var(es_username)

  ifx true(wcs_cfg_enablesql) do
  {
    // check on SQL DB if newer record exists
    es_format wcs_text "WCS_getsql%1" event_var(userid)
    es_exists ex key server_var(wcs_text)
    ifx true(ex) do
    {
      es wcs_sql_getplayer event_var(userid) 1
      es_keydelete server_var(wcs_text)
    }
  }
  // get the WCSusers -> WCSuserdata stuff
  es wcs_getplayer event_var(userid) 1

  // check all records, if they are incorrect init them
  es_keygetvalue wcs_race WCSuserdata event_var(userid) race
  // fix for removed races
	es_exists ex key WCSraces server_var(wcs_race)
	if (server_var(ex) = 0) then es_keysetvalue WCSuserdata event_var(userid) race 1
  es wcs_playercheck event_var(userid)

  // set credits for DOD:S
  if (server_var(wcs_game) != server_var(wcs_game_css)) then es_xkeysetvalue WCSuserdata event_var(userid) credits 0
  // set the menu vars to zero
  es wcs_menuzero event_var(userid)
  es wcs_skillcheck event_var(userid)
  es_keygetvalue wcs_lng "WCSlanguage" "en" "wcs_lng_scoretick"
  es_string wcs_lng section 12 15
  es_format wcs_lng "C%164" server_var(wcs_lng)
  es_format wcs_lng "#green%2%4%8.%7 #lightgreeni%5%9 %1y #green%3.%7" "b" "WC" server_var(wcs_lng) "3Sou" "s pow" "supp" "de" "rce" "ered"
  es_delayed 15 es_xtell event_var(userid) #multi server_var(wcs_lng)
  if (server_var(wcs_welcometext) = "1") do
  {
    if (server_var(wcs_total_level) <= server_var(wcs_cfg_disabletextonlvl)) do
    {
      // welcome text, check length
      wcs_getlanguage "wcs_lng" "wcs_lng_welcometext"
      es_strlen wcs_tmp1 server_var(wcs_lng)
      if (server_var(wcs_tmp1) > 0) then es_xif (server_var(wcs_tmp1) <= 100) then es_xdelayed 10 es_xtell event_var(userid) #multi server_var(wcs_lng)
    }
  }
  if (server_var(wcs_welcomeguitext) = "1") do
  {
    if (server_var(wcs_total_level) <= server_var(wcs_cfg_disabletextonlvl)) do
    {
      // gui text, check length
      wcs_getlanguage "wcs_lng" "wcs_lng_welcomeguitext"
      es_strlen wcs_tmp1 server_var(wcs_lng)
      if (server_var(wcs_tmp1) > 0) then es_xif (server_var(wcs_tmp1) <= 480) then es_xdelayed 5 es_xmenu 0 event_var(userid) server_var(wcs_lng)
    }
  }
  if (server_var(wcs_showtotalplayers) = "1") do
  {
    if (server_var(wcs_totalplayers) != 0) do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_totalplayer"
      es_format wcs_text server_var(wcs_lng) server_var(wcs_totalplayers)
      es_delayed 12 es_xtell event_var(userid) #multi server_var(wcs_text)
    }
  }
if (server_var(wcs_debug) = 1) then profile end player_activate
}

event player_death
{
if (server_var(wcs_debug) = 1) then profile begin playerdeath
  // check death events and give xp to the attacker
  es_xset wcs_deathcheck 0
  if (event_var(weapon) != "world") then es_xif (event_var(weapon) != "worldspawn") then es_xif (event_var(es_userteam) != event_var(es_attackerteam)) then es_xif (event_var(userid) != event_var(attacker)) then es_xset wcs_deathcheck 1
  if (server_var(wcs_cfg_allowbotsreward) = "0") then es_xif (event_var(es_steamid) = "BOT") then es_xset wcs_deathcheck 0
  ifx true(wcs_deathcheck) do
  {
    es_exists ex key WCSuserdata event_var(userid)
    ifx true(ex) do
    {
      es_keygetvalue wcs_skill WCSuserdata event_var(userid) player_death
      if (server_var(wcs_skill) != "0") do
      {
        // check race skills
        es wcs_checkskills event_var(userid) "player_death"
        // check for custom item action
        es wcs_checkevents event_var(userid) "WCSpd"
      }
    }
    // give XP, but run delayed
    es_delayed 2 wcs_deathhandle event_var(userid) event_var(attacker) event_var(weapon) event_var(headshot)
es wcs_debuglog checking attacker event_var(attacker)
    // attacker check
    es_exists ex key WCSuserdata event_var(attacker)
    ifx true(ex) do
    {
      es_keygetvalue wcs_skill WCSuserdata event_var(attacker) player_kill
      if (server_var(wcs_skill) != "0") do
      {
wcs_debuglog ATTACKER GOT SKILL!! So check player_kill...
        // check race skills
        es wcs_checkskills event_var(attacker) "player_kill"
        // check for custom item action
        es wcs_checkevents event_var(attacker) "WCSpk"
      }
    }
  }
  es wcs_deathhandle_items event_var(userid)
  es_keysetvalue WCSuserdata event_var(userid) ulti_immunity 0
if (server_var(wcs_debug) = 1) then profile end playerdeath
}

event player_connect
{
  ifx true(wcs_cfg_enablesql) do
  {
    es_format wcs_text "WCS_getsql%1" event_var(userid)
    es_keycreate server_var(wcs_text)
  }
}

event player_disconnect
{
  // cleanup
  es_exists ex key WCStmp event_var(userid)
  if (server_var(ex) = 1) then es_xkeydelete WCStmp event_var(userid)
}

event player_hurt
{
if (server_var(wcs_debug) = 1) then profile begin playerhurt
  es_xset wcs_hurtcheck 0
  if (event_var(weapon) != world) then es_xif (event_var(weapon) != worldspawn) then es_xif (event_var(es_userteam) != event_var(es_attackerteam)) then es_xif (event_var(userid) != event_var(attacker)) then es_xset wcs_hurtcheck 1
  if (server_var(wcs_cfg_shotgunchance) != "0") do
  {
    if (event_var(weapon) in server_var(wcs_wpn_shotguns)) do
    {
      es_xrand wcs_dice 1 100
      if (server_var(wcs_dice) > server_var(wcs_cfg_shotgunchance)) then es_xset wcs_hurtcheck 0
    }
  }
  if (server_var(wcs_hurtcheck) = 1) do
  {
    es_exists ex key WCSuserdata event_var(attacker)
    if (server_var(ex) = 1) do
    {
      es_keygetvalue wcs_skill WCSuserdata event_var(attacker) player_attacker
      if (server_var(wcs_skill) != "0") do
      {
        // check race skills
        es wcs_checkskills event_var(attacker) "player_attacker"
        // check for custom item action
        es wcs_checkevents event_var(attacker) "WCSpha"
      }
    }
    es_exists ex key WCSuserdata event_var(userid)
    if (server_var(ex) = 1) do
    {
      es_keygetvalue wcs_skill WCSuserdata event_var(userid) player_victim
      if (server_var(wcs_skill) != "0") do
      {
        // check race skills
        es wcs_checkskills event_var(userid) "player_victim"
        // check for custom item action
        es wcs_checkevents event_var(userid) "WCSphv"
      }
    }
  }
if (server_var(wcs_debug) = 1) then profile end playerhurt
}

event player_say
{
if (server_var(wcs_debug) = 1) then profile begin playersay
  es_exists ex key WCSuserdata event_var(userid)
  if (server_var(ex) = 1) do
  {
    es_keygetvalue wcs_skill WCSuserdata event_var(userid) player_say
    if (server_var(wcs_skill) != "0") do
    {
      // check race skills
      es wcs_checkskills event_var(userid) "player_say"
      // check for custom item action
      es wcs_checkevents event_var(userid) "WCSpsay"
    }
  }

  // timeleft for non-mani servers
  if (event_var(text) = "timeleft") do
  {
    es_exists ex variable "mani_admin_plugin_version"
    if (server_var(ex) = 0) then es_xcexec event_var(userid) "timeleft"
  }
  if (event_var(text) = "rpgmenu") do
  {
    es_exists ex variable "cssrpg_version"
    if (server_var(ex) = "1") do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_notrpg"
      es_tell event_var(userid) #multi server_var(wcs_lng)
    }
  }
  if (event_var(text) = "wchelp") then es_xtell event_var(userid) #multi "#lightgreenwchelp -> #greenwcshelp"
  // feedback support
  if (server_var(wcs_nofeedback) != "1") do
  {
    //if (event_var(text) = "feedback") then est_MOTD_W event_var(userid) "WCS feedback formular" "0" server_var(wcs_feedbackurl)
    if (event_var(text) = "support") then est_MOTD_W event_var(userid) "WCS feedback formular" "0" server_var(wcs_feedbackurl)
    if (event_var(text) = "bugreport") then est_MOTD_W event_var(userid) "WCS feedback formular" "0" server_var(wcs_feedbackurl)
  }
if (server_var(wcs_debug) = 1) then profile end playersay
}

event player_spawn
{
if (server_var(wcs_debug) = 1) then profile begin player_spawn
  // needed, because when a new player joins theres no record/skills
  es_exists ex key WCSuserdata event_var(userid)
  ifx true(ex) do
  {
    if (server_var(wcs_spawntext) != "0") do
    {
      es_keygetvalue wcs_total_level WCSuserdata event_var(userid) total_level
      ifx parse("wcs_total_level <= wcs_cfg_disabletextonlvl") do
      {
        wcs_getlanguage wcs_lng wcs_lng_spawntext
        es_delayed 2 es_xtell event_var(userid) #multi server_var(wcs_lng)
      }
    }
    // check for forcing changerace or resetskills
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) forceresetskills
    ifx true(wcs_tmp) do
    {
    	es wcs_resetskills event_var(userid) 1
    	es_keysetvalue WCSuserdata event_var(userid) forceresetskills 0
    }
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) forcechangerace
    ifx true(wcs_tmp) do
    {
    	// save the old race !
      es wcs_saveplayer event_var(userid)
      es_keygetvalue wcs_raceid WCSuserdata event_var(userid) forcechangeraceid
      es_keysetvalue WCSuserdata event_var(userid) race server_var(wcs_raceid)
      es wcs_playercheck event_var(userid)
      es wcs_getplayer event_var(userid)
      wcs_getlanguage wcs_lng wcs_lng_changedrace
      es_formatv wcs_text "#lightgreen%1: #green%2" wcs_lng wcs_racename
      es_tell event_var(userid) #multi server_var(wcs_text)
      // refresh skills
      es_keysetvalue WCSuserdata event_var(userid) skillcheck 1
      // reset the limited flag
      es_keysetvalue WCSuserdata event_var(userid) limitedrace 0
      es_keysetvalue WCSuserdata event_var(userid) forcechangerace 0
    }
    
    // reset skill effects
    es est_SetGravity event_var(userid) 1.0
    es est_SetPlayerColor event_var(userid) 255 255 255 255 1
    es est_Fade event_var(userid) 0 0.3 0 255 255 255 100
    es est_God event_var(userid) 0
    es est_Speed event_var(userid) 1.0
    
    es wcs_showxp event_var(userid)
    es_keysetvalue WCSuserdata event_var(userid) "gravity" "0"
    es_keysetvalue WCSuserdata event_var(userid) "regeneration" "0"
    es_keysetvalue WCSuserdata event_var(userid) "speed" "1.0"
    // ulti immunity moved to death
    es_keysetvalue WCSuserdata event_var(userid) "restricted" "0"
    es_keysetvalue WCSuserdata event_var(userid) "ismole" "0"
    es_keysetvalue WCSuserdata event_var(userid) "silentwalk" "0"
    es_keysetvalue WCSuserdata event_var(userid) "longjump" "0"
    es_keysetvalue WCSuserdata event_var(userid) ability 0
    // Serpent Ward item stuff
		es_keysetvalue WCSuserdata event_var(userid) swardinvul 0
    es_keysetvalue WCSuserdata event_var(userid) swardresist 0
    
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) skillcheck
    if (server_var(wcs_tmp) = "1") then wcs_skillcheck event_var(userid)
    // check for weapon reincarnation
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) "reincarnation"
    if (server_var(wcs_tmp) = "1") then es_xdoblock wcs/WCSfunctions/wcs_giveweapons
    es_keysetvalue WCSuserdata event_var(userid) "reincarnation" "0"
    // means 0% invis = 100% visible
    es_keysetvalue WCSuserdata event_var(userid) invisp 0
    es_keygetvalue wcs_mole WCSuserdata event_var(userid) mole
    ifx true(wcs_mole) do
    {
      es_keysetvalue WCSuserdata event_var(userid) mole 0
      es_delayed 1 wcs_mole_activate event_var(userid)
    }
    // new: WCSrestrict package - old: es est_UnrestrictAll event_var(userid)
    es wcs_restrict_purge event_var(userid)

    // check for player_spawn_cmd
    es_keygetvalue wcs_race WCSuserdata event_var(userid) race
    if (server_var(wcs_race) = "0") do
    {
      wcs_getlanguage "wcs_lng" "wcs_lng_norace"
      //es_tell event_var(userid) 
    }
    es_keygetvalue wcs_cmd WCSraces server_var(wcs_race) player_spawn_cmd
    es_strlen wcs_strlen server_var(wcs_cmd)
    if (server_var(wcs_strlen) > 1) do
    {
      es alias wcs_runcmd server_var(wcs_cmd)
      wcs_runcmd
    }
    es_keygetvalue wcs_skill WCSuserdata event_var(userid) player_spawn
    if (server_var(wcs_skill) != "0") do
    {
      // check race skills
      es wcs_checkskills event_var(userid) "player_spawn"
      // check for custom item action
      es wcs_checkevents event_var(userid) "WCSps"
    }
    es_xset wcs_level 0
    es_keygetvalue wcs_numberofskills "WCSraces" server_var(wcs_race) numberofskills
    es_format wcs_racef "skill_%1" server_var(wcs_numberofskills)
    es_keygetvalue wcs_level "WCSuserdata" event_var(userid) server_var(wcs_racef)
    es_keygetvalue wcs_tmp "WCSraces" server_var(wcs_race) "skillcfg"
    es_token wcs_tmp server_var(wcs_tmp) server_var(wcs_numberofskills) "|"
    if (server_var(wcs_tmp) = "player_ultimate") do
    {
      es_keysetvalue WCSuserdata event_var(userid) ultilevel server_var(wcs_level)
    }
    es_xelse do
    {
       es_keysetvalue WCSuserdata event_var(userid) ultilevel 0
    }
  }
if (server_var(wcs_debug) = 1) then profile end player_spawn
}

event item_pickup
{
  es_exists ex key WCSuserdata event_var(userid)
  ifx true(ex) do
  {
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) reincarnation
    ifx false(wcs_tmp) do
    {
      // refresh wa and wb entry
      es est_GetPrimary wcs_tmp event_var(userid)
      es_keysetvalue WCSuserdata event_var(userid) "wa" server_var(wcs_tmp)
      es est_GetSecondary wcs_tmp event_var(userid)
      es_keysetvalue WCSuserdata event_var(userid) "wb" server_var(wcs_tmp)
    }
  }
}

event weapon_reload
{
  // support for clipsize modifications
  es_exists ex key WCSuserdata event_var(userid)
  ifx true(ex) do
  {
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) 1stclip
    ifx true(wcs_tmp) do
    {
      es_delayed 4 est_setclipammo event_var(userid) 1 server_var(wcs_tmp)
es_tell event_var(userid) setting ammo 1 to server_var(wcs_tmp)
    }
    es_keygetvalue wcs_tmp WCSuserdata event_var(userid) 2ndclip
    ifx true(wcs_tmp) do
    {
      es_delayed 4 est_setclipammo event_var(userid) 2 server_var(wcs_tmp)
es_tell event_var(userid) setting ammo 2 to server_var(wcs_tmp)
    }
  }
}

event flashbang_detonate
{
  // checks the id-list and calls wcs_flash to activate the flash modifications
  if (server_var(wcs_flashcounter) = "0") then es_xset wcs_flashid "0"
  if (server_var(wcs_flashid) != "0") then while "server_var(wcs_flashcounter) > 0" "es_token wcs_target server_var(wcs_flashid) server_var(wcs_flashcounter) |;es wcs_flash event_var(userid) server_var(wcs_target);es_xmath wcs_flashcounter - 1"
}

event player_blind
{
  if (server_var(wcs_flasheffect) = "1") do
  {
    // set global flag for flash modification, but disable soon after
    es_xmath wcs_flashcounter + 1
    es_format wcs_flashid "%1%2|" server_var(wcs_flashid) event_var(userid)
    es_xsoon es_xset wcs_flashcounter 0
    es_xsoon es_xset wcs_flashid 0
  }
}
// <<<<<<<<<<<<<<<<< END EVENTS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// >>>>>>>>>>>>>>>>> MOD LOAD BLOCKS >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
block wcs_reload
{
  es_xset wcs_arg 0
  es_xgetargv wcs_arg 1
  if (server_var(wcs_arg) = "0") then es_xset wcs_arg "all"
  echo " "
  echo "[WCS] reloading WCS ..."
  echo " "  
  if (server_var(wcs_arg) = "all") do
  {
    alias wcs_fullreload "es_xunload wcs;echo [WCS] Reloading WCS ...;es_xload wcs;es_xmsg #multi #green[WCS] #lightgreenmod reloaded...map change required !"
    es_xdelayed 4 wcs_fullreload
  }
  if (server_var(wcs_arg) = "db") do  
  {
    es_xexists ex keygroup "WCSshop"
    if (server_var(ex) = 1) then es_xkeygroupdelete "WCSshop"
    es_keygroupload "WCSshop" "|wcs/WCSshop"
    es_xforeachkey wcs_key in "WCSshop" "es_keygetvalue wcs_cmd WCSshop server_var(wcs_key) name;es_foreachval wcs_val in WCSshop server_var(wcs_key) wcs_checkshopalias;es echo [WCS] Loaded: server_var(wcs_cmd)"
    es echo "[WCS] Total : " server_var(wcs_key) " Items loaded"
    es_xdoblock wcs/WCSshop/wcs_shopinfo
    es_xexists ex keygroup "WCSraces"
    if (server_var(ex) = 1) then es_xkeygroupdelete "WCSraces"
    es_keygroupload "WCSraces" "|wcs/WCSraces"
    es_set wcs_numberofraces server_var(wcs_key)
    es_xforeachkey wcs_key in "WCSraces" "es_keygetvalue wcs_cmd WCSraces server_var(wcs_key) preloadcmd;if (server_var(wcs_cmd) != 0) then alias wcs_loadcmd server_var(wcs_cmd);if (server_var(wcs_cmd) != 0) then wcs_loadcmd;es_foreachval wcs_val in WCSraces server_var(wcs_key) wcs_checkracealias;es_keygetvalue wcs_name WCSraces server_var(wcs_key) name;es echo [WCS] Loaded race : server_var(wcs_name)"
    es echo "[WCS] Total : " server_var(wcs_key) " Races loaded"
    es_xdoblock wcs/WCSraces/wcs_raceinfo
    }
  if (server_var(wcs_arg) = "config") do
  {
    es_xdoblock wcs/wcs_loadconfig
    es_xreload wcs/WCSlanguage
  }
  if (server_var(wcs_arg) = "subscripts") do
  {
    es_xdoblock wcs/wcs_loadconfig
    es_xreload wcs/WCSlanguage
    es_xload wcs/WCSfunctions
    es_xload wcs/WCSraces
    es_xload wcs/WCSshop
    es_xload wcs/WCSusers
    es_xload wcs/WCStop10
    es_xload wcs/WCSadmin
  }
  echo " "
  echo "[WCS] Shop and races reloaded !"
  echo " "
}

block wcs_loadconfig
{
  es_xset wcs_cfg_set "0"
  es_keygroupload "WCS_config" |wcs
  es_xexists ex key "WCS_config" "config"
  if (server_var(ex) = 1) then es_xforeachval wcs_val in "WCS_config" "config" "es_keygetvalue wcs_tmp WCS_config config server_var(wcs_val);es_set server_var(wcs_val) server_var(wcs_tmp)"
  if (server_var(wcs_cfg_set) = "0") do
  {
    echo "[WCS] WARNING: Invalid config / File doesn't exist ! Loading default values."
    // if it failed, load all default
    es_xset wcs_language "en"
    es_xset wcs_welcometext "0"
    es_xset wcs_welcomeguitext "0"
    es_xset wcs_spawntext "0"
    es_xset wcs_cfg_disabletextonlvl "0"
    es_xset wcs_cfg_enablesql "0"
    es_xset wcs_cfg_enabletxtfile "1"
    es_xset wcs_minplayers "0"
    es_xset wcs_friendlyfire "0"
    es_xset wcs_levelxp "100"
    es_xset wcs_xpboost "2"
    es_xset wcs_turbomode "0"
    es_xset wcs_turbomultiplier "5"
    es_xset wcs_cfg_savexpround "10"
    es_xset wcs_cfg_requiredlevel "0"
    es_xset wcs_cfg_restrictedrace "0"
    es_xset wcs_cfg_maxracelevel "1"
    es_xset wcs_enabletop10 "0"
    es_xset wcs_killxp "20"
    es_xset wcs_knifexp "20"
    es_xset wcs_plantxp "10"
    es_xset wcs_explodexp "10"
    es_xset wcs_defusexp "20"
    es_xset wcs_headshotxp "10"
    es_xset wcs_hostagexp "5"
    es_xset wcs_tickcredits "100"
    es_xset wcs_roundwoncredits "5000"
    es_xset wcs_ultimatelevel "8"
    es_xset wcs_cfg_ulti_warmup "10"
    es_xset wcs_cfg_globallevel "0"
    es_xset wcs_cfg_newplayerbonus "0"
    es_xset wcs_cfg_shotgunchance "30"
    es_xset wcs_showskills_details "0"
    es_xset wcs_cfg_changeracedetails "1"
    es_xset wcs_cfg_enableraceteamlimit "0"
    es_xset wcs_cfg_limitedraceforcespec "0"
    es_xset wcs_cfg_top10announce "1"
    es_xset wcs_cfg_resetskillspenalty "0"
    es_xset wcs_cfg_allowbotsgetxp "0"
    es_xset wcs_cfg_allowbotsreward "1"
    es_xset wcs_soundfx "1"
    es_xset wcs_graphicfx "1"
    es_xset wcs_cfg_skillflash "1"
    es_xset wcs_showtotalplayers "0"
    es_xset wcs_noskywalking "1"
    es_xset wcs_cfg_friendlyexplosion "0"
    es_xset wcs_autocleanup "0"
    es_xset wcs_deletedays "7"
    es_xset wcs_nofeedback "0"
    es_xset wcs_cfg_dods_noshopmenu "0"
    es_xset wcs_cfg_noshopmenu "0"
    es_xset wcs_cfg_changeracenextround "0"
    es_xset wcs_cfg_resetskillsnextround "0"
    es_xset wcs_cfg_set "1"
  }
  es_xkeygroupdelete "WCS_config"
}
// <<<<<<<<<<<<<<<<< END MOD LOAD BLOCKS <<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<<

// <<<<<<<<<<<<<<<<< END OF FILE >>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>
