i have a bhop server and a surf server, if someone could port Ich Checkpoints for SM that could be very useful.
this is what it looks like in ES:
///////////////
//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.base class.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.base class.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.base class.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.base class.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) ==

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"
}
}
__________________