// ****************************** // 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_keygroupdelete landmine_progress es_keygroupcreate landmine_progress // Announce it. es_setinfo lm_temp "Ven'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 } block unload { es_setinfo ven_landmine 0 es_keygroupdelete landmine es_doblock corelib/noisy_off } event player_spawn { es_fire event_var(userid) env_explosion kill } // 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. es_keygroupdelete landmine es_keygroupcreate landmine } } } // This event is called whenever a player uses !plantmine". event player_say { if (event_var(text) equalto "!plantmine") do { es_msg server_var(mine_cnt) Starts here es_setinfo lm_lm 0 es_exists lm_lm key landmine event_var(es_steamid) if (server_var(lm_lm) equalto 0) do { 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_xdoblock landmine/progress //while "server_var(mine_cnt) < 8" "es_xdoblock landmine/progress" } 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_delayed 3.0 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. } } } block progress { es_keygetvalue mine_cnt landmine_progress server_var(landmine_user) progress if (server_var(mine_cnt) = 0) do { es_format mine_hudmsg "message Planting mine" } if (server_var(mine_cnt) = 1) do { es_format mine_hudmsg "message Planting mine o" } if (server_var(mine_cnt) = 2) do { es_format mine_hudmsg "message Planting mine oo" } if (server_var(mine_cnt) = 3) do { es_format mine_hudmsg "message Planting mine ooo" } if (server_var(mine_cnt) = 4) do { es_format mine_hudmsg "message Planting mine oooo" } if (server_var(mine_cnt) = 5) do { es_format mine_hudmsg "message Planting mine ooooo" } if (server_var(mine_cnt) = 6) do { es_format mine_hudmsg "message Planting mine oooooo" } if (server_var(mine_cnt) = 7) do { es_format mine_hudmsg "message Planting mine ooooooo" } if (server_var(mine_cnt) >= 8) do { es_format mine_hudmsg "message Mine Planted" } es_setinfo lastmine_userid 0 es_setinfo lastmine_name 0 es_getuserid lastmine_userid server_var(lastmine_user) es_getplayername lastmine_name server_var(lastmine_userid) es_give server_var(lastmine_userid) env_hudhint es_fire server_var(lastmine_userid) env_hudhint addoutput server_var(mine_hudmsg) es_fire server_var(lastmine_userid) env_hudhint ShowHudHint es_math mine_cnt + 1 es_keysetvalue landmine_progress server_var(landmine_user) progress server_var(mine_cnt) if (server_var(mine_cnt) >= 8) do { es_xdoblock landmine/plant es_keydelete landmine_progress server_var(landmine_user) } else do { es_delayed 1 es_xsetinfo landmine_user server_var(landmine_user) es_delayed 1 es_xdoblock landmine/progress } } block plant { 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 server_var(lastmine_userid) 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 server_var(landmine_user) 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(lastmine_name) } 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 { }