From 81f79c51cacb0652f22bfe56a0a139ff11f1b7ff Mon Sep 17 00:00:00 2001 From: BotoX <botox@botox.bz> Date: Sun, 19 Mar 2017 00:33:45 +0100 Subject: [PATCH] New plugin: MapAdmin --- MapAdmin/configs/MapAdmin.cfg | 2965 ++++++++++++++++++++++++++++++++ MapAdmin/scripting/MapAdmin.sp | 342 ++++ 2 files changed, 3307 insertions(+) create mode 100644 MapAdmin/configs/MapAdmin.cfg create mode 100644 MapAdmin/scripting/MapAdmin.sp diff --git a/MapAdmin/configs/MapAdmin.cfg b/MapAdmin/configs/MapAdmin.cfg new file mode 100644 index 00000000..02ba7cc7 --- /dev/null +++ b/MapAdmin/configs/MapAdmin.cfg @@ -0,0 +1,2965 @@ +"maps" +{ + "ze_Ancient_wrath_v1_fix2" + { + "adminroom" "-1446.649292 2565.642822 70.031311" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#1100931:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#1100968:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#1100986:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#1100992:Press" + } + } + } + } + + "ze_avalanche_b6" + { + "adminroom" "-6611.015137 -10353.966797 -1093.947510" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#1442088:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#1442207:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#1442267:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#1442260:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "#1442384:Press" + } + } + } + } + + "ze_castlevania_v1_3" + { + "adminroom" "286.144928 -395.411438 -8023.295898" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#842009:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#842353:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#842367:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#842381:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "#842395:Press" + } + } + "6" + { + "name" "Stage 6" + "triggers" + { + "0" "6" + } + "actions" + { + "0" "#842409:Press" + } + } + } + } + + "ze_christmas_beta3f" + { + "adminroom" "1350.582886 -2878.954346 459.998840" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#483691:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "1" "#483685:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "1" "#483663:Press" + } + } + "3" + { + "name" "Added NORMAL MODE" + "triggers" + { + "0" "normal+" + } + "actions" + { + "0" "#968314:Press" + } + } + "4" + { + "name" "Added EXTREME MODE" + "triggers" + { + "0" "extreme+" + } + "actions" + { + "0" "#968338:Press" + } + } + } + } + + "ze_fapescape_rote_v1_3f" + { + "adminroom" "12.488744 15103.370117 1504.031250" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#269908:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#269897:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + "1" "normal3" + } + "actions" + { + "0" "#269894:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + "1" "extreme1" + } + "actions" + { + "0" "#269947:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + "1" "extreme2" + } + "actions" + { + "0" "#269986:Press" + } + } + "5" + { + "name" "Stage 6" + "triggers" + { + "0" "6" + "1" "extreme3" + } + "actions" + { + "0" "#269989:Press" + } + } + } + } + + "ze_ffvii_cosmo_canyon_v5c3" + { + "adminroom" "6665.342773 -6283.459473 66.240921" + "stages" + { + "0" + { + "name" "Normal" + "triggers" + { + "0" "1" + "1" "normal" + } + "actions" + { + "0" "#710694:Press" + } + } + "1" + { + "name" "Hard" + "triggers" + { + "0" "2" + "1" "hard" + } + "actions" + { + "0" "#710749:Press" + } + } + "2" + { + "name" "Extreme" + "triggers" + { + "0" "3" + "1" "extreme" + "2" "ex" + } + "actions" + { + "0" "#710753:Press" + } + } + "3" + { + "name" "Rage" + "triggers" + { + "0" "4" + "1" "rage" + } + "actions" + { + "0" "#1083748:Press" + } + } + "4" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "2" "zombie" + } + "actions" + { + "0" "#710757:Press" + } + } + } + } + + "ze_FFVII_temple_ancient_v3" + { + "adminroom" "-5275.780273 -2190.979980 -407.968689" + "stages" + { + "0" + { + "name" "Normal 1" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#4228281:Press" + } + } + "1" + { + "name" "Normal 2" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#4228290:Press" + } + } + "2" + { + "name" "Extreme" + "triggers" + { + "0" "3" + "1" "ex1" + "2" "extreme1" + "3" "extreme" + "4" "ex" + } + "actions" + { + "0" "#4228295:Press" + } + } + "3" + { + "name" "Extreme 2" + "triggers" + { + "0" "4" + "1" "ex2" + "2" "extreme2" + } + "actions" + { + "0" "#4228277:Press" + } + } + } + } + + "ze_FFXII_Feywood_b3_1" + { + "adminroom" "689.568054 -3759.504150 3168.031250" + "stages" + { + "0" + { + "name" "Easy" + "triggers" + { + "0" "1" + "1" "easy" + } + "actions" + { + "0" "#2433439:Press" + } + } + "1" + { + "name" "Normal" + "triggers" + { + "0" "2" + "1" "normal" + } + "actions" + { + "0" "#2433436:Press" + } + } + "2" + { + "name" "Hard" + "triggers" + { + "0" "3" + "1" "hard" + } + "actions" + { + "0" "#2433433:Press" + } + } + "3" + { + "name" "Extreme" + "triggers" + { + "0" "4" + "1" "extreme" + "2" "ex" + } + "actions" + { + "0" "#2433430:Press" + } + } + "4" + { + "name" "Legend" + "triggers" + { + "0" "5" + "1" "legend" + } + "actions" + { + "0" "#2433427:Press" + } + } + "5" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "1" "zombie" + } + "actions" + { + "0" "#2433424:Press" + } + } + } + } + + "ze_FFXII_Paramina_Rift_v1_4" + { + "adminroom" "-13049.566406 1272.054077 128.031311" + "stages" + { + "0" + { + "name" "Normal" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#867908:Press" + } + } + "1" + { + "name" "Normal 2" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#867942:Press" + } + } + "2" + { + "name" "Insane" + "triggers" + { + "0" "3" + "1" "insane" + } + "actions" + { + "0" "#867932:Press" + } + } + "3" + { + "name" "Insane 2" + "triggers" + { + "0" "4" + "1" "insane2" + } + "actions" + { + "0" "#867947:Press" + } + } + } + } + + "ze_gris_css" + { + "adminroom" "306.926575 2363.775146 6426.031250" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#340112:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#339967:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#340048:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#542058:Press" + } + } + } + } + + "ze_fapescape_v1_2" + { + "adminroom" "-9217.688477 -8193.571289 576.031311" + "stages" + { + "0" + { + "name" "Nomral 1" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#2722:Press" + } + } + "1" + { + "name" "Normal 2" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#2724:Press" + } + } + "2" + { + "name" "Normal 3" + "triggers" + { + "0" "3" + "1" "normal3" + } + "actions" + { + "0" "#2726:Press" + } + } + "4" + { + "name" "Extreme 1" + "triggers" + { + "0" "4" + "1" "extreme" + "2" "ex" + "3" "ex1" + } + "actions" + { + "0" "#4470:Press" + } + } + "5" + { + "name" "Extreme 2" + "triggers" + { + "0" "5" + "1" "extreme2" + "2" "ex2" + } + "actions" + { + "0" "#4468:Press" + } + } + "6" + { + "name" "Extreme 3" + "triggers" + { + "0" "6" + "1" "extreme3" + "2" "ex3" + } + "actions" + { + "0" "#4472:Press" + } + } + } + } + + "ZE_FFVII_Mako_Reactor_V6_B08" + { + "adminroom" "2676.47 -2681.79 409.15" + "stages" + { + "0" + { + "name" "Easy" + "triggers" + { + "0" "1" + "1" "easy" + } + "actions" + { + "0" "#2327237:Press" + } + } + "1" + { + "name" "Normal" + "triggers" + { + "0" "2" + "1" "normal" + } + "actions" + { + "0" "#2327234:Press" + } + } + "2" + { + "name" "Hard" + "triggers" + { + "0" "3" + "1" "hard" + } + "actions" + { + "0" "#2327231:Press" + } + } + "4" + { + "name" "Extreme" + "triggers" + { + "0" "4" + "1" "extreme" + "2" "ex" + } + "actions" + { + "0" "#2327228:Press" + } + } + "5" + { + "name" "Insane" + "triggers" + { + "0" "5" + "1" "insane" + } + "actions" + { + "0" "#2327225:Press" + } + } + "6" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "1" "zombie" + } + "actions" + { + "0" "#2326977:Press" + } + } + } + } + + "ze_FFVII_Mako_Reactor_v5_3" + { + "adminroom" "-4579.24 -3607.97 1281.53" + "stages" + { + "0" + { + "name" "Normal" + "triggers" + { + "0" "1" + "1" "normal" + } + "actions" + { + "0" "#140688:Press" + } + } + "1" + { + "name" "Hard" + "triggers" + { + "0" "2" + "1" "hard" + } + "actions" + { + "0" "#140684:Press" + } + } + "2" + { + "name" "Extreme" + "triggers" + { + "0" "3" + "1" "extreme" + "2" "ex" + "3" "ex1" + } + "actions" + { + "0" "#140680:Press" + } + } + "3" + { + "name" "Extreme 2" + "triggers" + { + "0" "4" + "1" "extreme2" + "3" "ex2" + } + "actions" + { + "0" "#140676:Press" + } + } + "4" + { + "name" "ZM Mode" + "triggers" + { + "0" "zombie" + "1" "zm" + } + "actions" + { + "0" "#140668:Press" + } + } + } + } + + "ze_FFXII_Westersand_v7_2" + { + "adminroom" "-3232.12 -2758.98 2440.66" + "stages" + { + "0" + { + "name" "Normal" + "triggers" + { + "0" "1" + "1" "normal" + } + "actions" + { + "0" "#257297:Press" + } + } + "1" + { + "name" "Hard" + "triggers" + { + "0" "2" + "1" "hard" + } + "actions" + { + "0" "#257302:Press" + } + } + "2" + { + "name" "Extreme" + "triggers" + { + "0" "3" + "1" "ex" + "2" "extreme" + } + "actions" + { + "0" "#257307:Press" + } + } + "4" + { + "name" "Epic" + "triggers" + { + "0" "4" + "1" "epic" + } + "actions" + { + "0" "#257312:Press" + } + } + "5" + { + "name" "God" + "triggers" + { + "0" "5" + "1" "god" + } + "actions" + { + "0" "#257317:Press" + } + } + "6" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "1" "zombie" + } + "actions" + { + "0" "#257322:Press" + } + } + } + } + + "ze_FFXII_Westersand_v8zeta1" + { + "adminroom" "-9388.13 -2761.42 2445.43" + "stages" + { + "0" + { + "name" "Hard" + "triggers" + { + "0" "1" + "1" "hard" + } + "actions" + { + "0" "#257302:Press" + } + } + "1" + { + "name" "Extreme" + "triggers" + { + "0" "2" + "1" "ex" + "2" "extreme" + } + "actions" + { + "0" "#257307:Press" + } + } + "2" + { + "name" "Epic" + "triggers" + { + "0" "3" + "1" "epic" + } + "actions" + { + "0" "#257312:Press" + } + } + "4" + { + "name" "God" + "triggers" + { + "0" "4" + "1" "god" + } + "actions" + { + "0" "#257317:Press" + } + } + "5" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "1" "zombie" + } + "actions" + { + "0" "#3098636:Press" + } + } + "6" + { + "name" "Added INSANE DIFFICULTY" + "triggers" + { + "0" "insane+" + "1" "addinsane" + } + "actions" + { + "0" "#257280:Press" + } + } + "7" + { + "name" "Removed INSANE DIFFICULTY" + "triggers" + { + "0" "insane-" + "1" "reminsane" + } + "actions" + { + "0" "#3078868:Press" + } + } + "8" + { + "name" "Event Mode" + "triggers" + { + "0" "event" + } + "actions" + { + "0" "#3078876:Press" + } + } + } + } + + "ze_harry_potter_v1_3" + { + "adminroom" "13483.09 6717.95 11890.92" + } + + "ze_harry_potter_v2_1" + { + "adminroom" "13501.326172 6999.011230 11886.922852" + } + + "ze_infected_sewers_v6_2" + { + "adminroom" "-5249.76 3126.35 446.41" + "stages" + { + "0" + { + "name" "Easy" + "triggers" + { + "0" "1" + "1" "easy" + } + "actions" + { + "0" "#1598086:Press" + } + } + "1" + { + "name" "Normal" + "triggers" + { + "0" "2" + "1" "normal" + } + "actions" + { + "0" "#1598090:Press" + } + } + "2" + { + "name" "Hard" + "triggers" + { + "0" "3" + "1" "hard" + } + "actions" + { + "0" "#1598094:Press" + } + } + } + } + + "ze_l0v0l_a7" + { + "adminroom" "-14473.577148 -14502.405273 -969.968689" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#131:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#142:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#149:Press" + } + } + } + } + + "ze_lila_panic_escape_v3_1" + { + "adminroom" "-1813.513916 945.182617 -69" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#216150:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#216190:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#216194:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#216198:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "#216202:Press" + } + } + "5" + { + "name" "Stage 6" + "triggers" + { + "0" "6" + } + "actions" + { + "0" "#216206:Press" + } + } + "6" + { + "name" "Stage 7" + "triggers" + { + "0" "7" + } + "actions" + { + "0" "#216210:Press" + } + } + "7" + { + "name" "Stage 8" + "triggers" + { + "0" "8" + } + "actions" + { + "0" "#216214:Press" + } + } + "8" + { + "name" "Stage 9" + "triggers" + { + "0" "9" + } + "actions" + { + "0" "#216218:Press" + } + } + + } + } + + "ze_LOTR_Isengard_v2_3" + { + "adminroom" "3476.222900 -428.928711 -36.733688" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#4028283:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#4028292:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#4028300:Press" + } + } + } + } + + "ze_lotr_minas_tirith_v2_2fix" + { + "adminroom" "12978.165039 -2229.674805 12512.031250" + } + + "ze_lotr_minas_tirith_v3_5" + { + "adminroom" "12978.165039 -2229.674805 12512.031250" + "stages" + { + "0" + { + "name" "Normal 1" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#6231276:Press" // stage 1 button + "1" "#6939367:Press" // rm extreme button + } + } + "1" + { + "name" "Normal 2" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#5154340:Press" // stage 2 button + "1" "#6939367:Press" // rm extreme button + } + } + "2" + { + "name" "Normal 3" + "triggers" + { + "0" "3" + "1" "normal3" + } + "actions" + { + "0" "#5154373:Press" // stage 3 button + "1" "#6939367:Press" // rm extreme button + } + } + "3" + { + "name" "Normal 4" + "triggers" + { + "0" "4" + "1" "normal4" + } + "actions" + { + "0" "#5154280:Press" // stage 4 button + "1" "#6939367:Press" // rm extreme button + } + } + "4" + { + "name" "Extreme 1" + "triggers" + { + "0" "5" + "1" "ex1" + "2" "ex" + "3" "etreme" + "4" "extreme1" + } + "actions" + { + "0" "#6231276:Press" // stage 1 button + "1" "#5154576:Press" // extreme button + } + } + "5" + { + "name" "Extreme 2" + "triggers" + { + "0" "6" + "1" "ex2" + "2" "extreme2" + } + "actions" + { + "0" "#5154340:Press" // stage 2 button + "1" "#5154576:Press" // extreme button + } + } + "6" + { + "name" "Extreme 3" + "triggers" + { + "0" "7" + "1" "ex3" + "2" "extreme3" + } + "actions" + { + "0" "#5154373:Press" // stage 3 button + "1" "#5154576:Press" // extreme button + } + } + "7" + { + "name" "Extreme 4" + "triggers" + { + "0" "8" + "1" "ex4" + "2" "extreme4" + } + "actions" + { + "0" "#5154280:Press" // stage 4 button + "1" "#5154576:Press" // extreme button + } + } + } + } + + "ze_minecraft_adventure_v1_2c" + { + "adminroom" "268.823669 -921.844055 6064.031250" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#185465:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#185473:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#185478:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#185483:Press" + } + } + } + } + + "ze_paper_escaper_v7" + { + "adminroom" "266.188873 -446.516846 240.031311" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#3780:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#3782:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#3784:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#3841:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "#3784:Press" + } + } + "5" + { + "name" "Stage 6" + "triggers" + { + "0" "6" + } + "actions" + { + "0" "#3841:Press" + } + } + } + } + + "ze_pirates_port_royal_v3_6" + { + "adminroom" "-2672.09 5697.04 -531.09" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#2769:Press" + } + } + "1" + { + "name" "Level 2: >> CANNON <<" + "triggers" + { + "0" "2" + "1" "cannon" + } + "actions" + { + "0" "#2767:Press" + } + } + "2" + { + "name" "Level 3: >> PIRATE <<" + "triggers" + { + "0" "3" + "1" "pirate" + } + "actions" + { + "0" "#2765:Press" + } + } + "3" + { + "name" "Level 4: >> BARBOSSA <<" + "triggers" + { + "0" "4" + "1" "barbossa" + } + "actions" + { + "0" "#2763:Press" + } + } + "4" + { + "name" "Level 5: >> KRAKEN <<" + "triggers" + { + "0" "5" + "1" "kraken" + } + "actions" + { + "0" "#4490:Press" + } + } + } + } + + "ze_pirates_port_royal_v5_4s2" + { + "adminroom" "-4612.97 9527.14 -366.96" + } + + "ze_lolxd_final_s" + { + "adminroom" "-13556.65 197.77 805.44" + } + + "ze_predator_ultimate_v3" + { + "adminroom" "-2042.76 3029.01 2569.07" + "stages" + { + "0" + { + "name" "Normal" + "triggers" + { + "0" "1" + "1" "normal" + } + "actions" + { + "0" "#3757225:Press" + } + } + "1" + { + "name" "Hard" + "triggers" + { + "0" "2" + "1" "hard" + } + "actions" + { + "0" "#3757222:Press" + } + } + "2" + { + "name" "Hyper" + "triggers" + { + "0" "3" + "1" "hyper" + } + "actions" + { + "0" "#3757219:Press" + } + } + "3" + { + "name" "Ultimate" + "triggers" + { + "0" "4" + "1" "ultimate" + } + "actions" + { + "0" "#3757228:Press" + } + } + } + } + + "ze_prototype_v2" + { + "adminroom" "-347.31 986.22 64.70" + "stages" + { + "0" + { + "name" "Mission 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#115085:Press" + } + } + "1" + { + "name" "Mission 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#115093:Press" + } + } + "2" + { + "name" "Mission 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#115101:Press" + } + } + "3" + { + "name" "ZM Mode" + "triggers" + { + "0" "zm" + "0" "zombie" + } + "actions" + { + "0" "#534460:Press" + } + } + } + } + + "ze_rizomata_z33s" + { + "adminroom" "22.209089 16.095177 -2087.968750" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#570954:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#570976:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#570979:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#948617:Press" + } + } + } + } + + "ze_sandstorm_f" + { + "adminroom" "-9224.30 -8002.10 629.89" + "stages" + { + "0" + { + "name" "Normal 1" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#2722:Press" + } + } + } + } + + "ze_santassination_css2" + { + "adminroom" "-7.021196 -0.119221 11584.031250" + "stages" + { + "0" + { + "name" "Prologue: Death of a king (NORMAL MODE)" + "triggers" + { + "0" "1" + "1" "normal1" + } + "actions" + { + "0" "#57821:Press" // Prologue button + "1" "#2306057:Press" // remove extreme button + } + } + "1" + { + "name" "Act I: Christmas is coming (NORMAL MODE)" + "triggers" + { + "0" "2" + "1" "normal2" + } + "actions" + { + "0" "#57837:Press" // Act I button + "1" "#2306057:Press" // remove extreme button + } + } + "2" + { + "name" "Act II: Coal for everyone (NORMAL MODE)" + "triggers" + { + "0" "3" + "1" "normal3" + } + "actions" + { + "0" "#57840:Press" // Act II button + "1" "#2306057:Press" // remove extreme button + } + } + "3" + { + "name" "Act III: Enging Christmas (NORMAL MODE)" + "triggers" + { + "0" "4" + "1" "normal4" + } + "actions" + { + "0" "#57843:Press" // Act III button + "1" "#2306057:Press" // remove extreme button + } + } + "4" + { + "name" "Prologue: Death of a king (EXTREME MODE)" + "triggers" + { + "0" "5" + "1" "extreme1" + "2" "ex" + "3" "ex1" + } + "actions" + { + "0" "#57821:Press" // Prologue button + "1" "#2219432:Press" // add extreme button + } + } + "5" + { + "name" "Act I: Christmas is coming (EXTREME MODE)" + "triggers" + { + "0" "6" + "1" "extreme2" + "2" "ex2" + } + "actions" + { + "0" "#57837:Press" // Act I button + "1" "#2219432:Press" // add extreme button + } + } + "6" + { + "name" "Act II: Coal for everyone (EXTREME MODE)" + "triggers" + { + "0" "7" + "1" "extreme3" + "2" "ex3" + } + "actions" + { + "0" "#57840:Press" // Act II button + "1" "#2219432:Press" // add extreme button + } + } + "7" + { + "name" "Act III: Enging Christmas (EXTREME MODE)" + "triggers" + { + "0" "8" + "1" "extreme4" + "2" "ex4" + } + "actions" + { + "0" "#57843:Press" // Act III button + "1" "#2219432:Press" // add extreme button + } + } + } + } + + "ze_Serpentis_Temple_v1_1" + { + "adminroom" "-13042.00 -13471.50 -509.16" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#343718:Press" + } + } + "1" + { + "name" "Level 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#343738:Press" + } + } + "2" + { + "name" "Level 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#615958:Press" + } + } + "3" + { + "name" "Level 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#1064597:Press" + } + } + "4" + { + "name" "Level 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "#2071913:Press" + } + } + } + } + + "ze_shroomforest_v4_5" + { + "adminroom" "-1867.50 -1771.51 -126.69" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#182467:Press" + } + } + "1" + { + "name" "Level 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#182493:Press" + } + } + "2" + { + "name" "Level 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#182510:Press" + } + } + "3" + { + "name" "Extreme 1" + "triggers" + { + "0" "4" + "1" "ex1" + "2" "extreme1" + } + "actions" + { + "0" "#1403403:Press" + } + } + "4" + { + "name" "Extreme 2" + "triggers" + { + "0" "5" + "1" "ex2" + "2" "extreme2" + } + "actions" + { + "0" "#1403440:Press" + } + } + "5" + { + "name" "Extreme 3" + "triggers" + { + "0" "6" + "1" "ex3" + "2" "extreme3" + } + "actions" + { + "0" "#1403466:Press" + } + } + } + } + + "ze_shroomforest2_v1" + { + "adminroom" "3730.17 2574.71 1230.34" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#1332:Press" + } + } + "1" + { + "name" "Level 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#1334:Press" + } + } + "2" + { + "name" "Level 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#1336:Press" + } + } + "3" + { + "name" "Extreme 1" + "triggers" + { + "0" "4" + "1" "ex1" + "2" "extreme1" + } + "actions" + { + "0" "#1153758:Press" + } + } + "4" + { + "name" "Extreme 2" + "triggers" + { + "0" "5" + "1" "ex2" + "2" "extreme2" + } + "actions" + { + "0" "#1823:Press" + } + } + "5" + { + "name" "Extreme 3" + "triggers" + { + "0" "6" + "1" "ex3" + "2" "extreme3" + } + "actions" + { + "0" "#1825:Press" + } + } + "6" + { + "name" "The End" + "triggers" + { + "0" "7" + "1" "theend" + "2" "end" + } + "actions" + { + "0" "#635101:Press" + } + } + } + } + + "ze_shroomforest3_b3" + { + "adminroom" "655.395874 5227.343750 5894.031250" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#545062:Press" + } + } + "1" + { + "name" "Level 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#545065:Press" + } + } + "2" + { + "name" "Level 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#545068:Press" + } + } + "3" + { + "name" "Extreme 1" + "triggers" + { + "0" "4" + "1" "ex1" + "2" "extreme1" + } + "actions" + { + "0" "#545130:Press" + } + } + "4" + { + "name" "Extreme 2" + "triggers" + { + "0" "5" + "1" "ex2" + "2" "extreme2" + } + "actions" + { + "0" "#545074:Press" + } + } + "5" + { + "name" "Extreme 3" + "triggers" + { + "0" "6" + "1" "ex3" + "2" "extreme3" + } + "actions" + { + "0" "#545077:Press" + } + } + + } + } + + "ze_slender_escape_b4" + { + "adminroom" "-394.413605 15300.344727 64.031311" + "stages" + { + "0" + { + "name" "Stage 1: >> PRISON <<" + "triggers" + { + "0" "1" + "1" "prison" + } + "actions" + { + "0" "#887486:Press" + } + } + "1" + { + "name" "Stage 2: >> SCHOOL <<" + "triggers" + { + "0" "2" + "1" "school" + } + "actions" + { + "0" "#887489:Press" + } + } + "2" + { + "name" "Stage 3: >> FOREST <<" + "triggers" + { + "0" "3" + "1" "forest" + } + "actions" + { + "0" "#887505:Press" + } + } + "3" + { + "name" "Stage 4: >> MANSION <<" + "triggers" + { + "0" "4" + "1" "mansion" + } + "actions" + { + "0" "#938542:Press" + } + } + "4" + { + "name" "Survival 1" + "triggers" + { + "0" "5" + "1" "zm1" + } + "actions" + { + "0" "#156149:Press" + } + } + "5" + { + "name" "Survival 2" + "triggers" + { + "0" "6" + "1" "zm2" + } + "actions" + { + "0" "#156169:Press" + } + } + "6" + { + "name" "Survival 3" + "triggers" + { + "0" "7" + "1" "zm3" + } + "actions" + { + "0" "#156164:Press" + } + } + "7" + { + "name" "Final Madness Mode" + "triggers" + { + "0" "8" + "0" "final" + } + "actions" + { + "0" "#778562:Press" + } + } + } + } + + "ze_stalker_ultimate_v2_3" + { + "adminroom" "2845.753662 -7843.855957 -5103.968750" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + "1" "Level1" + } + "actions" + { + "0" "#332556:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + "1" "Level2" + } + "actions" + { + "0" "#332550:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + "1" "Level3" + } + "actions" + { + "0" "#332536:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + "1" "Level4" + } + "actions" + { + "0" "#1100216:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + "1" "Level5" + } + "actions" + { + "0" "#1348021:Press" + } + } + } + } + + "ze_stalker_ultimate_v3" + { + "adminroom" "2845.753662 -7843.855957 -5103.968750" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + "1" "Level1" + } + "actions" + { + "0" "#332556:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + "1" "Level2" + } + "actions" + { + "0" "#332550:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + "1" "Level3" + } + "actions" + { + "0" "#332536:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + "1" "Level4" + } + "actions" + { + "0" "#1100216:Press" + } + } + "4" + { + "name" "Stage 5" + "triggers" + { + "0" "5" + "1" "Level5" + } + "actions" + { + "0" "#1348021:Press" + } + } + } + } + + "ze_sunlight_v2_0" + { + "adminroom" "-4858.08 681.00 1663.40" + "stages" + { + "0" + { + "name" "Stage I" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "#452847:Press" + } + } + "1" + { + "name" "Stage II" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "#452832:Press" + } + } + "2" + { + "name" "Stage III" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "#452825:Press" + } + } + "3" + { + "name" "Stage IV" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "#452837:Press" + } + } + "4" + { + "name" "ZM Mode" + "triggers" + { + "0" "zombie" + "1" "zm" + "2" "5" + } + "actions" + { + "0" "#452842:Press" + } + } + } + } + + "ze_tesv_skyrim_v4fix" + { + "adminroom" "508.16 -7632.75 2724.31" + "stages" + { + "0" + { + "name" "Stage 1: >> Helgen <<" + "triggers" + { + "0" "1" + "1" "helgen" + } + "actions" + { + "0" "#6769:Press" + } + } + "1" + { + "name" "Stage 2: >> Whiterun <<" + "triggers" + { + "0" "2" + "1" "whiterun" + } + "actions" + { + "0" "#6771:Press" + } + } + "2" + { + "name" "Stage 3: >> Road To Dwemer Ruins <<" + "triggers" + { + "0" "3" + "1" "road" + } + "actions" + { + "0" "#6777:Press" + } + } + "3" + { + "name" "Stage 4: >> Dwemer ruins <<" + "triggers" + { + "0" "4" + "1" "ruins" + } + "actions" + { + "0" "#6773:Press" + } + } + "4" + { + "name" "Stage 5: >> Sovngarde <<" + "triggers" + { + "0" "5" + "1" "sovngarde" + } + "actions" + { + "0" "#6775:Press" + } + } + } + } + + "ze_tyranny_v5fix" + { + "adminroom" "7715.86 -14011.46 136.26" + "stages" + { + "0" + { + "name" "Level 1" + "triggers" + { + "0" "1" + } + "actions" + { + "0" "lvl1_button:Press" + } + } + "1" + { + "name" "Level 2" + "triggers" + { + "0" "2" + } + "actions" + { + "0" "lvl2_button:Press" + } + } + "2" + { + "name" "Level 3" + "triggers" + { + "0" "3" + } + "actions" + { + "0" "lvl3_button:Press" + } + } + "3" + { + "name" "Level 4" + "triggers" + { + "0" "4" + } + "actions" + { + "0" "lvl4_button:Press" + } + } + "4" + { + "name" "Level 5" + "triggers" + { + "0" "5" + } + "actions" + { + "0" "lvl5_button:Press" + } + } + "5" + { + "name" "Level 6" + "triggers" + { + "0" "6" + } + "actions" + { + "0" "lvl6_button:Press" + } + } + } + } + + "ze_UT2004_Convoy_v2_2_1" + { + "adminroom" "5681.272949 -1445.944946 64.031311" + "stages" + { + "0" + { + "name" "Stage 1" + "triggers" + { + "0" "1" + "1" "novice" + } + "actions" + { + "0" "#329341:Press" + } + } + "1" + { + "name" "Stage 2" + "triggers" + { + "0" "2" + "1" "experienced" + } + "actions" + { + "0" "#329398:Press" + } + } + "2" + { + "name" "Stage 3" + "triggers" + { + "0" "3" + "1" "masterful" + } + "actions" + { + "0" "#329403:Press" + } + } + "3" + { + "name" "Stage 4" + "triggers" + { + "0" "4" + "1" "godlike" + } + "actions" + { + "0" "#329408:Press" + } + } + } + } +} diff --git a/MapAdmin/scripting/MapAdmin.sp b/MapAdmin/scripting/MapAdmin.sp new file mode 100644 index 00000000..a6e521c4 --- /dev/null +++ b/MapAdmin/scripting/MapAdmin.sp @@ -0,0 +1,342 @@ +#pragma semicolon 1 +#pragma newdecls required + +#include <sourcemod> +#include <sdktools> + +KeyValues g_Config; +bool g_Enabled = false; + +public Plugin myinfo = +{ + name = "MapAdmin", + author = "BotoX", + description = "Adminroom teleport and changing stages.", + version = "0.1", + url = "" +}; + +public void OnPluginStart() +{ + LoadTranslations("common.phrases"); + + char sConfigFile[PLATFORM_MAX_PATH]; + BuildPath(Path_SM, sConfigFile, sizeof(sConfigFile), "configs/MapAdmin.cfg"); + + if(!FileExists(sConfigFile)) + { + SetFailState("Could not find config: \"%s\"", sConfigFile); + return; + } + + g_Config = new KeyValues("maps"); + if(!g_Config.ImportFromFile(sConfigFile)) + { + delete g_Config; + SetFailState("ImportFromFile() failed!"); + return; + } + g_Config.Rewind(); + + RegAdminCmd("sm_adminroom", Command_AdminRoom, ADMFLAG_GENERIC, "sm_adminroom [#userid|name]"); + RegAdminCmd("sm_stage", Command_Stage, ADMFLAG_GENERIC, "sm_stage <stage>"); +} + +public void OnMapStart() +{ + g_Enabled = false; + g_Config.Rewind(); + + char sMapName[PLATFORM_MAX_PATH]; + GetCurrentMap(sMapName, sizeof(sMapName)); + + if(g_Config.JumpToKey(sMapName, false)) + g_Enabled = true; +} + +public Action Command_AdminRoom(int client, int argc) +{ + if(!g_Enabled) + { + ReplyToCommand(client, "[SM] The current map is not supported."); + return Plugin_Handled; + } + + char sAdminRoom[64]; + g_Config.GetString("adminroom", sAdminRoom, sizeof(sAdminRoom), ""); + + if(!sAdminRoom[0]) + { + ReplyToCommand(client, "[SM] The current map does not have an adminroom (configured)."); + return Plugin_Handled; + } + + if(argc > 1) + { + ReplyToCommand(client, "[SM] Usage: sm_adminroom [#userid|name]"); + return Plugin_Handled; + } + + char sOrigins[3][16]; + ExplodeString(sAdminRoom, " ", sOrigins, sizeof(sOrigins), sizeof(sOrigins[])); + + float fOrigin[3]; + fOrigin[0] = StringToFloat(sOrigins[0]); + fOrigin[1] = StringToFloat(sOrigins[1]); + fOrigin[2] = StringToFloat(sOrigins[2]); + + char sArgs[64]; + char sTargetName[MAX_TARGET_LENGTH]; + int iTargets[MAXPLAYERS]; + int iTargetCount; + bool bIsML; + + if(argc == 1) + GetCmdArg(1, sArgs, sizeof(sArgs)); + else + strcopy(sArgs, sizeof(sArgs), "@me"); + + if((iTargetCount = ProcessTargetString(sArgs, client, iTargets, MAXPLAYERS, COMMAND_FILTER_ALIVE, sTargetName, sizeof(sTargetName), bIsML)) <= 0) + { + ReplyToTargetError(client, iTargetCount); + return Plugin_Handled; + } + + for(int i = 0; i < iTargetCount; i++) + { + TeleportEntity(iTargets[i], fOrigin, NULL_VECTOR, NULL_VECTOR); + } + + ShowActivity2(client, "\x01[SM] \x04", "\x01Teleported \x04%s\x01 to the adminroom.", sTargetName); + if(iTargetCount > 1) + LogAction(client, -1, "\"%L\" teleported \"%s\" to the adminroom.", client, sTargetName); + else + LogAction(client, iTargets[0], "\"%L\" teleported \"%L\" to the adminroom.", client, iTargets[0]); + + return Plugin_Handled; +} + +public Action Command_Stage(int client, int argc) +{ + if(!g_Enabled) + { + ReplyToCommand(client, "[SM] The current map is not supported."); + return Plugin_Handled; + } + + if(!g_Config.JumpToKey("stages", false)) + { + ReplyToCommand(client, "[SM] The current map does not have stages (configured)."); + return Plugin_Handled; + } + + if(!g_Config.GotoFirstSubKey(false)) + { + ReplyToCommand(client, "[SM] The current map does not have any stages configured."); + g_Config.GoBack(); // "stages" + return Plugin_Handled; + } + + if(argc < 1) + { + ReplyToCommand(client, "[SM] Available stages:"); + + do + { + char sSection[32]; + g_Config.GetSectionName(sSection, sizeof(sSection)); + + char sName[64]; + g_Config.GetString("name", sName, sizeof(sName), "MISSING_NAME"); + + if(!g_Config.JumpToKey("triggers", false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), missing \"triggers\" block.", sSection, sName); + return Plugin_Handled; + } + + if(!g_Config.GotoFirstSubKey(false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + g_Config.GoBack(); // "triggers" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), empty \"triggers\" block.", sSection, sName); + return Plugin_Handled; + } + + char sTriggers[128]; + do + { + char sTrigger[32]; + g_Config.GetString(NULL_STRING, sTrigger, sizeof(sTrigger)); + + StrCat(sTrigger, sizeof(sTrigger), ", "); + StrCat(sTriggers, sizeof(sTriggers), sTrigger); + } while(g_Config.GotoNextKey(false)); + + g_Config.GoBack(); // "triggers" + g_Config.GoBack(); // "GotoFirstSubKey" + + // Remove last ", " + sTriggers[strlen(sTriggers) - 2] = 0; + + ReplyToCommand(client, "%s: %s", sName, sTriggers); + + } while(g_Config.GotoNextKey(false)); + + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + return Plugin_Handled; + } + + char sArg[64]; + GetCmdArgString(sArg, sizeof(sArg)); + + do + { + char sSection[32]; + g_Config.GetSectionName(sSection, sizeof(sSection)); + + char sName[64]; + g_Config.GetString("name", sName, sizeof(sName), "MISSING_NAME"); + + if(!g_Config.JumpToKey("triggers", false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), missing \"triggers\" block.", sSection, sName); + return Plugin_Handled; + } + + if(!g_Config.GotoFirstSubKey(false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + g_Config.GoBack(); // "triggers" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), empty \"triggers\" block.", sSection, sName); + return Plugin_Handled; + } + + bool bFound = false; + do + { + char sTrigger[32]; + g_Config.GetString(NULL_STRING, sTrigger, sizeof(sTrigger)); + + if(StrEqual(sArg, sTrigger, true)) + { + bFound = true; + break; + } + + } while(g_Config.GotoNextKey(false)); + + g_Config.GoBack(); // "triggers" + g_Config.GoBack(); // "GotoFirstSubKey" + + if(!bFound) + continue; + + ReplyToCommand(client, "Triggering \"%s\"", sName); + + if(!g_Config.JumpToKey("actions", false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), missing \"actions\" block.", sSection, sName); + return Plugin_Handled; + } + + if(!g_Config.GotoFirstSubKey(false)) + { + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + g_Config.GoBack(); // "actions" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), empty \"actions\" block.", sSection, sName); + return Plugin_Handled; + } + + do + { + char sAction[256]; + g_Config.GetString(NULL_STRING, sAction, sizeof(sAction)); + + int iDelim = FindCharInString(sAction, ':'); + if(iDelim == -1) + { + char sActionSection[32]; + g_Config.GetSectionName(sActionSection, sizeof(sActionSection)); + + g_Config.GoBack(); // "actions" + g_Config.GoBack(); // "GotoFirstSubKey" + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + ReplyToCommand(client, "Config error in stage \"%s\"(\"%s\"), action \"%s\" missing delim ':'.", sSection, sName, sActionSection); + return Plugin_Handled; + } + + ReplyToCommand(client, "Firing \"%s\"", sAction); + sAction[iDelim++] = 0; + + int entity = INVALID_ENT_REFERENCE; + while((entity = FindEntityByTargetname(entity, sAction, "*")) != INVALID_ENT_REFERENCE) + { + AcceptEntityInput(entity, sAction[iDelim], client, client); + } + + } while(g_Config.GotoNextKey(false)); + + g_Config.GoBack(); // "actions" + g_Config.GoBack(); // "GotoFirstSubKey" + + ShowActivity2(client, "\x01[SM] \x04", "\x01Changed the stage to \x04%s\x01.", sName); + LogAction(client, -1, "\"%L\" changed the stage to \"%s\".", client, sName); + + break; + } while(g_Config.GotoNextKey(false)); + + g_Config.GoBack(); // "stages" + g_Config.GoBack(); // "GotoFirstSubKey" + + return Plugin_Handled; +} + +int FindEntityByTargetname(int entity, const char[] sTargetname, const char[] sClassname="*") +{ + if(sTargetname[0] == '#') // HammerID + { + int HammerID = StringToInt(sTargetname[1]); + + while((entity = FindEntityByClassname(entity, sClassname)) != INVALID_ENT_REFERENCE) + { + if(GetEntProp(entity, Prop_Data, "m_iHammerID") == HammerID) + return entity; + } + } + else // Targetname + { + int Wildcard = FindCharInString(sTargetname, '*'); + char sTargetnameBuf[64]; + + while((entity = FindEntityByClassname(entity, sClassname)) != INVALID_ENT_REFERENCE) + { + if(GetEntPropString(entity, Prop_Data, "m_iName", sTargetnameBuf, sizeof(sTargetnameBuf)) <= 0) + continue; + + if(strncmp(sTargetnameBuf, sTargetname, Wildcard) == 0) + return entity; + } + } + + return INVALID_ENT_REFERENCE; +}