//***********************************************************// // 4HM's Gun Game MOD // // v3.0.26 LAN // // // // Thank you Mattie for your help in optimizing the code!!! // // // // http://mattie.info/cs/ // // http://www.4hm.net // // http://www.4honor.net // //***********************************************************// block load { // *********************************************************** // 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" // 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 top5, you do not get this handicap even if it is turned on. es_xsetinfo gg_handicap_on 1 // You cannot have more than one of these turned on at the same time. // Pick one and turn it on, or leave them all turned off. // Turn Knife Pro level stealing on/off es_xsetinfo gg_knife_pro 0 // Turn Knife Advanced level swapping on/off es_xsetinfo gg_knife_adv 0 // Turn Knife Elite on/off // Gives current weapon after a knife kill es_xsetinfo gg_knife_elite 0 // Warmup timer 0=off, x=number of seconds to warmup before restart es_xsetinfo gg_warmup_timer_setting 60 // Used to start random votemap when someone reaches the second to the last level 1=on, 0=off // This requires mani's admin plugin to work es_xsetinfo gg_vote_setting 1 // Gun Game map presets // It is recommended that you leave these settings alone, especially winlimit and chattime. alias gg_map_setup "es mp_timelimit 45; es mp_winlimit 0; es sv_alltalk 0; es mp_chattime 10; es 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 es_xsetinfo gg_sound_levelup "gungame/smb3_powerup.wav" es_xsetinfo gg_sound_leveldown "gungame/smb3_powerdown.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 "music/HL2_song15.mp3" // ##################################### // DO NOT EDIT ANYTHING BELOW THIS LINE // UNLESS YOU KNOW WHAT YOU ARE DOING // ##################################### // Setup Gun Game dir for databases es_xsetinfo gg_dir "|gungame3lan" // Create console commands for admins es_regcmd gg_reset gungame3lan/gg_reset_scores "Resets all player records for the Gun Game and restarts the current map" // Create weapon list es_xsetinfo gg_tmp_weapon 0 es_xsetinfo gg_levels 0 es_token gg_levels server_var(gg_weapon_order) 0 , es_xkeygroupdelete gg_weapons es_xkeygroupcreate gg_weapons es_setinfo gg_level_counter server_var(gg_levels) if (server_var(gg_levels) > 0) then es_xdoblock gungame3lan/create_weapon_list // Dynamic level total - 1 es_setinfo 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.0.26 LAN" es_makepublic eventscripts_gg // gg_winners open flag es_xsetinfo win_db_open 0 es_xsetinfo read_write 0 // Level variables // used to calc current leader es_xsetinfo ldr_level 0 // afk database es_xkeygroupdelete afk_db es_xkeygroupcreate afk_db // level db for reconnecting players es_xkeygroupdelete lvl_db es_xkeygroupcreate lvl_db // gg_players database es_xkeygroupdelete gg_players es_xkeygroupcreate gg_players // gg_top5 database es_xkeygroupdelete gg_top5 es_xkeygroupcreate gg_top5 es_keygroupload gg_top5 server_var(gg_dir) es_xsetinfo top5_check 0 es_xsetinfo top5_counter 1 es_xkeygetvalue top5_check gg_top5 5 steam if (server_var(top5_check) == 0) then es_xdoblock gungame3lan/create_top5 // Add players already playing to the databases es_createplayerlist gg_player_list es_foreachkey key_x in gg_player_list "es_xdoblock gungame3lan/player_setup" // generate ammo clip info es_xkeydelete gg_ammo_props es_xkeydelete 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 } block player_setup { if (event_var(es_steamid) != "BOT") do { // enable player console so they can read rules, score, etc. es_cexec event_var(userid) con_enable 1 ///////////////////////////////////// // Open gg_winners db if (server_var(win_db_open) == 0) do { es_xkeygroupdelete gg_winners es_xkeygroupcreate gg_winners es_xkeygroupcreate gg_winners es_keygroupload gg_winners server_var(gg_dir) es_xsetinfo win_db_open 1 } es_xmath 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_keygetvalue p_level gg_players event_var(es_username) level // Setup new player in gg_players db if (server_var(p_level) == 0) do { es_keycreate gg_players event_var(es_username) es_keysetvalue gg_players event_var(es_username) name event_var(es_username) es_keysetvalue gg_players event_var(es_username) level 1 } // Bring over user wins from gg_winners es_keygetvalue s_wins gg_winners event_var(es_username) wins es_keysetvalue gg_players event_var(es_username) wins server_var(s_wins) // Save and close gg_winners es_xmath read_write - 1 if (server_var(read_write) == 0) do { if (server_var(win_db_open) == 1) do { es_keygroupsave gg_winners server_var(gg_dir) es_xkeygroupdelete gg_winners es_xsetinfo win_db_open 0 } } //gg_winners closed ////////////////////////////////////////// // Player join gungame sound es_delayed 8 es_xcexec event_var(userid) play gungame/gungame2.wav // add player to afk_db es_keydelete afk_db event_var(userid) es_keycreate 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_keygetvalue p_level lvl_db event_var(es_username) level // If player has already connected, give back player's level upon disconnecting if (server_var(p_level) > 0) do { es_keysetvalue gg_players event_var(es_username) 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 gungame3lan/gg_handicap } } // Remove player from lvl_db es_keydelete lvl_db event_var(es_username) } } event es_map_start { // Warmup timer es_setinfo gg_warmup_timer server_var(gg_warmup_timer_setting) // End of map vote es_setinfo gg_vote server_var(gg_vote_setting) // Gun Game map presets es_delayed 2 gg_map_setup // afk database es_xkeygroupdelete afk_db es_xkeygroupcreate afk_db // level db for reconnecting players es_xkeygroupdelete lvl_db es_xkeygroupcreate lvl_db // gg_players database es_xkeygroupdelete gg_players es_xkeygroupcreate gg_players alias warmup_countdown "es_xmath gg_warmup_timer - 1; if (server_var(gg_warmup_timer) == 1) then warmup_over; es_centermsg Warmup round: server_var(gg_warmup_timer) seconds left; if (server_var(gg_warmup_timer) > 1) then es_delayed 1 warmup_countdown" alias warmup_over "mp_restartgame 1; es_xsetinfo bot_lvl 1; es_delayed .95 es_xforeachkey test in gg_players warmup_reset" alias warmup_reset "es_keysetvalue gg_players server_var(test) level 1" if (server_var(gg_warmup_timer) > 0) then warmup_countdown } block create_weapon_list { es_token gg_tmp_weapon server_var(gg_weapon_order) server_var(gg_level_counter) , es_keycreate gg_weapons server_var(gg_level_counter) es_keysetvalue 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) > 0) then es_xdoblock gungame3lan/create_weapon_list } block create_top5 { es_keycreate gg_top5 server_var(top5_counter) es_keysetvalue gg_top5 server_var(top5_counter) name none es_keysetvalue gg_top5 server_var(top5_counter) wins 0 if (server_var(top5_counter) == 5) do { es_keysetvalue gg_top5 server_var(top5_counter) steam 1 } else do { es_keysetvalue gg_top5 server_var(top5_counter) steam 0 } es_xmath top5_counter + 1 if (server_var(top5_counter) < 6) then es_xdoblock gungame3lan/create_top5 if (server_var(top5_counter) == 6) then es_keygroupsave gg_top5 server_var(gg_dir) } event player_activate { es_xdoblock gungame3lan/player_setup } event bomb_pickup { es_setinfo bomber event_var(userid) } event player_spawn { //removes weapons es_give event_var(userid) player_weaponstrip es_fire event_var(userid) player_weaponstrip Strip //removes cash es_setplayerprop event_var(userid) CCSPlayer.m_iAccount 0 // have the player initialize if (event_var(es_steamid) != "BOT") do { es_cexec event_var(userid) !ggstartround } else do { es_xdoblock gungame3lan/bot_spawn } } event player_death { // afk_db get player death location es_xsetinfo user_afk 0 es_xsetinfo user_x 0 es_xsetinfo user_y 0 es_xsetinfo user_z 0 es_getplayerlocation user_x user_y user_z event_var(userid) es_xsetinfo dead_x 0 es_xsetinfo dead_y 0 es_keygetvalue dead_x afk_db event_var(userid) x es_keygetvalue 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 } // Level variables es_xsetinfo p_lvl 0 es_keygetvalue p_lvl gg_players event_var(es_attackername) level es_xsetinfo p_wpn 0 es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon es_xsetinfo victim_lvl 0 es_keygetvalue victim_lvl gg_players event_var(es_username) level if (event_var(es_userteam) != event_var(es_attackerteam)) do { if (event_var(weapon) == server_var(p_wpn)) do { if (server_var(user_afk) == 0) do { es_xdoblock gungame3lan/gg_levelup } else do { es_format tmp_menumsg "%1 was AFK\n Your kill did not count!!" event_var(es_username) es_menu 5 event_var(attacker) server_var(tmp_menumsg) es_keysetvalue afk_db event_var(userid) x 1 es_keysetvalue afk_db event_var(userid) y 1 } } 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 { es_keysetvalue gg_players event_var(es_username) level server_var(victim_lvl) } es_msg #green event_var(es_attackername) stole a level from event_var(es_username) es_cexec event_var(userid) play server_var(gg_sound_leveldown) if (server_var(p_wpn) != "hegrenade") then es_xdoblock gungame3lan/gg_levelup } else do { es_format tmp_menumsg "%1 was AFK\n Your kill did not count!!" event_var(es_username) es_menu 5 event_var(attacker) server_var(tmp_menumsg) es_keysetvalue afk_db event_var(userid) x 1 es_keysetvalue afk_db event_var(userid) y 1 } } if (server_var(gg_knife_adv) == 1) do { if (server_var(p_lvl) != server_var(gg_levels)) do { es_setinfo tmp_k server_var(p_lvl) if (event_var(es_steamid) != "BOT") do { es_keysetvalue gg_players event_var(es_attackername) level server_var(victim_lvl) } else do { es_keysetvalue gg_players event_var(es_attackername) level server_var(bot_lvl) } if (event_var(es_attackersteamid) != "BOT") do { es_keysetvalue gg_players event_var(es_username) level server_var(tmp_k) } else do { es_keysetvalue gg_players event_var(es_username) level server_var(bot_lvl) } es_msg #green event_var(es_attackername) swapped levels with event_var(es_username) if (event_var(es_steamid) != "BOT") do { if (event_var(es_attackersteamid) != "BOT") do { es_tell event_var(userid) You are now on level server_var(tmp_k) es_tell event_var(attacker) You are now on level server_var(victim_lvl) if (server_var(victim_lvl) > server_var(p_lvl)) do { es_cexec event_var(attacker) play server_var(gg_sound_levelup) es_cexec event_var(userid) play server_var(gg_sound_leveldown) } if (server_var(victim_lvl) < server_var(p_lvl)) do { es_cexec event_var(attacker) play server_var(gg_sound_leveldown) es_cexec event_var(userid) play server_var(gg_sound_levelup) } } else do { es_tell event_var(userid) You are now on level server_var(bot_lvl) if (server_var(victim_lvl) > server_var(bot_lvl)) do { es_cexec event_var(userid) play server_var(gg_sound_leveldown) } if (server_var(victim_lvl) < server_var(bot_lvl)) do { es_cexec event_var(userid) play server_var(gg_sound_levelup) } } } else do { if (event_var(es_attackersteamid) != "BOT") do { es_tell event_var(attacker) You are now on level server_var(bot_lvl) if (server_var(bot_lvl) > server_var(p_lvl)) do { es_cexec event_var(attacker) play server_var(gg_sound_levelup) } if (server_var(bot_lvl) < server_var(p_lvl)) do { es_cexec event_var(attacker) play server_var(gg_sound_leveldown) } } } } else do { es_xdoblock gungame3lan/gg_levelup } } if (server_var(gg_knife_elite) == 1) do { if (server_var(user_afk) == 0) do { if (event_var(es_attackersteamid) != "BOT") do { //removes weapons es_give event_var(attacker) player_weaponstrip es_fire event_var(attacker) player_weaponstrip Strip // Level variables es_xsetinfo p_lvl 0 es_xsetinfo p_wpn 0 // Get player's level and weapon from db es_keygetvalue p_lvl gg_players event_var(es_attackername) level es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon es_tell event_var(attacker) #multi #lightgreen You are on level#green server_var(p_lvl) es_tell event_var(attacker) #multi #lightgreen You need a#green server_var(p_wpn)#lightgreen kill to advance es_format p_wpn "weapon_%1" server_var(p_wpn) es_give event_var(attacker) server_var(p_wpn) if (server_var(p_wpn) != "weapon_knife") then es_xgive event_var(userid) weapon_knife es_xsetinfo gg_ammoname 0 es_xsetinfo gg_ammonum 0 // give them the right ammo for their gun es_keygetvalue gg_ammoname gg_ammo_props server_var(p_wpn) es_keygetvalue gg_ammonum gg_ammo_count server_var(p_wpn) es_delayed 1 es_xsetplayerprop event_var(attacker) server_var(gg_ammoname) server_var(gg_ammonum) es_cexec event_var(attacker) play server_var(gg_sound_levelup) es_cexec event_var(userid) play server_var(gg_sound_leveldown) } } else do { es_format tmp_menumsg "%1 was AFK\n Your kill did not count!!" event_var(es_username) es_menu 5 event_var(attacker) server_var(tmp_menumsg) es_keysetvalue afk_db event_var(userid) x 1 es_keysetvalue afk_db event_var(userid) y 1 } } } } } if (server_var(suicide_protect) == 0) do { if (event_var(userid) == event_var(attacker)) do { es_xdoblock gungame3lan/gg_suicide } if (server_var(worldspawn_suicide) == 1) do { if (event_var(attacker) == 0) do { es_xdoblock gungame3lan/gg_worldspawn } } } } block gg_awp { // Set awp ammo in clip to 1 es_foreachkey index in all_awps "es_setindexprop server_var(index) CWeaponAWP.baseclass.baseclass.baseclass.LocalWeaponData.m_iClip1 1" es_delayed 2 es_keygroupdelete all_awps } block gg_levelup { if (server_var(p_lvl) == server_var(gg_levels)) do { es_cexec_all play server_var(gg_sound_winner) es_centermsg event_var(es_attackername) won! es_msg #green event_var(es_attackername) won! es_setinfo winner_name event_var(es_attackername) es_setinfo winner_steam event_var(es_attackername) es_xdoblock gungame3lan/gg_winner // End map es sv_alltalk 1 es_give event_var(userid) game_end es_delayed 2 es_xfire event_var(userid) game_end EndGame es_delayed 4 es_xdoblock gungame3lan/winner_reset } else do { es_xsetinfo gg_star 0 es_keygetvalue gg_star gg_players event_var(es_attackername) triple es_xmath gg_star + 1 if (server_var(gg_star) == 3) do { es_xmath p_lvl + 1 es_keysetvalue gg_players event_var(es_attackername) level server_var(p_lvl) es_keysetvalue gg_players event_var(es_attackername) triple 3 es_xsetinfo gg_tmp_a 0 es_keygetvalue gg_tmp_a gg_triple_db setup players es_xmath gg_tmp_a + 1 es_keysetvalue gg_triple_db setup players server_var(gg_tmp_a) es_keycreate gg_triple_db server_var(es_attacker) es_keysetvalue gg_triple_db server_var(es_attacker) time 10 es_cexec_all play server_var(gg_sound_triple) es_msg #multi #green event_var(es_attackername)#lightgreen triple levelled!!! es_centermsg event_var(es_attackername) triple levelled!!! es_fire event_var(attacker) !self addoutput "rendermode 1" es_fire event_var(attacker) !self alpha 180 es_setplayerprop event_var(attacker) CCSPlayer.baseclass.m_iHealth 100 es_setplayerprop event_var(attacker) CCSPlayer.baseclass.localdata.m_flLaggedMovementValue 1.5 es_fire event_var(attacker) !self color "0 0 255" if (server_var(gg_tmp_a) == 1) then es_xdoblock gungame3/gg_triple_star } else do { if (server_var(gg_star) < 3) do { es_keysetvalue gg_players event_var(es_attackername) triple server_var(gg_star) es_xmath p_lvl + 1 es_keysetvalue gg_players event_var(es_attackername) level server_var(p_lvl) es_keysetvalue gg_players event_var(es_attackername) name event_var(es_attackername) es_setinfo p_diff server_var(ldr_level) es_math p_diff - server_var(p_lvl) if (server_var(p_lvl) > server_var(ldr_level)) do { es_setinfo ldr_level server_var(p_lvl) es_keygetvalue ldr_name gg_players event_var(es_attackername) name es_msg #multi #green event_var(es_attackername)#lightgreen is leading on level 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_msg #multi #green event_var(es_attackername)#lightgreen has tied the leader! } } if (server_var(p_lvl) < server_var(ldr_level)) do { es_tell event_var(attacker) #lightgreen You are now server_var(p_diff) levels behind the leader } es_cexec event_var(attacker) play server_var(gg_sound_levelup) } } } } block gg_triple_star { es_xsetinfo gg_tmp_a 0 es_keygetvalue gg_tmp_a gg_triple_db setup players if (server_var(gg_tmp_a) > 0) do { es_foreachkey gg_player in gg_triple_db "es_xdoblock gungame3/gg_triple_do" } } block gg_triple_do { es_xsetinfo gg_triple_time 0 es_keygetvalue gg_triple_time gg_triple_db server_var(gg_player) time es_xmath gg_triple_time - 1 if (server_var(gg_triple_time) > 0) do { es_keysetvalue gg_triple_db server_var(gg_player) time server_var(gg_triple_time) es_delayed 1 es_xdoblock gungame3/gg_triple_star } else do { // Reset player to defaults es_setplayerprop server_var(gg_player) CCSPlayer.baseclass.localdata.m_flLaggedMovementValue 1.0 es_fire server_var(gg_player) !self color "255 255 255" es_fire server_var(gg_player) !self alpha 255 // Remove player from gg_triple_db es_keydelete gg_triple_db server_var(gg_player) // Subtract 1 from total triple players es_xsetinfo gg_tmp_a 0 es_keygetvalue gg_tmp_a gg_triple_db setup players es_xmath gg_tmp_a - 1 es_keysetvalue gg_triple_db setup players server_var(gg_tmp_a) if (server_var(gg_tmp_a) != 0) "es_delayed 1 es_xdoblock gungame3/gg_triple_star" } } block gg_suicide { if (server_var(p_lvl) > 1) do { es_xmath p_lvl - 1 es_keysetvalue gg_players event_var(es_attackername) level server_var(p_lvl) } es_msg #multi #green event_var(es_attackername)#lightgreen lost a level for suicide es_cexec 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_keysetvalue gg_players event_var(es_username) level server_var(victim_lvl) } es_msg #multi #green event_var(es_username)#lightgreen lost a level for suicide es_cexec event_var(userid) play server_var(gg_sound_leveldown) } event player_say { if (event_var(text) == "!rules") then es_xdoblock gungame3lan/gg_display_rules if (event_var(text) == "!weapons") then es_xdoblock gungame3lan/gg_display_weapons if (event_var(text) == "!top5") then es_xdoblock gungame3lan/gg_display_top5 if (event_var(text) == "!news") then es_xdoblock gungame3lan/gg_display_news if (event_var(text) == "!score") then es_xdoblock gungame3lan/gg_display_score if (event_var(text) == "!level") then es_xdoblock gungame3lan/gg_display_level if (event_var(text) == "!give") do { es_xsetinfo activeweapon 0 es_getplayerprop activeweapon event_var(userid) "CCSPlayer.baseclass.baseclass.m_hActiveWeapon" if (server_var(activeweapon) == "-1") do { es_xsetinfo tmp_m 0 es_getplayersteamid tmp_m event_var(userid) es_xdoblock gungame3lan/give_player_weapon } } if (event_var(text) == "!start") do { es_xsetinfo tmp_m 0 es_getplayersteamid tmp_m event_var(userid) es_keysetvalue gg_players server_var(tmp_m) level 1 es_xdoblock gungame3lan/give_player_weapon } } 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_keygetvalue p_lvl gg_players event_var(es_username) level es_xmath p_lvl - 1 if (server_var(p_lvl) < 2) do { es_xsetinfo p_lvl 1 } es_keycreate lvl_db event_var(es_username) es_keysetvalue lvl_db event_var(es_username) level server_var(p_lvl) // Delete player from afk_db es_keydelete afk_db event_var(userid) // Delete player from gg_players es_keydelete gg_players event_var(es_username) } } event bomb_defused { if (server_var(bomb_defuse_lvl) == 1) do { if (event_var(es_steamid) != "BOT") do { es_xsetinfo p_lvl 0 es_keygetvalue p_lvl gg_players event_var(es_username) level es_xsetinfo p_wpn 0 es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon if (server_var(p_wpn) != "hegrenade") do { if (server_var(p_wpn) != "knife") do { es_xmath p_lvl + 1 es_keysetvalue gg_players event_var(es_username) level server_var(p_lvl) es_msg #green event_var(es_username) gained a level for defusing es_cexec event_var(userid) play server_var(gg_sound_levelup) } else do { es_tell event_var(userid) #green You cannot skip level server_var(p_lvl) by defusing! } } else do { es_tell 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_keygetvalue p_lvl gg_players event_var(es_username) level es_xsetinfo p_wpn 0 es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon if (server_var(p_wpn) != "hegrenade") do { if (server_var(p_wpn) != "knife") do { es_xmath p_lvl + 1 es_keysetvalue gg_players event_var(es_username) level server_var(p_lvl) es_msg #green event_var(es_username) gained a level for planting the bomb es_cexec event_var(user) play server_var(gg_sound_levelup) } else do { es_tell event_var(user) #green You cannot skip level server_var(p_lvl) by planting the bomb! } } else do { es_tell event_var(user) #green You cannot skip level server_var(p_lvl) by planting the bomb! } } } } event round_start { // Reset triple star status es_xsetinfo gg_triple_start 0 // Welcome message at round start es_msg #green This server is running 4HM's Gun Game es_msg #multi #default Say #green!rules#default for instructions on how to play if (server_var(gg_knife_pro) == 1) then es_msg #multi Knife Pro #lightgreen[#greenENABLED#lightgreen] if (server_var(gg_knife_adv) == 1) then es_msg #multi Knife Advanced #lightgreen[#greenENABLED#lightgreen] if (server_var(gg_knife_elite) == 1) then es_msg #multi Knife Elite #lightgreen[#greenENABLED#lightgreen] // End suicide protection given at round_end es_xsetinfo suicide_protect 0 // Get mp_friendlyfire settings es_xsetinfo ldr_weapon 0 es_keygetvalue ldr_weapon gg_weapons server_var(ldr_level) weapon if (server_var(ldr_weapon) == "hegrenade") do { es_cexec_all play gungame\nade_level.wav if (server_var(mp_friendlyfire) == 0) do { es mp_friendlyfire 1 es_msg #green Friendly Fire is ON!!! Watch your fire! } } if (server_var(ldr_weapon) == "knife") do { es_cexec_all play gungame\knife_level.wav } // Give taken c4 back to Terrorist es_delayed 2 es_give server_var(bomber) weapon_c4 // Reset triple level counts alias gg_reset_star "es_keysetvalue gg_players server_var(tmp) triple 0" es_foreachkey tmp in gg_players gg_reset_star // Give awpers 1 bullet in the clip //es_delayed 1 es_createentitylist all_awps weapon_awp //es_delayed 2 es_doblock gungame3lan/gg_awp } event round_end { // Give suicide protection for team changes at round end es_xsetinfo suicide_protect 1 // Get leader information alias chk_ldr "es_keygetvalue 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_delayed 1 es_foreachkey p_id in gg_players chk_ldr // Reset bomber es_xsetinfo bomber 0 // Calculate player avg for bots es_xsetinfo bot_tmp_total 0.0 es_xsetinfo bot_tmp_count 0 es_xsetinfo bot_tmp_stor 0 es_xsetinfo bot_lvl 1 es_xsetinfo bot_wpn 0 alias get_totals "es_keygetvalue bot_tmp_stor gg_players server_var(avg_key) level; es_math bot_tmp_total + server_var(bot_tmp_stor); es_xmath bot_tmp_count + 1" es_foreachkey avg_key in gg_players get_totals es_math bot_tmp_total / server_var(bot_tmp_count) es_token bot_tmp_total server_var(bot_tmp_total) 1 . if (server_var(bot_tmp_total) > 1) then es_xsetinfo bot_lvl server_var(bot_tmp_total) // Get bot's weapon from db es_keygetvalue bot_wpn gg_weapons server_var(bot_lvl) weapon es_format bot_wpn "weapon_%1" server_var(bot_wpn) } block gg_winner { es_xsetinfo t_wins 0 // Open gg_winners db if (server_var(win_db_open) == 0) do { es_xkeygroupdelete gg_winners es_xkeygroupcreate gg_winners es_keygroupload gg_winners server_var(gg_dir) es_xsetinfo win_db_open 1 } es_xmath read_write + 1 // Save player win total es_keygetvalue t_wins gg_winners event_var(es_attackername) wins if (server_var(t_wins) == 0) do { es_keycreate gg_winners event_var(es_attackername) } es_xmath t_wins + 1 es_keysetvalue gg_winners event_var(es_attackername) name event_var(es_attackername) es_keysetvalue gg_winners event_var(es_attackername) wins server_var(t_wins) es_keysetvalue gg_players event_var(es_attackername) wins server_var(t_wins) // Save and close gg_winners es_xmath read_write - 1 if (server_var(read_write) == 0) do { if (server_var(win_db_open) == 1) do { es_keygroupsave gg_winners server_var(gg_dir) es_xkeygroupdelete gg_winners es_xsetinfo win_db_open 0 } } // Update top5 db es_xsetinfo top5_list 0 es_keygetvalue top5_list gg_top5 5 wins if (server_var(t_wins) => server_var(top5_list)) then es_xdoblock gungame3lan/gg_execute_top5 } block winner_reset { alias gg_winner_reset "es_keysetvalue gg_players server_var(test) level 1" es_xforeachkey test in gg_players gg_winner_reset } 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_keygetvalue tmp_stor gg_players server_var(avg_key) level; es_math tmp_total + server_var(tmp_stor); es_xmath tmp_count + 1" es_foreachkey avg_key in gg_players get_totals es_math tmp_total / server_var(tmp_count) es_token tmp_total server_var(tmp_total) 1 . if (server_var(tmp_total) > 1) do { es_keysetvalue gg_players event_var(es_username) level server_var(tmp_total) } } block bot_spawn { if (server_var(bot_lvl) == 0) do { es_xsetinfo bot_lvl 1 es_xsetinfo bot_wpn 0 es_keygetvalue bot_wpn gg_weapons server_var(bot_lvl) weapon es_format bot_wpn "weapon_%1" server_var(bot_wpn) } es_give event_var(userid) weapon_knife es_give event_var(userid) item_kevlar es_delayed 1 es_give event_var(userid) server_var(bot_wpn) // Give each CT a defuse kit if (event_var(es_userteam) == 3) do { es_give event_var(userid) item_defuser } } block gg_execute_top5 { 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 top1_wins 0 es_xsetinfo top2_wins 0 es_xsetinfo top3_wins 0 es_xsetinfo top4_wins 0 es_xsetinfo top5_wins 0 es_xkeygetvalue top1_steam gg_top5 1 steam es_xkeygetvalue top2_steam gg_top5 2 steam es_xkeygetvalue top3_steam gg_top5 3 steam es_xkeygetvalue top4_steam gg_top5 4 steam es_xkeygetvalue top5_steam gg_top5 5 steam es_xkeygetvalue top1_wins gg_top5 1 wins es_xkeygetvalue top2_wins gg_top5 2 wins es_xkeygetvalue top3_wins gg_top5 3 wins es_xkeygetvalue top4_wins gg_top5 4 wins es_xkeygetvalue top5_wins gg_top5 5 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_top5 1 name; es_xkeygetvalue reserve_steam gg_top5 1 steam; es_xkeygetvalue reserve_wins gg_top5 1 wins; es_keysetvalue gg_top5 2 name server_var(reserve_name); es_keysetvalue gg_top5 2 steam server_var(reserve_steam); es_keysetvalue gg_top5 2 wins server_var(reserve_wins); write_top1" alias move_top2 "es_xkeygetvalue reserve_name gg_top5 2 name; es_xkeygetvalue reserve_steam gg_top5 2 steam; es_xkeygetvalue reserve_wins gg_top5 2 wins; es_keysetvalue gg_top5 3 name server_var(reserve_name); es_keysetvalue gg_top5 3 steam server_var(reserve_steam); es_keysetvalue gg_top5 3 wins server_var(reserve_wins); overwrite2" alias move_top3 "es_xkeygetvalue reserve_name gg_top5 3 name; es_xkeygetvalue reserve_steam gg_top5 3 steam; es_xkeygetvalue reserve_wins gg_top5 3 wins; es_keysetvalue gg_top5 4 name server_var(reserve_name); es_keysetvalue gg_top5 4 steam server_var(reserve_steam); es_keysetvalue gg_top5 4 wins server_var(reserve_wins); overwrite3" alias move_top4 "es_xkeygetvalue reserve_name gg_top5 4 name; es_xkeygetvalue reserve_steam gg_top5 4 steam; es_xkeygetvalue reserve_wins gg_top5 4 wins; es_keysetvalue gg_top5 5 name server_var(reserve_name); es_keysetvalue gg_top5 5 steam server_var(reserve_steam); es_keysetvalue gg_top5 5 wins server_var(reserve_wins); overwrite4" alias overwrite2 "es_keysetvalue gg_top5 2 name server_var(winner_name); es_keysetvalue gg_top5 2 steam server_var(winner_steam); es_keysetvalue gg_top5 2 wins server_var(t_wins)" alias overwrite3 "es_keysetvalue gg_top5 3 name server_var(winner_name); es_keysetvalue gg_top5 3 steam server_var(winner_steam); es_keysetvalue gg_top5 3 wins server_var(t_wins)" alias overwrite4 "es_keysetvalue gg_top5 4 name server_var(winner_name); es_keysetvalue gg_top5 4 steam server_var(winner_steam); es_keysetvalue gg_top5 4 wins server_var(t_wins)" alias overwrite5 "es_keysetvalue gg_top5 5 name server_var(winner_name); es_keysetvalue gg_top5 5 steam server_var(winner_steam); es_keysetvalue gg_top5 5 wins server_var(t_wins)" alias write_top1 "es_keysetvalue gg_top5 1 name server_var(winner_name); es_keysetvalue gg_top5 1 steam server_var(winner_steam); es_keysetvalue gg_top5 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" 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 { write_top5 } } } } } // Move players in top5 based on win amount es_xkeygetvalue top4_wins gg_top5 4 wins es_xkeygetvalue top5_wins gg_top5 5 wins if (server_var(top5_wins) > server_var(top4_wins)) do { es_xkeygetvalue winner_name gg_top5 5 name es_xkeygetvalue winner_steam gg_top5 5 steam es_xkeygetvalue t_wins gg_top5 5 wins move_top4 } es_xkeygetvalue top3_wins gg_top5 3 wins es_xkeygetvalue top4_wins gg_top5 4 wins if (server_var(top4_wins) > server_var(top3_wins)) do { es_xkeygetvalue winner_name gg_top5 4 name es_xkeygetvalue winner_steam gg_top5 4 steam es_xkeygetvalue t_wins gg_top5 4 wins move_top3 } es_xkeygetvalue top2_wins gg_top5 2 wins es_xkeygetvalue top3_wins gg_top5 3 wins if (server_var(top3_wins) > server_var(top2_wins)) do { es_xkeygetvalue winner_name gg_top5 3 name es_xkeygetvalue winner_steam gg_top5 3 steam es_xkeygetvalue t_wins gg_top5 3 wins move_top2 } es_xkeygetvalue top1_wins gg_top5 1 wins es_xkeygetvalue top2_wins gg_top5 2 wins if (server_var(top2_wins) > server_var(top1_wins)) do { es_xkeygetvalue winner_name gg_top5 2 name es_xkeygetvalue winner_steam gg_top5 2 steam es_xkeygetvalue t_wins gg_top5 2 wins move_top1 } es_keygroupsave gg_top5 server_var(gg_dir) } block gg_display_top5 { es_xsetinfo gg_top_1 0 es_xsetinfo gg_top_2 0 es_xsetinfo gg_top_3 0 es_xsetinfo gg_top_4 0 es_xsetinfo gg_top_5 0 es_xsetinfo gg_top1_wins 0 es_xsetinfo gg_top2_wins 0 es_xsetinfo gg_top3_wins 0 es_xsetinfo gg_top4_wins 0 es_xsetinfo gg_top5_wins 0 es_keygetvalue gg_top_1 gg_top5 1 name es_keygetvalue gg_top_2 gg_top5 2 name es_keygetvalue gg_top_3 gg_top5 3 name es_keygetvalue gg_top_4 gg_top5 4 name es_keygetvalue gg_top_5 gg_top5 5 name es_keygetvalue gg_top1_wins gg_top5 1 wins es_keygetvalue gg_top2_wins gg_top5 2 wins es_keygetvalue gg_top3_wins gg_top5 3 wins es_keygetvalue gg_top4_wins gg_top5 4 wins es_keygetvalue gg_top5_wins gg_top5 5 wins es_format tmp_menumsg "Gun Game Top 5 Players\n __________\n Wins: %1 Name: %2\n Wins: %3 Name: %4\n Wins: %5 Name: %6\n Wins: %7 Name: %8\n Wins: %9" server_var(gg_top1_wins) server_var(gg_top_1) server_var(gg_top2_wins) server_var(gg_top_2) server_var(gg_top3_wins) server_var(gg_top_3) server_var(gg_top4_wins) server_var(gg_top_4) server_var(gg_top5_wins) es_format tmp_menumsg "%1 Name: %2" server_var(tmp_menumsg) server_var(gg_top_5) es_menu 5 event_var(userid) server_var(tmp_menumsg) } block gg_display_rules { es_cexec event_var(userid) echo ----------------------------- es_cexec event_var(userid) echo ----------------------------- es_cexec event_var(userid) echo **** 4HM Gun Game Rules: **** es_cexec event_var(userid) echo 1) You must get a kill with your current weapon to level up. es_cexec 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_cexec event_var(userid) echo 3) You can gain levels by PLANTING and DEFUSING. es_cexec event_var(userid) echo 4) If you commit suicide, you will lose a level. es_cexec event_var(userid) echo 5) Friendly Fire is turned ON when someone reaches GRENADE level. es_cexec event_var(userid) echo 6) You CAN gain more than one level per round. es_cexec event_var(userid) echo 7) There is a grace period at the end of each round to allow players to switch teams. es_cexec event_var(userid) echo 8) If Knife Pro is ENABLED, you can steal a level from an opponent by knifing them. es_cexec event_var(userid) echo 9) If Knife Advanced is ENABLED, you can swap levels with an opponent by knifing them. es_cexec event_var(userid) echo 10) If Knife Elite is ENABLED, you get another weapon with full ammo for knife kills. es_cexec event_var(userid) echo 11) If you start with no weapon, just say !start and it will reset your score and give you a glock. es_cexec event_var(userid) echo **************************************************************** es_cexec event_var(userid) echo Say !level to see your current level and who is winning. es_cexec event_var(userid) echo Say !weapons to see the weapon order. es_cexec event_var(userid) echo Say !score to see all player current scores. es_cexec event_var(userid) echo Say !top5 to see the top 5 winners on the server. es_cexec event_var(userid) echo Say !news to get the latest on Gun Mod updates. es_cexec event_var(userid) echo Say !start to reset your level to level 1 and get a glock. es_cexec event_var(userid) echo Say !give if you do not receive your weapon. es_cexec event_var(userid) echo ----------------------------- es_cexec event_var(userid) echo ----------------------------- es_menu 0 event_var(userid) "Game rules and all Say commands are listed in your game console\n __________\n Some useful Say commands:\n ----------\n Say !top5 to see the top 5 players on this server\n Say !level to see your current level and who is winning\n Say !weapons to see the weapon order\n Say !score to see player scores\n Say !news to get the latest on Gun Game updates\n \n 0.Exit" } block gg_display_news { es_format tmp_menumsg "->4HM Gun Game News\n_______________\n %1\nUpdated Triple Level\n - You swap levels with your third kill now\n \nWould you like to run the Gun Game on your server?\nVisit www.4honor.net to download/discuss the Gun Game!\n \n->0.Exit" server_var(eventscripts_gg) es_menu 0 event_var(userid) server_var(tmp_menumsg) } block gg_display_weapons { es_xsetinfo tmp_wpn_name 0 alias print_weapon_order "es_keygetvalue tmp_wpn_name gg_weapons server_var(tmp_wpn_lvl) weapon; es_cexec event_var(userid) echo Level server_var(tmp_wpn_lvl): server_var(tmp_wpn_name)" es_menu 4 event_var(userid) "Weapon Order is listed in your console.\n Press ~ to view" es_cexec event_var(userid) echo ----------------------- es_cexec event_var(userid) echo Weapon Order es_cexec event_var(userid) echo ----------------------- es_foreachkey tmp_wpn_lvl in gg_weapons print_weapon_order es_cexec event_var(userid) echo ----------------------- } block gg_display_score { es_xsetinfo p_name 0 es_xsetinfo p_wins 0 alias chk_lvl "es_cexec event_var(userid) echo ##;es_cexec event_var(userid) echo ##### Scores #####; es_cexec event_var(userid) echo ---------------------; es_foreachkey steam_id in gg_players print_score; es_cexec event_var(userid) echo BOT level server_var(bot_lvl); es_cexec event_var(userid) echo ---------------------; es_cexec event_var(userid) echo Leaders denoted with **; es_cexec event_var(userid) echo ##### End of scorelist #####; es_cexec event_var(userid) echo ##" alias print_score "es_keygetvalue p_name gg_players server_var(steam_id) name; es_keygetvalue p_lvl gg_players server_var(steam_id) level; es_keygetvalue p_wins gg_players server_var(steam_id) wins; if (server_var(p_lvl) == server_var(ldr_level)) then es_cexec event_var(userid) echo **Level server_var(p_lvl) :: Wins server_var(p_wins) :: Name server_var(p_name); if (server_var(p_lvl) != server_var(ldr_level)) then es_cexec event_var(userid) echo Level server_var(p_lvl) :: Wins server_var(p_wins) :: Name server_var(p_name)" chk_lvl es_menu 4 event_var(userid) "Scores are listed in your console.\n Press ~ to view" } block gg_display_level { es_xsetinfo p_wpn 0 es_xsetinfo p_wins 0 es_xsetinfo p_lvl 0 es_keygetvalue p_lvl gg_players event_var(es_username) level es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon es_keygetvalue p_wins gg_players event_var(es_username) wins es_format tmp_menumsg "You are on level %1\nYou need a %2 kill to advance\n----------\nYou have won %3 times\n----------\nCurrent leader: %4\nLevel: %5" server_var(p_lvl) server_var(p_wpn) server_var(p_wins) server_var(ldr_name) server_var(ldr_level) es_menu 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_top5 es_xkeygroupdelete gg_weapons es_xkeygroupdelete lvl_db es_xkeygroupdelete afk_db } block gg_reset_scores { // Delete all open databases es_xkeygroupdelete gg_players es_xkeygroupdelete gg_winners es_xkeygroupdelete gg_top5 es_xkeygroupdelete lvl_db es_xkeygroupdelete afk_db // Create empty database es_xkeygroupcreate gg_winners es_keygroupsave gg_winners server_var(gg_dir) es_xkeygroupcreate gg_top5 es_xsetinfo top5_counter 1 es_xdoblock gungame3lan/create_top5 // Restart the map es_delayed 7 changelevel server_var(eventscripts_currentmap) es_xmsg #green Gun Game scores reset! es_xmsg #green Game will restart in 7 seconds... } event es_client_command { if (event_var(command) == "!score") then es_xdoblock gungame3lan/gg_display_score if (event_var(command) == "!level") then es_xdoblock gungame3lan/gg_display_level if (event_var(command) == "!ggstartround") do { es_xsetinfo activeweapon 0 es_getplayerprop activeweapon event_var(userid) "CCSPlayer.baseclass.baseclass.m_hActiveWeapon" if (server_var(activeweapon) == "-1") do { es_xdoblock gungame3lan/main_reset_player } } } block give_player_weapon { // Level variables es_xsetinfo p_lvl 0 es_xsetinfo p_wpn 0 // Get player's level and weapon from db es_keygetvalue p_lvl gg_players event_var(es_username) level es_keygetvalue p_wpn gg_weapons server_var(p_lvl) weapon if (server_var(p_lvl) == 0) do { es_xsetinfo p_lvl 1 es_keygetvalue p_lvl gg_players server_var(tmp_m) level } es_tell event_var(userid) #multi #lightgreen You are on level#green server_var(p_lvl) es_tell event_var(userid) #multi #lightgreen You need a#green server_var(p_wpn)#lightgreen kill to advance es_format p_wpn "weapon_%1" server_var(p_wpn) es_give event_var(userid) server_var(p_wpn) es_give event_var(userid) item_kevlar if (server_var(p_wpn) != "weapon_knife") then es_xgive event_var(userid) weapon_knife // Give each CT a defuse kit if (event_var(es_userteam) == 3) do { es_setplayerprop 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_keygetvalue gg_ammoname gg_ammo_props server_var(p_wpn) es_keygetvalue gg_ammonum gg_ammo_count server_var(p_wpn) es_setplayerprop event_var(userid) 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_getplayerlocation user_x user_y user_z event_var(userid) es_keysetvalue afk_db event_var(userid) x server_var(user_x) es_keysetvalue afk_db event_var(userid) y server_var(user_y) es_xdoblock gungame3lan/give_player_weapon // Warn if they are on level 0 if (server_var(p_lvl) == 0) do { es_menu 5 event_var(userid) "It appears you didn't get a level.\n Say !start 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 } } }