/////////////// //Ichthys Checkpoint Mod for mattie's eventscripts v1.0+ ////////////// //Features: //Enables players to save upto a limit of checkpoints //If enabled those checkpoints will be saved for each individual map //Client commands: //These commands can be bound to a key //!save //!back //!fwd|!forward //!clear ///If enabled //!ghost //!unghost ////// //install ///// //Add the file es_ich_checkpoints.txt to a folder cstrike/addons/eventscripts/ich_checkpoints //Run es_load ich_checkpoints to load //use rcon es_load ich_checkpoints to load instantly //Add the line es_load ich_checkpoints to autoexec to have the script load each time you start your server //Modify the settings to which map types you want checkpoints to be enabled, or which maps it should be forced on or off //Modify the settings to how many checkpoints you want for players to have per map block settings { /////////// //Options// (note: these are only enabled for maps that checkpoints are enabled) /////////// cp_allowmenu 1 //If set to 1-players can use !cp to open the checkpoint menu popup (thx GodJones for the popup script) cp_allowghostcommands 1 //If set to 1 players can use !ghost and !unghost to enable or disable ghost individually cp_forceunghost 1 // If set to 1 players will be unghosted when they spawn and the script is unloaded cp_ghosts 1 //If set to 1 script will make players appear like ghosts and pass through each other cp_alpha 100 //This is the alpha level of players if cp_ghost is set to 1 (0 = completely invisible, 255 = completely visible) cp_removeweapons 1 //If set to 1 script will remove weapons from players (players will keep their knife) cp_sethealth 99999 //Set players health to this. '0' -disables cp_limit 20 // number of server_var(cp_keygroup) players can have cp_savecheckpoints 1 // 1-Save checkpoints for each map. Checkpoints are not deleted when players leave the game // 0-Dont save and delete players checkpoints whenever they leave and join the server //////////////// //Map Settings// //////////////// // map types to enable cp_checkpoint mod es_keycreate cp_maptypes kz es_keycreate cp_maptypes xc es_keycreate cp_maptypes de //example: es_keycreate cp_maptypes surf //maps to force on es_keycreate cp_force_on blizzard2 es_keycreate cp_force_on scoutzknivez //example: es_keycreate cp_force_on de_lahlah //maps to force off es_keycreate cp_force_off surf_egypt //example: es_keycreate cp_force_off surf_dontcheckpoint } event es_map_start { // enable checkpoints? es_xsetinfo cp_exists 0 es_xsetinfo cp_enabled 0 es_xsetinfo cp_maptype 0 // check type es_token cp_maptype server_var(eventscripts_currentmap) 1 _ es_exists cp_enabled key cp_maptypes server_var(cp_maptype) if (server_var(cp_exists) = 1) then es_xsetinfo cp_enabled 1 // map force on es_exists cp_exists key cp_force_on server_var(eventscripts_currentmap) if (server_var(cp_exists) = 1) then es_xsetinfo cp_enabled 1 // map force off es_exists cp_exists key cp_force_off server_var(eventscripts_currentmap) if (server_var(cp_exists) = 1) then es_xsetinfo cp_enabled 0 if (server_var(cp_enabled) = 1) do { //Set keygroup file for map if (server_var(cp_savecheckpoints) = 1) do { //Save previous maps keygroup to disk es_exists cp_exists keygroup server_var(cp_keygroup) if (server_var(cp_exists) = 1) do { es_keygroupsave server_var(cp_keygroup) |ich_checkpoints es_keygroupdelete server_var(cp_keygroup) } es_format cp_keygroup cp_checkpoints_%1 server_var(eventscripts_currentmap) es_exists cp_exists keygroup server_var(cp_keygroup) if (server_var(cp_exists) = 1) then es_xkeygroupdelete server_var(cp_keygroup) es_keygroupload server_var(cp_keygroup) |ich_checkpoints } else do { es_exists cp_exists keygroup cp_checkpoints if (server_var(cp_exists) = 1) then es_xkeygroupdelete cp_checkpoints es_keygroupcreate cp_checkpoints es_xsetinfo cp_keygroup cp_checkpoints } es_log server_var(cp_maptype) map detected, server_var(cp_keygroup) enabled } if (server_var(cp_enabled) = 0) then es_xlog server_var(cp_keygroup) disabled //Create menu es_xdoblock ich_checkpoints/createpopup } //!cp - Opens checkpoint menu system //!save - Saves a checkpoint at a players current location //!back - Goes back one checkpoint //!forward|!fwd - Goes forward one checkpoint //!clear - Clears a players checkpoints //!ghost - Makes a player partially invisible and go through other players //!unghost - Reverts a player back to normal block client_cp { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { if (server_var(cp_allowmenu) = 1) then popup send cp_menu server_var(cp_userid) } } } block client_save { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { es_xdoblock ich_checkpoints/savecheckpoint } } } block client_back { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { es_xdoblock ich_checkpoints/loadprevcheckpoint } } } block client_forward { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { es_xdoblock ich_checkpoints/loadnextcheckpoint } } } block client_clear { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_setinfo cp_steamid server_var(cp_steamid) es_xdoblock ich_checkpoints/clearcheckpoints } } block client_ghost { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { if (server_var(cp_allowghostcommands) = 1) do { es_xdoblock ich_checkpoints/ghost } } } } block client_unghost { if (server_var(cp_enabled) = 1) do { es_getcmduserid cp_userid es_getplayersteamid cp_steamid server_var(cp_userid) es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead if (server_var(cp_isdead) = 0) do { if (server_var(cp_allowghostcommands) = 1) do { es_xdoblock ich_checkpoints/unghost } } } } block unghost { es_fire server_var(cp_userid) !self addoutput "rendermode 1" es_fire server_var(cp_userid) !self alpha 255 es_setplayerprop server_var(cp_userid) "CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup" 5 } block ghost { es_fire server_var(cp_userid) !self addoutput "rendermode 1" es_fire server_var(cp_userid) !self alpha server_var(cp_alpha) es_setplayerprop server_var(cp_userid) "CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup" 2 } block clearcheckpoints { es_keygetvalue cp_isdead server_var(cp_keygroup) server_var(cp_steamid) isdead es_keydelete server_var(cp_keygroup) server_var(cp_steamid) es_keycreate server_var(cp_keygroup) server_var(cp_steamid) es_keygetvalue server_var(cp_keygroup) server_var(cp_steamid) isdead server_var(cp_isdead) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) pointer 1 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) top 0 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) bottom 1 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) goneback 0 es_xsetinfo cp_userid 0 es_getuserid cp_userid server_var(cp_steamid) if (server_var(cp_userid) != 0) do { es_tell server_var(cp_userid) #multi #green[Ichthys Checkpoint Mod]: #defaultYour checkpoints have been cleared } } block loadnextcheckpoint { //load pointers es_keygetvalue cp_pointer server_var(cp_keygroup) server_var(cp_steamid) pointer es_keygetvalue cp_top server_var(cp_keygroup) server_var(cp_steamid) top es_keygetvalue cp_bottom server_var(cp_keygroup) server_var(cp_steamid) bottom if (server_var(cp_top) != 0) do { if (server_var(cp_pointer) <= server_var(cp_top)) do { es_xmath cp_pointer + 1 if (server_var(cp_pointer) > server_var(cp_top)) then es_xcopy cp_pointer cp_top if (server_var(cp_pointer) = server_var(cp_top)) then es_xtell server_var(cp_userid) #lightgreen ::last checkpoint reached //load cp_checkpoint from key es_xsetinfo cp_checkpoint 0 es_keygetvalue cp_checkpoint server_var(cp_keygroup) server_var(cp_steamid) server_var(cp_pointer) //es_setinfo display_pointer server_var(cp_bottom) //es_xsetinfo display_message "checkpoint:" //es_xmath cp_display_pointer - 1 //es exec server_var(loadcheckpointdisplay.cfg) //es_tell event_var(userid) #lightgreen server_var(display_message) //set new pointer es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) pointer server_var(cp_pointer) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) goneback 1 //teleport player esnq es_setpos server_var(cp_userid) server_var(cp_checkpoint) es_xdoblock ich_checkpoints/loadmessage //esnq nm_csay event_var(userid) 30 \npointer: server_var(cp_pointer) \ntop: server_var(cp_top) \nbottom: server_var(cp_bottom) } else do { es_tell server_var(cp_userid) #lightgreen ::No further checkpoints! } } else do { es_tell server_var(cp_userid) #green ::you have no checkpoints saved! } } block loadprevcheckpoint { es_xsetinfo cp_top 0 es_keygetvalue cp_top server_var(cp_keygroup) server_var(cp_steamid) top if (server_var(cp_top) != 0) do { //load pointers es_keygetvalue cp_pointer server_var(cp_keygroup) server_var(cp_steamid) pointer es_keygetvalue cp_bottom server_var(cp_keygroup) server_var(cp_steamid) bottom //in order to load cp_checkpoint previous to pointer es_xmath cp_pointer - 1 //dont let the pointer go below the bottom pointer if (server_var(cp_pointer) < server_var(cp_bottom)) then es_xcopy cp_pointer cp_bottom //load cp_checkpoint from key es_xsetinfo cp_checkpoint 0 es_keygetvalue cp_checkpoint server_var(cp_keygroup) server_var(cp_steamid) server_var(cp_pointer) //let the player know if they have reached the earliest cp_checkpoint saved if (server_var(cp_pointer) = server_var(cp_bottom)) then es_xtell server_var(cp_userid) #lightgreen ::Earliest checkpoint reached //set new pointer es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) goneback 1 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) pointer server_var(cp_pointer) //messages es_xdoblock ich_checkpoints/loadmessage //teleport player //es_format cp_userid "#%1" event_var(userid) esnq es_setpos server_var(cp_userid) server_var(cp_checkpoint) //esnq nm_csay event_var(userid) 30 \npointer: server_var(cp_pointer) \ntop: server_var(cp_top) \nbottom: server_var(cp_bottom) } else do { es_tell server_var(cp_userid) #green ::You have no checkpoints saved! } } block loadmessage { //cp_bottom, cp_top, cp_pointer es_xcopy cp_temp cp_bottom es_xmath cp_temp - 1 es_math cp_pointer - server_var(cp_temp) es_math cp_top - server_var(cp_temp) es_math cp_bottom - server_var(cp_temp) es_format cp_message "#green[#default%1#green]" server_var(cp_pointer) //Format part of message after [P] (P=pointer) if (server_var(cp_top) != server_var(cp_pointer)) do { es_xcopy cp_temp cp_pointer es_xmath cp_temp + 1 if (server_var(cp_temp) = server_var(cp_top)) do { es_format cp_message "%1 %2" server_var(cp_message) server_var(cp_top) } else do { es_format cp_message "%1 %2..." server_var(cp_message) server_var(cp_temp) } } //Format part of message before [P] (P=pointer) if (server_var(cp_pointer) != server_var(cp_bottom)) do { es_xcopy cp_temp cp_pointer es_xmath cp_temp - 1 if (server_var(cp_temp) = server_var(cp_bottom)) do { es_format cp_message "#green%1 %2" server_var(cp_bottom) server_var(cp_message) } else do { es_format cp_message "#green...%1 %2" server_var(cp_temp) server_var(cp_message) } } es_format cp_message "#lightgreenCheckpoint Loaded: #green%1" server_var(cp_message) es_tell server_var(cp_userid) #multi server_var(cp_message) } block savecheckpoint { //get current checkpoints es_keygetvalue cp_pointer server_var(cp_keygroup) server_var(cp_steamid) pointer es_keygetvalue cp_bottom server_var(cp_keygroup) server_var(cp_steamid) bottom es_keygetvalue cp_top server_var(cp_keygroup) server_var(cp_steamid) top es_keygetvalue cp_goneback server_var(cp_keygroup) server_var(cp_steamid) goneback if (server_var(cp_goneback) = 1) then es_xmath cp_pointer + 1 //get cp_checkpoint location es_getplayerlocation cp_x cp_y cp_z server_var(cp_userid) es_format cp_checkpoint "%1 %2 %3" server_var(cp_x) server_var(cp_y) server_var(cp_z) ///move up bottom checkpoint es_xcopy cp_check cp_pointer es_math cp_check - server_var(cp_bottom) if (server_var(cp_check) >= server_var(cp_limit)) then es_xmath cp_bottom + 1 es_xcopy cp_top cp_pointer es_xmath cp_pointer + 1 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) top server_var(cp_top) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) server_var(cp_top) server_var(cp_checkpoint) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) bottom server_var(cp_bottom) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) pointer server_var(cp_pointer) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) goneback 0 //message es_xmath cp_pointer - 1 es_xcopy cp_temp cp_bottom es_xmath cp_temp - 1 es_math cp_pointer - server_var(cp_temp) es_format cp_message "[#default%1#green]" server_var(cp_pointer) if (server_var(cp_check) > 0) do { es_xmath cp_pointer - 1 es_format cp_message "%1 %2" server_var(cp_pointer) server_var(cp_message) if (server_var(cp_check) > 1) do { es_xmath cp_pointer - 1 if (server_var(cp_pointer) >= server_var(cp_bottom)) then es_xformat cp_message "%1 %2" server_var(cp_pointer) server_var(cp_message) if (server_var(cp_check) > 2) do { es_format cp_message "...%1" server_var(cp_message) } } } es_format cp_message "#lightgreenCheckpoint Saved: #green%1" server_var(cp_message) es_tell server_var(cp_userid) #multi server_var(cp_message) //esnq nm_csay event_var(userid) 30 \npointer: server_var(cp_pointer) \ntop: server_var(cp_top) \nbottom: server_var(cp_bottom) } event player_spawn { if (event_var(es_userteam) > 1) do { es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) isdead 0 if (server_var(cp_enabled) = 1) do { if (server_var(cp_sethealth) != 0) do { es_setplayerprop event_var(userid) "CCSPlayer.baseclass.m_iHealth" server_var(cp_sethealth) } if (server_var(cp_removeweapons) = 1) do { es_give event_var(userid) player_weaponstrip es_fire event_var(userid) player_weaponstrip Strip es_fire event_var(userid) player_weaponstrip kill es_give event_var(userid) weapon_knife } if (server_var(cp_ghosts) = 1) do { es_fire event_var(userid) !self addoutput "rendermode 1" es_fire event_var(userid) !self alpha server_var(cp_alpha) es_setplayerprop event_var(userid) "CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup" 2 } else do { if (server_var(cp_forceunghost) = 1) do { es_fire event_var(userid) !self addoutput "rendermode 1" es_fire event_var(userid) !self alpha 255 } } } } } event player_death { es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) isdead 1 } event player_activate { es_exists cp_exists key server_var(cp_keygroup) event_var(es_steamid) if (server_var(cp_exists) = 0) do { es_keycreate server_var(cp_keygroup) event_var(es_steamid) es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) pointer 1 es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) top 0 es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) bottom 1 es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) goneback 0 } es_keysetvalue server_var(cp_keygroup) event_var(es_steamid) isdead 1 } event player_disconnect { if (server_var(cp_savecheckpoints) = 0) then es_xkeydelete server_var(cp_keygroup) event_var(es_steamid) } block load { es_xdoblock ich_checkpoints/init } block enable { es_xdoblock ich_checkpoints/init } block disable { es_xdoblock ich_checkpoints/deinit } block unload { es_xdoblock ich_checkpoints/deinit } block unghostall { es_fire server_var(cp_key) !self addoutput "rendermode 1" es_fire server_var(cp_key) !self alpha 255 es_setplayerprop server_var(cp_key) "CCSPlayer.baseclass.baseclass.baseclass.baseclass.baseclass.baseclass.m_CollisionGroup" 5 } block init { //settings values to 0 es_xkeygroupcreate cp_force_on es_xkeygroupcreate cp_force_off es_xkeygroupcreate cp_maptypes es_xsetinfo cp_display_pointer 0 es_xsetinfo cp_limit 0 es_xsetinfo cp_isdead 0 es_xsetinfo cp_format 0 es_xsetinfo cp_command 0 es_xsetinfo cp_steamid 0 es_xsetinfo cp_bottom 0 es_xsetinfo cp_pointer 0 es_xsetinfo cp_top 0 es_xsetinfo cp_goneback 0 es_xsetinfo cp_x 0 es_xsetinfo cp_y 0 es_xsetinfo cp_z 0 es_xsetinfo cp_checkpoint 0 es_xsetinfo cp_check 0 es_xsetinfo cp_keygroup 0 es_xsetinfo cp_removeweapons 0 es_xsetinfo cp_sethealth 0 es_xsetinfo cp_savecheckpoints 0 es_xsetinfo cp_removeweapons 0 es_xsetinfo cp_exists 0 es_xsetinfo cp_temp 0 es_xsetinfo cp_ghosts 0 es_xsetinfo cp_alpha 0 es_xsetinfo cp_allowghostcommands 0 es_xsetinfo cp_allowmenu 0 es_xsetinfo cp_forceunghost 0 es_xsetinfo cp_userid 0 //Register say&client commands es_xregsaycmd !cp "ich_checkpoints/client_cp" "Checkpoint Client Command" es_xregclientcmd !cp "ich_checkpoints/client_cp" "Checkpoint Client Command" es_xregsaycmd !save "ich_checkpoints/client_save" "Checkpoint Client Command" es_xregclientcmd !save "ich_checkpoints/client_save" "Checkpoint Client Command" es_xregsaycmd !back "ich_checkpoints/client_back" "Checkpoint Client Command" es_xregclientcmd !back "ich_checkpoints/client_back" "Checkpoint Client Command" es_xregsaycmd !forward "ich_checkpoints/client_forward" "Checkpoint Client Command" es_xregclientcmd !forward "ich_checkpoints/client_forward" "Checkpoint Client Command" es_xregsaycmd !fwd "ich_checkpoints/client_forward" "Checkpoint Client Command" es_xregclientcmd !fwd "ich_checkpoints/client_forward" "Checkpoint Client Command" es_xregsaycmd !clear "ich_checkpoints/client_clear" "Checkpoint Client Command" es_xregclientcmd !clear "ich_checkpoints/client_clear" "Checkpoint Client Command" es_xregsaycmd !ghost "ich_checkpoints/client_ghost" "Checkpoint Client Command" es_xregclientcmd !ghost "ich_checkpoints/client_ghost" "Checkpoint Client Command" es_xregsaycmd !unghost "ich_checkpoints/client_unghost" "Checkpoint Client Command" es_xregclientcmd !unghost "ich_checkpoints/client_unghost" "Checkpoint Client Command" es_xsetinfo cp_version "3.1" es_xmakepublic cp_version //do settings block es_xdoblock ich_checkpoints/settings if (server_var(eventscripts_currentmap) != 0) then es_xdoblock ich_checkpoints/es_map_start //start script if (server_var(cp_enabled) = 1) do { es_xcreateplayerlist checkpoints_temp es_foreachkey cp_key in checkpoints_temp "es_xdoblock ich_checkpoints/fek" es_xkeygroupdelete checkpoints_temp } } block fek { es_keygetvalue cp_steamid checkpoints_temp server_var(cp_key) steamid es_keycreate server_var(cp_keygroup) server_var(cp_steamid) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) pointer 1 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) top 0 es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) bottom 1 es_keygetvalue cp_isdead checkpoints_temp server_var(cp_key) isdead es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) isdead server_var(cp_isdead) es_keysetvalue server_var(cp_keygroup) server_var(cp_steamid) goneback 0 } block createpopup { popup delete cp_menu popup create cp_menu // Add text to the popup, you can make a NUMBERED line appear in orange by placing -> at the start // otherwise the line will be white. Take a note that first line is always white. popup addline cp_menu "Ichthys Checkpoints Menu:" popup addline cp_menu "->1. Save" popup addline cp_menu " " popup addline cp_menu "->3. Back" popup addline cp_menu "->4. Forward" popup addline cp_menu " " if (server_var(cp_allowghostcommands) = 1) do { popup addline cp_menu "->5. Ghost Self" popup addline cp_menu "->6. Un-Ghost Self" popup submenu cp_menu 5 cp_menu popup submenu cp_menu 6 cp_menu } else do { popup addline cp_menu " " popup addline cp_menu " " } popup addline cp_menu "->8. Clear Checkpoints" popup addline cp_menu "->9. About" popup addline cp_menu "->0. Close Menu" //Set menuselect block popup menuselect cp_menu ich_checkpoints/cp_menuselect //Set submenus popup submenu cp_menu 1 cp_menu popup submenu cp_menu 3 cp_menu popup submenu cp_menu 4 cp_menu popup submenu cp_menu 8 cp_menu popup submenu cp_menu 9 cp_menu_about popup delete cp_menu_about popup create cp_menu_about popup addline cp_menu_about "Ichthys Checkpoints Script" popup addline cp_menu_about "--------------------------" popup addline cp_menu_about "Made by ichthys for Mattie's" popup addline cp_menu_about "Eventscripts v1.1+" popup addline cp_menu_about "http://eventscripts.com" popup addline cp_menu_about " " popup addline cp_menu_about "popup script by GodJonez" popup submenu cp_menu_about 1 cp_menu popup submenu cp_menu_about 2 cp_menu popup submenu cp_menu_about 3 cp_menu popup submenu cp_menu_about 4 cp_menu popup submenu cp_menu_about 5 cp_menu popup submenu cp_menu_about 6 cp_menu popup submenu cp_menu_about 7 cp_menu popup submenu cp_menu_about 8 cp_menu popup submenu cp_menu_about 9 cp_menu popup submenu cp_menu_about 10 cp_menu } block cp_menuselect { es_setinfo cp_userid event_var(userid) es_setinfo cp_steamid event_var(es_steamid) if (server_var(_popup_choice) == 1) then es_xdoblock ich_checkpoints/savecheckpoint if (server_var(_popup_choice) == 3) then es_xdoblock ich_checkpoints/loadprevcheckpoint if (server_var(_popup_choice) == 4) then es_xdoblock ich_checkpoints/loadnextcheckpoint if (server_var(_popup_choice) == 8) do { es_xsetinfo cp_userid 0 es_xdoblock ich_checkpoints/clearcheckpoints } if (server_var(cp_allowghostcommands) = 1) do { if (server_var(_popup_choice) == 5) then es_xdoblock ich_checkpoints/ghost if (server_var(_popup_choice) == 6) then es_xdoblock ich_checkpoints/unghost } } block deinit { es_xkeygroupdelete cp_force_on es_xkeygroupdelete cp_force_off es_xkeygroupdelete cp_maptypes if (server_var(cp_savecheckpoints) = 1) do { es_keygroupsave server_var(cp_keygroup) |ich_checkpoints es_keygroupdelete server_var(cp_keygroup) } else do { es_xkeygroupdelete cp_checkpoints } if (server_var(cp_forceunghost) = 1) do { es_xcreateplayerlist checkpoints_temp es_xforeachkey cp_key in checkpoints_temp "es_xdoblock ich_checkpoints/unghostall" } }