////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // // Cadeprotector 1.0a by Stabby@zmmapperz.net // // Requirements eventscripts 1.5+ ,ES_Tools 0.420+ // // Description: Protect barricades via menu and autoprotect against grenade barricade destroy. // //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// block load { // Script configuration: es_xset zm_anti_barricade_destroy 1 // If 1 enables cade menu es_xset zm_anti_barricade_destroy_command "!cade" // Command a player has to say in chat to open barricade menu. es_xset zm_anti_barricade_destroy_he 1 // If 1 immunizes all props against grenade damage on round start es_xset zm_anti_barricade_destroy_teams 1 // 1 both teams, 2 ct only, 3 t only. es_xset zm_anti_barricade_destroy_limit 5 // Amount of times per round a player can use the menu. // Do not edit below this line! popup create cademenu popup addline cademenu "[ZOMBIE] Barricade Protect Menu" popup addline cademenu "->1. Lock target prop" popup addline cademenu "->2. Unlock target prop" popup addline cademenu "3. Quit" popup menuselect cademenu cadeprotector/cade_protector popup timeout cademenu view 10 es_xset bp_userid 0 if (server_var(zm_anti_barricade_destroy) equalto 1) then es_regsaycmd server_var(zm_anti_barricade_destroy_command) cadeprotector/command_cade } block unload { es_unregsaycmd server_var(zm_anti_barricade_destroy_command) } event round_start { foreach player temp_id #alive "es playervar set server_var(temp_id) usedcade 0" if (server_var(zm_anti_barricade_destroy_he) equalto 1) do { es_xgetuserid bp_userid ifx true(bp_userid) do { es_give server_var(bp_userid) filter_damage_type es_fire server_var(bp_userid) filter_damage_type addoutput "targetname bp_nade_damage_filter" es_fire server_var(bp_userid) filter_damage_type addoutput "damagetype 64" es_fire server_var(bp_userid) filter_damage_type addoutput "Negated 1" es_fire server_var(bp_userid) prop_physics* SetDamageFilter "bp_nade_damage_filter" } } } block command_cade { if (server_var(zm_anti_barricade_destroy) equalto 1) do { es_xset cmd_cade_user 0 es_xset cmd_cade_team 0 es_xgetcmduserid cmd_cade_user es_getplayerteam cmd_cade_team server_var(cmd_cade_user) if (server_var(zm_anti_barricade_destroy_teams) == 1) do { if (server_var(cmd_cade_team) != "1") then es_xdoblock cadeprotector/command_cade2 } if (server_var(zm_anti_barricade_destroy_teams) == 2) do { if (server_var(cmd_cade_team) == "3") do { es_xdoblock cadeprotector/command_cade2 } else es_tell server_var(cmd_cade_user) you must be zombie to use this command! } if (server_var(zm_anti_barricade_destroy_teams) == 3) do { if (server_var(cmd_cade_team) == "2") do { es_xdoblock cadeprotector/command_cade2 } else es_tell server_var(cmd_cade_user) you must be human to use this command! } } } block command_cade2 { es_xset cadeisdead 0 es playerget isdead cadeisdead server_var(cmd_cade_user) if (server_var(cadeisdead) == "0") do { es_xset r_cade 0 es playervar get r_cade server_var(cmd_cade_user) usedcade if (server_var(r_cade) lessthan server_var(zm_anti_barricade_destroy_limit)) do { es_xmath r_cade + 1 es playervar set server_var(cmd_cade_user) usedcade server_var(r_cade) es popup send cademenu server_var(cmd_cade_user) } else es_tell server_var(cmd_cade_user) you have already use server_var(zm_anti_barricade_destroy_command) server_var(zm_anti_barricade_destroy_limit) times this round! } else es_tell server_var(cmd_cade_user) you must be alive to use this command! } block cade_protector { es_xsetinfo protected_cade 0 es_xsetinfo player_temp 0 es_getplayername player_temp server_var(_popup_userid) if (server_var(_popup_choice) == 1) do { es est_GetViewProp server_var(_popup_userid) protected_cade if (server_var(protected_cade) > 0) do { es est_setentname server_var(protected_cade) temp_protect es_fire server_var(_popup_userid) temp_protect DisableDamageForces es_delayed 1 est_setentname server_var(protected_cade) ent0 es_fire server_var(_popup_userid) temp_protect SetDamageFilter "bp_nade_damage_filter" es_xset tempcadeplayer 0 foreach player tempcadeplayer #ct "es_tell server_var(tempcadeplayer) #multi #default prop ##green server_var(protected_cade)#default protected by server_var(player_temp)!" } else do { es popup send cademenu server_var(_popup_userid) } } if (server_var(_popup_choice) == 2) do { es est_GetViewProp server_var(_popup_userid) protected_cade if (server_var(protected_cade) > 0) do { es est_setentname server_var(protected_cade) temp_protect es_fire server_var(_popup_userid) temp_protect EnableDamageForces es_delayed 1 est_setentname server_var(protected_cade) ent0 foreach player tempcadeplayer #ct "es_tell server_var(tempcadeplayer) #multi #default prop ##green server_var(protected_cade)#default unprotected by server_var(player_temp)!" } else do { es popup send cademenu server_var(_popup_userid) } } else popup unsendname server_var(_popup_userid) }