rendered paste body// ******************************
// Ven's Landmine Script V0.03
// 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:
// Find way to make mines visable to planter and/or teammates
// Change !plantmine to +plant and add progress/delay bar for planting.
// Fix so that you can plant more than 1 mine each.
// Optimize performance.
// Thank Mattie for helping me write this and bearing with me and my annoyances. <3
// ******************************
block load
{
// create a variable (default to on)
es_setinfo ven_landmine 1
es_setinfo landmine_announce 1
// enable eventscripts_noisy if not already enabled
es_load corelib
es_doblock corelib/noisy_on
// make it public so we can see it via HLSW
es_makepublic ven_landmine
es_keygroupdelete landmine
es_keygroupcreate landmine
es_xdoblock landmine/initoptions
// Announce it.
es_setinfo lm_temp "Ven's Landmine script has been enabled."
es_msg #multi #green[Landmine]#default server_var(lm_temp)
}
block unload
{
es_setinfo ven_landmine 0
es_keygroupdelete landmine
es_doblock corelib/noisy_off
}
// This event is called whenever a new round begins.
event round_start
{
if (server_var(ven_landmine) = 1) do
{
if (server_var(landmine_announce) = 1) do
{
es_msg #multi #green[LandMine] #defaultUse !plantmine to plant landmines.
}
}
}
event player_spawn
{
es_fire event_var(userid) env_explosion kill
}
// This event is called whenever a player types "!plantmine".
event player_say
{
if (event_var(text) equalto "!plantmine") 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_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_getplayerlocation lm_agx lm_agy lm_agz event_var(userid)
es_tell event_var(userid) #multi #green[LandMine] #defaultYou have planted a landmine.
es_tell event_var(userid) #multi #green[LandMine] #defaultMake sure you move away slowly.
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)
//form 'cube' around mine plant spot.
es_math lm_rgx + 30
es_math lm_rgy + 30
es_math lm_ugz + 30
es_math lm_lgx - 30
es_math lm_lgy - 30
es_math lm_dgz - 30
es_keycreate landmine event_var(es_steamid)
es_keysetvalue landmine event_var(es_steamid) "lx" server_Var(lm_lgx)
es_keysetvalue landmine event_var(es_steamid) "rx" server_Var(lm_rgx)
es_keysetvalue landmine event_var(es_steamid) "ly" server_Var(lm_lgy)
es_keysetvalue landmine event_var(es_steamid) "ry" server_Var(lm_rgy)
es_keysetvalue landmine event_var(es_steamid) "uz" server_Var(lm_ugz)
es_keysetvalue landmine event_var(es_steamid) "dz" server_Var(lm_dgz)
es_keysetvalue landmine event_var(es_steamid) "nme" event_var(es_username)
}
else do
{
es_tell event_var(userid) #multi #green[LandMine] #defaultYou may only plant 1 mine at a time.
}
}
if (event_var(text) equalto "!removemine") 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.
}
else do
{
es_tell event_var(userid) #multi #green[LandMine] #defaultYou have not planted a landmine.
}
}
}
event player_footstep
{
es_foreachkey lm_miners in landmine "es_xdoblock landmine/looper"
}
// This block loops through the landmines to see if you are near any of them.
block looper
{
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_keygetvalue lm_lgxx "landmine" server_var(lm_miners) "lx"
es_keygetvalue lm_rgxx "landmine" server_var(lm_miners) "rx"
es_keygetvalue lm_lgyy "landmine" server_var(lm_miners) "ly"
es_keygetvalue lm_rgyy "landmine" server_var(lm_miners) "ry"
es_keygetvalue lm_dgzz "landmine" server_var(lm_miners) "dz"
es_keygetvalue lm_ugzz "landmine" server_var(lm_miners) "uz"
es_keygetvalue lm_att "landmine" server_var(lm_miners) "nme"
es_setinfo lm_cgx 0
es_setinfo lm_cgy 0
es_setinfo lm_cgz 0
es_getplayerlocation lm_cgx lm_cgy lm_cgz event_var(userid)
//This is probably the worst part of my script. But atleast it halfway works.
if (server_var(lm_cgx) <= server_var(lm_rgxx)) do
{
if (server_var(lm_cgx) >= server_var(lm_lgxx)) do
{
if (server_var(lm_cgy) <= server_var(lm_rgyy)) do
{
if (server_var(lm_cgy) >= server_var(lm_lgyy)) do
{
if (server_var(lm_cgz) >= server_var(lm_dgzz)) do
{
if (server_var(lm_cgz) <= server_var(lm_ugzz)) do
{
es_give event_var(userid) env_explosion
es_fire event_var(userid) env_explosion addoutput "imagnitude 80"
es_fire event_var(userid) env_explosion explode
es_soon es_keydelete landmine server_var(lm_miners)
es_msg #multi #green[landMine] #default server_var(lm_att) has just blown up event_var(es_username) with a mine!
}
}
}
}
}
}
}
event round_end
{
}