// // // Stabby props beta 1 by Stabby@zmmapperz.net // // Requirements: Eventscripts 1.5+ // // block load { //////////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Stabby props configuration. es_xset pm_mode 1 // 1 enable all players to use propenu, if 2 admin only es_xset pm_team "2;3" // Teams allowed to use the command (1 = spectator, 2 = zombie, 3 = human) * note follow each by a semicolon es_xset pm_admin_list "" // Place here your admin steamids each followed by a ; (if pm_mode = 2) es_xset pm_credits 1 // If 1 enables credit system. es_xset pm_credits_per_kill 1 // Amount of credits players receive per kill, 0 disables. es_xset pm_credits_rs 1 // Amount of credits player get on round start, 0 disables. es_xset pm_credits_connect 1 // Amount of credits players receive on connect, 0 disables. es_xset pm_credits_spawn 1 // Amount of credits players get on spawn, 0 disables. es_xset pm_advertise_command 100 // Amount of seconds between command advertisement, 0 disables. es_xset pm_command "!prop" // Command a player has to say in chat to open the popup menu es_xset pm_items 8 // Amount of props to display in the menu (8 = max) es_xset pm_title "[ZOMBIE] Propmenu" // Title to display in the propmenu. es_xset pm_method 1 // Method to spawn props: 1: Eventscripts 1.5+, 2: EST Makeentity (requires ESTools) es_xset pm_round_start_timer 15 // Amount of seconds after the round has started players are allowed to use the command. // Cost of each prop (if pm_credits = 1): es_xset pm_prop1_credits 2 es_xset pm_prop2_credits 2 es_xset pm_prop3_credits 2 es_xset pm_prop4_credits 1 es_xset pm_prop5_credits 4 es_xset pm_prop6_credits 3 es_xset pm_prop7_credits 1 es_xset pm_prop8_credits 1 // Names as displayed in the popup: es_xset pm_prop1_name "Vending Machine" es_xset pm_prop2_name "Metal Shelves" es_xset pm_prop3_name "Sofa" es_xset pm_prop4_name "Sofa chair" es_xset pm_prop5_name "Money pallet" es_xset pm_prop6_name "Dryer" es_xset pm_prop7_name "Barrel" es_xset pm_prop8_name "Crate" // Paths to model files: es_xset pm_prop1_model "props/cs_office/vending_machine.mdl" es_xset pm_prop2_model "props/cs_office/shelves_metal.mdl" es_xset pm_prop3_model "props/cs_office/sofa.mdl" es_xset pm_prop4_model "props/cs_office/sofa_chair.mdl" es_xset pm_prop5_model "props/cs_assault/MoneyPallet03.mdl" es_xset pm_prop6_model "props/CS_militia/dryer.mdl" es_xset pm_prop7_model "props/de_train/barrel.mdl" es_xset pm_prop8_model "props/de_nuke/crate_extrasmall.mdl" //////////////////////////////////////////////////////////////////////////////////////////////////////////////// // Do not edit below this line! es_xkeygroupcreate propuserdb es_xdoblock stabbyprops/dopopups es_regsaycmd server_var(pm_command) stabbyprops/command_propmenu es_xset stabbyprops_version "stabbyprop beta 1 (0.1) for: zmmapperz.net" es_xmakepublic stabbyprops_version if (server_var(pm_mode) == 2) do { es_set BASIC_AUTH_ADMIN_LIST server_var(pm_admin_list) es :auth registerCapability "prop_admin" server_var(AUTHSERVICE_ADMIN) } if (server_var(pm_advertise_command) > 0) then repeat create adloop "es_xdoblock stabbyprops/showad" } block dopopups { es_xset tempi2 0 es_xset tempi3 0 es_xset tempi4 0 es_xset tempi5 0 es_xset tempi6 0 es_xset tempi7 0 popup create propmenu es popup addline propmenu server_var(pm_title) if (server_var(pm_items) >= 1) do { es_xset tempi1 0 es_xformatv tempi1 "->1. %1 (%2 Credits)" pm_prop1_name pm_prop1_credits es popup addline propmenu server_var(tempi1) } if (server_var(pm_items) >= 2) do { es_xset tempi2 0 es_xformatv tempi2 "->2. %1 (%2 Credits)" pm_prop2_name pm_prop2_credits es popup addline propmenu server_var(tempi2) } if (server_var(pm_items) >= 3) do { es_xset tempi3 0 es_xformatv tempi3 "->3. %1 (%2 Credits)" pm_prop3_name pm_prop3_credits es popup addline propmenu server_var(tempi3) } if (server_var(pm_items) >= 4) do { es_xset tempi4 0 es_xformatv tempi4 "->4. %1 (%2 Credits)" pm_prop4_name pm_prop4_credits es popup addline propmenu server_var(tempi4) } if (server_var(pm_items) >= 5) do { es_xset tempi5 0 es_xformatv tempi5 "->5. %1 (%2 Credits)" pm_prop5_name pm_prop5_credits es popup addline propmenu server_var(tempi5) } if (server_var(pm_items) >= 6) do { es_xset tempi6 0 es_xformatv tempi6 "->6. %1 (%2 Credits)" pm_prop6_name pm_prop6_credits es popup addline propmenu server_var(tempi6) } if (server_var(pm_items) >= 7) do { es_xset tempi7 0 es_xformatv tempi7 "->7. %1 (%2 Credits)" pm_prop7_name pm_prop7_credits es popup addline propmenu server_var(tempi7) } if (server_var(pm_items) >= 8) do { es_xset tempi8 0 es_xformatv tempi8 "->8. %1 (%2 Credits)" pm_prop8_name pm_prop8_credits es popup addline propmenu server_var(tempi8) } es_xset tm 0 es_xset tm2 0 es_set tm server_var(pm_items) es_xmath tm + 1 es_xformatv tm2 "%1. Quit" tm es popup addline propmenu server_var(tm2) popup menuselect propmenu stabbyprops/prop_selecter } block showad { es_xset tempm 0 es_xformatv tempm "say %1 in chat to spawn props!" es_msg #green server_var(tempm) } block unload { es_xkeygroupdelete propuserdb } event round_start { if (server_var(pm_credits_rs) > 0) do { es_xset temprsid 0 foreach player temprsid #alive "es keymath propuserdb server_var(temprsid) credits + server_var(pm_credits_rs)" } if (server_var(pm_round_start_timer) > 0) do { es_xset roundswitcher 0 es_delayed server_var(pm_round_start_timer) es_xset roundswitcher 1 } if (server_var(pm_advertise_command) > 0) then es repeat start adloop server_var(pm_advertise_command) } event round_end { if (server_var(pm_round_start_timer) > 0) then es_Xset roundswitcher 0 if (server_var(pm_advertise_command) > 0) then repeat stop adloop } event es_map_start { es_xkeygroupdelete propuserdb es_xkeygroupcreate propuserdb } block command_propmenu { es_xset cmd_prop_user 0 es_xset cmd_prop_team 0 es_xgetcmduserid cmd_prop_user es_xset tisdead 0 es playerget isdead tisdead server_var(cmd_prop_user) if (server_var(tisdead) == 0) do { if (server_var(pm_round_start_timer) > 0) do { if (server_var(roundswitcher) == 1) do { es_xdoblock stabbyprops/modechecker } else es_tell server_var(cmd_prop_user) #green you have to wait server_var(pm_round_start_timer) seconds after the round has started to use this command! } if (server_var(pm_round_start_timer) == 0) then es_xdoblock stabbyprops/modechecker } else es_tell server_var(cmd_prop_user) #green you must be alive to use this command! } block modechecker { if (server_var(pm_mode) == 1) do { es_getplayerteam cmd_prop_team server_var(cmd_prop_user) if (server_var(cmd_prop_team) in server_var(pm_team)) do { if (server_var(pm_credits) == 1) then es_xdoblock stabbyprops/displaycredits es popup send propmenu server_var(cmd_prop_user) } else es_tell server_var(cmd_prop_user) #green you must be human to use this command! } if (server_var(pm_mode) == 2) do { es_xgetcmduserid cmd_prop_user es :auth isUseridAuthorized is_admin server_var(cmd_prop_user) "prop_admin" ifx true(is_admin) do { if (server_var(pm_credits) == 1) then es_xdoblock stabbyprops/displaycredits es_getplayerteam cmd_prop_team server_var(cmd_prop_user) if (server_var(cmd_prop_team) in server_var(pm_team)) then es popup send propmenu server_var(cmd_prop_user) } else es_tell server_var(cmd_prop_user) #green you are not authorized to use this command! } } block displaycredits { es_xset tempd 0 es_keygetvalue tempd propuserdb server_var(cmd_prop_user) credits es_tell server_var(cmd_prop_user) #multi #default you have #green server_var(tempd) credits #default left. } block prop_selecter { if (server_var(_popup_choice) == "1") do { es_set propmodel server_var(pm_prop1_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "2") do { es_set propmodel server_var(pm_prop2_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "3") do { es_set propmodel server_var(pm_prop3_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "4") do { es_set propmodel server_var(pm_prop4_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "5") do { es_set propmodel server_var(pm_prop5_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "6") do { es_set propmodel server_var(pm_prop6_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "7") do { es_set propmodel server_var(pm_prop7_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } if (server_var(_popup_choice) == "8") do { es_set propmodel server_var(pm_prop8_model) if (server_var(pm_credits) == "1") then es_xdoblock stabbyprops/mathchecker if (server_var(pm_credits) == "0") then es_xdoblock stabbyprops/spawnprop } } event player_death { es popup unsendname propmenu event_var(userid) if (server_var(pm_credits_per_kill) > 0) do { if (event_var(es_attackerteam) == 3) do { es_xset tempattackersid 0 es_getuserid tempattackersid event_var(es_attackersteamid) es keymath propuserdb server_var(tempattackersid) credits + server_var(pm_credits_per_kill) } } } event player_activate { es_keydelete propuserdb event_var(userid) es_keycreate propuserdb event_var(userid) if (server_var(pm_credits_connect) > 0) then es_keysetvalue propuserdb event_var(userid) credits server_var(pm_credits_connect) } event player_disconnect { es_keydelete propuserdb event_var(userid) } block mathchecker { es_xset mathholder 0 es_xset mathholder2 0 es_keygetvalue mathholder propuserdb server_var(_popup_userid) credits es_set mathholder2 server_var(mathholder) es_xset tempidp 0 es_format tempidp "pm_prop%1_credits" server_var(_popup_choice) es_math mathholder subtract server_var(server_var(tempidp)) if (server_var(mathholder) => 0) do { es_keysetvalue propuserdb server_var(_popup_userid) credits server_var(mathholder) es_xdoblock stabbyprops/spawnprop } else do { es_tell server_var(_popup_userid) #multi #default You have insufficient credits! #green server_var(mathholder2) left. es popup unsendname propmenu server_var(_popup_userid) } } event player_spawn { if (server_var(pm_credits_spawn) > 0) then es_keysetvalue propuserdb event_var(userid) credits server_var(pm_credits_spawn) } block spawnprop { if (server_var(pm_method) == 1) then es_prop_physics_create server_var(_popup_userid) server_var(propmodel) if (server_var(pm_method) == 2) do { es_xset vx 0 es_xset vy 0 es_xset vz 0 es est_getviewcoord server_var(_popup_userid) vx vy vz es est_makeentity prop_physics_multiplayer server_var(propmodel) server_var(vx) server_var(vy) server_var(vz) } if (server_var(pm_credits) == 0) then es_tell server_var(_popup_userid) #multi #default Prop spawned succesfully! if (server_var(pm_credits) == 1) then es_tell server_var(_popup_userid) #multi #default Prop spawned succesfully! #green server_var(mathholder) #default credits left. es_fire server_var(_popup_userid) server_var(eventscripts_lastgive) addoutput "MassScale 1" es popup send propmenu server_var(_popup_userid) }