// ****************************** // Venjax's Landmine Script V1.25 Beta // for Counter-Strike: Source // // * Description: // Players can plant landmines which explode when an enemy sets on it. // // * Install instructions: // http://forums.mattie.info/cs/forums/ // // // * Requirements: // EventScripts v1.1.0.005 or higher // Mani Admin Plugin v1.1.0w or higher // * To Do: // Optimize performance. // Thank Mattie for helping me write this and bearing with me and my annoyances. <3 // ****************************** // ****************************** // CONFIGURABLE SETTINGS // ****************************** block config { es_setinfo lm_rad 50 //Change this number to control the size of your landmine field. es_setinfo lm_imag "imagnitude 100" //Change this number to control damage of your mines. Change only the number. es_setinfo lm_size 100 //Size of Mine beacon: 75-255 - Recommended range. es_setinfo lm_clr_red 0 //RGB Color codes for Mine Beacon. Default Pure Blue. es_setinfo lm_clr_green 0 es_setinfo lm_clr_blue 255 es_setinfo prog_clr_red 255 //RGB Color for Progress Beacons. Default Purple. es_setinfo prog_clr_green 0 es_setinfo prog_clr_blue 255 es_setinfo ven_landmine 1 //Enables Landmine es_setinfo landmine_announce 1 //Enable/Disable Annoucement at round start. es_setinfo ctmax_mines 15 //Sets max # mines for CT es_setinfo tmax_mines 15 //Sets max # mines for T. } // ****************************** // END OF CONFIGURABLE SETTINGS // ****************************** block load { es_setinfo ven_landmine 1 es_setinfo ven_mine_ver "v1.25" es_setinfo landmine_announce 1 es_load corelib es_doblock corelib/noisy_on es_makepublic ven_landmine es_makepublic ven_mine_ver es_keygroupdelete landmine es_keygroupcreate landmine es_keygroupdelete landmine_progress es_keygroupcreate landmine_progress es_keygroupdelete landmine_howner es_keygroupcreate landmine_howner es_keygroupdelete mine_stats es_keygroupload mine_stats |landmine es_setinfo lm_svtstr 0 es_exists lm_svtstr key mine_stats server_stat if (server_var(lm_svtstr) equalto 0) do { es_keycreate mine_stats server_stat es_keysetvalue mine_stats server_stat total_mines 0 es_keysetvalue mine_stats server_stat total_det 0 } es_setinfo ven_mine_total 0 es_keygetvalue ven_mine_total mine_stats server_stat total_mines es_makepublic ven_mine_total es_setinfo lm_temp "Venjax's Landmine script has been enabled." es_msg #multi #green[Landmine]#default server_var(lm_temp) es_setinfo mine_cnt 0 es_setinfo mine_hudmsg 0 es_setinfo lm_dead 1 es_cexec event_var(userid) alias +mine "!+mine" es_cexec event_var(userid) alias -mine "!-mine" es_keygroupdelete landmine_max es_keygroupcreate landmine_max es_keygroupdelete landmine_msgs es_keygroupcreate landmine_msgs es_keycreate landmine_msgs 0 es_keysetvalue landmine_msgs 0 lmmsg "message Planting mine 00% [" es_keycreate landmine_msgs 1 es_keysetvalue landmine_msgs 1 lmmsg "message Planting mine 16% [=" es_keycreate landmine_msgs 2 es_keysetvalue landmine_msgs 2 lmmsg "message Planting mine 32% [==" es_keycreate landmine_msgs 3 es_keysetvalue landmine_msgs 3 lmmsg "message Planting mine 48% [===" es_keycreate landmine_msgs 4 es_keysetvalue landmine_msgs 4 lmmsg "message Planting mine 64% [====" es_keycreate landmine_msgs 5 es_keysetvalue landmine_msgs 5 lmmsg "message Planting mine 80% [=====" es_keycreate landmine_msgs 6 es_keysetvalue landmine_msgs 6 lmmsg "message Planting mine 96% [======" es_keycreate landmine_msgs 7 es_keysetvalue landmine_msgs 7 lmmsg "message Planting mine 100% [=======]" es_regcmd _landmine_progress "landmine/progress" "Internal landmine command for progress." es_xsetinfo landmine_lasttime 0 es_xsetinfo landmine_checktime 0 es_setinfo lm_tm 0 es_setinfo lm_tmm 0 es_setinfo lm_tmmm 0 es_setinfo lm_x 0 es_setinfo lm_y 0 es_setinfo lm_z 0 es_setinfo lm_xcc 0 es_setinfo lm_ycc 0 es_setinfo lm_zcc 0 es_setinfo lm_agx 0 es_setinfo lm_agy 0 es_setinfo lm_agz 0 es_setinfo lm_rgx 0 es_setinfo lm_rgy 0 es_setinfo lm_ugz 0 es_setinfo lm_lgx 0 es_setinfo lm_lgy 0 es_setinfo lm_dgz 0 es_setinfo lm_rgxx 0 es_setinfo lm_lgxx 0 es_setinfo lm_rgyy 0 es_setinfo lm_lgyy 0 es_setinfo lm_ugzz 0 es_setinfo lm_dgzz 0 es_setinfo lm_att 0 es_setinfo lm_cgx 0 es_setinfo lm_cgy 0 es_setinfo lm_cgz 0 es_setinfo lm_tstr 0 es_setinfo lm_tmmm 0 es_setinfo lm_xxxxx 0 es_xdoblock landmine/config } block unload { es_setinfo ven_landmine 0 es_keygroupdelete landmine es_doblock corelib/noisy_off es_keygroupsave mine_stats |landmine } event player_activate { es_keycreate landmine_howner event_var(es_steamid) if (event_var(es_steamid) notequalto "BOT") do { es_give event_var(userid) weapon_smokegrenade es_xkeygroupdelete smokey es_xcreateentitylist smokey weapon_smokegrenade es_xforeachkey smokeindex in smokey "es_xdoblock landmine/findownerindex" es_exists lm_tstr key mine_stats event_var(es_steamid) if (server_var(lm_tstr) equalto 0) do { es_keycreate mine_stats event_var(es_steamid) es_keysetvalue mine_stats event_var(es_steamid) total_mines 0 es_keysetvalue mine_stats event_var(es_steamid) total_det 0 } } } block findownerindex { es_setinfo smokestate 0 es_setinfo smoketeam 0 es_setinfo smokeowner 0 es_getindexprop smoketeam server_var(smokeindex) "CBaseEntity.m_iTeam" if (server_var(smoketeam) < 2) do { es_getindexprop smokeowner server_var(smokeindex) "CSmokeGrenade.baseclass.baseclass.baseclass.m_hOwner" es_xstring smokeowner replace 1 "!" es_xstring smokeowner replace 2 "@" es_xstring smokeowner replace 3 "#" es_xstring smokeowner replace 4 "$" es_xstring smokeowner replace 5 "r" es_xstring smokeowner replace 6 "^" es_xstring smokeowner replace 7 "&" es_xstring smokeowner replace 8 "*" es_xstring smokeowner replace 9 "(" es_xstring smokeowner replace 0 ")" es_format smokeowner "%1 " server_var(smokeowner) es_keycreate landmine_howner event_var(es_steamid) es_keysetvalue landmine_howner event_var(es_steamid) howner server_var(smokeowner) es_keysetvalue landmine_howner event_var(es_steamid) "isdead" 1 es_give event_var(userid) player_weaponstrip es_fire event_var(userid) player_weaponstrip Strip } } event player_spawn { if (event_var(es_steamid) notequalto "BOT") do { es_fire event_var(userid) env_explosion kill es_setinfo lm_dead 0 es_cexec event_var(userid) alias +mine "!+mine" es_cexec event_var(userid) alias -mine "!-mine" es_setplayerprop event_var(userid) "CBasePlayer.m_fFlags" 66177 //unfreeze player } es_keysetvalue landmine_howner event_var(es_steamid) "isdead" 0 } event round_start { if (server_var(ven_landmine) = 1) do { if (server_var(landmine_announce) = 1) do { es_msg #multi #green[Landmine] #defaultBind a key to +mine to lay mines. Use !minehelp for more info. es_keygroupdelete landmine es_keygroupcreate landmine es_cexec event_var(userid) alias +mine "!+mine" es_cexec event_var(userid) alias -mine "!-mine" es_keysetvalue landmine_max 2 current 0 es_keysetvalue landmine_max 3 current 0 } } } event player_death { es_keydelete landmine_progress event_var(es_steamid) es_keysetvalue landmine_howner event_var(es_steamid) "isdead" 1 } event es_client_command { if (event_var(command) = "!+mine") do { es_setinfo landmine_team event_var(es_userteam) if (server_var(landmine_team) equalto 1) do { es_setinfo maxmax server_var(tmax_mines) } else do { es_setinfo maxmax server_var(ctmax_mines) } es_xsetinfo splayer_isdead 0 es_keygetvalue splayer_isdead landmine_howner event_var(es_steamid) "isdead" if (server_var(splayer_isdead) equalto 0) do { es_setinfo lm_lm 0 es_exists lm_lm key landmine event_var(es_steamid) if (server_var(lm_lm) equalto 0) do { es_xsetinfo lm_xxxxx 0 es_keygetvalue lm_xxxxx landmine_max server_var(landmine_team) current if (server_var(lm_xxxxx) >= server_var(maxmax) do { es_tell event_var(userid) #multi #green[Landmine] #defaultYour team has planted too many mines. es_tell event_var(userid) #multi #green[Landmine] #defaultWait for them to be removed or detonated to plant more. } else do { es_cexec event_var(userid) -duck es_sexec event_var(userid) -duck es_delayed 0.5 es_xsetplayerprop event_var(userid) "CBasePlayer.m_fFlags" 32.0 //freeze player es_keycreate landmine_progress event_var(es_steamid) es_keysetvalue landmine_progress event_var(es_steamid) progress 0 es_setinfo landmine_user event_var(es_steamid) es_getplayerlocation lm_agx lm_agy lm_agz event_var(userid) es _landmine_progress event_var(es_steamid) } else do { es_tell event_var(userid) #multi #green[Landmine] #defaultYou may only plant 1 mine at a time. } } else do { es_tell event_var(userid) #multi #green[Landmine] #defaultYou may only plant mines while alive. } } } if (event_var(command) = "!-mine") do { es_keydelete landmine_progress event_var(es_steamid) es_setplayerprop event_var(userid) "CBasePlayer.m_fFlags" 66177 //unfreeze player es_delayed 0.6 es_xsetplayerprop event_var(userid) "CBasePlayer.m_fFlags" 66177 //unfreeze player es_delayed 1 es_cexec event_var(userid) +duck es_delayed 1 es_cexec event_var(userid) -duck } if (event_var(command) equalto "!mineremove") do { es_setinfo lm_lmx 0 es_exists lm_lmx key landmine event_var(es_steamid) if (server_var(lm_lmx) equalto 1) do { es_keydelete landmine event_var(es_steamid) es_tell event_var(userid) #multi #green[Landmine] #defaultYou have removed your landmine. es_setinfo lm_yrmne 0 es_setinfo lm_svmne 0 es_setinfo lm_xxxxx 0 es_keygetvalue lm_yrmne mine_stats server_var(landmine_user) total_mines es_keygetvalue lm_svmne mine_stats server_stat total_mines es_keygetvalue lm_xxxxx landmine_max event_var(es_userteam) current es_math lm_xxxxx - 1 es_math lm_yrmne - 1 es_math lm_svmne - 1 es_keysetvalue mine_stats server_var(landmine_user) total_mines server_var(lm_yrmne) es_keysetvalue mine_stats server_stat total_mines server_var(lm_svmne) es_keysetvalue landmine_max event_var(es_userteam) current server_var(lm_xxxxx) } else do { es_tell event_var(userid) #multi #green[Landmine] #defaultYou have not planted a landmine. } } } event player_say { if (event_var(text) equalto "!mineremove") do { es_setinfo lm_lmx 0 es_exists lm_lmx key landmine event_var(es_steamid) if (server_var(lm_lmx) equalto 1) do { es_keydelete landmine event_var(es_steamid) es_tell event_var(userid) #multi #green[Landmine] #defaultYou have removed your landmine. es_setinfo lm_yrmne 0 es_setinfo lm_svmne 0 es_setinfo lm_xxxxx 0 es_keygetvalue lm_yrmne mine_stats server_var(landmine_user) total_mines es_keygetvalue lm_svmne mine_stats server_stat total_mines es_keygetvalue lm_xxxxx landmine_max event_var(es_userteam) current es_math lm_xxxxx - 1 es_math lm_yrmne - 1 es_math lm_svmne - 1 es_keysetvalue mine_stats server_var(landmine_user) total_mines server_var(lm_yrmne) es_keysetvalue mine_stats server_stat total_mines server_var(lm_svmne) es_keysetvalue landmine_max event_var(es_userteam) current server_var(lm_xxxxx) } else do { es_tell event_var(userid) #multi #green[Landmine] #defaultYou have not planted a landmine. } } if (event_var(text) equalto "!minehelp") do { es_menu 10 event_var(userid) "[Landmine Help]\nBind a key to +mine in console.\nEx. Hit ~ key and type Bind T +mine\nOnly 1 mine at a time.\nWalk slowly with shift to avoid mines.\nSay !mineremove to relocate your mine.\n!mineremove is bindable also.\nSay !minestats for more info." } if (event_var(text) equalto "!minestats") do { es_setinfo lm_yrmne 0 es_setinfo lm_svmne 0 es_setinfo lm_yrmne2 0 es_setinfo lm_svmne2 0 es_setinfo lm_stats_msg 0 es_keygetvalue lm_yrmne mine_stats event_var(es_steamid) total_mines es_keygetvalue lm_svmne mine_stats server_stat total_mines es_keygetvalue lm_yrmne2 mine_stats event_var(es_steamid) total_det es_keygetvalue lm_svmne2 mine_stats server_stat total_det es_format lm_stats_msg "[Landmine Stats]\n->You have planted %1 landmines\n%2 landmines have been detonated.\nTotal mines planted on server: %3\nTotal mines detonated on server: %4\n" server_var(lm_yrmne) server_var(lm_yrmne2) server_var(lm_svmne) server_var(lm_svmne2) es_menu 7 event_var(userid) server_var(lm_stats_msg) } } block progress { es_xgetargv landmine_user 1 es_keygetvalue mine_cnt landmine_progress server_var(landmine_user) progress es_xsetinfo dismsg 0 es_keygetvalue dismsg landmine_msgs server_var(mine_cnt) lmmsg es_xsetinfo lm_chkr 0 es_exists lm_chkr key landmine_progress server_var(landmine_user) if (server_var(lm_chkr) equalto 1) do { es_xsetinfo landmine_userid 0 es_xsetinfo landmine_name 0 es_getuserid landmine_userid server_var(landmine_user) es_getplayername landmine_name server_var(landmine_userid) es_give server_var(landmine_userid) env_hudhint es_fire server_var(landmine_userid) env_hudhint addoutput server_var(dismsg) es_fire server_var(landmine_userid) env_hudhint ShowHudHint es_xmath mine_cnt + 1 es_keysetvalue landmine_progress server_var(landmine_user) progress server_var(mine_cnt) es ma_effect 10 server_var(landmine_team) 0 server_var(lm_agx) server_var(lm_agy) server_var(lm_agz) 16 server_var(lm_size) lightning NULL 0 10 0.3 15 10 0 server_var(prog_clr_red) server_var(prog_clr_green) server_var(prog_clr_blue) 255 0 0 if (server_var(mine_cnt) >= 8) do { es_xdoblock landmine/plant es_keydelete landmine_progress server_var(landmine_user) } else do { es_delayed 0.3 _landmine_progress server_var(landmine_user) } } } block plant { es_xsetinfo lm_xxxxx 0 es_keygetvalue lm_xxxxx landmine_max server_var(landmine_team) current if (server_var(lm_xxxxx) >= server_var(maxmax) do { es_tell event_var(userid) #multi #green[Landmine] #defaultYour team has planted too many mines. es_tell event_var(userid) #multi #green[Landmine] #defaultWait for them to be removed or detonated to plant more. } else do { es_setinfo lm_rgx server_var(lm_agx) es_setinfo lm_rgy server_var(lm_agy) es_setinfo lm_ugz server_var(lm_agz) es_setinfo lm_lgx server_var(lm_agx) es_setinfo lm_lgy server_var(lm_agy) es_setinfo lm_dgz server_var(lm_agz) es_setinfo lm_ugz server_var(lm_ugz) es_setinfo lm_dgz server_var(lm_dgz) es_math lm_rgx + server_var(lm_rad) es_math lm_rgy + server_var(lm_rad) es_math lm_ugz + server_var(lm_rad) es_math lm_lgx - server_var(lm_rad) es_math lm_lgy - server_var(lm_rad) es_math lm_dgz - server_var(lm_rad) es_keycreate landmine server_var(landmine_user) es_keysetvalue landmine server_var(landmine_user) "x" server_var(lm_agx) es_keysetvalue landmine server_var(landmine_user) "y" server_var(lm_agy) es_keysetvalue landmine server_var(landmine_user) "z" server_var(lm_agz) es_keysetvalue landmine server_var(landmine_user) "lx" server_var(lm_lgx) es_keysetvalue landmine server_var(landmine_user) "rx" server_var(lm_rgx) es_keysetvalue landmine server_var(landmine_user) "ly" server_var(lm_lgy) es_keysetvalue landmine server_var(landmine_user) "ry" server_var(lm_rgy) es_keysetvalue landmine server_var(landmine_user) "uz" server_var(lm_ugz) es_keysetvalue landmine server_var(landmine_user) "dz" server_var(lm_dgz) es_keysetvalue landmine server_var(landmine_user) "nme" server_var(landmine_name) if (server_var(landmine_team) equalto 2) do { es_xsetinfo lm_tmm "T" } else do { es_xsetinfo lm_tmm "C" } es_keysetvalue landmine server_var(landmine_user) "team" server_var(lm_tmm) es_cexec server_var(landmine_userid) playgamesound weapons/deagle/de_clipout.wav es_tell server_var(landmine_userid) #multi #green[Landmine] #defaultWalk away slowly... landmine has been planted. es_cexec server_var(landmine_userid) say_team "I planted a mine here." es_setplayerprop server_var(landmine_userid) "CBasePlayer.m_fFlags" 66177 //unfreeze player es_delayed 1 es_cexec server_var(landmine_userid) +duck es_delayed 1 es_cexec server_var(landmine_userid) -duck es_setinfo lm_yrmne 0 es_setinfo lm_svmne 0 es_setinfo lm_xxxxx 0 es_keygetvalue lm_yrmne mine_stats server_var(landmine_user) total_mines es_keygetvalue lm_svmne mine_stats server_stat total_mines es_keygetvalue lm_xxxxx landmine_max server_var(lm_tmm) current es_math lm_xxxxx + 1 es_math lm_yrmne + 1 es_math lm_svmne + 1 es_keysetvalue mine_stats server_var(landmine_user) total_mines server_var(lm_yrmne) es_keysetvalue mine_stats server_stat total_mines server_var(lm_svmne) es_keysetvalue landmine_max server_var(lm_tmm) current server_var(lm_xxxxx) } } event player_footstep { es_xgettime landmine_checktime es_xmath landmine_checktime - 1145000000 if (server_var(landmine_checktime) > server_var(landmine_lasttime)) do { es_xcopy landmine_lasttime landmine_checktime es_xsetinfo landmine_dobeacon 1 } es_xforeachkey lm_miners in landmine "es_xdoblock landmine/looper" es_xsetinfo landmine_dobeacon 0 } block looper { es_keygetvalue lm_tmm "landmine" server_var(lm_miners) "team" if (server_var(landmine_dobeacon) > 0) do { es_keygetvalue lm_x "landmine" server_var(lm_miners) "x" es_keygetvalue lm_y "landmine" server_var(lm_miners) "y" es_keygetvalue lm_z "landmine" server_var(lm_miners) "z" es ma_effect 10 server_var(lm_tmm) 0 server_var(lm_x) server_var(lm_y) server_var(lm_z) 16 server_var(lm_size) lightning NULL 0 10 0.3 15 10 0 server_var(lm_clr_red) server_var(lm_clr_green) server_var(lm_clr_blue) 255 0 0 } es_getplayerlocation lm_cgx lm_cgy lm_cgz event_var(userid) es_keygetvalue lm_rgxx "landmine" server_var(lm_miners) "rx" if (server_var(lm_cgx) <= server_var(lm_rgxx)) do { es_keygetvalue lm_lgxx "landmine" server_var(lm_miners) "lx" if (server_var(lm_cgx) >= server_var(lm_lgxx)) do { es_keygetvalue lm_rgyy "landmine" server_var(lm_miners) "ry" if (server_var(lm_cgy) <= server_var(lm_rgyy)) do { es_keygetvalue lm_lgyy "landmine" server_var(lm_miners) "ly" if (server_var(lm_cgy) >= server_var(lm_lgyy)) do { es_keygetvalue lm_dgzz "landmine" server_var(lm_miners) "dz" if (server_var(lm_cgz) >= server_var(lm_dgzz)) do { es_keygetvalue lm_ugzz "landmine" server_var(lm_miners) "uz" if (server_var(lm_cgz) <= server_var(lm_ugzz)) do { es_setinfo landmine_owner 0 es_keygetvalue landmine_owner landmine_howner server_var(lm_miners) howner es_give event_var(userid) env_explosion es_keygroupdelete landmine_explosions es_createentitylist landmine_explosions env_explosion es_xstring landmine_owner replace "!" 1 es_xstring landmine_owner replace "@" 2 es_xstring landmine_owner replace "#" 3 es_xstring landmine_owner replace "$" 4 es_xstring landmine_owner replace "r" 5 es_xstring landmine_owner replace "^" 6 es_xstring landmine_owner replace "&" 7 es_xstring landmine_owner replace "*" 8 es_xstring landmine_owner replace "(" 9 es_xstring landmine_owner replace ")" 0 es_foreachkey landmine_exp in landmine_explosions "esnq es_xsetindexprop server_var(landmine_exp) CBaseEntity.m_hOwnerEntity server_var(landmine_owner)" es_fire event_var(userid) env_explosion addoutput server_var(lm_imag) es_fire event_var(userid) env_explosion explode es_soon es_keydelete landmine server_var(lm_miners) es_keygetvalue lm_att "landmine" server_var(lm_miners) "nme" es_msg #multi #green[Landmine] #default server_var(lm_att) has just blown up event_var(es_username) with a mine! if (event_var(es_username) notequalto server_var(lm_att)) do { es_xsetinfo lm_yrmne 0 es_xsetinfo lm_svmne 0 es_setinfo lm_xxxxx 0 es_keygetvalue lm_xxxxx landmine_max server_var(lm_tmm) current es_keygetvalue lm_yrmne mine_stats server_var(lm_miners) total_det es_keygetvalue lm_svmne mine_stats server_stat total_det es_xmath lm_yrmne + 1 es_xmath lm_svmne + 1 es_xmath lm_xxxxx - 1 es_keysetvalue mine_stats server_var(lm_miners) total_det server_var(lm_yrmne) es_keysetvalue mine_stats server_stat total_det server_var(lm_svmne) es_keysetvalue landmine_max server_var(lm_tmm) current server_var(lm_xxxxx) } } } } } } } } block round_end { es_keygroupsave mine_stats |landmine es_makepublic ven_mine_total }