//***********************************************************// // 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 " 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 ,," 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 ,, } } 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) } } }