//***********************************************************//
// Gun Game //
// v3.2.1.4c //
// //
// Thanks to Mattie, and XE_Manup for optimization help. //
// //
// http://mattie.info/cs/ //
// http://www.cagemonkey.org //
// http://www.4hm.net //
// http://cage.pastebin.ca //
//***********************************************************//
block config
{
// ##############################################
// This is the only block you should ever edit
// UNLESS YOU KNOW WHAT YOU ARE DOING!!
// ###############################################
//************************************************************
// Weapon List
// Your choices are:
// glock // usp
// p228 // deagle
// fiveseven // elite
// m3 // xm1014
// tmp // mac10
// mp5navy // ump45
// p90 // p90
// famas // ak47
// scout // m4a1
// sg550 // g3sg1
// awp // sg552
// aug // m249
// hegrenade // knife
// Pick which ones you want and put them in order with level 1 being first in the list then level 2, etc.
// You can repeat weapons if you like.
// Separate each weapon with a comma ',' NO SPACES!!
es_xsetinfo gg_weapon_order "glock,usp,p228,deagle,fiveseven,elite,m3,xm1014,tmp,mac10,mp5navy,ump45,p90,galil,famas,ak47,scout,m4a1,sg552,aug,m249,hegrenade,knife"
//************************************************************
// Gun Game join message, popup giving players instructions on how to play
// 1=on, 0=off
es_xsetinfo gg_join_msg 1
//************************************************************
// Worldspawn deaths (falling) count as suicides 0=no, 1=yes
es_xsetinfo worldspawn_suicide 1
//************************************************************
// Give level for planting/defusing 0=no, 1=yes
es_xsetinfo bomb_defuse_lvl 1
//************************************************************
// Turn GG handicap 0=off, 1=on
// Gives joining players the avg level of all other players when they join late.
// If you're in the top10, you do not get this handicap even if it is turned on.
es_xsetinfo gg_handicap_on 1
// GG Top10 handicap 0=off, 1=on
// Allow players in the top10 to receive a handicap with the rest of the players.
// Handicap must also be turned on above for this to work.
es_xsetinfo gg_top10_handicap 1
//************************************************************
// Set max levels allowed per round
// Server default is 3, so players cannot get more than 3 levels in one round.
es_xsetinfo gg_max_lvl 3
//************************************************************
// Turn Knife Pro level stealing on/off
es_xsetinfo gg_knife_pro 0
//************************************************************
// Turn Triple Level Bonus 0=off, 1=on
// Turbo Mode automatically overrides the Triple Level Bonus to OFF
es_xsetinfo gg_triple_on 0
//************************************************************
// Turn Turbo Mode 0=off, 1=on
// This gives you your next weapon immediately when you levelup
// THIS OVERRIDES MAX LEVEL PER ROUND, AND TRIPLE LEVEL BONUS!!
es_xsetinfo gg_turbo 0
//************************************************************
// Knife After mode 0=off, 1=on
// After a player levels up, they only get a knife until the next round.
// THIS WILL OVERRIDE TURBO MODE!!
es_xsetinfo gg_knife_elite 0
//************************************************************
// Multiple Kills mode 0=off, X=number of kills required
// Set to number of kills required to level up.
// This counts kills across rounds so you don't have to get them all in one round.
es_xsetinfo gg_multikill 0
//************************************************************
// Deathmatch mode
// This loads as a plugin addon to the Gun Game
// You can load/unload this addon at anytime during the game
// By default, this loads Deathmatch when the Gun Game loads
// Recommended settings for deathmatch:
// KnifePro on, Turbo on, KnifeElite off, Multikill set to 2 or 3, gg_nade_glock set to 1
//************************************************************
// Warmup timer 0=off, x=number of seconds to warmup before restart
// This is recommended to allow all clients to connect before the game starts.
es_xsetinfo gg_warmup_timer_setting 30
//
// Forces warmup rounds to be knife only 0=off, 1=on
es_xsetinfo gg_knife_warmup 1
//************************************************************
// Additional weapons for players on nade level
// 1=on, 0=off
// This gives a glock with 50 bullets
es_xsetinfo gg_nade_glock 0
// This gives a smokegrenade
es_xsetinfo gg_nade_smoke 0
// This gives a flashbang
es_xsetinfo gg_nade_flash 0
//************************************************************
// Automatically turn friendly fire ON when a player reaches
// grenade level.
es_xsetinfo gg_ff_auto 1
//************************************************************
// Used to start random votemap when someone reaches knife level 1=on, 0=off
// This requires Mani's Admin Plugin to work
es_xsetinfo gg_vote_setting 0
//************************************************************
// Gun Game map presets
// It is recommended that you leave these settings alone, especially winlimit and chattime.
alias gg_map_setup "mp_timelimit 45; mp_winlimit 0; sv_alltalk 0; mp_chattime 12; mp_c4timer 25"
//************************************************************
// Sound files
// Put the exact file name here preceded with "gungame/" Make sure there are no spaces in it.
// Rename the file if you have to remove any spaces in the name.
// Make sure you put the filenames in your mani downloads.txt file, also.
// Put your sounds in the cstrike/sound/gungame directory
// To disable a particular sound, leave it empty between the quotes, ""
es_xsetinfo gg_sound_levelup "gungame/smb3_powerup.wav"
es_xsetinfo gg_sound_leveldown "gungame/smb3_powerdown.wav"
es_xsetinfo gg_sound_nade "gungame/nade_level.wav"
es_xsetinfo gg_sound_knife "gungame/knife_level.wav"
es_xsetinfo gg_sound_welcome "gungame/gungame2.wav"
//
// The triple level sound must be exactly 10 seconds long to work correctly with the Gun Game code
es_xsetinfo gg_sound_triple "gungame/smb_star.mp3"
//
// Default winner sound is "music/HL2_song15.mp3"
es_xsetinfo gg_sound_winner "gungame/stand_alone.mp3"
// Default kill tone for multikill mode is "common/stuck1.wav"
es_xsetinfo gg_sound_kill "common/stuck1.wav"
// ##### END OF CONFIG BLOCK ##### //
}
//#########################################
// DO NOT EDIT ANYTHING BELOW THIS LINE!!!
//#########################################
block load
{
//-------------------------------------------------------------
// REMOVE THIS BEFORE ADDING THE DM ADDON WHEN IT IS RELEASED!!!
es_xsetinfo gg_dm_script 0
//_____________________________________________________________
// Load config
es_xdoblock gungame3/config
// Variable to test if things exist
es_xsetinfo gg_exists 0
// Gun Game map presets
es_xdelayed 2 gg_map_setup
// Setup Gun Game dir for databases
es_xsetinfo gg_dir "|gungame3"
// Create console commands
es_xregcmd gg_setlevel gungame3/gg_set_level "Allows admin to change player level: gg_setlevel <partial name> <level>"
es_xregcmd gg_reset gungame3/gg_reset_scores "Resets all player records for the Gun Game and restarts the current map"
es_xregcmd gg_setweapons gungame3/gg_set_weapon_order "Allows changes to the weapon order: gg_setweapons <weapon>,<weapon>,<etc>"
es_xregcmd gg_triple_cmd gungame3/gg_triple_finish "Internal Gun Game command"
// Create weapon list
es_xsetinfo gg_tmp_weapon 0
es_xsetinfo gg_levels 0
es es_xtoken gg_levels server_var(gg_weapon_order) 0 ,
es_xexists gg_exists keygroup gg_weapons
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_weapons
es_xkeygroupcreate gg_weapons
es_xsetinfo gg_level_counter 1
if (server_var(gg_levels) > 0) then es_xdoblock gungame3/create_weapon_list
// Dynamic level total - 1
es es_xsetinfo gg_level_dynamic server_var(gg_levels)
es_xmath gg_level_dynamic - 1
// Public cvar announcing server runs Gun Game
es_xsetinfo eventscripts_gg "v3.2.1.4c"
es_xmakepublic eventscripts_gg
// gg_winners open flag
es_xsetinfo win_db_open 0
es_xsetinfo gg_read_write 0
// Level variables
// used to calc current leader
es_xsetinfo ldr_level 1
// This variable allows only one winner if 2 people on knife level get their kill
es_xsetinfo gg_one_winner 0
// afk database
es_xexists gg_exists keygroup afk_db
if (server_var(gg_exists) == 1) then es_xkeygroupdelete afk_db
es_xkeygroupcreate afk_db
// level db for reconnecting players
es_xexists gg_exists keygroup lvl_db
if (server_var(gg_exists) == 1) then es_xkeygroupdelete lvl_db
es_xkeygroupcreate lvl_db
// gg_players database
es_xexists gg_exists keygroup gg_players
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_players
es_xkeygroupcreate gg_players
// gg_top10 database
es_xexists gg_exists keygroup gg_top10
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_top10
es_xkeygroupcreate gg_top10
es es_xkeygroupload gg_top10 server_var(gg_dir)
es_xsetinfo top10_check 0
es_xsetinfo top10_counter 1
es_xkeygetvalue top10_check gg_top10 10 steam
if (server_var(top10_check) == 0) then es_xdoblock gungame3/create_top10
// Add players already playing to the databases
es_xcreateplayerlist gg_player_list
es_xforeachkey key_x in gg_player_list "es_xdoblock gungame3/player_setup_in_progress"
es_xkeygroupdelete gg_player_list
// generate ammo clip info
es_xexists gg_exists keygroup gg_ammo_props
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_ammo_props
es_xexists gg_exists keygroup gg_ammo_count
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_ammo_count
es_xkeycreate gg_ammo_props
es_xkeycreate gg_ammo_count
es_xkeysetvalue gg_ammo_props "weapon_glock" "CCSPlayer.baseclass.localdata.m_iAmmo.006"
es_xkeysetvalue gg_ammo_count "weapon_glock" 200
es_xkeysetvalue gg_ammo_props "weapon_usp" "CCSPlayer.baseclass.localdata.m_iAmmo.008"
es_xkeysetvalue gg_ammo_count "weapon_usp" 200
es_xkeysetvalue gg_ammo_props "weapon_p228" "CCSPlayer.baseclass.localdata.m_iAmmo.009"
es_xkeysetvalue gg_ammo_count "weapon_p228" 200
es_xkeysetvalue gg_ammo_props "weapon_deagle" "CCSPlayer.baseclass.localdata.m_iAmmo.001"
es_xkeysetvalue gg_ammo_count "weapon_deagle" 200
es_xkeysetvalue gg_ammo_props "weapon_fiveseven" "CCSPlayer.baseclass.localdata.m_iAmmo.010"
es_xkeysetvalue gg_ammo_count "weapon_fiveseven" 200
es_xkeysetvalue gg_ammo_props "weapon_elite" "CCSPlayer.baseclass.localdata.m_iAmmo.006"
es_xkeysetvalue gg_ammo_count "weapon_elite" 200
es_xkeysetvalue gg_ammo_props "weapon_m3" "CCSPlayer.baseclass.localdata.m_iAmmo.007"
es_xkeysetvalue gg_ammo_count "weapon_m3" 200
es_xkeysetvalue gg_ammo_props "weapon_xm1014" "CCSPlayer.baseclass.localdata.m_iAmmo.007"
es_xkeysetvalue gg_ammo_count "weapon_xm1014" 200
es_xkeysetvalue gg_ammo_props "weapon_tmp" "CCSPlayer.baseclass.localdata.m_iAmmo.006"
es_xkeysetvalue gg_ammo_count "weapon_tmp" 200
es_xkeysetvalue gg_ammo_props "weapon_mac10" "CCSPlayer.baseclass.localdata.m_iAmmo.008"
es_xkeysetvalue gg_ammo_count "weapon_mac10" 200
es_xkeysetvalue gg_ammo_props "weapon_mp5navy" "CCSPlayer.baseclass.localdata.m_iAmmo.006"
es_xkeysetvalue gg_ammo_count "weapon_mp5navy" 200
es_xkeysetvalue gg_ammo_props "weapon_ump45" "CCSPlayer.baseclass.localdata.m_iAmmo.008"
es_xkeysetvalue gg_ammo_count "weapon_ump45" 200
es_xkeysetvalue gg_ammo_props "weapon_p90" "CCSPlayer.baseclass.localdata.m_iAmmo.010"
es_xkeysetvalue gg_ammo_count "weapon_p90" 200
es_xkeysetvalue gg_ammo_props "weapon_galil" "CCSPlayer.baseclass.localdata.m_iAmmo.003"
es_xkeysetvalue gg_ammo_count "weapon_galil" 200
es_xkeysetvalue gg_ammo_props "weapon_famas" "CCSPlayer.baseclass.localdata.m_iAmmo.003"
es_xkeysetvalue gg_ammo_count "weapon_famas" 200
es_xkeysetvalue gg_ammo_props "weapon_ak47" "CCSPlayer.baseclass.localdata.m_iAmmo.002"
es_xkeysetvalue gg_ammo_count "weapon_ak47" 200
es_xkeysetvalue gg_ammo_props "weapon_scout" "CCSPlayer.baseclass.localdata.m_iAmmo.002"
es_xkeysetvalue gg_ammo_count "weapon_scout" 200
es_xkeysetvalue gg_ammo_props "weapon_m4a1" "CCSPlayer.baseclass.localdata.m_iAmmo.003"
es_xkeysetvalue gg_ammo_count "weapon_m4a1" 200
es_xkeysetvalue gg_ammo_props "weapon_sg552" "CCSPlayer.baseclass.localdata.m_iAmmo.003"
es_xkeysetvalue gg_ammo_count "weapon_sg552" 200
es_xkeysetvalue gg_ammo_props "weapon_aug" "CCSPlayer.baseclass.localdata.m_iAmmo.002"
es_xkeysetvalue gg_ammo_count "weapon_aug" 200
es_xkeysetvalue gg_ammo_props "weapon_awp" "CCSPlayer.baseclass.localdata.m_iAmmo.005"
es_xkeysetvalue gg_ammo_count "weapon_awp" 0
es_xkeysetvalue gg_ammo_props "weapon_g3sg1" "CCSPlayer.baseclass.localdata.m_iAmmo.002"
es_xkeysetvalue gg_ammo_count "weapon_g3sg1" 0
es_xkeysetvalue gg_ammo_props "weapon_sg550" "CCSPlayer.baseclass.localdata.m_iAmmo.003"
es_xkeysetvalue gg_ammo_count "weapon_sg550" 0
es_xkeysetvalue gg_ammo_props "weapon_m249" "CCSPlayer.baseclass.localdata.m_iAmmo.004"
es_xkeysetvalue gg_ammo_count "weapon_m249" 200
// init ammo variables
es_xsetinfo gg_ammoname 0
es_xsetinfo gg_ammonum 0
// init tmp menu messages
es_xsetinfo tmp_menumsg 0
// init bots
es_xsetinfo bot_min_lvl 1
es_xsetinfo bot_max_lvl 1
// init vars
es_xsetinfo p_wpn 0
es_xsetinfo p_wins 0
es_xsetinfo p_lvl 0
es_xsetinfo p_kills 0
es_xsetinfo tmp_leadermsg 0
es_xsetinfo user_x 0
es_xsetinfo user_y 0
es_xsetinfo user_z 0
es_xsetinfo dead_x 0
es_xsetinfo dead_y 0
es_xsetinfo victim_lvl 0
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
//################################################################################
// Create popup menus for Score, Weapons and Top 10
popup create Top10Page1
popup prepuser Top10Page1 gungame3/create_top10_popup
popup timeout Top10Page1 view 10
//
popup create ScorePage1
popup prepuser ScorePage1 gungame3/create_score_popup
popup timeout ScorePage1 view 10
//
popup create WeaponPage1
popup prepuser WeaponPage1 gungame3/create_weapon_popup
popup timeout WeaponPage1 view 10
}
block create_top10_popup
{
es_xsetinfo tmp_top10_playersonpage 0
es_xsetinfo tmp_top10listpages 0
es_xsetinfo tmp_top10_counter 0
es_xforeachkey tmp_top10_userid in gg_top10 "es_xdoblock gungame3/top10list_add"
if (server_var(tmp_top10listpages) > 1) do
{
// Make the last page complete as well as link first page to last page
es popup addline server_var(tmp_top10_popupname) "-----------"
es popup addline server_var(tmp_top10_popupname) "->8. Prev page"
es popup addline server_var(tmp_top10_popupname) "->9. First page"
es popup addline server_var(tmp_top10_popupname) "->0. Exit"
es_xmath tmp_top10listpages - 1
es es_xformat tmp_temp "Top10Page%1" server_var(tmp_top10listpages)
es popup submenu server_var(tmp_top10_popupname) 8 server_var(tmp_top10)
es_xmath tmp_top10listpages + 1
es popup submenu server_var(tmp_top10_popupname) 9 Top10Page1
es popup modline Top10Page1 8 "->8. Last page"
es popup submenu Top10Page1 8 server_var(tmp_top10_popupname)
}
else do
{
es popup addline server_var(tmp_top10_popupname) "-----------"
es es_xformat tmp_botscore "BOT levels %1 - %2" server_var(bot_min_lvl) server_var(bot_max_lvl)
es popup addline server_var(tmp_top10_popupname) server_var(tmp_botscore)
es popup addline server_var(tmp_top10_popupname) "->0. Exit"
}
// Let's make a final touch by adding page numbering!
es_xsetinfo tmp_looper 1
es_xdoblock gungame3/playerlist_page
// since we built the list from beginning, let's add this creation again there
popup prepuser Top10Page1 gungame3/create_top10_popup
}
block top10list_page
{
if (server_var(tmp_top10_looper) <= server_var(tmp_top10listpages)) do
{
es es_xformat tmp_top10_popupname "Top10Page%1" server_var(tmp_top10_looper)
es es_xformat tmp_temp "Gun Game Top10 (%1/%2)" server_var(tmp_top10_looper) server_var(tmp_top10listpages)
es popup modline server_var(tmp_top10_popupname) 1 server_var(tmp_top10)
// next page
es_xmath tmp_top10_looper + 1
es_xdoblock gungame3/top10list_page
}
}
block top10list_add
{
// we will have maximum of 5 players per page, so let's see if we change pages
if (server_var(tmp_top10_playersonpage) == 5) then es_xsetinfo tmp_top10_playersonpage 0
if (server_var(tmp_top10_playersonpage) == 0) do
{
es_xmath tmp_top10listpages + 1
if (server_var(tmp_top10listpages) > 1) do
{
es popup addline server_var(tmp_top10_popupname) "-----------"
es popup addline server_var(tmp_top10_popupname) "->8. Prev page"
es popup addline server_var(tmp_top10_popupname) "->9. Next page"
es popup addline server_var(tmp_top10_popupname) "->0. Exit"
es_xmath tmp_top10listpages - 2
es es_xformat tmp_top10 "Top10Page%1" server_var(tmp_top10listpages)
es popup submenu server_var(tmp_top10_popupname) 8 server_var(tmp_top10)
es_xmath tmp_top10listpages + 2
es es_xformat tmp_top10 "Top10Page%1" server_var(tmp_top10listpages)
es popup submenu server_var(tmp_top10_popupname) 9 server_var(tmp_top10)
}
es es_xformat tmp_top10_popupname "Top10Page%1" server_var(tmp_top10listpages)
es popup create server_var(tmp_top10_popupname)
es popup addline server_var(tmp_top10_popupname) "Gun Game Top10"
}
es_xsetinfo tmp_top10_playername 0
es_xsetinfo tmp_top10_playerwins 0
es es_xkeygetvalue tmp_top10_playername gg_top10 server_var(tmp_top10_userid) name
es es_xkeygetvalue tmp_top10_playerwins gg_top10 server_var(tmp_top10_userid) wins
es_xmath tmp_top10_playersonpage + 1
es_xmath tmp_top10_counter + 1
es es_xformat tmp_top10 "->%1. Wins %2 %3" server_var(tmp_top10_counter) server_var(tmp_top10_playerwins) server_var(tmp_top10_playername)
es popup addline server_var(tmp_top10_popupname) server_var(tmp_top10)
}
block unsendTop10Page
{
// this block will loop through all the player list menus and delete them
if (server_var(tmp_top10_looper) <= server_var(tmp_top10listpages)) do
{
es es_xformat tmp_top10_popupname "Top10Page%1" server_var(tmp_top10_looper)
es popup unsendname server_var(tmp_top10_popupname) #all
es popup delete server_var(tmp_top10_popupname)
// Loop to the next page
es_xmath tmp_top10_looper + 1
es_xdoblock gungame3/unsendTop10Page
}
}
block create_weapon_popup
{
es_xsetinfo tmp_wepsonpage 0
es_xsetinfo tmp_weplistpages 0
es_xforeachkey tmp_weplevel in gg_weapons "es_xdoblock gungame3/weaponlist_add"
if (server_var(tmp_weplistpages) > 1) do
{
// Make the last page complete as well as link first page to last page
es popup addline server_var(tmp_weppopup) "-----------"
es popup addline server_var(tmp_weppopup) "->8. Prev page"
es popup addline server_var(tmp_weppopup) "->9. First page"
es popup addline server_var(tmp_weppopup) "->0. Exit"
es_xmath tmp_weplistpages - 1
es es_xformat tmp_weptemp "WeaponPage%1" server_var(tmp_weplistpages)
es popup submenu server_var(tmp_weppopup) 8 server_var(tmp_weptemp)
es_xmath tmp_weplistpages + 1
es popup submenu server_var(tmp_weppopup) 9 WeaponPage1
es popup modline WeaponPage1 13 "->8. Last page"
es popup submenu WeaponPage1 8 server_var(tmp_weppopup)
}
else do
{
es popup addline server_var(tmp_weppopup) "-----------"
es popup addline server_var(tmp_weppopup) "->0. Exit"
}
// Let's make a final touch by adding page numbering!
es_xsetinfo tmp_weplooper 1
es_xdoblock gungame3/weaponlist_page
// since we built the list from beginning, let's add this creation again there
popup prepuser WeaponPage1 gungame3/create_weapon_popup
}
block weaponlist_page
{
if (server_var(tmp_weplooper) <= server_var(tmp_weplistpages)) do
{
es es_xformat tmp_weppopup "WeaponPage%1" server_var(tmp_weplooper)
es es_xformat tmp_weptemp "Gun Game Weapons (%1/%2)" server_var(tmp_weplooper) server_var(tmp_weplistpages)
es popup modline server_var(tmp_weppopup) 1 server_var(tmp_weptemp)
// next page
es_xmath tmp_weplooper + 1
es_xdoblock gungame3/weaponlist_page
}
}
block weaponlist_add
{
// we will have maximum of 10 weapons per page, so let's see if we change pages
if (server_var(tmp_wepsonpage) == 10) then es_xsetinfo tmp_wepsonpage 0
if (server_var(tmp_wepsonpage) == 0) do
{
es_xmath tmp_weplistpages + 1
if (server_var(tmp_weplistpages) > 1) do
{
es popup addline server_var(tmp_weppopup) "-----------"
es popup addline server_var(tmp_weppopup) "->8. Prev page"
es popup addline server_var(tmp_weppopup) "->9. Next page"
es popup addline server_var(tmp_weppopup) "->0. Exit"
es_xmath tmp_weplistpages - 2
es es_xformat tmp_weptemp "WeaponPage%1" server_var(tmp_weplistpages)
es popup submenu server_var(tmp_weppopup) 8 server_var(tmp_weptemp)
es_xmath tmp_weplistpages + 2
es es_xformat tmp_weptemp "WeaponPage%1" server_var(tmp_weplistpages)
es popup submenu server_var(tmp_weppopup) 9 server_var(tmp_weptemp)
}
es es_xformat tmp_weppopup "WeaponPage%1" server_var(tmp_weplistpages)
es popup create server_var(tmp_weppopup)
es popup addline server_var(tmp_weppopup) "Gun Game Weapons"
}
es_xsetinfo tmp_wepname 0
es es_xkeygetvalue tmp_wepname gg_weapons server_var(tmp_weplevel) weapon
es_xmath tmp_wepsonpage + 1
es es_xformat tmp_weptemp "->%1. %2" server_var(tmp_weplevel) server_var(tmp_wepname)
es popup addline server_var(tmp_weppopup) server_var(tmp_weptemp)
}
block unsendWeaponPage
{
// this block will loop through all the player list menus and delete them
if (server_var(tmp_weplooper) <= server_var(tmp_weplistpages)) do
{
es es_xformat tmp_weppopup "WeaponPage%1" server_var(tmp_weplooper)
es popup unsendname server_var(tmp_weppopup) #all
es popup delete server_var(tmp_weppopup)
// Loop to the next page
es_xmath tmp_weplooper + 1
es_xdoblock gungame3/unsendWeaponPage
}
}
block create_score_popup
{
es_xsetinfo tmp_playersonpage 0
es_xsetinfo tmp_playerlistpages 0
es_xsetinfo tmp_botscore 0
es_xsetinfo tmp_player 0
es_xforeachkey tmp_userid in gg_players "es_xdoblock gungame3/playerlist_add"
if (server_var(tmp_playerlistpages) > 1) do
{
// Make the last page complete as well as link first page to last page
es popup addline server_var(tmp_popupname) "-----------"
es es_xformat tmp_botscore "BOT levels %1 - %2" server_var(bot_min_lvl) server_var(bot_max_lvl)
es popup addline server_var(tmp_popupname) server_var(tmp_botscore)
es popup addline server_var(tmp_popupname) "->8. Prev page"
es popup addline server_var(tmp_popupname) "->9. First page"
es popup addline server_var(tmp_popupname) "->0. Exit"
es_xmath tmp_playerlistpages - 1
es es_xformat tmp_temp "ScorePage%1" server_var(tmp_playerlistpages)
es popup submenu server_var(tmp_popupname) 8 server_var(tmp_temp)
es_xmath tmp_playerlistpages + 1
es popup submenu server_var(tmp_popupname) 9 ScorePage1
es popup modline ScorePage1 8 "->8. Last page"
es popup submenu ScorePage1 8 server_var(tmp_popupname)
}
else do
{
es popup addline server_var(tmp_popupname) "-----------"
es es_xformat tmp_botscore "BOT levels %1 - %2" server_var(bot_min_lvl) server_var(bot_max_lvl)
es popup addline server_var(tmp_popupname) server_var(tmp_botscore)
es popup addline server_var(tmp_popupname) "->0. Exit"
}
// Let's make a final touch by adding page numbering!
es_xsetinfo tmp_looper 1
es_xdoblock gungame3/playerlist_page
// since we built the list from beginning, let's add this creation again there
popup prepuser ScorePage1 gungame3/create_score_popup
}
block playerlist_page
{
if (server_var(tmp_looper) <= server_var(tmp_playerlistpages)) do
{
es es_xformat tmp_popupname "ScorePage%1" server_var(tmp_looper)
es es_xformat tmp_temp "Gun Game Scores (%1/%2)" server_var(tmp_looper) server_var(tmp_playerlistpages)
es popup modline server_var(tmp_popupname) 1 server_var(tmp_temp)
// next page
es_xmath tmp_looper + 1
es_xdoblock gungame3/playerlist_page
}
}
block playerlist_add
{
// we will have maximum of 5 players per page, so let's see if we change pages
if (server_var(tmp_playersonpage) == 5) then es_xsetinfo tmp_playersonpage 0
if (server_var(tmp_playersonpage) == 0) do
{
es_xmath tmp_playerlistpages + 1
if (server_var(tmp_playerlistpages) > 1) do
{
es popup addline server_var(tmp_popupname) "-----------"
es popup addline server_var(tmp_popupname) "->8. Prev page"
es popup addline server_var(tmp_popupname) "->9. Next page"
es popup addline server_var(tmp_popupname) "->0. Exit"
es_xmath tmp_playerlistpages - 2
es es_xformat tmp_temp "ScorePage%1" server_var(tmp_playerlistpages)
es popup submenu server_var(tmp_popupname) 8 server_var(tmp_temp)
es_xmath tmp_playerlistpages + 2
es es_xformat tmp_temp "ScorePage%1" server_var(tmp_playerlistpages)
es popup submenu server_var(tmp_popupname) 9 server_var(tmp_temp)
}
es es_xformat tmp_popupname "ScorePage%1" server_var(tmp_playerlistpages)
es popup create server_var(tmp_popupname)
es popup addline server_var(tmp_popupname) "Gun Game Scores"
}
es_xsetinfo tmp_playername 0
es_xsetinfo tmp_playerlevel 0
es_xsetinfo tmp_playerwins 0
es es_xkeygetvalue tmp_playername gg_players server_var(tmp_userid) name
es es_xkeygetvalue tmp_playerlevel gg_players server_var(tmp_userid) level
es es_xkeygetvalue tmp_playerwins gg_players server_var(tmp_userid) wins
es_xmath tmp_playersonpage + 1
es_xmath tmp_player + 1
if (server_var(tmp_playerlevel) == server_var(ldr_level)) do
{
es es_xformat tmp_temp "->%1. **Level %2 Wins %3 %4" server_var(tmp_player) server_var(tmp_playerlevel) server_var(tmp_playerwins) server_var(tmp_playername)
}
else do
{
es es_xformat tmp_temp "->%1. Level %2 Wins %3 %4" server_var(tmp_player) server_var(tmp_playerlevel) server_var(tmp_playerwins) server_var(tmp_playername)
}
es popup addline server_var(tmp_popupname) server_var(tmp_temp)
}
block unsendScorePage
{
// this block will loop through all the player list menus and delete them
if (server_var(tmp_looper) <= server_var(tmp_playerlistpages)) do
{
es es_xformat tmp_popupname "ScorePage%1" server_var(tmp_looper)
es popup unsendname server_var(tmp_popupname) #all
es popup delete server_var(tmp_popupname)
// Loop to the next page
es_xmath tmp_looper + 1
es_xdoblock gungame3/unsendScorePage
}
}
block gg_set_level
{
es_xsetinfo tmp_c 0
es_xsetinfo tmp_d 0
es_xsetinfo tmp_e 0
es_xgetargv tmp_c 1
es_xgetargv tmp_d 2
es es_xgetuserid tmp_e server_var(tmp_c)
if (server_var(tmp_e) != 0) do
{
es es_xgetplayersteamid tmp_c server_var(tmp_e)
if (server_var(tmp_c) != "BOT") do
{
if (server_var(tmp_d) > 0) do
{
if (server_var(tmp_d) <= server_var(gg_levels)) do
{
es es_xkeysetvalue gg_players server_var(tmp_c) level server_var(tmp_d)
es es_xlog [GunGame] gg_setlevel: server_var(tmp_c) was set to level server_var(tmp_d)
}
else do
{
es es_xlog [GunGame] gg_setlevel: Level must be between 1 and server_var(gg_levels): server_var(tmp_d)
}
}
else do
{
es es_xlog [GunGame] gg_setlevel: Level must be between 1 and server_var(gg_levels): server_var(tmp_d)
}
}
else do
{
es es_xlog [GunGame] gg_setlevel: server_var(tmp_c) is a BOT!
}
}
else do
{
es es_xlog [GunGame] gg_setlevel: server_var(tmp_c) is not a valid USERNAME!
}
}
block player_setup
{
if (event_var(es_steamid) != "BOT") do
{
// enable player console so they can read rules, score, etc.
es es_xcexec event_var(userid) con_enable 1
/////////////////////////////////////
// Open gg_winners db
if (server_var(win_db_open) == 0) do
{
es_xexists gg_exists keygroup gg_winners
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_winners
es_xkeygroupcreate gg_winners
es es_xkeygroupload gg_winners server_var(gg_dir)
es_xsetinfo win_db_open 1
}
es_xmath gg_read_write + 1
///////////////////////
// gg_winners actions /
///////////////////////
//
// Variables
es_xsetinfo p_level 0
es_xsetinfo s_wins 0
// Check to see if player is already in the gg_players db
es es_xkeygetvalue p_level gg_players event_var(es_steamid) level
// Setup new player in gg_players db
if (server_var(p_level) == 0) do
{
es es_xkeycreate gg_players event_var(es_steamid)
es es_xkeysetvalue gg_players event_var(es_steamid) name event_var(es_username)
es es_xkeysetvalue gg_players event_var(es_steamid) level 1
es es_xkeysetvalue gg_players event_var(es_steamid) levelup 0
es es_xkeysetvalue gg_players event_var(es_steamid) kills 0
}
// Bring over user wins from gg_winners
es es_xkeygetvalue s_wins gg_winners event_var(es_steamid) wins
es es_xkeysetvalue gg_players event_var(es_steamid) wins server_var(s_wins)
// Save and close gg_winners
es_xmath gg_read_write - 1
if (server_var(gg_read_write) == 0) do
{
if (server_var(win_db_open) == 1) do
{
es es_xkeygroupsave gg_winners server_var(gg_dir)
es_xkeygroupdelete gg_winners
es_xsetinfo win_db_open 0
}
}
//gg_winners closed
//////////////////////////////////////////
// add player to afk_db
es es_xkeydelete afk_db event_var(userid)
es es_xkeycreate afk_db event_var(userid)
// If player is reconnecting, give previous level
es_xsetinfo p_level 0
es_xsetinfo skip_handicap 0
// Check to see if player has already connected to the current map
es es_xkeygetvalue p_level lvl_db event_var(es_steamid) level
// If player has already connected, give back player's level upon disconnecting
if (server_var(p_level) > 0) do
{
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(p_level)
es_xsetinfo skip_handicap 1
}
// Execute handicap code
if (server_var(skip_handicap) == 0) do
{
if (server_var(gg_handicap_on) == 1) do
{
es_xdoblock gungame3/gg_handicap
}
}
// Remove player from lvl_db
es es_xkeydelete lvl_db event_var(es_steamid)
// Setup !give command to be used once.
es es_xkeysetvalue gg_players event_var(es_steamid) give 0
// Setup !start command to be used once.
es es_xkeysetvalue gg_players event_var(es_steamid) start 0
}
}
block player_setup_in_progress
{
es_xsetinfo gg_tmp_n 0
es_xsetinfo gg_tmp_s 0
es es_xkeygetvalue gg_tmp_n gg_player_list server_var(key_x) name
es es_xkeygetvalue gg_tmp_s gg_player_list server_var(key_x) steamid
if (server_var(gg_tmp_s) != "BOT") do
{
// enable player console so they can read rules, score, etc.
es es_xcexec server_var(key_x) con_enable 1
/////////////////////////////////////
// Open gg_winners db
if (server_var(win_db_open) == 0) do
{
es_xexists gg_exists keygroup gg_winners
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_winners
es_xkeygroupcreate gg_winners
es es_xkeygroupload gg_winners server_var(gg_dir)
es_xsetinfo win_db_open 1
}
es_xmath gg_read_write + 1
///////////////////////
// gg_winners actions /
///////////////////////
//
// Variables
es_xsetinfo p_level 0
es_xsetinfo s_wins 0
es es_xkeycreate gg_players server_var(gg_tmp_s)
es es_xkeysetvalue gg_players server_var(gg_tmp_s) name server_var(gg_tmp_n)
es es_xkeysetvalue gg_players server_var(gg_tmp_s) level 1
es es_xkeysetvalue gg_players server_var(gg_tmp_s) levelup 0
es es_xkeysetvalue gg_players server_var(gg_tmp_s) kills 0
// Bring over user wins from gg_winners
es es_xkeygetvalue s_wins gg_winners server_var(gg_tmp_s) wins
es es_xkeysetvalue gg_players server_var(gg_tmp_s) wins server_var(s_wins)
// Save and close gg_winners
es_xmath gg_read_write - 1
if (server_var(gg_read_write) == 0) do
{
if (server_var(win_db_open) == 1) do
{
es es_xkeygroupsave gg_winners server_var(gg_dir)
es_xkeygroupdelete gg_winners
es_xsetinfo win_db_open 0
}
}
//gg_winners closed
//////////////////////////////////////////
// add player to afk_db
es es_xkeydelete afk_db server_var(key_x)
es es_xkeycreate afk_db server_var(key_x)
// Execute handicap code
if (server_var(skip_handicap) == 0) do
{
if (server_var(gg_handicap_on) == 1) do
{
es_xdoblock gungame3/gg_handicap_in_progress
}
}
// Setup !give command to be used once.
es es_xkeysetvalue gg_players server_var(gg_tmp_s) give 0
// Setup !start command to be used once.
es es_xkeysetvalue gg_players event_var(es_steamid) start 0
}
}
event es_map_start
{
// Load sounds into downloadables
es_xsetinfo gg_tmp_sound 0
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_welcome)
es es_xstringtable downloadables server_var(gg_tmp_sound)
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_knife)
es es_xstringtable downloadables server_var(gg_tmp_sound)
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_nade)
es es_xstringtable downloadables server_var(gg_tmp_sound)
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_levelup)
es es_xstringtable downloadables server_var(gg_tmp_sound)
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_leveldown)
es es_xstringtable downloadables server_var(gg_tmp_sound)
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_triple)
es es_xstringtable downloadables server_var(gg_tmp_sound)
if (server_var(gg_sound_winner) != "music/HL2_song15.mp3") do
{
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_winner)
es es_xstringtable downloadables server_var(gg_tmp_sound)
}
if (server_var(gg_sound_kill) != "common/stuck1.wav") do
{
es es_xformat gg_tmp_sound "sound/%1" server_var(gg_sound_kill)
es es_xstringtable downloadables server_var(gg_tmp_sound)
}
// Warmup timer
es es_xsetinfo gg_warmup_timer server_var(gg_warmup_timer_setting)
// End of map vote
es es_xsetinfo gg_vote server_var(gg_vote_setting)
// Gun Game map presets
es_xdelayed 2 gg_map_setup
// afk database
es_xexists gg_exists keygroup afk_db
if (server_var(gg_exists) == 1) then es_xkeygroupdelete afk_db
es_xkeygroupcreate afk_db
// level db for reconnecting players
es_xexists gg_exists keygroup lvl_db
if (server_var(gg_exists) == 1) then es_xkeygroupdelete lvl_db
es_xkeygroupcreate lvl_db
// gg_players database
es_xexists gg_exists keygroup gg_players
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_players
es_xkeygroupcreate gg_players
// Warmup round code
alias warmup_countdown "es_xmath gg_warmup_timer - 1; if (server_var(gg_warmup_timer) == 1) then warmup_over; es es_xcentermsg Warmup round: server_var(gg_warmup_timer) seconds left; if (server_var(gg_warmup_timer) > 1) then es_xdelayed 1 warmup_countdown"
alias warmup_over "mp_restartgame 1; es_xdelayed .90 es_xforeachkey test in gg_players warmup_reset; es_xdelayed .98 es_xsetinfo ldr_level 1; es_xdelayed .98 es_xsetinfo bot_min_lvl 1"
alias warmup_reset "es es_xkeysetvalue gg_players server_var(test) level 1"
if (server_var(gg_warmup_timer) > 0) then warmup_countdown
}
block create_weapon_list
{
es es_xtoken gg_tmp_weapon server_var(gg_weapon_order) server_var(gg_level_counter) ,
es es_xkeycreate gg_weapons server_var(gg_level_counter)
es es_xkeysetvalue gg_weapons server_var(gg_level_counter) weapon server_var(gg_tmp_weapon)
es_xmath gg_level_counter + 1
if (server_var(gg_level_counter) <= server_var(gg_levels)) then es_xdoblock gungame3/create_weapon_list
}
block gg_set_weapon_order
{
es_xsetinfo gg_tmp_weapon_order 0
es_xsetinfo _tmp 0
es_xgetargs gg_tmp_weapon_order
es_xexists _tmp variable gg_weapon_order_old
if (server_var(_tmp) == 0) do
{
es_xsetinfo gg_weapon_order_old 0
es_xcopy gg_weapon_order_old gg_weapon_order
}
if (server_var(gg_tmp_weapon_order) != 0) do
{
if (server_var(gg_tmp_weapon_order) == "default") do
{
es_xcopy gg_weapon_order gg_weapon_order_old
}
else do
{
es es_xsetinfo gg_weapon_order server_var(gg_tmp_weapon_order)
}
// Create weapon list
es_xsetinfo gg_tmp_weapon 0
es_xsetinfo gg_levels 0
es es_xtoken gg_levels server_var(gg_weapon_order) 0 ,
es_xexists gg_exists keygroup gg_weapons
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_weapons
es_xkeygroupcreate gg_weapons
es_xsetinfo gg_level_counter 1
if (server_var(gg_levels) > 0) then es_xdoblock gungame3/create_weapon_list
// Dynamic level total - 1
es es_xsetinfo gg_level_dynamic server_var(gg_levels)
es_xmath gg_level_dynamic - 1
es es_xlog [GunGame] Weapon order reset to: server_var(gg_weapon_order)
es_xlog [GunGame] Restarting map...
es_xmsg #green Changing weapon order...
mp_restartgame 3
es_xdelayed 2.90 es_xforeachkey test in gg_players warmup_reset
}
else do
{
echo gg_setweapons: not enough arguments - Syntax: gg_setweapons <weapon>,<weapon>,<etc>
}
}
block create_top10
{
es es_xkeycreate gg_top10 server_var(top10_counter)
es es_xkeysetvalue gg_top10 server_var(top10_counter) name none
es es_xkeysetvalue gg_top10 server_var(top10_counter) wins 0
if (server_var(top10_counter) == 10) do
{
es es_xkeysetvalue gg_top10 server_var(top10_counter) steam 1
}
else do
{
es es_xkeysetvalue gg_top10 server_var(top10_counter) steam 0
}
es_xmath top10_counter + 1
if (server_var(top10_counter) < 11) then es_xdoblock gungame3/create_top10
if (server_var(top10_counter) == 11) then es_xkeygroupsave gg_top10 server_var(gg_dir)
}
event player_activate
{
es_xdoblock gungame3/player_setup
}
event bomb_pickup
{
// Set bomber
es es_xsetinfo bomber event_var(userid)
}
event bomb_planted
{
// Reset bomber
es_xsetinfo bomber 0
}
event bomb_dropped
{
// Reset bomber
es_xsetinfo bomber 0
}
event player_spawn
{
//removes weapons
es es_xgive event_var(userid) player_weaponstrip
es es_xfire event_var(userid) player_weaponstrip Strip 1
//removes cash
es es_xsetplayerprop event_var(userid) CCSPlayer.m_iAccount 0
// have the player initialize
if (event_var(es_steamid) == "BOT") do
{
// If warmup is over, or knife warmup is off, give weapons
if (server_var(gg_knife_warmup) == 1) do
{
if (server_var(gg_warmup_timer) < 2) then es_xdoblock gungame3/bot_spawn
if (server_var(gg_warmup_timer) > 1) then es_xdoblock gungame3/give_warmup_knife
}
else do
{
es_xdoblock gungame3/bot_spawn
}
}
else do
{
if (event_var(es_userteam) == 2) then es_xcexec event_var(userid) !ggstartround
if (event_var(es_userteam) == 3) then es_xcexec event_var(userid) !ggstartround
}
}
event player_death
{
// Set attacker's cash back to 0 so they can't buy from the $300 they got for killing the player.
es es_xsetplayerprop event_var(attacker) CCSPlayer.m_iAccount 0
// afk_db get player death location
es_xsetinfo user_afk 0
if (event_var(es_steamid) != "BOT") do
{
es_xsetinfo user_x 0
es_xsetinfo user_y 0
es_xsetinfo user_z 0
es es_xgetplayerlocation user_x user_y user_z event_var(userid)
es_xsetinfo dead_x 0
es_xsetinfo dead_y 0
es es_xkeygetvalue dead_x afk_db event_var(userid) x
es es_xkeygetvalue dead_y afk_db event_var(userid) y
if (server_var(user_x) == server_var(dead_x)) do
{
if (server_var(user_y) == server_var(dead_y)) then es_xsetinfo user_afk 1
}
}
if (event_var(es_attackersteamid) != "BOT") do
{
// Set !give var
es es_xkeysetvalue gg_players event_var(es_attackersteamid) give 1
// Setup for Multi Kill mode
es es_xif (server_var(gg_multikill) > 0) do
{
es es_xkeygetvalue p_kills gg_players event_var(es_attackersteamid) kills
}
es es_xkeygetvalue p_lvl gg_players event_var(es_attackersteamid) level
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
}
if (event_var(es_steamid) != "BOT") then es_xkeygetvalue victim_lvl gg_players event_var(es_steamid) level
if (event_var(es_userteam) != event_var(es_attackerteam)) do
{
if (server_var(user_afk) == 0) do
{
if (event_var(weapon) == server_var(p_wpn)) do
{
if (event_var(es_attackersteamid) != "BOT") do
{
if (server_var(gg_multikill) == 0) do
{
es_xdoblock gungame3/gg_levelup
// Log level up for hlstats users
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_attackerteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_attackerteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_attackername) event_var(attacker) event_var(es_attackersteamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_levelup
es_xcopy eventscripts_escapechars oldescape
}
else do
{
es_xmath p_kills + 1
es es_xif (server_var(p_wpn) == "hegrenade") then es_xcopy p_kills gg_multikill
es es_xif (server_var(p_wpn) == "knife") then es_xcopy p_kills gg_multikill
es es_xif (server_var(p_kills) == server_var(gg_multikill)) do
{
es_xdoblock gungame3/gg_levelup
// Log level up for hlstats users
es_xcopy oldescape eventscripts_escapechars
es es_xif (event_var(es_attackerteam) == 2) then es_xsetinfo _tmp "TERRORIST"
es es_xif (event_var(es_attackerteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_attackername) event_var(attacker) event_var(es_attackersteamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_levelup
es_xcopy eventscripts_escapechars oldescape
}
else do
{
es es_xkeysetvalue gg_players event_var(es_attackersteamid) kills server_var(p_kills)
es es_xcexec event_var(attacker) play server_var(gg_sound_kill)
// HUD hint message
es es_xfire event_var(attacker) env_hudhint kill
es es_xgive event_var(attacker) env_hudhint
es es_xformat tmp_menumsg "message Required kills: %1/%2" server_var(p_kills) server_var(gg_multikill)
es es_xfire event_var(attacker) env_hudhint AddOutput server_var(tmp_menumsg)
es es_xfire event_var(attacker) env_hudhint ShowHudHint
}
}
}
}
else do
{
if (event_var(weapon) == "knife") do
{
if (server_var(gg_knife_pro) == 1) do
{
if (server_var(user_afk) == 0) do
{
es_xmath victim_lvl - 1
if (server_var(victim_lvl) > 0) do
{
if (event_var(es_steamid) != "BOT") then es_xkeysetvalue gg_players event_var(es_steamid) level server_var(victim_lvl)
}
es es_xmsg #green event_var(es_attackername) stole a level from event_var(es_username)
es es_xcexec event_var(userid) play server_var(gg_sound_leveldown)
if (event_var(es_attackersteamid) != "BOT") do
{
if (server_var(p_wpn) != "hegrenade") then es_xdoblock gungame3/gg_levelup
// Log level steal for hlstats users
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_attackerteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_attackerteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_attackername) event_var(attacker) event_var(es_attackersteamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_levelsteal
es_xcopy eventscripts_escapechars oldescape
}
if (event_var(es_steamid) != "BOT") do
{
// Log level down for hlstats users
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_userteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_userteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_username) event_var(userid) event_var(es_steamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_leveldown
es_xcopy eventscripts_escapechars oldescape
}
}
}
}
}
}
else do
{
es es_xformat tmp_menumsg "%1 was AFK\n Your kill did not count!!" event_var(es_username)
es es_xmenu 5 event_var(attacker) server_var(tmp_menumsg)
es es_xkeysetvalue afk_db event_var(userid) x 1
es es_xkeysetvalue afk_db event_var(userid) y 1
}
}
if (server_var(suicide_protect) == 0) do
{
if (event_var(userid) == event_var(attacker)) do
{
es_xdoblock gungame3/gg_suicide
}
if (server_var(worldspawn_suicide) == 1) do
{
if (event_var(attacker) == 0) do
{
es_xdoblock gungame3/gg_worldspawn
}
}
}
}
block gg_awp
{
// Set awp ammo in clip to 1
es es_xforeachkey index in all_awps "es_setindexprop server_var(index) CWeaponAWP.baseclass.baseclass.baseclass.LocalWeaponData.m_iClip1 1"
es_xdelayed 2 es_xkeygroupdelete all_awps
}
block gg_levelup
{
if (server_var(p_lvl) == server_var(gg_levels)) do
{
// Allow only one winner
if (server_var(gg_one_winner) == 0) do
{
// Log winner for hlstats users
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_attackerteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_attackerteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_attackername) event_var(attacker) event_var(es_attackersteamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':w"
es es_xlogq server_var(_tmp2) triggered gg_win
es_xcopy eventscripts_escapechars oldescape
es_xsetinfo gg_one_winner 1
es es_xcexec_all play server_var(gg_sound_winner)
es es_xcentermsg event_var(es_attackername) won!
es es_xmsg #green event_var(es_attackername) won!
es es_xmsg #green event_var(es_attackername) won!
es es_xsetinfo winner_name event_var(es_attackername)
es es_xsetinfo winner_steam event_var(es_attackersteamid)
es_xdoblock gungame3/gg_winner
// End map
es sv_alltalk 1
es es_xgive event_var(attacker) game_end
es es_xfire event_var(attacker) game_end EndGame
es_xdoblock gungame3/winner_reset
}
}
else do
{
// Reset kill count for multikill
es es_xkeysetvalue gg_players event_var(es_attackersteamid) kills 0
if (server_var(gg_knife_elite) == 1) do
{
if (server_var(suicide_protect) != 1) do
{
// Set value showing player leveled up this round
es es_xkeysetvalue gg_players event_var(es_attackersteamid) levelup 1
//removes weapons
es es_xgive event_var(attacker) player_weaponstrip
es es_xfire event_var(attacker) player_weaponstrip Strip 1
es es_xdelayed .3 es_xgive event_var(attacker) weapon_knife
if (server_var(bomber) == event_var(attacker)) then es_xdelayed .5 es_xgive event_var(attacker) weapon_c4
if (server_var(gg_dm_script) != 1) do
{
if (event_var(es_attackerteam) == 3) do
{
es es_xdelayed 1 es_xsetplayerprop event_var(attacker) CCSPlayer.m_bHasDefuser 1
}
}
}
}
if (server_var(gg_turbo) == 1) do
{
es_xmath p_lvl + 1
es es_xkeysetvalue gg_players event_var(es_attackersteamid) level server_var(p_lvl)
//removes weapons
es es_xgive event_var(attacker) player_weaponstrip
es es_xfire event_var(attacker) player_weaponstrip Strip 1
es_xdoblock gungame3/give_turbo_weapon
if (server_var(bomber) == event_var(attacker)) then es_xdelayed 1 es_xgive event_var(attacker) weapon_c4
// Update player name in gg_players database
es es_xkeysetvalue gg_players event_var(es_attackersteamid) name event_var(es_attackername)
// Start a map vote if this is set in the cfg
if (server_var(gg_vote) == 1) do
{
if (server_var(p_lvl) == server_var(gg_level_dynamic)) do
{
ma_voterandom end 4
es_xsetinfo gg_vote 0
}
}
es es_xsetinfo p_diff server_var(ldr_level)
es es_xmath p_diff - server_var(p_lvl)
if (server_var(p_lvl) > server_var(ldr_level)) do
{
es es_xsetinfo ldr_level server_var(p_lvl)
es es_xkeygetvalue ldr_name gg_players event_var(es_attackersteamid) name
es es_xmsg #multi #green event_var(es_attackername)#lightgreen is leading on level #green server_var(p_lvl)
}
if (server_var(p_lvl) == server_var(ldr_level)) do
{
if (event_var(es_attackername) != server_var(ldr_name)) do
{
es es_xmsg #multi #green event_var(es_attackername)#lightgreen has tied the leader!
}
}
if (server_var(p_lvl) < server_var(ldr_level)) do
{
es es_xtell event_var(attacker) #lightgreen You are now server_var(p_diff) levels behind the leader
}
es es_xcexec event_var(attacker) play server_var(gg_sound_levelup)
}
else do
{
es_xsetinfo gg_star 0
if (server_var(gg_triple_on) == 1) do
{
es es_xkeygetvalue gg_star gg_players event_var(es_attackersteamid) triple
es_xmath gg_star + 1
}
if (server_var(gg_star) == 3) do
{
es_xmath p_lvl + 1
es es_xkeysetvalue gg_players event_var(es_attackersteamid) level server_var(p_lvl)
es es_xkeysetvalue gg_players event_var(es_attackersteamid) triple 3
es es_xemitsound player event_var(attacker) server_var(gg_sound_triple) 1.0 1.0
es es_xmsg #multi #green event_var(es_attackername)#lightgreen triple levelled!!!
es es_xcentermsg event_var(es_attackername) triple levelled!!!
// Effects
// Spark effect on player
es es_xgive event_var(attacker) env_spark
es es_xfire event_var(attacker) env_spark setparent !activator
es es_xfire event_var(attacker) env_spark addoutput "spawnflags 896"
es es_xfire event_var(attacker) env_spark addoutput "angles -90 0 0"
es es_xfire event_var(attacker) env_spark addoutput "magnitude 8"
es es_xfire event_var(attacker) env_spark addoutput "traillength 3"
es es_xfire event_var(attacker) env_spark startspark
// Lighting effect on player
es es_xgive event_var(attacker) point_spotlight
es es_xfire event_var(attacker) point_spotlight setparent !activator
es es_xfire event_var(attacker) point_spotlight addoutput "renderamt 255"
es es_xfire event_var(attacker) point_spotlight addoutput "spotlightlength 100"
es es_xfire event_var(attacker) point_spotlight addoutput "spotlightwidth 300"
es es_xfire event_var(attacker) point_spotlight addoutput "rendercolor 0 0 255"
es es_xfire event_var(attacker) point_spotlight addoutput "angles -90 0 0"
es es_xfire event_var(attacker) point_spotlight lighton
// Change player speed to 1.5x normal
es es_xsetplayerprop event_var(attacker) CCSPlayer.baseclass.localdata.m_flLaggedMovementValue 1.5
// Remove triple level effects in 10 seconds
es es_xdelayed 10 gg_triple_cmd event_var(attacker)
}
else do
{
if (server_var(gg_star) < server_var(gg_max_lvl)) do
{
es es_xkeysetvalue gg_players event_var(es_attackersteamid) triple server_var(gg_star)
es_xmath p_lvl + 1
es es_xkeysetvalue gg_players event_var(es_attackersteamid) level server_var(p_lvl)
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
es es_xfire event_var(attacker) env_hudhint kill
es es_xgive event_var(attacker) env_hudhint
es es_xformat tmp_menumsg "message You are now on level %1 (%2)" server_var(p_lvl) server_var(p_wpn)
es es_xfire event_var(attacker) env_hudhint AddOutput server_var(tmp_menumsg)
es es_xfire event_var(attacker) env_hudhint ShowHudHint
// Update player name in gg_players database
es es_xkeysetvalue gg_players event_var(es_attackersteamid) name event_var(es_attackername)
es es_xsetinfo p_diff server_var(ldr_level)
es es_xmath p_diff - server_var(p_lvl)
if (server_var(p_lvl) > server_var(ldr_level)) do
{
es es_xsetinfo ldr_level server_var(p_lvl)
es es_xkeygetvalue ldr_name gg_players event_var(es_attackersteamid) name
es es_xmsg #multi #green event_var(es_attackername)#lightgreen is leading on level #green server_var(p_lvl)
}
if (server_var(p_lvl) == server_var(ldr_level)) do
{
if (event_var(es_attackername) != server_var(ldr_name)) do
{
es es_xmsg #multi #green event_var(es_attackername)#lightgreen has tied the leader!
}
}
if (server_var(p_lvl) < server_var(ldr_level)) do
{
es es_xtell event_var(attacker) #lightgreen You are now server_var(p_diff) levels behind the leader
}
}
es es_xcexec event_var(attacker) play server_var(gg_sound_levelup)
}
}
}
}
block gg_triple_finish
{
es_xsetinfo _tmp 0
es_xgetargv _tmp 1
// Reset player to defaults
es es_xfire server_var(_tmp) env_spark kill
es es_xfire server_var(_tmp) point_spotlight kill
es es_xsetplayerprop server_var(_tmp) CCSPlayer.baseclass.localdata.m_flLaggedMovementValue 1.0
}
block gg_suicide
{
if (server_var(p_lvl) > 1) do
{
es_xmath p_lvl - 1
es es_xkeysetvalue gg_players event_var(es_attackersteamid) level server_var(p_lvl)
// Log level down for hlstats users
es_xcopy oldescape eventscripts_escapechars
es es_xif (event_var(es_attackerteam) == 2) then es_xsetinfo _tmp "TERRORIST"
es es_xif (event_var(es_attackerteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_attackername) event_var(attacker) event_var(es_attackersteamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_leveldown
es_xcopy eventscripts_escapechars oldescape
}
es es_xmsg #multi #green event_var(es_attackername)#lightgreen lost a level for committing suicide
es es_xcexec event_var(attacker) play server_var(gg_sound_leveldown)
}
block gg_worldspawn
{
if (server_var(victim_lvl) > 1) do
{
es_xmath victim_lvl - 1
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(victim_lvl)
// Log level down for hlstats users
es_xcopy oldescape eventscripts_escapechars
es es_xif (event_var(es_userteam) == 2) then es_xsetinfo _tmp "TERRORIST"
es es_xif (event_var(es_userteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_username) event_var(userid) event_var(es_steamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_leveldown
es_xcopy eventscripts_escapechars oldescape
}
es es_xmsg #multi #green event_var(es_username)#lightgreen lost a level for committing suicide
es es_xcexec event_var(userid) play server_var(gg_sound_leveldown)
}
event player_say
{
if (event_var(text) == "!rules") then es_xdoblock gungame3/gg_display_rules
if (event_var(text) == "!weapons") do
{
es popup send WeaponPage1 event_var(userid)
}
if (event_var(text) == "!top5") do
{
es es_xtell event_var(userid) #multi Top5 has been upgraded to Top10. Try #green!top10#default instead.
}
if (event_var(text) == "!top10") do
{
es popup send Top10Page1 event_var(userid)
}
if (event_var(text) == "!score") do
{
es popup send ScorePage1 event_var(userid)
}
if (event_var(text) == "!level") then es_xdoblock gungame3/gg_display_level
if (event_var(text) == "!give") do
{
if (server_var(gg_warmup_timer) < 2) do
{
es_xsetinfo tmp_m 0
es es_xgetplayerteam tmp_m event_var(userid)
if (server_var(tmp_m) > 1) do
{
es es_xgetplayerprop tmp_m event_var(userid) "CCSPlayer.baseclass.pl.deadflag"
if (server_var(tmp_m) == 0) do
{
es_xsetinfo gg_give_var 0
es es_xgetplayersteamid tmp_m event_var(userid)
es_keygetvalue gg_give_var gg_players server_var(tmp_m) give
if (server_var(gg_give_var) == "0") do
{
es_xdoblock gungame3/give_player_weapon
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
if (event_var(text) == "!start") do
{
es_xsetinfo tmp_s 0
es es_xkeygetvalue tmp_s gg_players event_var(es_steamid) start
if (server_var(tmp_s) != 1) do
{
if (server_var(gg_warmup_timer) < 2) do
{
es_xsetinfo tmp_m 0
es es_xgetplayerteam tmp_m event_var(userid)
if (server_var(tmp_m) > 1) do
{
es es_xgetplayerprop tmp_m event_var(userid) "CCSPlayer.baseclass.pl.deadflag"
if (server_var(tmp_m) == 0) do
{
es es_xgetplayersteamid tmp_m event_var(userid)
es es_xkeysetvalue gg_players server_var(tmp_m) level 1
es_xdoblock gungame3/give_player_weapon
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
// Set !start var
es es_xkeysetvalue gg_players event_var(es_attackersteamid) start 1
}
}
}
event player_disconnect
{
if (event_var(es_steamid) != "BOT") do
{
// add player to lvl_db minus one level for punishment
es_xsetinfo p_lvl 0
es es_xkeygetvalue p_lvl gg_players event_var(es_steamid) level
es_xmath p_lvl - 1
if (server_var(p_lvl) < 2) do
{
es_xsetinfo p_lvl 1
}
es es_xkeycreate lvl_db event_var(es_steamid)
es es_xkeysetvalue lvl_db event_var(es_steamid) level server_var(p_lvl)
// Delete player from afk_db
es es_xkeydelete afk_db event_var(userid)
// Delete player from gg_players
es es_xkeydelete gg_players event_var(es_steamid)
}
}
event bomb_defused
{
if (server_var(bomb_defuse_lvl) == 1) do
{
if (event_var(es_steamid) != "BOT") do
{
es_xsetinfo p_lvl 0
es es_xkeygetvalue p_lvl gg_players event_var(es_steamid) level
es_xsetinfo p_wpn 0
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
if (server_var(p_wpn) != "hegrenade") do
{
if (server_var(p_wpn) != "knife") do
{
if (server_var(p_lvl) != server_var(gg_levels)) do
{
es_xmath p_lvl + 1
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(p_lvl)
es es_xmsg #green event_var(es_username) gained a level for defusing
es es_xcexec event_var(userid) play server_var(gg_sound_levelup)
// Reset kill totals
es es_xkeysetvalue gg_players event_var(es_steamid) kills 0
// Log level up for hlstats users
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_userteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_userteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_username) event_var(userid) event_var(es_steamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_levelup
es_xcopy eventscripts_escapechars oldescape
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by defusing!
}
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by defusing!
}
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by defusing!
}
}
}
}
event bomb_exploded
{
if (server_var(bomb_defuse_lvl) == 1) do
{
if (event_var(es_steamid) != "BOT") do
{
es_xsetinfo p_lvl 0
es es_xkeygetvalue p_lvl gg_players event_var(es_steamid) level
es_xsetinfo p_wpn 0
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
if (server_var(p_wpn) != "hegrenade") do
{
if (server_var(p_wpn) != "knife") do
{
if (server_var(p_lvl) != server_var(gg_levels)) do
{
es_xmath p_lvl + 1
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(p_lvl)
es es_xmsg #green event_var(es_username) gained a level for planting the bomb
es es_xcexec event_var(user) play server_var(gg_sound_levelup)
// Reset kill totals
es es_xkeysetvalue gg_players event_var(es_steamid) kills 0
// Log level up for hlstats users
es_xsetinfo _tmp 0
es_xsetinfo _tmp2 0
es_xsetinfo oldescape 0
es_xcopy oldescape eventscripts_escapechars
if (event_var(es_userteam) == 2) then es_xsetinfo _tmp "TERRORIST"
if (event_var(es_userteam) == 3) then es_xsetinfo _tmp "CT"
es es_xformat _tmp2 "%1<%2><%3><%4>" event_var(es_username) event_var(userid) event_var(es_steamid) server_var(_tmp)
es_xsetinfo eventscripts_escapechars "; {}()':l"
es es_xlogq server_var(_tmp2) triggered gg_levelup
es_xcopy eventscripts_escapechars oldescape
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by planting the bomb!
}
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by planting the bomb!
}
}
else do
{
es es_xtell event_var(userid) #green You cannot skip level server_var(p_lvl) by planting the bomb!
}
}
}
}
event round_start
{
// End suicide protection given at round_end
es_xsetinfo suicide_protect 0
// Get mp_friendlyfire settings
es_xsetinfo ldr_weapon 0
es es_xkeygetvalue ldr_weapon gg_weapons server_var(ldr_level) weapon
if (server_var(ldr_weapon) == "hegrenade") do
{
es es_xcexec_all play server_var(gg_sound_nade)
if (server_var(gg_ff_auto) == 1) do
{
if (server_var(mp_friendlyfire) == 0) do
{
mp_friendlyfire 1
es_xmsg #green Friendly Fire is ON!!! Watch your fire!
}
}
}
if (server_var(ldr_weapon) == "knife") do
{
es es_xcexec_all play server_var(gg_sound_knife)
}
// Give taken c4 back to Terrorist
es es_xdelayed 2 es_xgive server_var(bomber) weapon_c4
// Reset triple level counts
if (server_var(gg_triple_on) == 1) do
{
alias gg_reset_triple "es es_xkeysetvalue gg_players server_var(tmp) triple 0"
es_xforeachkey tmp in gg_players gg_reset_triple
}
// Give awpers 1 bullet in the clip
//es_xdelayed 1 es_xcreateentitylist all_awps weapon_awp
//es_xdelayed 2 es_xdoblock gungame3/gg_awp
// Set bot max level
es_xcopy bot_max_lvl ldr_level
}
event round_end
{
// Give suicide protection for team changes at round end
es_xsetinfo suicide_protect 1
// Get leader information
alias gg_chk_ldr "es es_xkeygetvalue ldr_a gg_players server_var(p_id) level; if (server_var(ldr_a) > server_var(ldr_level)) then es_xkeygetvalue ldr_name gg_players server_var(p_id) name; if (server_var(ldr_a) > server_var(ldr_level)) then es_xsetinfo ldr_level server_var(ldr_a)"
es_xsetinfo ldr_a 0
es_xsetinfo ldr_level 0
es_xsetinfo ldr_name "none"
es_xdelayed 1 es_xforeachkey p_id in gg_players gg_chk_ldr
// Reset bomber
foreach player bomb_userid #all "es es_xfire server_var(bomb_userid) weapon_c4 kill"
es_xsetinfo bomber 0
// Reset round levelup
es_xforeachkey _player in gg_players "es es_xkeysetvalue gg_players server_var(_player) levelup 0"
// New bot code
if (server_var(bot_max_lvl) > 3) do
{
es_xcopy bot_min_lvl bot_max_lvl
es_xmath bot_min_lvl - 3
}
else do
{
es_xsetinfo bot_min_lvl 1
}
}
event item_pickup
{
if (server_var(suicide_protect) == 1) do
{
if (event_var(item) == "c4") do
{
es es_xfire event_var(userid) weapon_c4 kill
}
}
if (server_var(gg_dm_script) == 1) do
{
if (event_var(item) == "c4") do
{
es es_xfire event_var(userid) weapon_c4 kill
}
}
if (server_var(gg_knife_elite) == 1) do
{
es_xsetinfo p_item 0
es_xsetinfo p_levelup 0
es es_xkeygetvalue p_levelup gg_players event_var(es_steamid) levelup
if (server_var(p_levelup) == 1) do
{
if (event_var(item) != "knife") do
{
if (event_var(item) != "c4") do
{
es es_xgive event_var(userid) player_weaponstrip
es es_xfire event_var(userid) player_weaponstrip Strip 1
es es_xdelayed .3 es_xgive event_var(userid) weapon_knife
es es_xif (server_var(bomber) = event_var(userid)) then es_xdelayed .5 es_xgive event_var(userid) weapon_c4
}
}
}
}
}
event weapon_fire
{
// Change player's location in afk_db to avoid exploit
if (event_var(es_steamid) != "BOT") do
{
es es_xkeysetvalue afk_db event_var(userid) x 1
es es_xkeysetvalue afk_db event_var(userid) y 1
}
}
block gg_winner
{
es_xsetinfo t_wins 0
// Open gg_winners db
if (server_var(win_db_open) == 0) do
{
es_xexists gg_exists keygroup gg_winners
if (server_var(gg_exists) == 1) then es_xkeygroupdelete gg_winners
es_xkeygroupcreate gg_winners
es es_xkeygroupload gg_winners server_var(gg_dir)
es_xsetinfo win_db_open 1
}
es_xmath gg_read_write + 1
// Save player win total
es es_xkeygetvalue t_wins gg_winners event_var(es_attackersteamid) wins
if (server_var(t_wins) == 0) do
{
es es_xkeycreate gg_winners event_var(es_attackersteamid)
}
es_xmath t_wins + 1
es es_xkeysetvalue gg_winners event_var(es_attackersteamid) name event_var(es_attackername)
es es_xkeysetvalue gg_winners event_var(es_attackersteamid) wins server_var(t_wins)
es es_xkeysetvalue gg_players event_var(es_attackersteamid) wins server_var(t_wins)
// Save and close gg_winners
es_xmath gg_read_write - 1
if (server_var(gg_read_write) == 0) do
{
if (server_var(win_db_open) == 1) do
{
es es_xkeygroupsave gg_winners server_var(gg_dir)
es_xkeygroupdelete gg_winners
es_xsetinfo win_db_open 0
}
}
// Update top10 db
es_xsetinfo top10_list 0
es_xkeygetvalue top10_list gg_top10 10 wins
if (server_var(t_wins) >= server_var(top10_list)) then es_xdoblock gungame3/gg_execute_top10
}
block winner_reset
{
alias gg_winner_reset "es es_xkeysetvalue gg_players server_var(test) level 1"
es_xforeachkey test in gg_players gg_winner_reset
es_xsetinfo bot_min_lvl 1
es_xsetinfo bot_max_lvl 1
es_xsetinfo ldr_level 1
es_xsetinfo gg_one_winner 0
}
block gg_handicap
{
// Execute averaging code
es_xsetinfo tmp_total 0.0
es_xsetinfo tmp_count 0
es_xsetinfo tmp_stor 0
alias get_totals "es es_xkeygetvalue tmp_stor gg_players server_var(avg_key) level; es es_xmath tmp_total + server_var(tmp_stor); es_xmath tmp_count + 1"
es_xforeachkey avg_key in gg_players get_totals
es es_xmath tmp_total / server_var(tmp_count)
es es_xtoken tmp_total server_var(tmp_total) 1 .
if (server_var(tmp_total) > 1) do
{
if (server_var(gg_top10_handicap) == 1) do
{
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(tmp_total)
}
else do
{
es_xsetinfo p_1337 0
es_xsetinfo tmp_1337 0
alias get_1337_steam "es es_xkeygetvalue tmp_1337 gg_top10 server_var(plyr_1337) steam; if (event_var(es_steamid) == server_var(tmp_1337)) then es_xsetinfo p_1337 1"
es_xforeachkey plyr_1337 in gg_top10 get_1337_steam
if (server_var(p_1337) == 0) do
{
es es_xkeysetvalue gg_players event_var(es_steamid) level server_var(tmp_total)
}
}
}
}
block gg_handicap_in_progress
{
// Execute averaging code
es_xsetinfo tmp_total 0.0
es_xsetinfo tmp_count 0
es_xsetinfo tmp_stor 0
alias get_totals_np "es es_xkeygetvalue tmp_stor gg_players server_var(avg_key) level; es es_xmath tmp_total + server_var(tmp_stor); es_xmath tmp_count + 1"
es_xforeachkey avg_key in gg_players get_totals_np
es es_xmath tmp_total / server_var(tmp_count)
es es_xtoken tmp_total server_var(tmp_total) 1 .
if (server_var(tmp_total) > 1) do
{
if (server_var(gg_top10_handicap) == 1) do
{
es es_xkeysetvalue gg_players server_var(gg_tmp_s) level server_var(tmp_total)
}
else do
{
es_xsetinfo p_1337 0
es_xsetinfo tmp_1337 0
alias get_1337_steam_np "es es_xkeygetvalue tmp_1337 gg_top10 server_var(plyr_1337) steam; if (server_var(gg_tmp_s) == server_var(tmp_1337)) then es_xsetinfo p_1337 1"
es_xforeachkey plyr_1337 in gg_top10 get_1337_steam_np
if (server_var(p_1337) == 0) do
{
es es_xkeysetvalue gg_players server_var(gg_tmp_s) level server_var(tmp_total)
}
}
}
}
block bot_spawn
{
// Randomize bot levels
es_xsetinfo bot_lvl 0
if (server_var(ldr_level) == 0) then es_xsetinfo ldr_level 1
es es_xrand bot_lvl server_var(bot_min_lvl) server_var(ldr_level)
// Get bot's weapon from db
es_xsetinfo bot_wpn 0
es es_xkeygetvalue bot_wpn gg_weapons server_var(bot_lvl) weapon
es es_xformat bot_wpn "weapon_%1" server_var(bot_wpn)
es es_xdelayed 1 es_xgive event_var(userid) weapon_knife
es es_xgive event_var(userid) item_assaultsuit
es es_xdelayed 1 es_xgive event_var(userid) server_var(bot_wpn)
if (server_var(bot_wpn) == "weapon_hegrenade") do
{
if (server_var(gg_nade_glock) == 1) do
{
es es_xdelayed 2 es_xgive event_var(userid) weapon_glock
es es_xdelayed 2 es_xsetplayerprop event_var(userid) CCSPlayer.baseclass.localdata.m_iAmmo.006 50
}
if (server_var(gg_nade_flash) == 1) do
{
es es_xdelayed 2 es_xgive event_var(userid) weapon_flashbang
}
if (server_var(gg_nade_smoke) == 1) do
{
es es_xdelayed 2 es_xgive event_var(userid) weapon_smokegrenade
}
}
// Experimental bot ammo
//es_xsetinfo gg_ammoname 0
//es_xsetinfo gg_ammonum 0
//es_keygetvalue gg_ammoname gg_ammo_props server_var(bot_wpn)
//es_keygetvalue gg_ammonum gg_ammo_count server_var(bot_wpn)
//es_delayed 2 es_botsetvalue event_var(userid) server_var(gg_ammoname) server_var(gg_ammonum)
// Give each CT a defuse kit
if (server_var(gg_dm_script) != 1) do
{
if (event_var(es_userteam) == 3) do
{
es es_xdelayed 2 es_xgive event_var(userid) item_defuser
}
}
}
block gg_execute_top10
{
es_xsetinfo reserve_name 0
es_xsetinfo reserve_steam 0
es_xsetinfo reserve_wins 0
es_xsetinfo top1_steam 0
es_xsetinfo top2_steam 0
es_xsetinfo top3_steam 0
es_xsetinfo top4_steam 0
es_xsetinfo top5_steam 0
es_xsetinfo top6_steam 0
es_xsetinfo top7_steam 0
es_xsetinfo top8_steam 0
es_xsetinfo top9_steam 0
es_xsetinfo top10_steam 0
es_xsetinfo top1_wins 0
es_xsetinfo top2_wins 0
es_xsetinfo top3_wins 0
es_xsetinfo top4_wins 0
es_xsetinfo top5_wins 0
es_xsetinfo top6_wins 0
es_xsetinfo top7_wins 0
es_xsetinfo top8_wins 0
es_xsetinfo top9_wins 0
es_xsetinfo top10_wins 0
es_xkeygetvalue top1_steam gg_top10 1 steam
es_xkeygetvalue top2_steam gg_top10 2 steam
es_xkeygetvalue top3_steam gg_top10 3 steam
es_xkeygetvalue top4_steam gg_top10 4 steam
es_xkeygetvalue top5_steam gg_top10 5 steam
es_xkeygetvalue top6_steam gg_top10 6 steam
es_xkeygetvalue top7_steam gg_top10 7 steam
es_xkeygetvalue top8_steam gg_top10 8 steam
es_xkeygetvalue top9_steam gg_top10 9 steam
es_xkeygetvalue top10_steam gg_top10 10 steam
es_xkeygetvalue top1_wins gg_top10 1 wins
es_xkeygetvalue top2_wins gg_top10 2 wins
es_xkeygetvalue top3_wins gg_top10 3 wins
es_xkeygetvalue top4_wins gg_top10 4 wins
es_xkeygetvalue top5_wins gg_top10 5 wins
es_xkeygetvalue top6_wins gg_top10 6 wins
es_xkeygetvalue top7_wins gg_top10 7 wins
es_xkeygetvalue top8_wins gg_top10 8 wins
es_xkeygetvalue top9_wins gg_top10 9 wins
es_xkeygetvalue top10_wins gg_top10 10 wins
// Winner name is server_var(winner_name)
// Winner steamid is server_var(winner_steam)
// Winner win amount is server_var(t_wins)
alias move_top1 "es_xkeygetvalue reserve_name gg_top10 1 name; es_xkeygetvalue reserve_steam gg_top10 1 steam; es_xkeygetvalue reserve_wins gg_top10 1 wins; es es_xkeysetvalue gg_top10 2 name server_var(reserve_name); es es_xkeysetvalue gg_top10 2 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 2 wins server_var(reserve_wins); write_top1"
alias move_top2 "es_xkeygetvalue reserve_name gg_top10 2 name; es_xkeygetvalue reserve_steam gg_top10 2 steam; es_xkeygetvalue reserve_wins gg_top10 2 wins; es es_xkeysetvalue gg_top10 3 name server_var(reserve_name); es es_xkeysetvalue gg_top10 3 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 3 wins server_var(reserve_wins); overwrite2"
alias move_top3 "es_xkeygetvalue reserve_name gg_top10 3 name; es_xkeygetvalue reserve_steam gg_top10 3 steam; es_xkeygetvalue reserve_wins gg_top10 3 wins; es es_xkeysetvalue gg_top10 4 name server_var(reserve_name); es es_xkeysetvalue gg_top10 4 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 4 wins server_var(reserve_wins); overwrite3"
alias move_top4 "es_xkeygetvalue reserve_name gg_top10 4 name; es_xkeygetvalue reserve_steam gg_top10 4 steam; es_xkeygetvalue reserve_wins gg_top10 4 wins; es es_xkeysetvalue gg_top10 5 name server_var(reserve_name); es es_xkeysetvalue gg_top10 5 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 5 wins server_var(reserve_wins); overwrite4"
alias move_top5 "es_xkeygetvalue reserve_name gg_top10 5 name; es_xkeygetvalue reserve_steam gg_top10 5 steam; es_xkeygetvalue reserve_wins gg_top10 5 wins; es es_xkeysetvalue gg_top10 6 name server_var(reserve_name); es es_xkeysetvalue gg_top10 6 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 6 wins server_var(reserve_wins); overwrite5"
alias move_top6 "es_xkeygetvalue reserve_name gg_top10 6 name; es_xkeygetvalue reserve_steam gg_top10 6 steam; es_xkeygetvalue reserve_wins gg_top10 6 wins; es es_xkeysetvalue gg_top10 7 name server_var(reserve_name); es es_xkeysetvalue gg_top10 7 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 7 wins server_var(reserve_wins); overwrite6"
alias move_top7 "es_xkeygetvalue reserve_name gg_top10 7 name; es_xkeygetvalue reserve_steam gg_top10 7 steam; es_xkeygetvalue reserve_wins gg_top10 7 wins; es es_xkeysetvalue gg_top10 8 name server_var(reserve_name); es es_xkeysetvalue gg_top10 8 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 8 wins server_var(reserve_wins); overwrite7"
alias move_top8 "es_xkeygetvalue reserve_name gg_top10 8 name; es_xkeygetvalue reserve_steam gg_top10 8 steam; es_xkeygetvalue reserve_wins gg_top10 8 wins; es es_xkeysetvalue gg_top10 9 name server_var(reserve_name); es es_xkeysetvalue gg_top10 9 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 9 wins server_var(reserve_wins); overwrite8"
alias move_top9 "es_xkeygetvalue reserve_name gg_top10 9 name; es_xkeygetvalue reserve_steam gg_top10 9 steam; es_xkeygetvalue reserve_wins gg_top10 9 wins; es es_xkeysetvalue gg_top10 10 name server_var(reserve_name); es es_xkeysetvalue gg_top10 10 steam server_var(reserve_steam); es es_xkeysetvalue gg_top10 10 wins server_var(reserve_wins); overwrite9"
alias overwrite2 "es es_xkeysetvalue gg_top10 2 name server_var(winner_name); es es_xkeysetvalue gg_top10 2 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 2 wins server_var(t_wins)"
alias overwrite3 "es es_xkeysetvalue gg_top10 3 name server_var(winner_name); es es_xkeysetvalue gg_top10 3 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 3 wins server_var(t_wins)"
alias overwrite4 "es es_xkeysetvalue gg_top10 4 name server_var(winner_name); es es_xkeysetvalue gg_top10 4 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 4 wins server_var(t_wins)"
alias overwrite5 "es es_xkeysetvalue gg_top10 5 name server_var(winner_name); es es_xkeysetvalue gg_top10 5 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 5 wins server_var(t_wins)"
alias overwrite6 "es es_xkeysetvalue gg_top10 6 name server_var(winner_name); es es_xkeysetvalue gg_top10 6 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 6 wins server_var(t_wins)"
alias overwrite7 "es es_xkeysetvalue gg_top10 7 name server_var(winner_name); es es_xkeysetvalue gg_top10 7 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 7 wins server_var(t_wins)"
alias overwrite8 "es es_xkeysetvalue gg_top10 8 name server_var(winner_name); es es_xkeysetvalue gg_top10 8 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 8 wins server_var(t_wins)"
alias overwrite9 "es es_xkeysetvalue gg_top10 9 name server_var(winner_name); es es_xkeysetvalue gg_top10 9 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 9 wins server_var(t_wins)"
alias overwrite10 "es es_xkeysetvalue gg_top10 10 name server_var(winner_name); es es_xkeysetvalue gg_top10 10 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 10 wins server_var(t_wins)"
alias write_top1 "es es_xkeysetvalue gg_top10 1 name server_var(winner_name); es es_xkeysetvalue gg_top10 1 steam server_var(winner_steam); es es_xkeysetvalue gg_top10 1 wins server_var(t_wins)"
alias write_top2 "if (server_var(t_wins) > server_var(top1_wins)) then move_top1; if (server_var(t_wins) <= server_var(top1_wins)) then overwrite2"
alias write_top3 "if (server_var(t_wins) > server_var(top2_wins)) then move_top2; if (server_var(t_wins) <= server_var(top2_wins)) then overwrite3"
alias write_top4 "if (server_var(t_wins) > server_var(top3_wins)) then move_top3; if (server_var(t_wins) <= server_var(top3_wins)) then overwrite4"
alias write_top5 "if (server_var(t_wins) > server_var(top4_wins)) then move_top4; if (server_var(t_wins) <= server_var(top4_wins)) then overwrite5"
alias write_top6 "if (server_var(t_wins) > server_var(top5_wins)) then move_top5; if (server_var(t_wins) <= server_var(top5_wins)) then overwrite6"
alias write_top7 "if (server_var(t_wins) > server_var(top6_wins)) then move_top6; if (server_var(t_wins) <= server_var(top6_wins)) then overwrite7"
alias write_top8 "if (server_var(t_wins) > server_var(top7_wins)) then move_top7; if (server_var(t_wins) <= server_var(top7_wins)) then overwrite8"
alias write_top9 "if (server_var(t_wins) > server_var(top8_wins)) then move_top8; if (server_var(t_wins) <= server_var(top8_wins)) then overwrite9"
alias write_top10 "if (server_var(t_wins) > server_var(top9_wins)) then move_top9; if (server_var(t_wins) <= server_var(top9_wins)) then overwrite10"
if (server_var(top1_steam) == 0) do
{
write_top1
}
else do
{
if (server_var(winner_steam) == server_var(top1_steam)) do
{
write_top1
}
else do
{
if (server_var(winner_steam) == server_var(top2_steam)) do
{
write_top2
}
else do
{
if (server_var(winner_steam) == server_var(top3_steam)) do
{
write_top3
}
else do
{
if (server_var(winner_steam) == server_var(top4_steam)) do
{
write_top4
}
else do
{
if (server_var(winner_steam) == server_var(top5_steam)) do
{
write_top5
}
else do
{
if (server_var(winner_steam) == server_var(top6_steam)) do
{
write_top6
}
else do
{
if (server_var(winner_steam) == server_var(top7_steam)) do
{
write_top7
}
else do
{
if (server_var(winner_steam) == server_var(top8_steam)) do
{
write_top8
}
else do
{
if (server_var(winner_steam) == server_var(top9_steam)) do
{
write_top9
}
else do
{
write_top10
}
}
}
}
}
}
}
}
}
}
// Move players in top10 based on win amount
es_xkeygetvalue top9_wins gg_top10 9 wins
es_xkeygetvalue top10_wins gg_top10 10 wins
if (server_var(top10_wins) > server_var(top9_wins)) do
{
es_xkeygetvalue winner_name gg_top10 10 name
es_xkeygetvalue winner_steam gg_top10 10 steam
es_xkeygetvalue t_wins gg_top10 10 wins
move_top9
}
es_xkeygetvalue top8_wins gg_top10 8 wins
es_xkeygetvalue top9_wins gg_top10 9 wins
if (server_var(top9_wins) > server_var(top8_wins)) do
{
es_xkeygetvalue winner_name gg_top10 9 name
es_xkeygetvalue winner_steam gg_top10 9 steam
es_xkeygetvalue t_wins gg_top10 9 wins
move_top8
}
es_xkeygetvalue top7_wins gg_top10 7 wins
es_xkeygetvalue top8_wins gg_top10 8 wins
if (server_var(top8_wins) > server_var(top7_wins)) do
{
es_xkeygetvalue winner_name gg_top10 8 name
es_xkeygetvalue winner_steam gg_top10 8 steam
es_xkeygetvalue t_wins gg_top10 8 wins
move_top7
}
es_xkeygetvalue top6_wins gg_top10 6 wins
es_xkeygetvalue top7_wins gg_top10 7 wins
if (server_var(top7_wins) > server_var(top6_wins)) do
{
es_xkeygetvalue winner_name gg_top10 7 name
es_xkeygetvalue winner_steam gg_top10 7 steam
es_xkeygetvalue t_wins gg_top10 7 wins
move_top6
}
es_xkeygetvalue top5_wins gg_top10 5 wins
es_xkeygetvalue top6_wins gg_top10 6 wins
if (server_var(top6_wins) > server_var(top5_wins)) do
{
es_xkeygetvalue winner_name gg_top10 6 name
es_xkeygetvalue winner_steam gg_top10 6 steam
es_xkeygetvalue t_wins gg_top10 6 wins
move_top5
}
es_xkeygetvalue top4_wins gg_top10 4 wins
es_xkeygetvalue top5_wins gg_top10 5 wins
if (server_var(top5_wins) > server_var(top4_wins)) do
{
es_xkeygetvalue winner_name gg_top10 5 name
es_xkeygetvalue winner_steam gg_top10 5 steam
es_xkeygetvalue t_wins gg_top10 5 wins
move_top4
}
es_xkeygetvalue top3_wins gg_top10 3 wins
es_xkeygetvalue top4_wins gg_top10 4 wins
if (server_var(top4_wins) > server_var(top3_wins)) do
{
es_xkeygetvalue winner_name gg_top10 4 name
es_xkeygetvalue winner_steam gg_top10 4 steam
es_xkeygetvalue t_wins gg_top10 4 wins
move_top3
}
es_xkeygetvalue top2_wins gg_top10 2 wins
es_xkeygetvalue top3_wins gg_top10 3 wins
if (server_var(top3_wins) > server_var(top2_wins)) do
{
es_xkeygetvalue winner_name gg_top10 3 name
es_xkeygetvalue winner_steam gg_top10 3 steam
es_xkeygetvalue t_wins gg_top10 3 wins
move_top2
}
es_xkeygetvalue top1_wins gg_top10 1 wins
es_xkeygetvalue top2_wins gg_top10 2 wins
if (server_var(top2_wins) > server_var(top1_wins)) do
{
es_xkeygetvalue winner_name gg_top10 2 name
es_xkeygetvalue winner_steam gg_top10 2 steam
es_xkeygetvalue t_wins gg_top10 2 wins
move_top1
}
es es_xkeygroupsave gg_top10 server_var(gg_dir)
}
block gg_display_rules
{
es es_xcexec event_var(userid) echo -----------------------------
es es_xcexec event_var(userid) echo -----------------------------
es es_xcexec event_var(userid) echo **** Gun Game Rules: ****
es es_xcexec event_var(userid) echo 1) You must get a kill with your current weapon to level up.
es es_xcexec event_var(userid) echo 2) If you get a kill with a weapon out of order, it does not count and you remain on your current level.
es es_xcexec event_var(userid) echo 3) You can gain levels by PLANTING and DEFUSING.
es es_xcexec event_var(userid) echo 4) If you commit suicide, you will lose a level.
es es_xcexec event_var(userid) echo 5) Friendly Fire is turned ON when someone reaches GRENADE level.
es es_xcexec event_var(userid) echo 6) You CAN gain more than one level per round.
es es_xcexec event_var(userid) echo 7) There is a grace period at the end of each round to allow players to switch teams.
es es_xcexec event_var(userid) echo 8) If Knife Pro is ENABLED, you can steal a level from an opponent by knifing them.
es es_xcexec event_var(userid) echo 9) If GG Turbo is ENABLED, you will receive your next weapon immediately when you level up.
es es_xcexec event_var(userid) echo 10) If you start with no weapon, just say !start and it will reset your score and give you a glock.
es es_xcexec event_var(userid) echo ****************************************************************
es es_xcexec event_var(userid) echo Say !level to see your current level and who is winning.
es es_xcexec event_var(userid) echo Say !weapons to see the weapon order.
es es_xcexec event_var(userid) echo Say !score to see all player current scores.
es es_xcexec event_var(userid) echo Say !top10 to see the top 10 winners on the server.
es es_xcexec event_var(userid) echo Say !start to reset you to level 1.
es es_xcexec event_var(userid) echo Say !give if you do not receive your weapon.
es es_xcexec event_var(userid) echo -----------------------------
es es_xcexec event_var(userid) echo -----------------------------
es es_xmenu 0 event_var(userid) "GunGame rules and chat commands are\nlisted in your game console.\n \nGunGame Chat Commands:\n--------------------------------\n->1. !top10\n - to see the top 10 players on this server\n->2. !level\n - to see your current level and who is winning\n->3. !weapons\n - to see the weapon order\n->4. !score\n - to see player scores\n--------------------------------\n \n->0. Exit"
}
block gg_display_level
{
es es_xkeygetvalue p_lvl gg_players event_var(es_steamid) level
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
es es_xkeygetvalue p_wins gg_players event_var(es_steamid) wins
es es_xkeygetvalue p_kills gg_players event_var(es_steamid) kills
es es_xsetinfo p_lvlsbehind server_var(ldr_level)
es es_xmath p_lvlsbehind - server_var(p_lvl)
if (server_var(ldr_level) != 0) do
{
es es_xif (server_var(p_lvlsbehind) = 0) do
{
es es_xif (server_var(ldr_name) = event_var(es_username)) do
{
es_xformat tmp_leadermsg "You are currently the leader"
}
else do
{
es es_xif (server_var(ldr_name) != none) do
{
es_xformat tmp_leadermsg "You are currently tied with the leader"
}
else do
{
es_xformat tmp_leadermsg "There currently is no leader"
}
}
}
else do
{
es es_xif (server_var(p_lvlsbehind) = 1) do
{
es_xformat tmp_leadermsg "You are 1 level behind the leader"
}
else do
{
es es_xformat tmp_leadermsg "You are %1 levels behind the leader" server_var(p_lvlsbehind)
}
}
}
else do
{
es_xformat tmp_leadermsg "There currently is no leader"
}
es es_xif (server_var(gg_multikill) > 0) do
{
es es_xif (server_var(p_wpn) != "hegrenade") do
{
es es_xif (server_var(p_wpn) != "knife") do
{
es es_xformat tmp_menumsg "GunGame Level Information:\n \n->1. LEVEL\n---------------------------------\nYou are on level %1 (%2)\nYou have made %3/%4 of your required kills\n%5\n \n->2. WINS\n---------------------------------\nYou have won %6 times\n \n->3. LEADER\n---------------------------------\nCurrent leader:" server_var(p_lvl) server_var(p_wpn) server_var(p_kills) server_var(gg_multikill) server_var(tmp_leadermsg) server_var(p_wins)
}
}
}
else do
{
es es_xformat tmp_menumsg "GunGame Level Information:\n \n->1. LEVEL\n---------------------------------\nYou are on level %1\nYou need a %2 kill to advance\n%3\n \n->2. WINS\n---------------------------------\nYou have won %4 times\n \n->3. LEADER\n---------------------------------\nCurrent leader:" server_var(p_lvl) server_var(p_wpn) server_var(tmp_leadermsg) server_var(p_wins)
}
es es_xif (server_var(ldr_level) > 0) do
{
es es_xformat tmp_menumsg "%1 %2\nLeader Level: %3" server_var(tmp_menumsg) server_var(ldr_name) server_var(ldr_level)
}
else do
{
es es_xformat tmp_menumsg "%1 Calculating..." server_var(tmp_menumsg)
}
es es_xmenu 5 event_var(userid) server_var(tmp_menumsg)
}
block unload
{
// Delete all open databases
es_xkeygroupdelete gg_players
es_xkeygroupdelete gg_winners
es_xkeygroupdelete gg_top10
es_xkeygroupdelete gg_weapons
es_xkeygroupdelete lvl_db
es_xkeygroupdelete afk_db
// Delete popup menus
es_xsetinfo tmp_looper 1
es_xdoblock gungame3/unsendScorePage
es_xsetinfo tmp_weplooper 1
es_xdoblock gungame3/unsendWeaponPage
es_xsetinfo tmp_top10_looper 1
es_xdoblock gungame3/unsendTop10Page
// Unload subscripts
if (server_var(gg_dm_script) == 1) then es_unload gungame3/gg_css_dm
}
block gg_reset_scores
{
// Delete all open databases
es_xkeygroupdelete gg_players
es_xkeygroupdelete gg_winners
es_xkeygroupdelete gg_top10
es_xkeygroupdelete lvl_db
es_xkeygroupdelete afk_db
// Create empty database
es_xkeygroupcreate gg_winners
es es_xkeygroupsave gg_winners server_var(gg_dir)
es_xkeygroupcreate gg_top10
es_xsetinfo top10_counter 1
es_xdoblock gungame3/create_top10
// Restart the map
es es_xdelayed 7 changelevel server_var(eventscripts_currentmap)
es_xmsg #green Gun Game scores have been reset!
es_xmsg #green Game will restart in 7 seconds...
}
event es_client_command
{
if (event_var(command) == "!rules") then es_xdoblock gungame3/gg_display_rules
//if (event_var(command) == "!weapons") then es_xdoblock gungame3/gg_display_weapons
if (event_var(command) == "!weapons") do
{
es popup send WeaponPage1 event_var(userid)
}
if (event_var(command) == "!top5") do
{
es es_xtell event_var(userid) #multi Top5 has been upgraded to Top10. Try #green!top10#default instead.
}
if (event_var(command) == "!top10") do
{
es popup send Top10Page1 event_var(userid)
}
//if (event_var(command) == "!score") then es_xdoblock gungame3/gg_display_score
if (event_var(command) == "!score") then es popup send ScorePage1 event_var(userid)
if (event_var(command) == "!level") then es_xdoblock gungame3/gg_display_level
if (event_var(command) == "!give") do
{
if (server_var(gg_warmup_timer) < 2) do
{
es_xsetinfo tmp_m 0
es es_xgetplayerteam tmp_m event_var(userid)
if (server_var(tmp_m) > 1) do
{
es es_xgetplayerprop tmp_m event_var(userid) "CCSPlayer.baseclass.pl.deadflag"
if (server_var(tmp_m) == 0) do
{
es_xsetinfo gg_give_var 0
es es_xgetplayersteamid tmp_m event_var(userid)
es es_xkeygetvalue gg_give_var gg_players server_var(tmp_m) give
if (server_var(gg_give_var) == "0") do
{
es_xdoblock gungame3/give_player_weapon
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
if (event_var(command) == "!start") do
{
es_xsetinfo tmp_s 0
es es_xkeygetvalue tmp_s gg_players event_var(es_steamid) start
if (server_var(tmp_s) != 1) do
{
if (server_var(gg_warmup_timer) < 2) do
{
es_xsetinfo tmp_m 0
es es_xgetplayerteam tmp_m event_var(userid)
if (server_var(tmp_m) > 1) do
{
es es_xgetplayerprop tmp_m event_var(userid) "CCSPlayer.baseclass.pl.deadflag"
if (server_var(tmp_m) == 0) do
{
es es_xgetplayersteamid tmp_m event_var(userid)
es es_xkeysetvalue gg_players server_var(tmp_m) level 1
es_xdoblock gungame3/give_player_weapon
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
}
else do
{
es es_xtell event_var(userid) You cannot use this command now!
}
// Set !start var
es es_xkeysetvalue gg_players event_var(es_attackersteamid) start 1
}
}
if (event_var(command) == "!ggstartround") do
{
es_xsetinfo activeweapon 0
es es_xgetplayerprop activeweapon event_var(userid) "CCSPlayer.baseclass.baseclass.m_hActiveWeapon"
if (server_var(activeweapon) == "-1") do
{
es_xdoblock gungame3/main_reset_player
}
}
}
block give_player_weapon
{
// Level variables
es_xsetinfo p_lvl 0
es_xsetinfo p_wpn 0
es_xsetinfo p_kills 0
// Get player's level and weapon from db
es es_xkeygetvalue p_lvl gg_players event_var(es_steamid) level
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
es es_xkeygetvalue p_kills gg_players event_var(es_steamid) kills
if (server_var(p_lvl) == 0) do
{
es es_xkeygetvalue p_lvl gg_players server_var(tmp_m) level
}
// Round start message
es es_xtell event_var(userid) #multi #lightgreen[#greenGunGame#lightgreen] You are on level#green server_var(p_lvl) #lightgreen :: #default server_var(p_wpn)
if (server_var(gg_multikill) > 0) do
{
if (server_var(p_wpn) != "hegrenade") do
{
if (server_var(p_wpn) != "knife") do
{
es es_xtell event_var(userid) #multi #lightgreen[#greenGunGame#lightgreen] You need #green server_var(gg_multikill)#lightgreen kills to advance. #green Score: #lightgreen server_var(p_kills) / server_var(gg_multikill)
}
}
}
// Equip player
es es_xformat p_wpn "weapon_%1" server_var(p_wpn)
es es_xgive event_var(userid) server_var(p_wpn)
es es_xgive event_var(userid) item_assaultsuit
if (server_var(p_wpn) != "weapon_knife") then es_xgive event_var(userid) weapon_knife
if (server_var(p_wpn) == "weapon_hegrenade") do
{
if (server_var(gg_nade_glock) == 1) do
{
es es_xgive event_var(userid) weapon_glock
es es_xsetplayerprop event_var(userid) CCSPlayer.baseclass.localdata.m_iAmmo.006 50
}
if (server_var(gg_nade_flash) == 1) do
{
es es_xgive event_var(userid) weapon_flashbang
}
if (server_var(gg_nade_smoke) == 1) do
{
es es_xgive event_var(userid) weapon_smokegrenade
}
}
// Give each CT a defuse kit
if (server_var(gg_dm_script) != 1) do
{
if (event_var(es_userteam) == 3) do
{
es es_xsetplayerprop event_var(userid) CCSPlayer.m_bHasDefuser 1
}
}
es_xsetinfo gg_ammoname 0
es_xsetinfo gg_ammonum 0
// give them the right ammo for their gun
es es_xkeygetvalue gg_ammoname gg_ammo_props server_var(p_wpn)
es es_xkeygetvalue gg_ammonum gg_ammo_count server_var(p_wpn)
es es_xsetplayerprop event_var(userid) server_var(gg_ammoname) server_var(gg_ammonum)
}
block give_warmup_knife
{
// Round start message
es es_xtell event_var(userid) #multi #lightgreen[#greenGunGame#lightgreen] Warmup round -- KNIVES ONLY
if (event_var(es_steamid) == "BOT") do
{
es es_xdelayed 1 es_xgive event_var(userid) item_assaultsuit
es es_xdelayed 1 es_xgive event_var(userid) weapon_knife
}
else do
{
es es_xgive event_var(userid) item_assaultsuit
es es_xgive event_var(userid) weapon_knife
}
// Give each CT a defuse kit
if (server_var(gg_dm_script) != 1) do
{
if (event_var(es_userteam) == 3) do
{
es es_xsetplayerprop event_var(userid) CCSPlayer.m_bHasDefuser 1
}
}
}
block give_turbo_weapon
{
// Level variables
es_xsetinfo p_lvl 0
es_xsetinfo p_wpn 0
// Get player's level and weapon from db
es es_xkeygetvalue p_lvl gg_players event_var(es_attackersteamid) level
es es_xkeygetvalue p_wpn gg_weapons server_var(p_lvl) weapon
es es_xfire event_var(attacker) env_hudhint kill
es es_xgive event_var(attacker) env_hudhint
es es_xformat tmp_menumsg "message You are now on level %1 (%2)" server_var(p_lvl) server_var(p_wpn)
es es_xfire event_var(attacker) env_hudhint AddOutput server_var(tmp_menumsg)
es es_xfire event_var(attacker) env_hudhint ShowHudHint
es es_xformat p_wpn "weapon_%1" server_var(p_wpn)
if (server_var(p_wpn) == "weapon_m3") do
{
es es_xdelayed .05 es_xgive event_var(attacker) weapon_m3
}
else do
{
if (server_var(p_wpn) == "weapon_hegrenade") do
{
es es_xdelayed .05 es_xgive event_var(attacker) weapon_hegrenade
if (server_var(gg_nade_glock) == 1) do
{
es es_xdelayed .05 es_xgive event_var(attacker) weapon_glock
es es_xdelayed .1 es_xsetplayerprop event_var(attacker) CCSPlayer.baseclass.localdata.m_iAmmo.006 50
}
if (server_var(gg_nade_flash) == 1) do
{
es es_xdelayed .1 es_xgive event_var(attacker) weapon_flashbang
}
if (server_var(gg_nade_smoke) == 1) do
{
es es_xdelayed .1 es_xgive event_var(attacker) weapon_smokegrenade
}
if (server_var(gg_ff_auto) == 1) do
{
if (server_var(mp_friendlyfire) == 0) do
{
mp_friendlyfire 1
es_xmsg #green Friendly Fire is ON!!! Watch your fire!
es_xcexec_all play ambient/misc/brass_bell_C.wav
}
}
}
else do
{
es es_xsoon es_xgive event_var(attacker) server_var(p_wpn)
}
}
if (server_var(p_wpn) != "weapon_knife") then es_xgive event_var(attacker) weapon_knife
// Give each CT a defuse kit
if (server_var(gg_dm_script) != 1) do
{
if (event_var(es_attackerteam) == 3) do
{
es es_xdelayed .1 es_xsetplayerprop event_var(attacker) CCSPlayer.m_bHasDefuser 1
}
}
es_xsetinfo gg_ammoname 0
es_xsetinfo gg_ammonum 0
// give them the right ammo for their gun
es es_xkeygetvalue gg_ammoname gg_ammo_props server_var(p_wpn)
es es_xkeygetvalue gg_ammonum gg_ammo_count server_var(p_wpn)
es es_xdelayed .1 es_xsetplayerprop event_var(attacker) server_var(gg_ammoname) server_var(gg_ammonum)
}
block main_reset_player
{
// afk_db store spawn location
es_xsetinfo user_x 0
es_xsetinfo user_y 0
es_xsetinfo user_z 0
es es_xgetplayerlocation user_x user_y user_z event_var(userid)
es es_xkeysetvalue afk_db event_var(userid) x server_var(user_x)
es es_xkeysetvalue afk_db event_var(userid) y server_var(user_y)
// If warmup is over, or knife warmup is off, give weapons
if (server_var(gg_knife_warmup) == 1) do
{
if (server_var(gg_warmup_timer) < 2) then es_xdoblock gungame3/give_player_weapon
if (server_var(gg_warmup_timer) > 1) then es_xdoblock gungame3/give_warmup_knife
}
else do
{
es_xdoblock gungame3/give_player_weapon
}
// Warn if they are on level 0
if (server_var(gg_knife_warmup) == 1) do
{
if (server_var(gg_warmup_timer) < 2) do
{
if (server_var(p_lvl) == 0) do
{
es es_xtell event_var(userid) #multi It appears you didn't get a level. Say #green!start#default to reset you to level 1
}
}
}
else do
{
if (server_var(p_lvl) == 0) do
{
es es_xtell event_var(userid) #multi It appears you didn't get a level. Say #green!start#default to reset you to level 1
}
}
if (server_var(gg_vote) == 1) do
{
if (server_var(p_lvl) == server_var(gg_level_dynamic)) do
{
ma_voterandom end 4
es_xsetinfo gg_vote 0
}
}
// Join message
if (server_var(gg_join_msg) == 1) do
{
es_xsetinfo gg_join_msg_do 0
es es_xkeygetvalue gg_join_msg_do gg_players event_var(es_steamid) join_msg
if (server_var(gg_join_msg_do) == 0) do
{
es_xsetinfo message_counter 0
// Welcome message
es_xsetinfo tmp_menumsg "This server is running the Gun Game\n_______________\n"
if (server_var(gg_knife_pro) == 1) do
{
es_xmath message_counter + 1
es_format tmp_menumsg "%1->%2. Knife Pro is ENABLED!!\n" server_var(tmp_menumsg) server_var(message_counter)
}
if (server_var(gg_turbo) == 1) do
{
es_xmath message_counter + 1
es_format tmp_menumsg "%1->%2. Turbo Mode is ENABLED!!\n" server_var(tmp_menumsg) server_var(message_counter)
}
if (server_var(gg_knife_elite) == 1) do
{
es_xmath message_counter + 1
es_format tmp_menumsg "%1->%2. Knife Elite Mode is ENABLED!!\n" server_var(tmp_menumsg) server_var(message_counter)
}
if (server_var(gg_multikill) > 0) do
{
es_xmath message_counter + 1
es_format tmp_menumsg "%1->%2. Multikill Mode is ENABLED!! %3 kills required\n" server_var(tmp_menumsg) server_var(message_counter) server_var(gg_multikill)
}
if (server_var(gg_dm_script) == 1) do
{
es_xmath message_counter + 1
es_format tmp_menumsg "%1->%2. Deathmatch Addon is ENABLED!!\n" server_var(tmp_menumsg) server_var(message_counter)
}
es es_xformat tmp_menumsg "%1---------------\nType !rules for instructions on how to play and a list of commands\nType !level to get your level info and who is leading\nType !score to get a list of all players scores and winnings in your console\n \n->0. Exit" server_var(tmp_menumsg)
es es_xmenu 0 event_var(userid) server_var(tmp_menumsg)
es es_xkeysetvalue gg_players event_var(es_steamid) join_msg 1
// Player join gungame sound
es es_xcexec event_var(userid) play server_var(gg_sound_welcome)
}
}
}