rendered paste body// ******************************
// 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
}