////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // C4Menu 1.4 by Stabby@zmmapperz.net // // RequirementS: ES1.5+ ESTOOLS 0.418+ // ////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// block load { es_xset c4_cost 10000 // Cost of a C4 Bomb es_xset c4_detonation_delay 3 // Amount of seconds to beeps before detonation. 0 = detonate instantly. es_xset c4_plantrange 250 // Max distance a human can plant bombs. es_xset c4_radius 750 // damage range of the explosion. es_xset c4_magnitude 4000 // Magnitude (damage) of explosion. es_xset c4_score 1 // If 1 allows player to get kills with C4 bombs. es_xset c4_command "!c4" // Command a player has to type in chat for C4Menu. es_xset c4_teams "3" // Teams allowed to use the bomb. 2 = T, 3 = CT, remove or add number to remove access! es_xset c4_suicide_bomb 0 // If 1 allows suicide bombing. es_xset c4_suicide_bomb_score 0 // If 1 allows player to get kills with suicide bombing. es_xset c4_round_switch 15 // How many seconds after round start players are able to use C4. es_xset c4_popup_title "C4Menu" // Title of C4 popup windows. es_xset c4_freeze_bomb 0 // If 1 bomb isnt moveable after being planted. // Dont edit below this line !! es_xload popup es_regsaycmd server_var(c4_command) c4menu/command_c4 es_xdoblock c4menu/dopopups es_regcmd boomer c4menu/cmd_boomer "explodes a c4 bomb" es_regcmd es_saferemove c4menu/removerblock repeat create beepbeep "es_xdoblock c4menu/bleeper" es_xset c4counter 0 es_xset varid 0 foreach player varid #human "es_xdoblock c4menu/cleanplayervars" es_xset c4menu_version "c4menu 1.4 by stabby for zmmapperz.net" es_xmakepublic c4menu_version es_msg #multi #green [C4menu] #default loaded... } block unload { repeat stop beepbeep repeat delete beepbeep es_xset tmpuser 0 es_xgetuserid tmpuser ifx true(tmpuser) do { es_fire server_var(tmpuser) C4PROP Kill es_fire server_var(tmpuser) env_explosion kill } es_xset varid 0 foreach player varid #human "es_xdoblock c4menu/cleanplayervars" popup unsendname c4buymenu #all popup unsendname c4plantmenu #all popup unsendname c4plantmenu2 #all popup delete c4buymenu popup delete c4plantmenu popup delete c4plantmenu2 es_unregsaycmd server_var(c4_command) es_msg #multi #green [C4menu] #default unloaded... } block removerblock { es_xset rindex 0 es_xgetargv rindex 1 if (server_var(rindex) != 0) do { es_xset xvar 0 es_exists xvar keygroup templist if (server_var(xvar) != 0) then es_keygroupdelete templist es_xset temp_key 0 es_createentitylist templist server_var(rindex) es_foreachkey temp_key in templist "es_xdoblock c4menu/safecheck" } } block safecheck { if (server_var(temp_key) == server_var(rindex)) then es_remove server_var(temp_Key) } block dopopups { popup create c4buymenu es popup addline c4buymenu server_var(c4_popup_title) es_xset temppstring 0 es_xformatv temppstring "->1. Buy a bomb ($%1)" c4_cost es popup addline c4buymenu server_var(temppstring) popup addline c4buymenu "0. Close" popup menuselect c4buymenu c4menu/buyblock popup timeout c4buymenu view 10 popup create c4plantmenu es popup addline c4plantmenu server_var(c4_popup_title) popup addline c4plantmenu "->1. Plant your bomb" if (server_var(c4_suicide_bomb) == 1) then popup addline c4plantmenu "->2. Detonate bomb (suicide)" popup addline c4plantmenu "0. Close" popup menuselect c4plantmenu c4menu/plantblock popup timeout c4plantmenu view 10 popup create c4plantmenu2 es popup addline c4plantmenu2 server_var(c4_popup_title) popup addline c4plantmenu2 "->1. Detonate your bomb." popup addline c4plantmenu2 "0. Close" popup menuselect c4plantmenu2 c4menu/detonatorblock } block buyblock { if (server_var(switchit) == 1) do { if (server_var(_popup_choice) == 1) do { es_xset temp_cash 0 es playerget cash temp_cash server_var(_popup_userid) es_math temp_cash subtract server_var(c4_cost) if (server_var(temp_cash) => 0) do { es playervar set server_var(_popup_userid) hasbomb 1 es_emitsound player server_var(_popup_userid) "items/itempickup.wav" 0.8 0.8 es playerset cash server_var(_popup_userid) server_var(temp_cash) es usermsg hudhint server_var(_popup_userid) "You have bought a bomb! \n press 1 to plant it where you are looking!" es popup unsendid c4buymenu server_var(_popup_userid) es popup send c4plantmenu server_var(_popup_userid) } else es_tell server_var(_popup_userid) #green you dont have enough money to buy a bomb! } } } block plantblock { if (server_var(_popup_choice) == 1) do { if (server_var(switchit) == 1) do { es_xset c4_temphasbomb 0 es_xset tempsid 0 es playervar get c4_temphasbomb server_var(_popup_userid) hasbomb if (server_var(c4_temphasbomb) == "1") do { es_xset cx2 0 es_xset cy2 0 es_xset cz2 0 es_xset closeenough 0 es_xset temp_c4_player 0 es_xset tempvect 0 es playerget viewcoord server_var(_popup_userid) cx2 cy2 cz2 es nearcoord temp_c4_player server_var(_popup_userid) server_var(cx2) server_var(cy2) server_var(cz2) server_var(c4_plantrange) server_var(c4_plantrange) server_var(c4_plantrange) "es_xset closeenough 1" if (server_var(closeenough) == "1") do { es_emitsound player server_var(_popup_userid) "weapons/c4/c4_plant.wav" 0.8 0.8 es_xset closeenough 0 es_xset c4index 0 es_xset tempc4n 0 es_xset ti 0 es_precachemodel ti "models/weapons/w_c4_planted.mdl" // EST Method // es est_MakeEntity prop_physics weapons/w_c4_planted.mdl server_var(cx2) server_var(cy2) server_var(cz2) c4index // es est_setentname server_var(c4index) "C4PROP" // ES Method es_prop_physics_create server_var(_popup_userid) weapons/w_c4_planted.mdl es est_setentname server_var(eventscripts_lastgive) "C4PROP" es_set c4index server_var(eventscripts_lastgive) es playervar set server_var(_popup_userid) bombindexer server_var(c4index) if (server_var(c4_freeze_bomb) == 1) do { es_fire server_var(_popup_userid) C4PROP sleep es_fire server_var(_popup_userid) C4PROP DisableMotion es_fire server_var(_popup_userid) C4PROP DisableDamageForces } es_getplayername tempc4n server_var(_popup_userid) es_msg #multi #lightgreen [C4MENU] #default server_var(tempc4n) has planted a bomb! es_emitsound player server_var(_popup_userid) "radio/bombpl.wav" 0.9 1 es_xset tbvec 0 es_createvectorstring tbvec server_var(cx2) server_var(cy2) server_var(cz2) es playervar set server_var(_popup_userid) plantedbomb 1 es playervar set server_var(_popup_userid) hasbomb 0 es popup unsendid c4plantmenu server_var(_popup_userid) es popup send c4plantmenu2 server_var(_popup_userid) } else es_tell server_var(_popup_userid) You cant place a bomb so far away from yourself! } } } if (server_var(_popup_choice) == 2) do { if (server_var(switchit) == 1) do { if (server_var(c4_suicide_bomb) == 1) do { es_xset cx4 0 es_xset cy4 0 es_xset cz4 0 es_getplayerlocation cx4 cy4 cz4 server_var(_popup_userid) es_xformatv crad "iradiusoverride %1" c4_radius es_xformatv cmag "imagnitude %1" c4_magnitude es_entcreate server_var(_popup_userid) env_explosion es_xset lrad 0 es_xformatv lrad "origin %1 %2 %3" cx4 cy4 cz4 es_xmath c4counter + 1 es_xset tempnamer 0 es_xformatv tempnamer "C4EXPLO%1" c4counter es est_setentname server_var(eventscripts_lastgive) server_var(tempnamer) if (server_var(c4_suicide_bomb_score) == 1) do { es_xset c4owner 0 es_getplayerhandle c4owner server_var(_popup_userid) es_setindexprop server_var(eventscripts_lastgive) CbaseEntity.m_hOwnerEntity server_var(c4owner) } es est_god server_var(_popup_userid) 0 es est_damage world server_var(_popup_userid) 9999 es_fire server_var(_popup_userid) server_var(tempnamer) addoutput server_var(crad) es_fire server_var(_popup_userid) server_var(tempnamer) addoutput server_var(lrad) es_fire server_var(_popup_userid) server_var(tempnamer) addoutput "fireballsprite effects/fire_cloud2.vmt" es_fire server_var(_popup_userid) server_var(tempnamer) addoutput server_var(cmag) es_fire server_var(_popup_userid) server_var(tempnamer) addoutput "spawnflags 64" es_fire server_var(_popup_userid) server_var(tempnamer) addoutput "onuser1 !self,kill,-1,1" es_fire server_var(_popup_userid) server_var(tempnamer) OnUser1 es_delayed 0.2 est_Effect 11 #all 0 "Effects/fire_cloud1.vmt" server_var(cx3) server_var(cy3) server_var(cz3) 1 500 es_delayed 0.2 es_fire server_var(_popup_userid) server_var(tempnamer) explode es_delayed 0.5 es_emitsound player server_var(_popup_userid) "weapons/c4/c4_explode1.wav" 1.0 0.5 es playervar set server_var(_popup_userid) hasbomb 0 es playervar set server_var(_popup_userid) bombindexer 0 es playervar set server_var(_popup_userid) plantedbomb 0 } } } } event player_activate { es_xdoblock c4menu/clearev } event player_death { es_xdoblock c4menu/clearev } event player_spawn { es_xdoblock c4menu/clearev } block clearev { es_xset tindex 0 es playervar get tindex event_var(userid) bombindexer if (server_var(tindex) != 0) then es es_saferemove server_var(tindex) es playervar set event_var(userid) hasbomb 0 es playervar set event_var(userid) plantedbomb 0 es playervar set event_var(userid) bombindexer 0 es popup unsendname c4buymenu event_var(userid) es popup unsendname c4plantmenu event_var(userid) es popup unsendname c4plantmenu2 event_var(userid) } event round_start { es_xset switchit 0 if (server_var(c4_round_switch) > 0) do { es_delayed server_var(c4_round_switch) es_xset switchit 1 } else es_xset switchit 1 } event round_end { es_xset varid 0 foreach player varid #human "es_xdoblock c4menu/cleanplayervars" es_xset tmpuser 0 es_xgetuserid tmpuser ifx true(tmpuser) do { es_fire server_var(tmpuser) c4PROP kill es_fire server_var(tmpuser) env_explosion kill } es_xset switchit 0 popup unsendname c4buymenu #all popup unsendname c4plantmenu #all popup unsendname c4plantmenu2 #all } block cleanplayervars { es playervar set server_var(varid) hasbomb 0 es playervar set server_var(varid) bombindexer 0 es playervar set server_var(varid) plantedbomb 0 } block cmd_boomer { es_xset boom_uid 0 es_xset boom_index 0 es_xgetargv boom_uid 1 es_xgetargv boom_index 2 es_xset cx3 0 eS_xset cy3 0 es_xset cz3 0 es_xset tbp2 0 es_getindexprop tbp2 server_var(boom_index) "CBaseEntity.m_vecOrigin" if (server_var(tbp2) != 0) do { if (server_var(switchit) == 1) do { es_xset boom_index2 0 es playervar get boom_index2 server_var(boom_uid) bombindexer if (server_var(boom_index2) == server_var(boom_index)) do { es_splitvectorstring cx3 cy3 cz3 server_var(tbp2) es_xset crad 0 es_xset cmag 0 es_xformatv crad "iradiusoverride %1" c4_radius es_xformatv cmag "imagnitude %1" c4_magnitude es_entcreate server_var(boom_uid) env_explosion es_xset lrad 0 es_xformatv lrad "origin %1 %2 %3" cx3 cy3 cz3 es_xmath c4counter + 1 es_xset tempnamer 0 es_xformatv tempnamer "C4EXPLO%1" c4counter es est_setentname server_var(eventscripts_lastgive) server_var(tempnamer) if (server_var(c4_score) == 1) do { es_xset c4owner 0 es_getplayerhandle c4owner server_var(boom_uid) es_setindexprop server_var(eventscripts_lastgive) CbaseEntity.m_hOwnerEntity server_var(c4owner) } es_fire server_var(boom_uid) server_var(tempnamer) addoutput server_var(crad) es_fire server_var(boom_uid) server_var(tempnamer) addoutput server_var(lrad) es_fire server_var(boom_uid) server_var(tempnamer) addoutput "fireballsprite effects/fire_cloud2.vmt" es_fire server_var(boom_uid) server_var(tempnamer) addoutput server_var(cmag) es_fire server_var(boom_uid) server_var(tempnamer) addoutput "spawnflags 64" es_fire server_var(boom_uid) server_var(tempnamer) addoutput "OnUser1 !self,kill,-1,1" es_fire server_var(boom_uid) server_var(tempnamer) OnUser1 es est_Effect 11 #all 0 "Effects/fire_cloud1.vmt" server_var(cx3) server_var(cy3) server_var(cz3) 1 500 es_fire server_var(boom_uid) server_var(tempnamer) explode es_emitsound entity server_var(boom_index) "weapons/c4/c4_explode1.wav" 1.0 0.5 es_xdoblock c4menu/checkforkey es playervar set server_var(boom_uid) hasbomb 0 es playervar set server_var(boom_uid) plantedbomb 0 es playervar set server_var(boom_uid) bombindexer 0 } } } } block checkforkey { es_xset getter 0 es playervar get getter server_var(boom_uid) bombindexer if (server_var(getter) != 0) then es es_saferemove server_var(getter) } block detonatorblock { if (server_var(switchit) == 1) do { if (server_var(_popup_choice) == 1) do { es_xset planted 0 es playervar get planted server_var(_popup_userid) plantedbomb if (server_var(planted) == 1) do { es est_playplayer server_var(_popup_userid) "buttons/blip2.wav" 1 es_cexec server_var(_popup_userid) "GETOUT" es_xset cx3 0 es_xset cy3 0 es_xset cz3 0 es_xset tempkey 0 es_xset tempindex 0 es_xset tempbombpos 0 es playervar get tempindex server_var(_popup_userid) bombindexer if (server_var(tempindex) > 0) do { if (server_var(c4_detonation_delay) > 0) do { es playervar get tempkey server_var(_popup_userid) bombindexer es repeat start beepbeep 1 server_var(c4_detonation_delay) es_xset tmtime 0 es_set tmtime server_var(c4_detonation_delay) es_xmath tmtime + 1 es_delayed server_var(tmtime) es boomer server_var(_popup_userid) server_var(tempindex) es_delayed server_var(tmtime) repeat stop beepbeep es_tell server_var(_popup_userid) #multi #lightgreen [C4MENU] #default you have detonated your bomb! } else es boomer server_var(_popup_userid) server_var(tempbombpos) server_var(tempindex) } es popup unsendid c4plantmenu2 server_var(_popup_userid) } } } es popup unsendid c4plantmenu2 server_var(_popup_userid) } block bleeper { if (server_var(tempkey) != 0) then es_emitsound entity server_var(tempkey) "weapons/c4/c4_beep1.wav" 1.0 1.0 } block command_c4 { if (server_var(switchit) == 1) do { es_xset c4_uid 0 es_xset c4_sid 0 es_xset c4_team 0 es_getcmduserid c4_uid es_getplayersteamid c4_sid server_var(c4_uid) es_getplayerteam c4_team server_var(c4_uid) if (server_var(c4_team) in server_var(c4_teams)) do { es_xset tisd 0 es playerget isdead tisd server_var(c4_uid) if (server_var(tisd) == 0) do { es_xset c4_temphasbomb 0 es_xset c4_tempplantedbomb 0 es playervar get c4_temphasbomb server_var(c4_uid) hasbomb es playervar get c4_tempplantedbomb server_var(c4_uid) plantedbomb if (server_var(c4_temphasbomb) == 1) do { es popup send c4plantmenu server_var(c4_uid) es usermsg hudhint server_var(c4_uid) "Aim somewhere and press 1 to plant your bomb!" } if (server_var(c4_temphasbomb) == 0) do { if (server_var(c4_tempplantedbomb) == 1) do { es popup send c4plantmenu2 server_var(c4_uid) } else es popup send c4buymenu server_var(c4_uid) } } else es_tell server_var(c4_uid) #green you must be alive to use this command! } else es_tell server_var(c4_uid) #green you must be on the other team to use this command! } else es_tell server_var(c4_uid) #green you must wait server_var(c4_round_switch) seconds after the round has started to use this command! }