├── .gitignore ├── LICENSE ├── README.md ├── guides ├── 2800.js ├── 3023.js ├── 3026.js ├── 3027.js ├── 3030.js ├── 3032.js ├── 3034.js ├── 3036.js ├── 3037.js ├── 3101.js ├── 3102.js ├── 3103.js ├── 3104.js ├── 3106.js ├── 3107.js ├── 3111.js ├── 3123.js ├── 3126.js ├── 3201.js ├── 3202.js ├── 3203.js ├── 3204.js ├── 3206.js ├── 7011.js ├── 7015.js ├── 9027.js ├── 9034.js ├── 9044.js ├── 9050.js ├── 9053.js ├── 9054.js ├── 9056.js ├── 9057.js ├── 9066.js ├── 9067.js ├── 9068.js ├── 9070.js ├── 9710.js ├── 9716.js ├── 9720.js ├── 9735.js ├── 9739.js ├── 9750.js ├── 9754.js ├── 9756.js ├── 9757.js ├── 9759.js ├── 9768.js ├── 9770.js ├── 9780.js ├── 9781.js ├── 9782.js ├── 9783.js ├── 9794.js ├── 9916.js ├── 9920.js ├── 9935.js ├── 9939.js ├── 9970.js ├── 9980.js ├── 9981.js ├── 9982.js ├── 9983.js └── 9994.js ├── index.js ├── lang ├── dungeons.js └── strings.js ├── manifest.json ├── module.json └── settings_migrator.js /.gitignore: -------------------------------------------------------------------------------- 1 | manifest-generator.bat 2 | manifest-generator.js 3 | .eslintrc.json 4 | package.json 5 | .idea/ -------------------------------------------------------------------------------- /LICENSE: -------------------------------------------------------------------------------- 1 | MIT License 2 | 3 | Copyright (c) 2018 Kasea 4 | Copyright (c) 2020 Information Networks Ltd. 5 | Copyright (c) 2022 Non-commercial Project "HSDN" 6 | 7 | Permission is hereby granted, free of charge, to any person obtaining a copy 8 | of this software and associated documentation files (the "Software"), to deal 9 | in the Software without restriction, including without limitation the rights 10 | to use, copy, modify, merge, publish, distribute, sublicense, and/or sell 11 | copies of the Software, and to permit persons to whom the Software is 12 | furnished to do so, subject to the following conditions: 13 | 14 | The above copyright notice and this permission notice shall be included in all 15 | copies or substantial portions of the Software. 16 | 17 | THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR 18 | IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, 19 | FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE 20 | AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER 21 | LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, 22 | OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE 23 | SOFTWARE. 24 | -------------------------------------------------------------------------------- /guides/3023.js: -------------------------------------------------------------------------------- 1 | // Akalath Quarantine 2 | // 3 | // made by michengs 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = ES; 7 | 8 | let debuff = null; // default debuff 9 | 10 | return { 11 | // 1 BOSS 12 | "nd-3023-1000": [ 13 | { type: "stop_timers" }, 14 | { type: "despawn_all" } 15 | ], 16 | // Debuff removed 17 | "die": [{ type: "func", func: () => { debuff = null; } }], 18 | // Debuf added 19 | "ae-0-0-30231000": [{ type: "func", func: () => debuff = 1 }], // AoE (red) 20 | "ae-0-0-30231001": [{ type: "func", func: () => debuff = 2 }], // AoE (blue) 21 | "am-3023-1000-30231000": [{ type: "func", func: () => debuff = 1 }], // Red 22 | "am-3023-1000-30231001": [{ type: "func", func: () => debuff = 2 }], // Blue 23 | // 24 | "s-3023-1000-104-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Прыжок + Стан" }], 25 | "s-3023-1000-105-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Поворот назад" }], 26 | "s-3023-1000-110-0": [ 27 | { type: "text", sub_type: "message", message: "Stun", message_RU: "Передний стан" }, 28 | { type: "spawn", func: "circle", args: [false, 553, 0, 175, 10, 260, 0, 6000] } 29 | ], 30 | "s-3023-1000-111-0": [ 31 | { type: "text", sub_type: "message", message: "Left Slash", message_RU: "Левая полоса" }, 32 | { type: "spawn", func: "vector", args: [553, 270, 200, 180, 500, 0, 2000] }, 33 | { type: "spawn", func: "vector", args: [553, 270, 200, 0, 300, 0, 2000] }, 34 | { type: "spawn", func: "vector", args: [553, 90, 20, 180, 500, 0, 2000] }, 35 | { type: "spawn", func: "vector", args: [553, 90, 20, 0, 300, 0, 2000] }, 36 | { type: "spawn", func: "vector", args: [553, 6, 302, 270, 200, 0, 2000] }, 37 | { type: "spawn", func: "vector", args: [553, 176, 502, 270, 200, 0, 2000] } 38 | ], 39 | "s-3023-1000-112-0": [ 40 | { type: "text", sub_type: "message", message: "Right Slash", message_RU: "Правая полоса" }, 41 | { type: "spawn", func: "vector", args: [553, 90, 200, 180, 500, 0, 2000] }, 42 | { type: "spawn", func: "vector", args: [553, 90, 200, 0, 300, 0, 2000] }, 43 | { type: "spawn", func: "vector", args: [553, 270, 20, 180, 500, 0, 2000] }, 44 | { type: "spawn", func: "vector", args: [553, 270, 20, 0, 300, 0, 2000] }, 45 | { type: "spawn", func: "vector", args: [553, 354, 302, 90, 200, 0, 2000] }, 46 | { type: "spawn", func: "vector", args: [553, 184, 502, 90, 200, 0, 2000] } 47 | ], 48 | "s-3023-1000-113-0": "s-3023-1000-111-0", 49 | "s-3023-1000-114-0": "s-3023-1000-112-0", 50 | "s-3023-1000-115-0": [ 51 | { type: "text", sub_type: "message", message: "Back Attack", message_RU: "Удар назад" }, 52 | { type: "spawn", func: "semicircle", args: [90, 280, 553, 0, 0, 15, 160, 0, 2000] }, 53 | { type: "spawn", func: "semicircle", args: [90, 275, 553, 0, 0, 10, 250, 0, 2000] }, 54 | { type: "spawn", func: "semicircle", args: [90, 270, 553, 0, 0, 10, 340, 0, 2000] }, 55 | { type: "spawn", func: "vector", args: [553, 90, 150, 90, 150, 0, 2000] }, 56 | { type: "spawn", func: "vector", args: [553, 270, 150, 270, 150, 0, 2000] } 57 | ], 58 | "s-3023-1000-116-0": [ 59 | { type: "text", sub_type: "message", message: "Kaia's Shield", message_RU: "Кайа", class_position: "priest" }, 60 | { type: "text", sub_type: "message", message: "Thrall of Protection", message_RU: "Кайа", class_position: "mystic" }, 61 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 560, 0, 6000] } 62 | ], 63 | "s-3023-1000-3107-0": [ 64 | { type: "text", sub_type: "message", message: "Smash", message_RU: "Конус вперед" }, 65 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 66 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 67 | ], 68 | "s-3023-1000-3115-0": [ 69 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 70 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 71 | ], 72 | "s-3023-1000-3116-0": [ 73 | { type: "text", sub_type: "message", message: "Circles + Spin", message_RU: "Круги + Крутилка" }, 74 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 5000] } 75 | ], 76 | "s-3023-1000-3119-0": [ // red inside 77 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 1, delay: 500 }, 78 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 2, delay: 500 }, 79 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 80 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 81 | ], 82 | "s-3023-1000-3220-0": [ // blue inside 83 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 1, delay: 500 }, 84 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 2, delay: 500 }, 85 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 86 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 87 | ], 88 | 89 | // 2 BOSS 90 | "nd-3023-2000": [ 91 | { type: "stop_timers" }, 92 | { type: "despawn_all" } 93 | ], 94 | "s-3023-2000-164-0": [{ type: "text", sub_type: "message", message: "Counter Attack (bleed)", message_RU: "Отпрыжка (Кровоток)" }], 95 | "s-3023-2000-166-0": [{ type: "text", sub_type: "message", message: "Turn-back", message_RU: "Оборот назад" }], 96 | "s-3023-2000-175-0": [ 97 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 98 | { type: "text", sub_type: "message", delay: 1500, message: "Dodge", message_RU: "Эвейд" } 99 | ], 100 | "s-3023-2000-178-0": [{ type: "text", sub_type: "message", message: "Scratching (bleed)", message_RU: "Крутилка (Кровоток)" }], 101 | "s-3023-2000-181-0": [ 102 | { type: "text", sub_type: "message", message: "Rock Throw", message_RU: "Полоса вперед" }, 103 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 104 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 105 | ], 106 | "s-3023-2000-182-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 107 | "s-3023-2000-185-0": [ 108 | { type: "text", sub_type: "message", message: "Big jump (Kaia's Shield)", message_RU: "Прыжок (кайа)", class_position: "priest" }, 109 | { type: "text", sub_type: "message", message: "Big jump (Thrall of Protection)", message_RU: "Прыжок (кайа)", class_position: "mystic" }, 110 | { type: "text", sub_type: "alert", delay: 110000, message: "Big jump soon...", message_RU: "Скоро прыжок...", class_position: "heal" }, 111 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 500, 0, 6000] }, 112 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 750, 0, 6000] } 113 | ], 114 | "s-3023-2000-202-0": [ 115 | { type: "text", sub_type: "message", message: "Backstab", message_RU: "Назад + Вперед" }, 116 | { type: "spawn", func: "vector", args: [553, 90, 80, 180, 500, 0, 3000] }, 117 | { type: "spawn", func: "vector", args: [553, 270, 80, 180, 500, 0, 3000] } 118 | ], 119 | "s-3023-2000-207-0": [{ type: "text", sub_type: "message", message: "Phantom x5 (bleed)", message_RU: "Прыжки x5 (Кровоток)" }], 120 | "s-3023-2000-212-0": [{ type: "text", sub_type: "message", message: "Flash (bleed)", message_RU: "Байт (Кровоток)" }] 121 | }; 122 | }; -------------------------------------------------------------------------------- /guides/3027.js: -------------------------------------------------------------------------------- 1 | // Forbidden Arena [Hagufna] 2 | // 3 | // made by michengs / HSDN 4 | 5 | /* eslint-disable no-multi-spaces */ 6 | 7 | module.exports = (dispatch, handlers, guide, lang) => { 8 | const { HIGHLIGHT_ITEM } = module.parent.exports.spawn; 9 | 10 | let shield_timer1 = null; 11 | let shield_timer2 = null; 12 | let print_shield = true; 13 | let print_hp = true; 14 | let is_hp_74_39 = false; 15 | 16 | function shield_event() { 17 | dispatch.clearTimeout(shield_timer1); 18 | dispatch.clearTimeout(shield_timer2); 19 | 20 | shield_timer1 = dispatch.setTimeout(() => { 21 | if (!is_hp_74_39) { 22 | handlers.text({ 23 | sub_type: "message", 24 | message: "Shield in 5 seconds!", 25 | message_RU: "Через 5 сек. щит!" 26 | }); 27 | } 28 | }, 85000); 29 | 30 | shield_timer2 = dispatch.setTimeout(() => { 31 | if (!is_hp_74_39) { 32 | handlers.text({ 33 | sub_type: "message", 34 | message: "Shield in 15 seconds!", 35 | message_RU: "Через 15 сек. щит!" 36 | }); 37 | } 38 | }, 75000); 39 | } 40 | 41 | function boss_hp_event(hp) { 42 | if ([74, 39].includes(hp)) { 43 | if (print_hp) { 44 | dispatch.clearTimeout(shield_timer1); 45 | dispatch.clearTimeout(shield_timer2); 46 | print_hp = false; 47 | is_hp_74_39 = true; 48 | dispatch.setTimeout(() => print_hp = true, 15000); 49 | } 50 | } 51 | if ([89, 59, 29].includes(hp)) { // до щита 52 | if (print_shield) { 53 | print_shield = false; 54 | is_hp_74_39 = false; 55 | dispatch.setTimeout(() => print_shield = true, 15000); 56 | 57 | handlers.text({ 58 | sub_type: "alert", 59 | message: "Ready for Shield", 60 | message_RU: "Готовность ломать щит" 61 | }); 62 | } 63 | } 64 | } 65 | 66 | return { 67 | "nd-3027-1000": [ 68 | { type: "stop_timers" }, 69 | { type: "despawn_all" } 70 | ], 71 | "h-3027-1000-89": [{ type: "func", func: boss_hp_event, args: [89] }], 72 | "h-3027-1000-59": [{ type: "func", func: boss_hp_event, args: [59] }], 73 | "h-3027-1000-29": [{ type: "func", func: boss_hp_event, args: [29] }], 74 | "h-3027-1000-74": [{ type: "func", func: boss_hp_event, args: [74] }], 75 | "h-3027-1000-39": [{ type: "func", func: boss_hp_event, args: [39] }], 76 | 77 | //"s-3027-1001-255-0": [{ type: "spawn", func: "vector", args: [553, 0, 0, 0, 3000, 0, 5000] }], //0 78 | //"s-3027-1002-256-0": [{ type: "spawn", func: "vector", args: [553, 0, 0, 0, 3000, 0, 5000] }], //60 79 | //"s-3027-1003-257-0": [{ type: "spawn", func: "vector", args: [553, 0, 0, 0, 3000, 0, 5000] }], //0 80 | //"s-3027-1004-258-0": [{ type: "spawn", func: "vector", args: [553, 0, 0, 0, 3000, 0, 5000] }], //60 81 | 82 | "s-3027-1000-108-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Strike (Slow)", message_RU: "Меч (медленный)" }], // 101 121 122 -> 108 83 | //"s-3027-1000-355-0": [{ type: "text", sub_type: "message", message: "Eviscerate", message_RU: "Потрошение" }], // 102 121 103 -> 355 -> 114 84 | "s-3027-1000-135-0": [{ type: "text", sub_type: "message", message: "Strike (Slow)", message_RU: "Меч (медленный)" }], // 104 -> 135 -> 130 85 | "s-3027-1000-111-0": [{ type: "text", sub_type: "message", message: "Stun | Strike", message_RU: "Стан | Меч" }], // 104 -> 111 -> 130 86 | "s-3027-1000-112-0": [{ type: "text", sub_type: "message", message: "Back Jump | Strike", message_RU: "Прыжок назад | Меч" }], // 121 102 -> 112 -> 130 87 | 88 | // прыжок 89 | "s-3027-1000-116-0": [ 90 | { type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" } 91 | ], 92 | "s-3027-1000-116-1": [ 93 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд!" }, 94 | { type: "spawn", func: "circle", args: [true, 912, 0, 110, 8, 480, 0, 3000] } 95 | ], 96 | 97 | // 3 оборота -> прыжок (145 -> 139 -> 140) 98 | "s-3027-1000-145-0": [{ type: "text", sub_type: "message", message: "3x360 | Jump", message_RU: "3 оборота | Прыжок" }], 99 | "s-3027-1000-139-0": [{ type: "text", sub_type: "message", delay: 1000, message: "Jump", message_RU: "Прыжок" }], 100 | "s-3027-1000-140-0": [ 101 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд!" }, 102 | { type: "spawn", func: "circle", args: [false, 912, 0, 110, 8, 480, 0, 3000] } 103 | ], 104 | 105 | // 109 -> 402 -> 130 106 | "s-3027-1000-109-0": [{ type: "text", sub_type: "message", message: "Forward Jump", message_RU: "Прыжок вперед" }], 107 | "s-3027-1000-402-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 108 | 109 | // 136 -> 144 -> 130 110 | "s-3027-1000-136-0": [{ type: "text", sub_type: "message", message: "2x360 | Strike", message_RU: "2 оборота | Меч" }], 111 | "s-3027-1000-144-0": [{ type: "text", sub_type: "message", message: "Strike", message_RU: "Меч" }], 112 | 113 | // 134 -> 147 114 | "s-3027-1000-134-0": [{ type: "text", sub_type: "message", message: "Turn around | Back", message_RU: "Поворот | Удар назад" }], 115 | "s-3027-1000-134-1": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Удар назад" }], 116 | "s-3027-1000-147-0": [{ type: "text", sub_type: "message", message: "Strike", message_RU: "Меч" }], 117 | 118 | // 142 -> 143 114 130 119 | "s-3027-1000-142-0": [{ type: "text", sub_type: "message", message: "2x360 | Strike", message_RU: "2 оборота | Меч" }], 120 | "s-3027-1000-143-0": [{ type: "text", sub_type: "message", message: "Strike", message_RU: "Меч" }], 121 | 122 | "s-3027-1000-141-0": [{ type: "text", sub_type: "message", message: "2x360 | Eviscerate", message_RU: "2 оборота | Потрошение" }], // 141 -> 146 114 130 123 | "s-3027-1000-146-0": [{ type: "text", sub_type: "message", message: "Eviscerate | Strike", message_RU: "Потрошение | Меч" }], // 146 -> 114 -> 130 124 | 125 | // стяжка -> бублики (350 -> 302) 126 | "s-3027-1000-350-0": [ 127 | { type: "text", sub_type: "message", message: "Red: Donuts (Out > In)", message_RU: "Стяжка | Бублики (От него > К нему)" }, 128 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 240, 0, 5000] }, 129 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 480, 0, 5000] }, 130 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 3, 950, 0, 5000] }, 131 | { type: "spawn", func: "item", args: [HIGHLIGHT_ITEM, 0, 0, 3800, 1000] }, 132 | { type: "text", sub_type: "message", delay: 3800, message: "In", message_RU: "К нему" }, 133 | { type: "spawn", func: "marker", args: [false, 180, 100, 3800, 1000, false, ["CENTER", "IN"]] }, 134 | { type: "spawn", func: "marker", args: [false, 0, 100, 3800, 1000, false, ["CENTER", "IN"]] }, 135 | { type: "spawn", func: "marker", args: [false, 90, 100, 3800, 1000, false, ["CENTER", "IN"]] }, 136 | { type: "spawn", func: "marker", args: [false, 270, 100, 3800, 1000, false, ["CENTER", "IN"]] }, 137 | { type: "text", sub_type: "alert", delay: 58000, message: "Mechanics soon...", message_RU: "Скоро стяжка..." } 138 | ], 139 | // стяжка -> волна (357 -> 110) 140 | "s-3027-1000-357-0": [ 141 | { type: "text", sub_type: "message", message: "Purple: Get Out", message_RU: "Стяжка | От него" }, 142 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 20, 500, 2000, 5000] }, 143 | { type: "text", sub_type: "alert", delay: 58000, message: "Mechanics soon...", message_RU: "Скоро стяжка..." } 144 | ], 145 | 146 | //"s-3027-1000-114-0": [{ type: "text", sub_type: "message", message: "Eviscerate (slow)", message_RU: "Потрошение (медленно)" }], 147 | //"s-3027-1000-130-0": [{ type: "text", sub_type: "message", message: "Target", message_RU: "Таргет" }], 148 | "s-3027-1000-151-0": [{ type: "text", sub_type: "message", message: "Back teleport | Strike", message_RU: "Телепорт назад | Меч" }], // 151 149 148 -> 130 149 | "s-3027-1000-149-1": [{ type: "text", sub_type: "message", message: "Back teleport (Target)", message_RU: "Телепорт назад (таргет)" }], 150 | "s-3027-1000-117-0": [{ type: "text", sub_type: "message", message: "Teleport (Target)", message_RU: "Телепорт (таргет)" }], // 117 -> 130 151 | "s-3027-1000-356-0": [{ type: "text", sub_type: "message", message: "Teleport (Target)", message_RU: "Телепорт (таргет)" }], // 356 -> 147 152 | "s-3027-1000-148-1": [{ type: "text", sub_type: "message", message: "Teleport (Target)", message_RU: "Телепорт (таргет)" }], 153 | 154 | "s-3027-1000-351-0": [ 155 | { type: "text", sub_type: "message", message: "Shield!", message_RU: "Щит!" }, 156 | { type: "func", func: shield_event } 157 | ], 158 | "s-3027-1000-401-0": [ 159 | { type: "text", sub_type: "message", message: "30% AOE!", message_RU: "АОЕ" }, 160 | { type: "text", sub_type: "message", delay: 1600, message: "Dodge!", message_RU: "Эвейд!" } 161 | ] 162 | }; 163 | }; -------------------------------------------------------------------------------- /guides/3030.js: -------------------------------------------------------------------------------- 1 | // Commander's Residence 2 | // 3 | // made by Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | let print_stun = true; 8 | 9 | return { 10 | // Maknakh 11 | "nd-3030-1000": [ 12 | { type: "stop_timers" }, 13 | { type: "despawn_all" } 14 | ], 15 | "s-3030-1000-114-0": [{ type: "text", sub_type: "message", message: "Push (Repel)", message_RU: "Откид" }], 16 | "s-3030-1000-303-0": [{ type: "text", sub_type: "message", message: "Meteors AOE", message_RU: "Метеоры (АОЕ)" }], 17 | "s-3030-1000-120-0": [{ type: "text", sub_type: "message", message: "Push Front", message_RU: "Откид вперед" }], 18 | "s-3030-1000-104-0": [{ type: "text", sub_type: "message", message: "Fire Front", message_RU: "Передний огонь" }], 19 | "s-3030-1000-113-0": [{ type: "text", sub_type: "message", message: "Circle AOE Front", message_RU: "Передний АОЕ круг" }], 20 | "s-3030-1000-108-0": [{ type: "text", sub_type: "message", message: "Frontal Thorns", message_RU: "Передние шипы" }], 21 | "s-3030-1000-305-0": [{ type: "text", sub_type: "message", message: "Circle AOE Front", message_RU: "Передний АОЕ круг" }], 22 | "s-3030-1000-301-0": [{ type: "text", sub_type: "message", message: "Hit Frontal | Stun", message_RU: "Передний удар | Стан" }], 23 | "s-3030-1000-307-0": [{ type: "text", sub_type: "message", message: "Tail Stun", message_RU: "Хвост (стан)" }], 24 | "s-3030-1000-112-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 25 | "s-3030-1000-105-0": [{ type: "text", sub_type: "message", message: "Front Fire", message_RU: "Передний огонь" }], 26 | "am-3030-1000-99000580": [{ type: "text", sub_type: "message", message: "Hit Thorns", message_RU: "Шипы" }], 27 | 28 | // LB-1 29 | "nd-3030-2000": [ 30 | { type: "stop_timers" }, 31 | { type: "despawn_all" } 32 | ], 33 | "s-3030-2000-309-0": [ 34 | { type: "text", sub_type: "message", message: "AOE circles | Stun", message_RU: "АОЕ круги | Стан", check_func: () => print_stun }, 35 | { type: "func", func: () => print_stun = false }, 36 | { type: "func", func: () => print_stun = true, delay: 4000 } 37 | ], 38 | "s-3030-2000-105-0": [ 39 | { type: "text", sub_type: "message", message: "Laser Frontal (Stun)", message_RU: "Лазер (стан)", check_func: () => print_stun }, 40 | { type: "func", func: () => print_stun = false }, 41 | { type: "func", func: () => print_stun = true, delay: 15000 } 42 | ], 43 | "s-3030-2000-103-0": [{ type: "text", sub_type: "message", message: "Hit Frontal", message_RU: "Передний удар" }], 44 | "s-3030-2000-101-0": [{ type: "text", sub_type: "message", message: "Claws Front", message_RU: "Когти" }], 45 | "s-3030-2000-104-0": [{ type: "text", sub_type: "message", message: "Front Attack | Stun", message_RU: "Атака спереди | Стан" }], 46 | "s-3030-2000-112-0": [{ type: "text", sub_type: "message", message: "Attack Behind (Fire)", message_RU: "Атака сзади (огонь)" }], 47 | "s-3030-2000-305-0": [{ type: "text", sub_type: "message", message: "Circles AOE", message_RU: "Круги АОЕ" }], 48 | "s-3030-2000-109-0": [{ type: "text", sub_type: "message", message: "Laser Back | Stun", message_RU: "Лазер назад | Стан" }], 49 | "s-3030-2000-301-0": [{ type: "text", sub_type: "message", message: "Turn Debuff", message_RU: "Разворот (дебаф)" }] 50 | }; 51 | }; -------------------------------------------------------------------------------- /guides/3032.js: -------------------------------------------------------------------------------- 1 | // Akalath Quarantine (Guide) 2 | // 3 | // made by michengs 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = ES; 7 | 8 | let debuff = null; // default debuff 9 | 10 | return { 11 | // 1 BOSS 12 | "nd-3032-1000": [ 13 | { type: "stop_timers" }, 14 | { type: "despawn_all" } 15 | ], 16 | // Debuff removed 17 | "die": [{ type: "func", func: () => { debuff = null; } }], 18 | // Debuf added 19 | "ae-0-0-30321000": [{ type: "func", func: () => debuff = 1 }], // AoE (red) 20 | "ae-0-0-30321001": [{ type: "func", func: () => debuff = 2 }], // AoE (blue) 21 | "am-3032-1000-30321000": [{ type: "func", func: () => debuff = 1 }], // Red 22 | "am-3032-1000-30321001": [{ type: "func", func: () => debuff = 2 }], // Blue 23 | // 24 | "s-3032-1000-104-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Прыжок + Стан" }], 25 | "s-3032-1000-105-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Поворот назад" }], 26 | "s-3032-1000-110-0": [ 27 | { type: "text", sub_type: "message", message: "Stun", message_RU: "Передний стан" }, 28 | { type: "spawn", func: "circle", args: [false, 553, 0, 175, 10, 260, 0, 6000] } 29 | ], 30 | "s-3032-1000-111-0": [ 31 | { type: "text", sub_type: "message", message: "Left Slash", message_RU: "Левая полоса" }, 32 | { type: "spawn", func: "vector", args: [553, 270, 200, 180, 500, 0, 2000] }, 33 | { type: "spawn", func: "vector", args: [553, 270, 200, 0, 300, 0, 2000] }, 34 | { type: "spawn", func: "vector", args: [553, 90, 20, 180, 500, 0, 2000] }, 35 | { type: "spawn", func: "vector", args: [553, 90, 20, 0, 300, 0, 2000] }, 36 | { type: "spawn", func: "vector", args: [553, 6, 302, 270, 200, 0, 2000] }, 37 | { type: "spawn", func: "vector", args: [553, 176, 502, 270, 200, 0, 2000] } 38 | ], 39 | "s-3032-1000-112-0": [ 40 | { type: "text", sub_type: "message", message: "Right Slash", message_RU: "Правая полоса" }, 41 | { type: "spawn", func: "vector", args: [553, 90, 200, 180, 500, 0, 2000] }, 42 | { type: "spawn", func: "vector", args: [553, 90, 200, 0, 300, 0, 2000] }, 43 | { type: "spawn", func: "vector", args: [553, 270, 20, 180, 500, 0, 2000] }, 44 | { type: "spawn", func: "vector", args: [553, 270, 20, 0, 300, 0, 2000] }, 45 | { type: "spawn", func: "vector", args: [553, 354, 302, 90, 200, 0, 2000] }, 46 | { type: "spawn", func: "vector", args: [553, 184, 502, 90, 200, 0, 2000] } 47 | ], 48 | "s-3032-1000-113-0": "s-3032-1000-111-0", 49 | "s-3032-1000-114-0": "s-3032-1000-112-0", 50 | "s-3032-1000-115-0": [ 51 | { type: "text", sub_type: "message", message: "Back Attack", message_RU: "Удар назад" }, 52 | { type: "spawn", func: "semicircle", args: [90, 280, 553, 0, 0, 15, 160, 0, 2000] }, 53 | { type: "spawn", func: "semicircle", args: [90, 275, 553, 0, 0, 10, 250, 0, 2000] }, 54 | { type: "spawn", func: "semicircle", args: [90, 270, 553, 0, 0, 10, 340, 0, 2000] }, 55 | { type: "spawn", func: "vector", args: [553, 90, 150, 90, 150, 0, 2000] }, 56 | { type: "spawn", func: "vector", args: [553, 270, 150, 270, 150, 0, 2000] } 57 | ], 58 | "s-3032-1000-116-0": [ 59 | { type: "text", sub_type: "message", message: "Kaia's Shield", message_RU: "Кайа", class_position: "priest" }, 60 | { type: "text", sub_type: "message", message: "Thrall of Protection", message_RU: "Кайа", class_position: "mystic" }, 61 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 560, 0, 6000] } 62 | ], 63 | "s-3032-1000-3107-0": [ 64 | { type: "text", sub_type: "message", message: "Smash", message_RU: "Конус вперед" }, 65 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 66 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 67 | ], 68 | "s-3032-1000-3115-0": [ 69 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 70 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 71 | ], 72 | "s-3032-1000-3116-0": [ 73 | { type: "text", sub_type: "message", message: "Circles + Spin", message_RU: "Круги + Крутилка" }, 74 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 5000] } 75 | ], 76 | "s-3032-1000-3119-0": [ // red inside 77 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 1, delay: 500 }, 78 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 2, delay: 500 }, 79 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 80 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 81 | ], 82 | "s-3032-1000-3220-0": [ // blue inside 83 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 1, delay: 500 }, 84 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 2, delay: 500 }, 85 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 86 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 87 | ], 88 | 89 | // 2 BOSS 90 | "nd-3032-2000": [ 91 | { type: "stop_timers" }, 92 | { type: "despawn_all" } 93 | ], 94 | "s-3032-2000-164-0": [{ type: "text", sub_type: "message", message: "Counter Attack (bleed)", message_RU: "Отпрыжка (Кровоток)" }], 95 | "s-3032-2000-166-0": [{ type: "text", sub_type: "message", message: "Turn-back", message_RU: "Оборот назад" }], 96 | "s-3032-2000-175-0": [ 97 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 98 | { type: "text", sub_type: "message", delay: 1500, message: "Dodge", message_RU: "Эвейд" } 99 | ], 100 | "s-3032-2000-178-0": [{ type: "text", sub_type: "message", message: "Scratching (bleed)", message_RU: "Крутилка (Кровоток)" }], 101 | "s-3032-2000-181-0": [ 102 | { type: "text", sub_type: "message", message: "Rock Throw", message_RU: "Полоса вперед" }, 103 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 104 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 105 | ], 106 | "s-3032-2000-182-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 107 | "s-3032-2000-185-0": [ 108 | { type: "text", sub_type: "message", message: "Big jump (Kaia's Shield)", message_RU: "Прыжок (кайа)", class_position: "priest" }, 109 | { type: "text", sub_type: "message", message: "Big jump (Thrall of Protection)", message_RU: "Прыжок (кайа)", class_position: "mystic" }, 110 | { type: "text", sub_type: "alert", delay: 110000, message: "Big jump soon...", message_RU: "Скоро прыжок...", class_position: "heal" }, 111 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 500, 0, 6000] }, 112 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 750, 0, 6000] } 113 | ], 114 | "s-3032-2000-202-0": [ 115 | { type: "text", sub_type: "message", message: "Backstab", message_RU: "Назад + Вперед" }, 116 | { type: "spawn", func: "vector", args: [553, 90, 80, 180, 500, 0, 3000] }, 117 | { type: "spawn", func: "vector", args: [553, 270, 80, 180, 500, 0, 3000] } 118 | ], 119 | "s-3032-2000-207-0": [{ type: "text", sub_type: "message", message: "Phantom x5 (bleed)", message_RU: "Прыжки x5 (Кровоток)" }], 120 | "s-3032-2000-212-0": [{ type: "text", sub_type: "message", message: "Flash (bleed)", message_RU: "Байт (Кровоток)" }] 121 | }; 122 | }; -------------------------------------------------------------------------------- /guides/3101.js: -------------------------------------------------------------------------------- 1 | // Gossamer Vault 2 | // 3 | // made by michengs / Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | // 1 BOSS 8 | "nd-3101-1000": [ 9 | { type: "stop_timers" }, 10 | { type: "despawn_all" } 11 | ], 12 | "s-3101-1000-104-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Stun Frontal", message_RU: "Стан (танк)" }], 13 | "s-3101-1000-112-0": [{ type: "text", sub_type: "message", message: "Left + Right", message_RU: "Лево + Право" }], 14 | "s-3101-1000-139-0": [ 15 | { type: "text", sub_type: "message", message: "Back + Front (Fast)", message_RU: "Вперед + Назад (фаст)" }, 16 | { type: "spawn", func: "vector", args: [553, 2, 0, 70, 800, 0, 2500] }, 17 | { type: "spawn", func: "vector", args: [553, 2, 0, 110, 800, 0, 2500] }, 18 | { type: "spawn", func: "vector", args: [553, 2, 0, 250, 800, 0, 2500] }, 19 | { type: "spawn", func: "vector", args: [553, 2, 0, 290, 800, 0, 2500] } 20 | ], 21 | "s-3101-1000-124-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Stun Frontal", message_RU: "Стан (танк)" }], 22 | "s-3101-1000-127-0": [ 23 | { type: "text", sub_type: "message", message: "Back (Fast)", message_RU: "Полоса (фаст)" }, 24 | { type: "spawn", func: "vector", args: [553, 90, 139, 173, 800, 0, 2000] }, 25 | { type: "spawn", func: "vector", args: [553, 270, 139, -173, 800, 0, 2000] } 26 | ], 27 | "s-3101-1000-131-0": [ 28 | { type: "text", sub_type: "message", message: "Back Wave (Fast)", message_RU: "Волна назад (фаст)" }, 29 | { type: "spawn", func: "vector", args: [553, 0, 100, 112, 800, 0, 2000] }, 30 | { type: "spawn", func: "vector", args: [553, 0, 100, -112, 800, 0, 2000] } 31 | ], 32 | "s-3101-1000-132-0": [{ type: "text", sub_type: "message", message: "Left + Right (Fast)", message_RU: "Лево + Право (фаст)" }], 33 | "s-3101-1000-133-0": [ 34 | { type: "text", sub_type: "message", message: "Jump (Fast)", message_RU: "Прыжок (фаст)" }, 35 | { type: "text", sub_type: "message", delay: 1400, message: "Dodge!", message_RU: "Эвейд!" } 36 | ], 37 | "s-3101-1000-138-0": [ 38 | { type: "text", sub_type: "message", message: "Jump P (Fast)", message_RU: "Прыжок (фаст)" }, 39 | { type: "text", sub_type: "message", delay: 1400, message: "Dodge!", message_RU: "Эвейд!" } 40 | ], 41 | "s-3101-1000-148-0": [ 42 | { type: "text", sub_type: "message", message: "Right Hand (Flying)", message_RU: "Правая рука (подлёт)" }, 43 | { type: "spawn", func: "circle", args: [false, 553, 20, 150, 10, 320, 0, 4000] } 44 | ], 45 | "s-3101-1000-149-0": [ 46 | { type: "text", sub_type: "message", message: "Left Hand (Flying)", message_RU: "Левая рука (подлёт)" }, 47 | { type: "spawn", func: "circle", args: [false, 553, 340, 150, 10, 320, 0, 4000] } 48 | ], 49 | "s-3101-1000-151-0": [{ type: "text", sub_type: "message", message: "Stun Attack!", message_RU: "Стан!" }], 50 | "s-3101-1000-313-0": [ 51 | { type: "text", sub_type: "message", message: "Circles (Slow)", message_RU: "Кольцо" }, 52 | { type: "spawn", func: "circle", args: [false, 553, 0, 75, 10, 300, 0, 6000] } 53 | ], 54 | "s-3101-1000-314-0": [ 55 | { type: "text", sub_type: "message", message: "Circles (Fast)", message_RU: "Кольцо (фаст)" }, 56 | { type: "spawn", func: "circle", args: [false, 553, 0, 75, 10, 300, 0, 6000] } 57 | ], 58 | 59 | // 2 BOSS 60 | "nd-3101-2000": [ 61 | { type: "stop_timers" }, 62 | { type: "despawn_all" } 63 | ], 64 | "s-3101-2000-108-0": [{ type: "text", sub_type: "message", message: "Back Attack!", message_RU: "Откид назад!" }], 65 | "s-3101-2000-150-0": [{ type: "text", sub_type: "message", message: "Phantom", message_RU: "Фантом" }], 66 | "s-3101-2000-228-0": [{ type: "text", sub_type: "message", message: "Team Up", message_RU: "Камни (вместе)!" }], 67 | "s-3101-2000-230-0": [ 68 | { type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }, 69 | { type: "text", sub_type: "message", delay: 1300, message: "Dodge!", message_RU: "Эвейд!" } 70 | ], 71 | "s-3101-2000-231-0": [ 72 | { type: "text", sub_type: "message", message: "Out Safe", message_RU: "От него" }, 73 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 3000] } 74 | ], 75 | "s-3101-2000-232-0": [ 76 | { type: "text", sub_type: "message", message: "In Safe", message_RU: "К нему" }, 77 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 3000] }, 78 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 3, 1000, 0, 3000] } 79 | ], 80 | "s-3101-2000-235-0": [{ type: "text", sub_type: "message", message: "Debuffs", message_RU: "Дебаффы" }], 81 | "s-3101-2000-236-0": [{ type: "text", sub_type: "message", message: "Counter Attack (Bait)", message_RU: "Конус вперед (байт)" }] 82 | }; 83 | }; -------------------------------------------------------------------------------- /guides/3103.js: -------------------------------------------------------------------------------- 1 | // Forbidden Arena [Undying Warlord] 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | let timer1 = null; 7 | let print_target = true; 8 | let in_bait = false; 9 | let gettingserious = false; // ~70% attacks unlocked like Flip Kick Stun 10 | 11 | function back_kick_event(skillid) { 12 | if ([107, 310].includes(skillid)) { // Bait/Back Flip 13 | in_bait = true; 14 | dispatch.setTimeout(() => in_bait = false, 3500); 15 | } 16 | 17 | if (skillid == 116) { // Haymaker 18 | if (in_bait) { 19 | handlers.text({ 20 | sub_type: "message", 21 | message: "Haymaker", 22 | message_RU: "Мощный удар" 23 | }); 24 | } else { // 116 -> 146 25 | handlers.text({ 26 | sub_type: "message", 27 | message: "Haymaker | Back Kick", 28 | message_RU: "Мощный удар | Откид назад" 29 | }); 30 | } 31 | } 32 | } 33 | 34 | function target_attack_event() { 35 | if (print_target) { 36 | dispatch.clearTimeout(timer1); 37 | print_target = false; 38 | dispatch.setTimeout(() => print_target = true, 5000); 39 | 40 | timer1 = dispatch.setTimeout(() => { 41 | handlers.text({ 42 | sub_type: "alert", 43 | message: "Target attacks soon...", 44 | message_RU: "Скоро таргет-атака..." 45 | }); 46 | }, 65000); 47 | } 48 | } 49 | 50 | return { 51 | "nd-3103-1000": [ 52 | { type: "stop_timers" }, 53 | { type: "despawn_all" } 54 | ], 55 | "h-3103-1000-99": [{ type: "func", func: () => gettingserious = false }], 56 | "h-3103-1000-70": [{ type: "func", func: () => gettingserious = true }], 57 | 58 | //"s-3103-1000-101-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Punch", message_RU: "Серия ударов" }], 59 | "s-3103-1000-113-0": [ 60 | { type: "text", sub_type: "message", message: "Roundhouse Kick | Stun", message_RU: "Удар с разворота | Стан", class_position: "tank", check_func: () => gettingserious }, 61 | { type: "text", sub_type: "message", message: "Roundhouse Kick", message_RU: "Удар с разворота", class_position: "tank", check_func: () => !gettingserious } 62 | ], 63 | "s-3103-1000-111-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 64 | "s-3103-1000-120-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 65 | //"s-3103-1000-102-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Combo", message_RU: "Комба" }], // 102 153/154 115/116 66 | "s-3103-1000-153-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Two Kicks", message_RU: "Два удара" }], // 153 108 67 | //"s-3103-1000-108-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Floor Punch", message_RU: "Удар о землю" }], 68 | //"s-3103-1000-127-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Many Kicks", message_RU: "Несколько ударов" }], 69 | 70 | "s-3103-1000-121-0": [{ type: "text", sub_type: "message", message: "Flip Kick (Stun)", message_RU: "Удар в воздухе (стан)" }], 71 | 72 | "qb-3103-1000-31031000": [{ type: "text", sub_type: "message", message: "Bait (Dodge)", message_RU: "Байт (эвейд)" }], 73 | // "s-3103-1000-124-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], // 305 124 74 | "s-3103-1000-107-0": [{ type: "func", func: back_kick_event, args: [107] }], 75 | 76 | "s-3103-1000-110-0": [ 77 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 78 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 12, 420, 0, 3000] } 79 | ], 80 | "s-3103-1000-114-0": [ 81 | { type: "text", sub_type: "message", message: "Leap (Knockdown)", message_RU: "Прыжок (опрокид)" }, 82 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 12, 240, 0, 2000] } 83 | ], 84 | //"s-3103-1000-154-0": [{ type: "text", sub_type: "message", message: "Jumping Kick", message_RU: "Удар в прыжке" }], // 154 310 116 85 | // 310 116 86 | "s-3103-1000-310-0": [ 87 | { type: "text", sub_type: "message", message: "Back Flip | Haymaker", message_RU: "Сальто назад | Мощный удар" }, 88 | { type: "func", func: back_kick_event, args: [310] } 89 | ], 90 | "s-3103-1000-116-0": [{ type: "func", func: back_kick_event, args: [116] }], // Haymaker 91 | "s-3103-1000-115-0": [{ type: "text", sub_type: "message", message: "Haymaker (Tank)", message_RU: "Мощный удар (танк)" }], 92 | "s-3103-1000-131-0": [{ type: "text", sub_type: "message", message: "Rhythmic Blows", message_RU: "Ураганная серия" }], // 131 132 133 93 | // 116 146 94 | "s-3103-1000-146-0": [ 95 | { type: "text", sub_type: "message", message: "Back Kick", message_RU: "Откид назад" }, // 116 146 96 | { type: "spawn", func: "vector", args: [553, 90, 120, 170, 600, 0, 3000] }, 97 | { type: "spawn", func: "vector", args: [553, 270, 120, -170, 600, 0, 3000] } 98 | ], 99 | 100 | // Shield 101 | "qb-3103-1000-31031006": [{ type: "text", sub_type: "message", message: "Shield!", message_RU: "Щит!" }], 102 | 103 | // Target "Ha" attacks 308 31031007 125 104 | "qb-3103-1000-31031007": [ 105 | { type: "text", sub_type: "message", message: "Kick (Target)", message_RU: "Удар (таргет)", class_position: "tank" }, 106 | { type: "text", sub_type: "message", message: "Dodge (Target)", message_RU: "Эвейд (таргет) ", class_position: ["heal", "dps"] }, 107 | { type: "func", func: target_attack_event } 108 | ], 109 | // "s-3103-1000-125-0": [{ type: "text", sub_type: "message", message: "Kick", message_RU: "Удар" }], // 308 125 110 | 111 | // Donuts 112 | "qb-3103-1000-31031008": [{ type: "text", sub_type: "message", message: "Donuts: Out > In > Dodge", message_RU: "Бублики: От него > К нему > Эвейд" }], // 31031008 303/304 117 155 113 | "qb-3103-1000-31031009": [{ type: "text", sub_type: "message", message: "Donuts: In > Out > Dodge", message_RU: "Бублики: К нему > От него > Эвейд" }], // 31031009 303/304 118 155 114 | "s-3103-1000-303-0": [ 115 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 630, 0, 7000] }, 116 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 250, 0, 5000] }, 117 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 490, 0, 5000] } 118 | ], 119 | "s-3103-1000-304-0": [ 120 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 630, 0, 7000] }, 121 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 250, 0, 5000] }, 122 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 490, 0, 5000] } 123 | ], 124 | "s-3103-1000-155-0": [{ type: "text", sub_type: "message", delay: 50, message: "Dodge", message_RU: "Эвейд" }], 125 | 126 | // Stun 142 148 129 127 | "s-3103-1000-142-0": [{ type: "text", sub_type: "message", message: "Stun | Back Wave", message_RU: "Стан | Волна назад" }], 128 | "s-3103-1000-148-0": [ 129 | { type: "text", sub_type: "message", delay: 1300, message: "Dodge", message_RU: "Эвейд" }, 130 | { type: "spawn", func: "circle", args: [true, 912, 0, -10, 12, 300, 0, 3000] } 131 | ], 132 | "s-3103-1000-129-0": [ 133 | { type: "text", sub_type: "message", message: "Back Wave", message_RU: "Волна назад (откид)" }, 134 | { type: "spawn", func: "vector", args: [912, 90, 210, 390, 300, 0, 2000] }, 135 | { type: "spawn", func: "vector", args: [912, 90, 140, 380, 350, 0, 2000] }, 136 | { type: "spawn", func: "vector", args: [912, 90, 70, 370, 400, 0, 2000] }, 137 | { type: "spawn", func: "vector", args: [912, 90, 0, 0, 400, 0, 2000] }, 138 | { type: "spawn", func: "vector", args: [912, 270, 70, -370, 400, 0, 2000] }, 139 | { type: "spawn", func: "vector", args: [912, 270, 140, -380, 350, 0, 2000] }, 140 | { type: "spawn", func: "vector", args: [912, 270, 210, -390, 300, 0, 2000] } 141 | ], 142 | 143 | // Jump 143-0 143-1 144 | "qb-3103-1000-31031001": [{ type: "text", sub_type: "message", message: "Bait on res", message_RU: "Байт на рес" }], 145 | "s-3103-1000-143-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 146 | "s-3103-1000-143-1": [{ type: "spawn", func: "circle", args: [true, 553, 0, 0, 14, 240, 0, 2000] }], 147 | 148 | // AoE 313 314 149 | "s-3103-1000-313-0": [{ type: "text", sub_type: "message", message: "AOE", message_RU: "AOE" }], 150 | "s-3103-1000-314-0": [{ type: "text", sub_type: "message", message: "Get Out", message_RU: "Выйти" }], 151 | 152 | // Debuff 153 | "ae-0-0-31031011": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }], 154 | "am-3103-1000-31031011": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }], 155 | "am-3103-1000-31031012": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }] 156 | }; 157 | }; -------------------------------------------------------------------------------- /guides/3104.js: -------------------------------------------------------------------------------- 1 | // Catalepticon 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | let combo_count = 0; 8 | 9 | const is_mt = dispatch._mod.connection.metadata.serverList[dispatch._mod.serverId].name.includes("MT"); 10 | 11 | dispatch.hook("S_ABNORMALITY_BEGIN", dispatch._mod.majorPatchVersion >= 107 ? 5 : 4, event => { 12 | if (event.id === 31040001) 13 | handlers.marker({ id: event.target, color: "yellow", sub_delay: 1000000 }); 14 | }); 15 | 16 | return { 17 | "ns-3104-1000": [{ type: "func", func: () => combo_count = 0 }], 18 | "nd-3104-1000": [ 19 | { type: "stop_timers" }, 20 | { type: "despawn_all" }, 21 | { type: "marker_remove_all" } 22 | ], 23 | 24 | "qb-3104-1000-32042000": [ 25 | { type: "text", sub_type: "message", message: "Arrows", message_RU: "Стрелки" }, 26 | { type: "func", func: () => combo_count = 0 } 27 | ], 28 | "qb-3104-1000-32041000": [ 29 | { type: "text", sub_type: "message", message: "Bait (Target)", message_RU: "Байт (таргет)" } 30 | ], 31 | "h-3104-1000-50": [{ type: "text", sub_type: "message", message: "50%", message_RU: "50%", check_func: () => is_mt }], 32 | "h-3104-1000-35": [{ type: "text", sub_type: "message", message: "35%", message_RU: "35%", check_func: () => !is_mt }], 33 | 34 | "s-3104-1000-104-0": [ 35 | { type: "text", sub_type: "message", message: "Stun (AOE)", message_RU: "Стан (АОЕ)" }, 36 | { type: "spawn", func: "circle", args: [true, 553, 180, -50, 10, 380, 0, 2000] } 37 | ], 38 | "s-3104-1000-107-0": [ 39 | { type: "text", sub_type: "message", message: "Line Forward + Side Lines", message_RU: "Полоса вперед + полосы по бокам" }, 40 | { type: "spawn", func: "vector", args: [553, 90, 50, 0, 1000, 0, 2000] }, 41 | { type: "spawn", func: "vector", args: [553, 270, 50, 0, 1000, 0, 2000] }, 42 | { type: "spawn", func: "vector", args: [553, 90, 50, 180, 1000, 0, 2000] }, 43 | { type: "spawn", func: "vector", args: [553, 270, 50, 180, 1000, 0, 2000] }, 44 | { type: "func", func: () => combo_count++ }, 45 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 3000, true, null], check_func: () => combo_count == 2, delay: 1000 } 46 | ], 47 | "s-3104-1000-110-0": [ 48 | { type: "text", sub_type: "message", message: "Target + Wave", message_RU: "Таргет + волна" }, 49 | { type: "spawn", func: "circle", args: [true, 553, 180, -500, 10, 350, 0, 1500] }, 50 | { type: "spawn", func: "vector", args: [553, 180, -50, 120, 500, 0, 2000], delay: 1500 }, 51 | { type: "spawn", func: "vector", args: [553, 180, -50, 240, 500, 0, 2000], delay: 1500 }, 52 | { type: "func", func: () => combo_count++ }, 53 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 3000, true, null], check_func: () => combo_count == 2, delay: 2500 } 54 | ], 55 | "s-3104-1000-112-0": [{ type: "text", sub_type: "message", message: "Wave Forward", message_RU: "Волна вперед" }, 56 | { type: "spawn", func: "vector", args: [553, 0, 0, 70, 500, 0, 2000] }, 57 | { type: "spawn", func: "vector", args: [553, 0, 0, 290, 500, 0, 2000] } 58 | ], 59 | "s-3104-1000-114-0": [{ type: "text", sub_type: "message", message: "Inner + Outer AOEs", message_RU: "Внутреннее + внешнее АОЕ" }], 60 | "s-3104-1000-116-0": [ 61 | { type: "text", sub_type: "message", message: "Line Forward", message_RU: "Полоса вперед" }, 62 | { type: "spawn", func: "vector", args: [553, 90, 50, 0, 1000, 0, 2000] }, 63 | { type: "spawn", func: "vector", args: [553, 270, 50, 0, 1000, 0, 2000] }, 64 | { type: "spawn", func: "vector", args: [553, 90, 50, 180, 1000, 0, 2000] }, 65 | { type: "spawn", func: "vector", args: [553, 270, 50, 180, 1000, 0, 2000] } 66 | ], 67 | "s-3104-1000-119-0": [{ type: "text", sub_type: "message", message: "Two Strikes", message_RU: "Два удара" }], 68 | "s-3104-1000-120-0": [ 69 | { type: "text", sub_type: "message", message: "Two Strikes + Stun (AOE)", message_RU: "Два удара + стан (АОЕ)" }, 70 | { type: "text", sub_type: "message", message: "Stun (AOE)", message_RU: "Стан (АОЕ)", delay: 1500 }, 71 | { type: "spawn", func: "circle", args: [true, 553, 180, -100, 10, 700, 0, 2500], delay: 1500 } 72 | ], 73 | "s-3104-1000-123-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Круговая" }], 74 | "s-3104-1000-125-0": [{ type: "text", sub_type: "message", message: "Stun (Tank)", message_RU: "Стан (танк)" }], 75 | "s-3104-1000-127-0": [ 76 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 77 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 2000, true, null] } 78 | ], 79 | "s-3104-1000-128-0": [ 80 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 81 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 2000, true, null] } 82 | ], 83 | "s-3104-1000-148-0": [ 84 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 85 | { type: "spawn", func: "marker", args: [false, 150, 150, 0, 2000, true, null] }, 86 | { type: "spawn", func: "marker", args: [false, 340, 150, 0, 2000, true, null], delay: 1500 } 87 | ], 88 | "s-3104-1000-156-0": [{ type: "text", sub_type: "message", message: "Get Skulls", message_RU: "Черепа" }], 89 | "s-3104-1000-157-0": [{ type: "text", sub_type: "message", message: "Gather!", message_RU: "Собраться!", delay: 2000 }], 90 | "s-3104-1000-158-0": [{ type: "text", sub_type: "message", message: "Gather!", message_RU: "Собраться!", delay: 5000 }], 91 | "s-3104-1000-159-0": [ 92 | { type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }, 93 | { type: "marker_remove_all", delay: 3000 } 94 | ] 95 | }; 96 | }; -------------------------------------------------------------------------------- /guides/3106.js: -------------------------------------------------------------------------------- 1 | // Killing Grounds 2 | // 3 | // made by HSDN / Kuroine / Minghan / Vampic 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | const { player } = dispatch.require.library; 8 | 9 | let combo_start = false; 10 | 11 | let stack = 0; 12 | let stackTimer = null; 13 | 14 | function stack_add_event() { 15 | stack++; 16 | dispatch.clearTimeout(stackTimer); 17 | stackTimer = dispatch.setTimeout(() => stack = 0, 86000); 18 | } 19 | 20 | function stack_remove_event() { 21 | dispatch.clearTimeout(stackTimer); 22 | stack = 0; 23 | } 24 | 25 | dispatch.hook("S_USER_EFFECT", 1, event => { 26 | if (event.circle == 3 && event.operation == 1) { 27 | if (dispatch._mod.game.me.is(event.target)) { 28 | handlers.text({ sub_type: "notification", message: "Snowball on you", message_RU: "Снежок на тебе" }); 29 | } else { 30 | const member = player.playersInParty.get(event.target); 31 | if (member) { 32 | handlers.text({ 33 | sub_type: "message", 34 | message: `Snowball on ${member.name}`, 35 | message_RU: `Снежок на ${member.name}` 36 | }); 37 | } else { 38 | handlers.text({ sub_type: "message", message: "Snowball", message_RU: "Снежок" }); 39 | } 40 | } 41 | handlers.marker({ id: event.target, color: "yellow", sub_delay: 1000000 }); 42 | } else if (event.circle == 3 && event.operation == 2) { 43 | handlers.marker_remove_all({ delay: 1000 }); 44 | } 45 | }); 46 | 47 | dispatch.hook("S_ABNORMALITY_BEGIN", dispatch._mod.majorPatchVersion >= 107 ? 5 : 4, event => { 48 | if (event.id === 32060024) { 49 | if (dispatch._mod.game.me.is(event.target)) { 50 | handlers.text({ sub_type: "notification", message: "Eye on you", message_RU: "Глазик на тебе" }); 51 | } else { 52 | const member = player.playersInParty.get(event.target); 53 | if (member) { 54 | handlers.text({ 55 | sub_type: "message", 56 | message: `Eye on ${member.name}`, 57 | message_RU: `Глазик на ${member.name}` 58 | }); 59 | } else { 60 | handlers.text({ sub_type: "message", message: "Eye", message_RU: "Глазик" }); 61 | } 62 | } 63 | } 64 | }); 65 | 66 | return { 67 | "nd-3106-1000": [ 68 | { type: "stop_timers" }, 69 | { type: "despawn_all" }, 70 | { type: "marker_remove_all" }, 71 | { type: "func", func: stack_remove_event } 72 | ], 73 | "ns-3106-1000": [ 74 | { type: "spawn", func: "marker", args: [false, 3, -700, 100, 60000000, false, ["Giant", "Giant Direction"]] }, 75 | { type: "func", func: stack_remove_event } 76 | ], 77 | 78 | "die": [{ type: "func", func: stack_remove_event }], 79 | 80 | "am-3106-1000-32060007": [{ type: "func", func: stack_add_event }], 81 | "ar-3106-1000-32060007": [{ type: "func", func: stack_remove_event }], 82 | 83 | "qb-3106-1000-32061001": [ 84 | { type: "text", sub_type: "message", message: "Close - IN", message_RU: "Ближние - к нему", check_func: () => stack === 0 }, 85 | { type: "text", sub_type: "message", message: "Close - OUT", message_RU: "Ближние - от него", check_func: () => stack !== 0 }, 86 | { type: "text", sub_type: "alert", message: "Soon to give stun...", message_RU: "Скоро давать стан...", delay: 2000 } 87 | ], 88 | "qb-3106-1000-32061002": [ 89 | { type: "text", sub_type: "message", message: "Furthest - OUT", message_RU: "Дальние - от него", check_func: () => stack === 0 }, 90 | { type: "text", sub_type: "message", message: "Furthest - IN", message_RU: "Дальние - к нему", check_func: () => stack !== 0 }, 91 | { type: "text", sub_type: "alert", message: "Soon to give stun...", message_RU: "Скоро давать стан...", delay: 2000 } 92 | ], 93 | 94 | "s-3106-1000-102-0": [ 95 | { type: "func", func: () => combo_start = true }, 96 | { type: "func", func: () => combo_start = false, delay: 1400 } 97 | ], 98 | "s-3106-1000-105-0": [{ type: "text", sub_type: "message", message: "Knockback Spin (Kaia)", message_RU: "Оборот (Кайа)", check_func: () => combo_start === true }], 99 | "s-3106-1000-106-0": [ 100 | { type: "text", sub_type: "message", message: "Knockback", message_RU: "Откид" }, 101 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 350, 0, 3000] } 102 | ], 103 | 104 | "s-3106-1000-109-0": [ 105 | { type: "text", sub_type: "message", message: "Jump (Knockdown)", message_RU: "Прыжок (опрокид)" }, 106 | { type: "spawn", func: "circle", args: [true, 553, 0, 150, 10, 300, 0, 2500] } 107 | ], 108 | "s-3106-1000-111-0": [{ type: "text", sub_type: "message", message: "Knockdown (Dodge)", message_RU: "Опрокид (эвейд)", class_position: "tank" }], 109 | "s-3106-1000-201-0": [{ type: "text", sub_type: "message", message: "Front (Dodge)", message_RU: "Удар вперед (эвейд)", class_position: "tank" }], 110 | "s-3106-1000-202-0": [{ type: "text", sub_type: "message", message: "Front AoE", message_RU: "Переднее АоЕ" }], 111 | "s-3106-1000-203-0": [{ type: "text", sub_type: "message", message: "Front AoE + Wave", message_RU: "Переднее АоЕ + волна" }], 112 | "s-3106-1000-205-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 113 | "s-3106-1000-206-0": [{ type: "text", sub_type: "message", message: "Spin (Bleed)", message_RU: "Крутилка (кровоток)" }], 114 | "s-3106-1000-207-0": [{ type: "text", sub_type: "message", message: "Spin (Bleed)", message_RU: "Крутилка (кровоток)" }], 115 | "s-3106-1000-209-0": [ 116 | { type: "text", sub_type: "message", message: "Give Stun! (Knockdown)", message_RU: "Дать стан! (опрокид)" }, 117 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 400, 0, 1500] } 118 | ], 119 | "s-3106-1000-210-0": [ 120 | { type: "text", sub_type: "message", message: "Give Stun! (Knockdown)", message_RU: "Дать стан! (опрокид)" }, 121 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 400, 0, 1500] } 122 | ], 123 | "s-3106-1000-211-0": [{ type: "text", sub_type: "message", message: "Push", message_RU: "Откид" }], 124 | "s-3106-1000-212-0": [{ type: "text", sub_type: "message", message: "Somersault", message_RU: "Кувырок" }], 125 | "s-3106-1000-215-0": [{ type: "text", sub_type: "message", message: "Somersault", message_RU: "Кувырок" }], 126 | "s-3106-1000-507-0": [{ type: "text", sub_type: "message", message: "Leash | Jump (Knockdown)", message_RU: "Притяжка | Прыжок (опрокид)" }], 127 | "s-3106-1000-508-0": [ 128 | { type: "text", sub_type: "message", message: "Donuts (Out > In)", message_RU: "Бублики (от него > к нему)" }, 129 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 130 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 131 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 132 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 133 | ], 134 | "s-3106-1000-509-0": [ 135 | { type: "text", sub_type: "message", message: "Donuts (In > Out)", message_RU: "Бублики (к нему > от него)" }, 136 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 137 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 138 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 139 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 140 | ], 141 | "s-3106-1000-512-0": [{ type: "text", sub_type: "message", message: "Turn | Spin", message_RU: "Разворот | Крутилка" }], 142 | //"s-3106-1000-513-0": [{ type: "text", sub_type: "message", message: "Plague/Regress", message_RU: "Чума/регресс" }], 143 | //"s-3106-1000-514-0": [{ type: "text", sub_type: "message", message: "Plague/Regress", message_RU: "Чума/регресс" }], 144 | 145 | "s-3106-1000-502-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 146 | "s-3106-1000-518-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 147 | "s-3106-1000-519-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 148 | "s-3106-1000-306-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 149 | "s-3106-1000-309-0": [{ type: "text", sub_type: "message", message: "Front", message_RU: "Удар вперед" }], 150 | "s-3106-1000-311-0": [{ type: "text", sub_type: "message", message: "Evade!", message_RU: "Эвейд!", delay: 150 }], 151 | "s-3106-1000-321-0": [{ type: "text", sub_type: "message", message: "AoE", message_RU: "АоЕ" }], 152 | "s-3106-1000-324-0": [{ type: "text", sub_type: "message", message: "AoE", message_RU: "АоЕ" }] 153 | }; 154 | }; -------------------------------------------------------------------------------- /guides/3123.js: -------------------------------------------------------------------------------- 1 | // Akalath Quarantine (Hard) 2 | // 3 | // made by michengs 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = ES; 7 | 8 | let debuff = null; // default debuff 9 | 10 | return { 11 | // 1 BOSS 12 | "nd-3123-1000": [ 13 | { type: "stop_timers" }, 14 | { type: "despawn_all" } 15 | ], 16 | // Debuff removed 17 | "die": [{ type: "func", func: () => { debuff = null; } }], 18 | // Debuf added 19 | "ae-0-0-30231000": [{ type: "func", func: () => debuff = 1 }], // AoE (red) 20 | "ae-0-0-30231001": [{ type: "func", func: () => debuff = 2 }], // AoE (blue) 21 | "am-3123-1000-30231000": [{ type: "func", func: () => debuff = 1 }], // Red 22 | "am-3123-1000-30231001": [{ type: "func", func: () => debuff = 2 }], // Blue 23 | 24 | "s-3123-1000-104-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Прыжок + Стан" }], 25 | "s-3123-1000-105-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Поворот назад" }], 26 | "s-3123-1000-110-0": [ 27 | { type: "text", sub_type: "message", message: "Stun", message_RU: "Передний стан" }, 28 | { type: "spawn", func: "circle", args: [false, 553, 0, 175, 10, 260, 0, 6000] } 29 | ], 30 | "s-3123-1000-111-0": [ 31 | { type: "text", sub_type: "message", message: "Left Slash", message_RU: "Левая полоса" }, 32 | { type: "spawn", func: "vector", args: [553, 270, 200, 180, 500, 0, 2000] }, 33 | { type: "spawn", func: "vector", args: [553, 270, 200, 0, 300, 0, 2000] }, 34 | { type: "spawn", func: "vector", args: [553, 90, 20, 180, 500, 0, 2000] }, 35 | { type: "spawn", func: "vector", args: [553, 90, 20, 0, 300, 0, 2000] }, 36 | { type: "spawn", func: "vector", args: [553, 6, 302, 270, 200, 0, 2000] }, 37 | { type: "spawn", func: "vector", args: [553, 176, 502, 270, 200, 0, 2000] } 38 | ], 39 | "s-3123-1000-112-0": [ 40 | { type: "text", sub_type: "message", message: "Right Slash", message_RU: "Правая полоса" }, 41 | { type: "spawn", func: "vector", args: [553, 90, 200, 180, 500, 0, 2000] }, 42 | { type: "spawn", func: "vector", args: [553, 90, 200, 0, 300, 0, 2000] }, 43 | { type: "spawn", func: "vector", args: [553, 270, 20, 180, 500, 0, 2000] }, 44 | { type: "spawn", func: "vector", args: [553, 270, 20, 0, 300, 0, 2000] }, 45 | { type: "spawn", func: "vector", args: [553, 354, 302, 90, 200, 0, 2000] }, 46 | { type: "spawn", func: "vector", args: [553, 184, 502, 90, 200, 0, 2000] } 47 | ], 48 | "s-3123-1000-113-0": "s-3123-1000-111-0", 49 | "s-3123-1000-114-0": "s-3123-1000-112-0", 50 | "s-3123-1000-115-0": [ 51 | { type: "text", sub_type: "message", message: "Back Attack", message_RU: "Удар назад" }, 52 | { type: "spawn", func: "semicircle", args: [90, 280, 553, 0, 0, 15, 160, 0, 2000] }, 53 | { type: "spawn", func: "semicircle", args: [90, 275, 553, 0, 0, 10, 250, 0, 2000] }, 54 | { type: "spawn", func: "semicircle", args: [90, 270, 553, 0, 0, 10, 340, 0, 2000] }, 55 | { type: "spawn", func: "vector", args: [553, 90, 150, 90, 150, 0, 2000] }, 56 | { type: "spawn", func: "vector", args: [553, 270, 150, 270, 150, 0, 2000] } 57 | ], 58 | "s-3123-1000-116-0": [ 59 | { type: "text", sub_type: "message", message: "Kaia's Shield", message_RU: "Кайа", class_position: "priest" }, 60 | { type: "text", sub_type: "message", message: "Thrall of Protection", message_RU: "Кайа", class_position: "mystic" }, 61 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 560, 0, 6000] } 62 | ], 63 | "s-3123-1000-3107-0": [ 64 | { type: "text", sub_type: "message", message: "Smash", message_RU: "Конус вперед" }, 65 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 66 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 67 | ], 68 | "s-3123-1000-3115-0": [ 69 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 70 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 71 | ], 72 | "s-3123-1000-3116-0": [ 73 | { type: "text", sub_type: "message", message: "Circles + Spin", message_RU: "Круги + Крутилка" }, 74 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 5000] } 75 | ], 76 | "s-3123-1000-3119-0": [ // red inside 77 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 1, delay: 500 }, 78 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 2, delay: 500 }, 79 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 80 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 81 | ], 82 | "s-3123-1000-3220-0": [ // blue inside 83 | { type: "text", sub_type: "message", message: "IN (blue)", message_RU: "К НЕМУ", check_func: () => debuff === 1, delay: 500 }, 84 | { type: "text", sub_type: "message", message: "OUT (red)", message_RU: "ОТ НЕГО", check_func: () => debuff === 2, delay: 500 }, 85 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 4000] }, 86 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 650, 0, 4000] } 87 | ], 88 | 89 | // 2 BOSS 90 | "nd-3123-2000": [ 91 | { type: "stop_timers" }, 92 | { type: "despawn_all" } 93 | ], 94 | "s-3123-2000-164-0": [{ type: "text", sub_type: "message", message: "Counter Attack (bleed)", message_RU: "Отпрыжка (Кровоток)" }], 95 | "s-3123-2000-166-0": [{ type: "text", sub_type: "message", message: "Turn-back", message_RU: "Оборот назад" }], 96 | "s-3123-2000-175-0": [ 97 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 98 | { type: "text", sub_type: "message", delay: 1500, message: "Dodge", message_RU: "Эвейд" } 99 | ], 100 | "s-3123-2000-178-0": [{ type: "text", sub_type: "message", message: "Scratching (bleed)", message_RU: "Крутилка (Кровоток)" }], 101 | "s-3123-2000-181-0": [ 102 | { type: "text", sub_type: "message", message: "Rock Throw", message_RU: "Полоса вперед" }, 103 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 4000] }, 104 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 4000] } 105 | ], 106 | 107 | "s-3123-2000-214-0": [{ type: "text", sub_type: "message", message: "5x Rock", message_RU: "5x Полосы" }], 108 | 109 | "s-3123-2000-182-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 110 | "s-3123-2000-185-0": [ 111 | { type: "text", sub_type: "message", message: "Big jump (Kaia's Shield)", message_RU: "Прыжок (кайа)", class_position: "priest" }, 112 | { type: "text", sub_type: "message", message: "Big jump (Thrall of Protection)", message_RU: "Прыжок (кайа)", class_position: "mystic" }, 113 | { type: "text", sub_type: "alert", delay: 110000, message: "Big jump soon...", message_RU: "Скоро прыжок...", class_position: "heal" }, 114 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 500, 0, 6000] }, 115 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 750, 0, 6000] } 116 | ], 117 | "s-3123-2000-202-0": [ 118 | { type: "text", sub_type: "message", message: "Backstab", message_RU: "Назад + Вперед" }, 119 | { type: "spawn", func: "vector", args: [553, 90, 80, 180, 500, 0, 3000] }, 120 | { type: "spawn", func: "vector", args: [553, 270, 80, 180, 500, 0, 3000] } 121 | ], 122 | "s-3123-2000-207-0": [{ type: "text", sub_type: "message", message: "Phantom x5 (bleed)", message_RU: "Прыжки x5 (Кровоток)" }], 123 | "s-3123-2000-212-0": [{ type: "text", sub_type: "message", message: "Flash (bleed)", message_RU: "Байт (Кровоток)" }] 124 | }; 125 | }; -------------------------------------------------------------------------------- /guides/3203.js: -------------------------------------------------------------------------------- 1 | // Forbidden Arena [Nightmare Undying Warlord] 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | let timer1 = null; 7 | let print_target = true; 8 | let in_bait = false; 9 | let gettingserious = false; // ~70% attacks unlocked like Flip Kick Stun 10 | 11 | function back_kick_event(skillid) { 12 | if ([107, 310].includes(skillid)) { // Bait/Back Flip 13 | in_bait = true; 14 | dispatch.setTimeout(() => in_bait = false, 3500); 15 | } 16 | 17 | if (skillid == 116) { // Haymaker 18 | if (in_bait) { 19 | handlers.text({ 20 | sub_type: "message", 21 | message: "Haymaker", 22 | message_RU: "Мощный удар" 23 | }); 24 | } else { // 116 -> 146 25 | handlers.text({ 26 | sub_type: "message", 27 | message: "Haymaker | Back Kick", 28 | message_RU: "Мощный удар | Откид назад" 29 | }); 30 | } 31 | } 32 | } 33 | 34 | function target_attack_event() { 35 | if (print_target) { 36 | dispatch.clearTimeout(timer1); 37 | print_target = false; 38 | dispatch.setTimeout(() => print_target = true, 5000); 39 | 40 | timer1 = dispatch.setTimeout(() => { 41 | handlers.text({ 42 | sub_type: "alert", 43 | message: "Target attacks soon...", 44 | message_RU: "Скоро таргет-атака..." 45 | }); 46 | }, 65000); 47 | } 48 | } 49 | 50 | return { 51 | "nd-3203-1000": [ 52 | { type: "stop_timers" }, 53 | { type: "despawn_all" } 54 | ], 55 | "h-3203-1000-99": [{ type: "func", func: () => gettingserious = false }], 56 | "h-3203-1000-70": [{ type: "func", func: () => gettingserious = true }], 57 | "h-3203-1000-30": [{ type: "text", sub_type: "message", message: "30%", message_RU: "30%" }], 58 | 59 | //"s-3203-1000-101-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Punch", message_RU: "Серия ударов" }], 60 | "s-3203-1000-113-0": [ 61 | { type: "text", sub_type: "message", message: "Roundhouse Kick | Stun", message_RU: "Удар с разворота | Стан", class_position: "tank", check_func: () => gettingserious }, 62 | { type: "text", sub_type: "message", message: "Roundhouse Kick", message_RU: "Удар с разворота", class_position: "tank", check_func: () => !gettingserious } 63 | ], 64 | "s-3203-1000-111-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 65 | "s-3203-1000-120-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 66 | //"s-3203-1000-102-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Combo", message_RU: "Комба" }], // 102 153/154 115/116 67 | "s-3203-1000-153-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Two Kicks", message_RU: "Два удара" }], // 153 108 68 | //"s-3203-1000-108-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Floor Punch", message_RU: "Удар о землю" }], 69 | //"s-3203-1000-127-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Many Kicks", message_RU: "Несколько ударов" }], 70 | 71 | "s-3203-1000-121-0": [{ type: "text", sub_type: "message", message: "Flip Kick (Stun)", message_RU: "Удар в воздухе (стан)" }], 72 | 73 | "qb-3203-1000-32031000": [{ type: "text", sub_type: "message", message: "Bait (Dodge)", message_RU: "Байт (эвейд)" }], 74 | // "s-3203-1000-124-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], // 305 124 75 | "s-3203-1000-107-0": [{ type: "func", func: back_kick_event, args: [107] }], 76 | 77 | "s-3203-1000-110-0": [ 78 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 79 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 12, 420, 0, 3000] } 80 | ], 81 | "s-3203-1000-114-0": [ 82 | { type: "text", sub_type: "message", message: "Leap (Knockdown)", message_RU: "Прыжок (опрокид)" }, 83 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 12, 240, 0, 2000] } 84 | ], 85 | //"s-3203-1000-154-0": [{ type: "text", sub_type: "message", message: "Jumping Kick", message_RU: "Удар в прыжке" }], // 154 310 116 86 | // 310 116 87 | "s-3203-1000-310-0": [ 88 | { type: "text", sub_type: "message", message: "Back Flip | Haymaker", message_RU: "Сальто назад | Мощный удар" }, 89 | { type: "func", func: back_kick_event, args: [310] } 90 | ], 91 | "s-3203-1000-116-0": [{ type: "func", func: back_kick_event, args: [116] }], // Haymaker 92 | "s-3203-1000-115-0": [{ type: "text", sub_type: "message", message: "Haymaker (Tank)", message_RU: "Мощный удар (танк)" }], 93 | "s-3203-1000-131-0": [{ type: "text", sub_type: "message", message: "Rhythmic Blows", message_RU: "Ураганная серия" }], // 131 132 133 94 | // 116 146 95 | "s-3203-1000-146-0": [ 96 | { type: "text", sub_type: "message", message: "Back Kick", message_RU: "Откид назад" }, // 116 146 97 | { type: "spawn", func: "vector", args: [553, 90, 120, 170, 600, 0, 3000] }, 98 | { type: "spawn", func: "vector", args: [553, 270, 120, -170, 600, 0, 3000] } 99 | ], 100 | 101 | // Shield 102 | "qb-3203-1000-32031006": [{ type: "text", sub_type: "message", message: "Shield!", message_RU: "Щит!" }], 103 | 104 | // Target "Ha" attacks 308 32031007 125 105 | "qb-3203-1000-32031007": [ 106 | { type: "text", sub_type: "message", message: "Kick (Target)", message_RU: "Удар (таргет)", class_position: "tank" }, 107 | { type: "text", sub_type: "message", message: "Dodge (Target)", message_RU: "Эвейд (таргет) ", class_position: ["heal", "dps"] }, 108 | { type: "func", func: target_attack_event } 109 | ], 110 | // "s-3203-1000-125-0": [{ type: "text", sub_type: "message", message: "Kick", message_RU: "Удар" }], // 308 125 111 | 112 | // Donuts 113 | "qb-3203-1000-32031008": [{ type: "text", sub_type: "message", message: "Donuts: Out > In > Dodge", message_RU: "Бублики: От него > К нему > Эвейд" }], // 32031008 303/304 117 155 114 | "qb-3203-1000-32031009": [{ type: "text", sub_type: "message", message: "Donuts: In > Out > Dodge", message_RU: "Бублики: К нему > От него > Эвейд" }], // 32031009 303/304 118 155 115 | "s-3203-1000-303-0": [ 116 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 630, 0, 7000] }, 117 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 250, 0, 5000] }, 118 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 490, 0, 5000] } 119 | ], 120 | "s-3203-1000-304-0": [ 121 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 630, 0, 7000] }, 122 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 250, 0, 5000] }, 123 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 490, 0, 5000] } 124 | ], 125 | "s-3203-1000-155-0": [{ type: "text", sub_type: "message", delay: 50, message: "Dodge", message_RU: "Эвейд" }], 126 | 127 | // Stun 142 148 129 128 | "s-3203-1000-142-0": [{ type: "text", sub_type: "message", message: "Stun | Back Wave", message_RU: "Стан | Волна назад" }], 129 | "s-3203-1000-148-0": [ 130 | { type: "text", sub_type: "message", delay: 1300, message: "Dodge", message_RU: "Эвейд" }, 131 | { type: "spawn", func: "circle", args: [true, 912, 0, -10, 12, 300, 0, 3000] } 132 | ], 133 | "s-3203-1000-129-0": [ 134 | { type: "text", sub_type: "message", message: "Back Wave", message_RU: "Волна назад (откид)" }, 135 | { type: "spawn", func: "vector", args: [912, 90, 210, 390, 300, 0, 2000] }, 136 | { type: "spawn", func: "vector", args: [912, 90, 140, 380, 350, 0, 2000] }, 137 | { type: "spawn", func: "vector", args: [912, 90, 70, 370, 400, 0, 2000] }, 138 | { type: "spawn", func: "vector", args: [912, 90, 0, 0, 400, 0, 2000] }, 139 | { type: "spawn", func: "vector", args: [912, 270, 70, -370, 400, 0, 2000] }, 140 | { type: "spawn", func: "vector", args: [912, 270, 140, -380, 350, 0, 2000] }, 141 | { type: "spawn", func: "vector", args: [912, 270, 210, -390, 300, 0, 2000] } 142 | ], 143 | 144 | // Jump 143-0 143-1 145 | "qb-3203-1000-32031001": [{ type: "text", sub_type: "message", message: "Bait on res", message_RU: "Байт на рес" }], 146 | "s-3203-1000-143-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 147 | "s-3203-1000-143-1": [{ type: "spawn", func: "circle", args: [true, 553, 0, 0, 14, 240, 0, 2000] }], 148 | 149 | // AoE 313 314 150 | "s-3203-1000-313-0": [{ type: "text", sub_type: "message", message: "AOE", message_RU: "AOE" }], 151 | "s-3203-1000-314-0": [{ type: "text", sub_type: "message", message: "Get Out", message_RU: "Выйти" }], 152 | 153 | // Explosion 32031003 152 / 135 154 | "s-3203-1000-152-0": [ 155 | { type: "text", sub_type: "message", message: "Explosion (Stun)", message_RU: "Взрыв (стан)" }, 156 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд" }, 157 | { type: "spawn", func: "circle", args: [true, 912, 0, 0, 8, 460, 0, 2500] }, 158 | { type: "text", sub_type: "alert", delay: 58000, message: "Explosion soon...", message_RU: "Скоро взрыв..." } 159 | ], 160 | "s-3203-1000-135-0": [ 161 | { type: "text", sub_type: "message", message: "Explosion (Stun)", message_RU: "Взрыв (стан)" }, 162 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд" }, 163 | { type: "spawn", func: "circle", args: [true, 912, 0, 0, 8, 460, 0, 2500] }, 164 | { type: "text", sub_type: "alert", delay: 58000, message: "Explosion soon...", message_RU: "Скоро взрыв..." } 165 | ], 166 | 167 | // Debuff 168 | "ae-0-0-32031011": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }], 169 | "am-3203-1000-32031011": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }], 170 | "am-3203-1000-32031012": [{ type: "text", sub_type: "alert", message: "Debuff Stack", message_RU: "Дебафф (стаки)" }] 171 | }; 172 | }; -------------------------------------------------------------------------------- /guides/3204.js: -------------------------------------------------------------------------------- 1 | // Catalepticon (Hard) 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | let combo_count = 0; 8 | 9 | dispatch.hook("S_ABNORMALITY_BEGIN", dispatch._mod.majorPatchVersion >= 107 ? 5 : 4, event => { 10 | if (event.id === 32040001) 11 | handlers.marker({ id: event.target, color: "yellow", sub_delay: 1000000 }); 12 | }); 13 | 14 | return { 15 | "ns-3204-1000": [{ type: "func", func: () => combo_count = 0 }], 16 | "nd-3204-1000": [ 17 | { type: "stop_timers" }, 18 | { type: "despawn_all" }, 19 | { type: "marker_remove_all" } 20 | ], 21 | 22 | "qb-3204-1000-32041000": [ 23 | { type: "text", sub_type: "message", message: "Arrows", message_RU: "Стрелки" }, 24 | { type: "func", func: () => combo_count = 0 } 25 | ], 26 | "qb-3204-1000-32042000": [{ type: "text", sub_type: "message", message: "Arrows + Line", message_RU: "Стрелки + полоса" }], 27 | "qb-3204-1000-32042006": [ 28 | { type: "text", sub_type: "message", message: "Cage", message_RU: "Клетка" }, 29 | { type: "text", sub_type: "alert", message: "Cage soon...", message_RU: "Скоро клетка...", delay: 100000 } 30 | ], 31 | "qb-3204-1000-32042009": [ 32 | { type: "text", sub_type: "message", message: "Skeletons", message_RU: "Скелеты" }, 33 | { type: "text", sub_type: "alert", message: "Skeletons soon...", message_RU: "Скоро скелеты...", delay: 220000 } 34 | ], 35 | 36 | "h-3204-1000-90": [{ type: "text", sub_type: "message", message: "90%", message_RU: "90%" }], 37 | "h-3204-1000-75": [{ type: "text", sub_type: "message", message: "75%", message_RU: "75%" }], 38 | "h-3204-1000-40": [{ type: "text", sub_type: "message", message: "40%", message_RU: "40%" }], 39 | 40 | "s-3204-1000-104-0": [ 41 | { type: "text", sub_type: "message", message: "Stun (AOE)", message_RU: "Стан (АОЕ)" }, 42 | { type: "spawn", func: "circle", args: [true, 553, 180, -50, 10, 380, 0, 2000] } 43 | ], 44 | "s-3204-1000-107-0": [ 45 | { type: "text", sub_type: "message", message: "Line Forward + Side Lines", message_RU: "Полоса вперед + полосы по бокам" }, 46 | { type: "spawn", func: "vector", args: [553, 90, 50, 0, 1000, 0, 2000] }, 47 | { type: "spawn", func: "vector", args: [553, 270, 50, 0, 1000, 0, 2000] }, 48 | { type: "spawn", func: "vector", args: [553, 90, 50, 180, 1000, 0, 2000] }, 49 | { type: "spawn", func: "vector", args: [553, 270, 50, 180, 1000, 0, 2000] }, 50 | { type: "func", func: () => combo_count++ }, 51 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 3000, true, null], check_func: () => combo_count == 2, delay: 1000 } 52 | ], 53 | "s-3204-1000-110-0": [ 54 | { type: "text", sub_type: "message", message: "Target + Wave", message_RU: "Таргет + волна" }, 55 | { type: "spawn", func: "circle", args: [true, 553, 180, -500, 10, 350, 0, 1500] }, 56 | { type: "spawn", func: "vector", args: [553, 180, -50, 120, 500, 0, 2000], delay: 1500 }, 57 | { type: "spawn", func: "vector", args: [553, 180, -50, 240, 500, 0, 2000], delay: 1500 }, 58 | { type: "func", func: () => combo_count++ }, 59 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 3000, true, null], check_func: () => combo_count == 2, delay: 2500 } 60 | ], 61 | "s-3204-1000-112-0": [{ type: "text", sub_type: "message", message: "Wave Forward", message_RU: "Волна вперед" }, 62 | { type: "spawn", func: "vector", args: [553, 0, 0, 70, 500, 0, 2000] }, 63 | { type: "spawn", func: "vector", args: [553, 0, 0, 290, 500, 0, 2000] } 64 | ], 65 | "s-3204-1000-114-0": [{ type: "text", sub_type: "message", message: "Inner + Outer AOEs", message_RU: "Внутреннее + внешнее АОЕ" }], 66 | "s-3204-1000-116-0": [ 67 | { type: "text", sub_type: "message", message: "Line Forward", message_RU: "Полоса вперед" }, 68 | { type: "spawn", func: "vector", args: [553, 90, 50, 0, 1000, 0, 2000] }, 69 | { type: "spawn", func: "vector", args: [553, 270, 50, 0, 1000, 0, 2000] }, 70 | { type: "spawn", func: "vector", args: [553, 90, 50, 180, 1000, 0, 2000] }, 71 | { type: "spawn", func: "vector", args: [553, 270, 50, 180, 1000, 0, 2000] } 72 | ], 73 | "s-3204-1000-119-0": [{ type: "text", sub_type: "message", message: "Two Strikes", message_RU: "Два удара" }], 74 | "s-3204-1000-120-0": [ 75 | { type: "text", sub_type: "message", message: "Two Strikes + Stun (AOE)", message_RU: "Два удара + стан (АОЕ)" }, 76 | { type: "text", sub_type: "message", message: "Stun (AOE)", message_RU: "Стан (АОЕ)", delay: 1500 }, 77 | { type: "spawn", func: "circle", args: [true, 553, 180, -100, 10, 700, 0, 2500], delay: 1500 } 78 | ], 79 | "s-3204-1000-123-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Круговая" }], 80 | "s-3204-1000-125-0": [{ type: "text", sub_type: "message", message: "Stun (Tank)", message_RU: "Стан (танк)" }], 81 | "s-3204-1000-127-0": [ 82 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 83 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 2000, true, null] } 84 | ], 85 | "s-3204-1000-128-0": [ 86 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 87 | { type: "spawn", func: "marker", args: [false, 0, 150, 0, 2000, true, null] } 88 | ], 89 | "s-3204-1000-148-0": [ 90 | { type: "text", sub_type: "message", message: "Pizza", message_RU: "Пицца" }, 91 | { type: "spawn", func: "marker", args: [false, 150, 150, 0, 2000, true, null] }, 92 | { type: "spawn", func: "marker", args: [false, 340, 150, 0, 2000, true, null], delay: 1500 } 93 | ], 94 | "s-3204-1000-156-0": [{ type: "text", sub_type: "message", message: "Get Skulls", message_RU: "Черепа" }], 95 | "s-3204-1000-157-0": [ 96 | { type: "text", sub_type: "message", message: "3 seconds", message_RU: "3 секунды" }, 97 | { type: "text", sub_type: "message", message: "Gather!", message_RU: "Собраться!", delay: 2000 }], 98 | "s-3204-1000-158-0": [ 99 | { type: "text", sub_type: "message", message: "6 seconds", message_RU: "6 секунд" }, 100 | { type: "text", sub_type: "message", message: "Gather!", message_RU: "Собраться!", delay: 5000 } 101 | ], 102 | "s-3204-1000-159-0": [ 103 | { type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }, 104 | { type: "marker_remove_all", delay: 3000 } 105 | ] 106 | }; 107 | }; -------------------------------------------------------------------------------- /guides/3206.js: -------------------------------------------------------------------------------- 1 | // Crimson Killing Grounds 2 | // 3 | // made by HSDN / Kuroine / Minghan / Vampic 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | const { player } = dispatch.require.library; 8 | 9 | let combo_start = false; 10 | 11 | let stack = 0; 12 | let stackTimer = null; 13 | 14 | function stack_add_event() { 15 | stack++; 16 | dispatch.clearTimeout(stackTimer); 17 | stackTimer = dispatch.setTimeout(() => stack = 0, 86000); 18 | } 19 | 20 | function stack_remove_event() { 21 | dispatch.clearTimeout(stackTimer); 22 | stack = 0; 23 | } 24 | 25 | dispatch.hook("S_USER_EFFECT", 1, event => { 26 | if (event.circle == 3 && event.operation == 1) { 27 | if (dispatch._mod.game.me.is(event.target)) { 28 | handlers.text({ sub_type: "notification", message: "Snowball on you", message_RU: "Снежок на тебе" }); 29 | } else { 30 | const member = player.playersInParty.get(event.target); 31 | if (member) { 32 | handlers.text({ 33 | sub_type: "message", 34 | message: `Snowball on ${member.name}`, 35 | message_RU: `Снежок на ${member.name}` 36 | }); 37 | } else { 38 | handlers.text({ sub_type: "message", message: "Snowball", message_RU: "Снежок" }); 39 | } 40 | } 41 | handlers.marker({ id: event.target, color: "yellow", sub_delay: 1000000 }); 42 | } else if (event.circle == 3 && event.operation == 2) { 43 | handlers.marker_remove_all({ delay: 1000 }); 44 | } 45 | }); 46 | 47 | dispatch.hook("S_ABNORMALITY_BEGIN", dispatch._mod.majorPatchVersion >= 107 ? 5 : 4, event => { 48 | if (event.id === 32060024) { 49 | if (dispatch._mod.game.me.is(event.target)) { 50 | handlers.text({ sub_type: "notification", message: "Eye on you", message_RU: "Глазик на тебе" }); 51 | } else { 52 | const member = player.playersInParty.get(event.target); 53 | if (member) { 54 | handlers.text({ 55 | sub_type: "message", 56 | message: `Eye on ${member.name}`, 57 | message_RU: `Глазик на ${member.name}` 58 | }); 59 | } else { 60 | handlers.text({ sub_type: "message", message: "Eye", message_RU: "Глазик" }); 61 | } 62 | } 63 | } 64 | }); 65 | 66 | return { 67 | "nd-3206-1000": [ 68 | { type: "stop_timers" }, 69 | { type: "despawn_all" }, 70 | { type: "marker_remove_all" }, 71 | { type: "func", func: stack_remove_event } 72 | ], 73 | "ns-3206-1000": [ 74 | { type: "spawn", func: "marker", args: [false, 3, -700, 100, 60000000, false, ["Giant", "Giant Direction"]] }, 75 | { type: "func", func: stack_remove_event } 76 | ], 77 | 78 | "die": [{ type: "func", func: stack_remove_event }], 79 | 80 | "am-3206-1000-32060007": [{ type: "func", func: stack_add_event }], 81 | "ar-3206-1000-32060007": [{ type: "func", func: stack_remove_event }], 82 | 83 | "qb-3206-1000-32061001": [ 84 | { type: "text", sub_type: "message", message: "Close - IN", message_RU: "Ближние - к нему", check_func: () => stack === 0 }, 85 | { type: "text", sub_type: "message", message: "Close - OUT", message_RU: "Ближние - от него", check_func: () => stack !== 0 }, 86 | { type: "text", sub_type: "alert", message: "Soon to give stun...", message_RU: "Скоро давать стан...", delay: 2000 } 87 | ], 88 | "qb-3206-1000-32061002": [ 89 | { type: "text", sub_type: "message", message: "Furthest - OUT", message_RU: "Дальние - от него", check_func: () => stack === 0 }, 90 | { type: "text", sub_type: "message", message: "Furthest - IN", message_RU: "Дальние - к нему", check_func: () => stack !== 0 }, 91 | { type: "text", sub_type: "alert", message: "Soon to give stun...", message_RU: "Скоро давать стан...", delay: 2000 } 92 | ], 93 | 94 | "s-3206-1000-102-0": [ 95 | { type: "func", func: () => combo_start = true }, 96 | { type: "func", func: () => combo_start = false, delay: 1400 } 97 | ], 98 | "s-3206-1000-105-0": [{ type: "text", sub_type: "message", message: "Knockback Spin (Kaia)", message_RU: "Оборот (Кайа)", check_func: () => combo_start === true }], 99 | "s-3206-1000-106-0": [ 100 | { type: "text", sub_type: "message", message: "Knockback", message_RU: "Откид" }, 101 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 350, 0, 3000] } 102 | ], 103 | 104 | "s-3206-1000-109-0": [ 105 | { type: "text", sub_type: "message", message: "Jump (Knockdown)", message_RU: "Прыжок (опрокид)" }, 106 | { type: "spawn", func: "circle", args: [true, 553, 0, 150, 10, 300, 0, 2500] } 107 | ], 108 | "s-3206-1000-111-0": [{ type: "text", sub_type: "message", message: "Knockdown (Dodge)", message_RU: "Опрокид (эвейд)", class_position: "tank" }], 109 | "s-3206-1000-201-0": [{ type: "text", sub_type: "message", message: "Front (Dodge)", message_RU: "Удар вперед (эвейд)", class_position: "tank" }], 110 | "s-3206-1000-202-0": [{ type: "text", sub_type: "message", message: "Front AoE", message_RU: "Переднее АоЕ" }], 111 | "s-3206-1000-203-0": [{ type: "text", sub_type: "message", message: "Front AoE + Wave", message_RU: "Переднее АоЕ + волна" }], 112 | "s-3206-1000-205-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 113 | "s-3206-1000-206-0": [{ type: "text", sub_type: "message", message: "Spin (Bleed)", message_RU: "Крутилка (кровоток)" }], 114 | "s-3206-1000-207-0": [{ type: "text", sub_type: "message", message: "Spin (Bleed)", message_RU: "Крутилка (кровоток)" }], 115 | "s-3206-1000-209-0": [ 116 | { type: "text", sub_type: "message", message: "Give Stun! (Knockdown)", message_RU: "Дать стан! (опрокид)" }, 117 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 400, 0, 1500] } 118 | ], 119 | "s-3206-1000-210-0": [ 120 | { type: "text", sub_type: "message", message: "Give Stun! (Knockdown)", message_RU: "Дать стан! (опрокид)" }, 121 | { type: "spawn", func: "circle", args: [true, 553, 0, 50, 10, 400, 0, 1500] } 122 | ], 123 | "s-3206-1000-211-0": [{ type: "text", sub_type: "message", message: "Push", message_RU: "Откид" }], 124 | "s-3206-1000-212-0": [{ type: "text", sub_type: "message", message: "Somersault", message_RU: "Кувырок" }], 125 | "s-3206-1000-215-0": [{ type: "text", sub_type: "message", message: "Somersault", message_RU: "Кувырок" }], 126 | "s-3206-1000-507-0": [{ type: "text", sub_type: "message", message: "Leash | Jump (Knockdown)", message_RU: "Притяжка | Прыжок (опрокид)" }], 127 | "s-3206-1000-508-0": [ 128 | { type: "text", sub_type: "message", message: "Donuts (Out > In)", message_RU: "Бублики (от него > к нему)" }, 129 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 130 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 131 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 132 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 133 | ], 134 | "s-3206-1000-509-0": [ 135 | { type: "text", sub_type: "message", message: "Donuts (In > Out)", message_RU: "Бублики (к нему > от него)" }, 136 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 137 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 138 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 139 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 140 | ], 141 | "s-3206-1000-516-0": [ 142 | { type: "text", sub_type: "message", message: "Donuts Fast (Out > In)", message_RU: "Бублики быстрые (от него > к нему)" }, 143 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 144 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 145 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 146 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 147 | ], 148 | "s-3206-1000-517-0": [ 149 | { type: "text", sub_type: "message", message: "Donuts Fast (In > Out)", message_RU: "Бублики быстрые (к нему > от него)" }, 150 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 18, 180, 1500, 5000] }, 151 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 12, 360, 1500, 5000] }, 152 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 550, 1500, 5000] }, 153 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 860, 1500, 5000] } 154 | ], 155 | "s-3206-1000-512-0": [{ type: "text", sub_type: "message", message: "Turn | Spin", message_RU: "Разворот | Крутилка" }], 156 | "s-3206-1004-506-0": [{ type: "text", sub_type: "message", message: "Wave", message_RU: "Волна" }], 157 | "s-3206-1000-522-0": [{ type: "text", sub_type: "message", message: "Bait on distant", message_RU: "Байт на дальнего" }], 158 | "s-3206-1000-523-0": [{ type: "text", sub_type: "message", message: "Bait on resurrect", message_RU: "Байт на рес" }], 159 | "s-3206-1000-513-0": [ 160 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 161 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 162 | ], 163 | "s-3206-1000-514-0": "s-3206-1000-513-0", 164 | 165 | "s-3206-1000-502-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 166 | "s-3206-1000-518-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 167 | "s-3206-1000-519-0": [{ type: "text", sub_type: "message", message: "Unleash", message_RU: "Бешенство" }], 168 | "s-3206-1000-306-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 169 | "s-3206-1000-309-0": [{ type: "text", sub_type: "message", message: "Front", message_RU: "Удар вперед" }], 170 | "s-3206-1000-311-0": [{ type: "text", sub_type: "message", message: "Evade!", message_RU: "Эвейд!", delay: 150 }], 171 | "s-3206-1000-321-0": [{ type: "text", sub_type: "message", message: "AoE", message_RU: "АоЕ" }], 172 | "s-3206-1000-324-0": [{ type: "text", sub_type: "message", message: "AoE", message_RU: "АоЕ" }] 173 | }; 174 | }; -------------------------------------------------------------------------------- /guides/7011.js: -------------------------------------------------------------------------------- 1 | // Shadow of the Gutrends 2 | // 3 | // made by Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | "nd-622-1000": [ 8 | { type: "stop_timers" }, 9 | { type: "despawn_all" } 10 | ], 11 | "s-622-1000-206-0": [{ type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }], 12 | "s-622-1000-108-1": [{ type: "text", sub_type: "message", message: "Jump Forward", message_RU: "Прыжок вперед" }], 13 | "s-622-1000-120-0": [ 14 | { type: "text", sub_type: "message", message: "Right Hand", message_RU: "Правая рука", class_position: "tank" }, 15 | { type: "text", sub_type: "message", message: "Left Hand", message_RU: "Левая рука", class_position: "heal" }, 16 | { type: "text", sub_type: "message", message: "Left Hand", message_RU: "Левая рука", class_position: "dps" } 17 | ], 18 | "s-622-1000-119-0": [ 19 | { type: "text", sub_type: "message", message: "Left Hand", message_RU: "Левая рука", class_position: "tank" }, 20 | { type: "text", sub_type: "message", message: "Right Hand", message_RU: "Правая рука", class_position: "heal" }, 21 | { type: "text", sub_type: "message", message: "Right Hand", message_RU: "Правая рука", class_position: "dps" } 22 | ], 23 | "s-622-1000-107-0": [ 24 | { type: "text", sub_type: "message", message: "Stun Frontal", message_RU: "Передний стан" }, 25 | { type: "spawn", func: "semicircle", args: [320, 404, 553, 0, 0, 7, 405, 0, 3500] }, // 85 26 | { type: "spawn", func: "vector", args: [553, 0, 10, 406, 400, 0, 3500] }, // 380 27 | { type: "spawn", func: "vector", args: [553, 0, 10, -406, 400, 0, 3500] } // 380 28 | ], 29 | "s-622-1000-124-0": [{ type: "text", sub_type: "message", message: "Circles (Horizontal)", message_RU: "Круги (горизонтально)" }], 30 | "s-622-1000-123-0": [{ type: "text", sub_type: "message", message: "Circles (Vertical)", message_RU: "Круги (вертикально)" }], 31 | "s-622-1000-117-0": [{ type: "text", sub_type: "message", message: "Kicks", message_RU: "Удары" }], 32 | "am-622-1000-622001": [{ type: "text", sub_type: "message", message: "Circles (Target)", message_RU: "Круги (таргет)" }], 33 | "qb-622-1000-622004": [{ type: "text", sub_type: "message", message: "Explosive Waves", message_RU: "Волны" }] 34 | }; 35 | }; -------------------------------------------------------------------------------- /guides/7015.js: -------------------------------------------------------------------------------- 1 | // Escape from Balder's Refuge 2 | // 3 | // made by Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | "nd-620-1000": [ 8 | { type: "stop_timers" }, 9 | { type: "despawn_all" } 10 | ], 11 | "s-620-1000-107-0": [{ type: "text", sub_type: "message", message: "Attack (Back)", message_RU: "Атака (задняя)" }], 12 | "s-620-1000-115-0": [{ type: "text", sub_type: "message", message: "Fireballs", message_RU: "Шары" }], 13 | "s-620-1000-127-0": [ 14 | { type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }, 15 | { type: "spawn", func: "circle", args: [false, 553, 180, 376, 12, 232, 0, 6750] } 16 | ], 17 | "s-620-1000-120-0": [{ type: "text", sub_type: "message", message: "Fire Wave", message_RU: "Волна" }], 18 | "s-620-1000-121-0": [{ type: "text", sub_type: "message", message: "Repel (Dodge)", message_RU: "Откид (эвейд)" }], 19 | "s-620-1000-119-0": [{ type: "text", sub_type: "message", message: "Explosion | In", message_RU: "Взрыв | К нему" }], 20 | "s-620-1000-108-0": [{ type: "text", sub_type: "message", message: "Attack (Back)", message_RU: "Атака (задняя)" }], 21 | "s-620-1000-103-0": [{ type: "text", sub_type: "message", message: "Stun Frontal", message_RU: "Передний стан" }], 22 | "s-620-1000-209-0": [{ type: "text", sub_type: "message", message: "Back to Middle + Fireballs", message_RU: "Возарат + Шары" }], 23 | "s-620-1000-125-0": [{ type: "text", sub_type: "message", message: "Fireballs", message_RU: "Шары" }], 24 | 25 | "s-620-1001-303-0": [{ type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }], 26 | "s-620-1002-303-0": [{ type: "alias", id: "s-620-1001-303-0" }], 27 | "s-620-1003-303-0": [{ type: "alias", id: "s-620-1001-303-0" }], 28 | "s-620-1004-303-0": [{ type: "alias", id: "s-620-1001-303-0" }], 29 | "s-620-1005-303-0": [{ type: "alias", id: "s-620-1001-303-0" }], 30 | 31 | "s-620-1000-129-0": [{ type: "text", sub_type: "message", message: "Fireballs", message_RU: "Шары" }], 32 | "s-620-1000-106-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Случайный прыжок" }] 33 | }; 34 | }; -------------------------------------------------------------------------------- /guides/9050.js: -------------------------------------------------------------------------------- 1 | // Rift's Edge (Hard) (10-Person) 2 | // 3 | // made by ITunk 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | return { 9 | // 1 BOSS 10 | "nd-450-1001": [ 11 | { type: "stop_timers" }, 12 | { type: "despawn_all" } 13 | ], 14 | "s-450-1001-1102-0": [ 15 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 16 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 375, 0, 3300] } 17 | ], 18 | "s-450-1001-1115-0": [ 19 | { type: "text", sub_type: "message", message: "Floor", message_RU: "Атака в пол" }, 20 | { type: "spawn", func: "vector", args: [553, 50, 75, 0, 700, 0, 1400] }, 21 | { type: "spawn", func: "vector", args: [553, -50, 75, 0, 700, 0, 1400] } 22 | ], 23 | "s-450-1001-1116-1": [ 24 | { type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }, 25 | { type: "spawn", func: "vector", args: [553, 90, 125, 0, 1200, 0, 1600] }, 26 | { type: "spawn", func: "vector", args: [553, 270, 125, 0, 1200, 0, 1600] } 27 | ], 28 | "s-450-1001-2102-0": [ 29 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 30 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 375, 0, 2900] } 31 | ], 32 | "s-450-1001-2115-0": [ 33 | { type: "text", sub_type: "message", message: "Floor", message_RU: "Атака в пол" }, 34 | { type: "spawn", func: "vector", args: [553, 25, 75, 0, 700, 0, 1200] }, 35 | { type: "spawn", func: "vector", args: [553, -25, 75, 0, 700, 0, 1200] } 36 | ], 37 | "s-450-1001-2116-1": [ 38 | { type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }, 39 | { type: "spawn", func: "vector", args: [553, 90, 125, 0, 1200, 0, 1600] }, 40 | { type: "spawn", func: "vector", args: [553, 270, 125, 0, 1200, 0, 1600] } 41 | ], 42 | 43 | // 2 BOSS 44 | "nd-450-1002": [ 45 | { type: "stop_timers" }, 46 | { type: "despawn_all" } 47 | ], 48 | "s-450-1002-1113-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 49 | "s-450-1002-2113-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 50 | "s-450-1002-1114-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 51 | "s-450-1002-2114-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 52 | "s-450-1002-1115-0": [{ type: "text", sub_type: "message", message: "Flying Attack", message_RU: "Летающая атака" }], 53 | "s-450-1002-2115-0": [{ type: "text", sub_type: "message", message: "Flying Attack", message_RU: "Летающая атака" }], 54 | "s-450-1002-1116-0": [{ type: "text", sub_type: "message", message: "A swarm of bees", message_RU: "Рой пчел" }], 55 | "s-450-1002-2116-0": [{ type: "text", sub_type: "message", message: "A swarm of bees", message_RU: "Рой пчел" }], 56 | "s-450-1002-1117-0": [{ type: "text", sub_type: "message", message: "Rise (Kaia)", message_RU: "Взлет (Кайя)" }], 57 | "s-450-1002-2117-0": [{ type: "text", sub_type: "message", message: "Rise (Kaia)", message_RU: "Взлет (Кайя)" }], 58 | "s-450-1002-1205-0": [ 59 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 60 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 61 | ], 62 | "s-450-1002-1210-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 63 | "s-450-1002-2210-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 64 | 65 | // 3 BOSS 66 | "nd-450-1003": [ 67 | { type: "stop_timers" }, 68 | { type: "despawn_all" } 69 | ], 70 | "s-450-1003-1107-2": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 71 | "s-450-1003-2107-2": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 72 | "s-450-1003-1115-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 73 | "s-450-1003-2115-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 74 | "s-450-1003-1313-0": [ 75 | { type: "text", sub_type: "message", message: "Column", message_RU: "Колонна" }, 76 | { type: "text", sub_type: "message", delay: 8000, message: "Dodge", message_RU: "Эвейд" } 77 | ], 78 | "s-450-1003-1315-0": [ 79 | { type: "text", sub_type: "message", message: "Break Shield", message_RU: "Сломать щит", class_position: ["tank", "dps"] }, 80 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 81 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 82 | ] 83 | }; 84 | }; -------------------------------------------------------------------------------- /guides/9053.js: -------------------------------------------------------------------------------- 1 | // Kezzel's Gorge 2 | // 3 | // Made by Multarix 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | "nd-453-999": [ 8 | { type: "stop_timers" }, 9 | { type: "despawn_all" } 10 | ], 11 | "s-453-999-103-0": [{ type: "text", sub_type: "message", message: "Smash (Left)", message_RU: "Удар (лево)" }], 12 | "s-453-999-104-0": [{ type: "text", sub_type: "message", message: "Smash (Right)", message_RU: "Удар (право)" }], 13 | "s-453-999-105-0": [ 14 | { type: "text", sub_type: "message", message: "Rock Smash", message_RU: "Удар (танк)", class_position: "tank" }, 15 | { type: "spawn", func: "circle", args: [true, 553, 0, 210, 14, 190, 0, 3000] } 16 | ], 17 | "s-453-999-106-0": [ 18 | { type: "text", sub_type: "message", message: "Blast", message_RU: "Выстрел" }, 19 | { type: "text", sub_type: "message", message: "Dodge!", message_RU: "Эвейд!", delay: 2000 } 20 | ], 21 | "s-453-999-107-0": [{ type: "text", sub_type: "message", message: "Whip", message_RU: "Кнут" }], 22 | "s-453-999-116-0": [{ type: "text", sub_type: "message", message: "Shield", message_RU: "Щит" }], 23 | "s-453-999-119-0": [ 24 | { type: "text", sub_type: "message", message: "Kaia's Shield", message_RU: "Кайа", class_position: "priest" }, 25 | { type: "text", sub_type: "message", message: "Thrall of Protection", message_RU: "Кайа", class_position: "mystic" }, 26 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 10, 500, 0, 6000] } 27 | ], 28 | "s-453-999-120-0": [ 29 | { type: "text", sub_type: "message", message: "AoE Waves", message_RU: "AoE волны" }, 30 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 14, 200, 0, 7000] }, 31 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 10, 390, 0, 7000] }, 32 | { type: "spawn", func: "circle", args: [false, 445, 0, 0, 8, 590, 0, 7000] } 33 | ] 34 | }; 35 | }; -------------------------------------------------------------------------------- /guides/9057.js: -------------------------------------------------------------------------------- 1 | // Akeron's Inferno (Hard) 2 | // 3 | // made by Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | let mech_enable = true; 8 | 9 | return { 10 | // 1 BOSS 11 | "nd-457-1001": [ 12 | { type: "stop_timers" }, 13 | { type: "despawn_all" } 14 | ], 15 | "s-457-1001-1104-0": [{ type: "text", sub_type: "message", message_RU: "Правая рука (откид)", message: "Right Hand (Push)" }], 16 | "s-457-1001-1117-0": [{ type: "text", sub_type: "message", message_RU: "Удар", message: "Kick (Smash)" }], 17 | "s-457-1001-1118-0": [{ type: "text", sub_type: "message", message_RU: "Случайный прыжок", message: "Random Jump" }], 18 | "s-457-1001-1116-0": [{ type: "text", sub_type: "message", message_RU: "Прыжки (танк)", message: "Jumps (Tank)" }], 19 | "s-457-1001-1107-0": [{ type: "text", sub_type: "message", message_RU: "Передняя атака", message: "Front" }], 20 | "s-457-1001-1206-0": [{ type: "text", sub_type: "message", message_RU: "Прыжок назад", message: "Jump Back" }], 21 | "s-457-1001-1109-0": [{ type: "text", sub_type: "message", message_RU: "Переднее АоЕ", message: "Front AoE" }], 22 | "s-457-1001-1108-0": [{ type: "text", sub_type: "message", message_RU: "Случайный прыжок", message: "Random Jump" }], 23 | "s-457-1001-2104-0": "s-457-1001-1104-0", 24 | "s-457-1001-2117-0": "s-457-1001-1117-0", 25 | "s-457-1001-2118-0": "s-457-1001-1118-0", 26 | "s-457-1001-2116-0": "s-457-1001-1116-0", 27 | "s-457-1001-2107-0": "s-457-1001-1107-0", 28 | "s-457-1001-2206-0": "s-457-1001-1206-0", 29 | "s-457-1001-2109-0": "s-457-1001-1109-0", 30 | "s-457-1001-2108-0": "s-457-1001-1108-0", 31 | 32 | // 2 BOSS 33 | "nd-457-1002": [ 34 | { type: "stop_timers" }, 35 | { type: "despawn_all" } 36 | ], 37 | "s-457-1002-1105-0": [{ type: "text", sub_type: "message", message_RU: "Огненное дыхание", message: "Fire Breath" }], 38 | "s-457-1002-1108-0": [{ type: "text", sub_type: "message", message_RU: "Огненные бомбы (спереди)", message: "Fire Bombs" }], 39 | "s-457-1002-1109-0": [{ type: "text", sub_type: "message", message_RU: "Плавание + Задняя", message: "Swim + Back Attack" }], 40 | "s-457-1002-1206-0": [{ type: "text", sub_type: "message", message_RU: "Прыжок + Случайная атака", message: "Jump + Random Target" }], 41 | "s-457-1002-1204-0": [{ type: "text", sub_type: "message", message_RU: "Большое АоЕ", message: "Large AoE", delay: 3000 }, 42 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 6, 630, 3000, 4000] } 43 | ], 44 | "s-457-1002-1107-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка", message: "Spin" }], 45 | "s-457-1002-1106-1": [{ type: "text", sub_type: "message", message_RU: "АоЕ + Пламя", message: "AoE + Side Flames", delay: 3000 }, 46 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 550, 3000, 4000] } 47 | ], 48 | "s-457-1002-1112-0": [{ type: "text", sub_type: "message", message_RU: "Огненные шары (таргет)", message: "Target Fireball" }], 49 | "s-457-1002-2105-0": "s-457-1002-1105-0", 50 | "s-457-1002-2108-0": "s-457-1002-1108-0", 51 | "s-457-1002-2109-0": "s-457-1002-1109-0", 52 | "s-457-1002-2206-0": "s-457-1002-1206-0", 53 | "s-457-1002-2204-0": "s-457-1002-1204-0", 54 | "s-457-1002-2107-0": "s-457-1002-1107-0", 55 | "s-457-1002-2106-1": "s-457-1002-1106-1", 56 | "s-457-1002-2112-0": "s-457-1002-1112-0", 57 | 58 | // 3 BOSS 59 | "nd-457-1003": [ 60 | { type: "stop_timers" }, 61 | { type: "despawn_all" } 62 | ], 63 | "s-457-1003-1105-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ", message: "AoE" }], 64 | "s-457-1003-1203-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка", message: "Spin Cut Attack" }, 65 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 400, 100, 4000] } 66 | ], 67 | "s-457-1003-1110-0": [{ type: "text", sub_type: "message", message_RU: "Яд (круг)", message: "Poison (Circle)" }], 68 | "s-457-1003-2105-0": "s-457-1003-1105-0", 69 | "s-457-1003-2203-0": "s-457-1003-1203-0", 70 | "s-457-1003-2110-0": "s-457-1003-1110-0", 71 | 72 | // 4 BOSS 73 | "nd-457-1004": [ 74 | { type: "stop_timers" }, 75 | { type: "despawn_all" } 76 | ], 77 | "h-457-1004-99": [{ type: "func", func: () => mech_enable = true }], 78 | "h-457-1004-20": [{ type: "func", func: () => mech_enable = false }], 79 | "s-457-1004-1105-0": [{ type: "text", sub_type: "message", message_RU: "Передняя атака", message: "Frontal Hit" }], 80 | "s-457-1004-1106-0": [ 81 | { type: "text", sub_type: "message", message_RU: "Случайный выстрел", message: "Random Shot" }, 82 | { type: "spawn", func: "vector", args: [912, 459, 120, 12, 1150, 0, 3000] }, 83 | { type: "spawn", func: "vector", args: [912, 251, 100, -13, 1150, 0, 3000] }, 84 | { type: "spawn", func: "vector", args: [912, 360, 0, 0, 1150, 0, 3000] }, 85 | { type: "spawn", func: "vector", args: [912, 250, 70, -6, 1150, 0, 3000] }, 86 | { type: "spawn", func: "vector", args: [912, 460, 70, 6, 1150, 0, 3000] } 87 | ], 88 | "s-457-1004-1107-0": [ 89 | { type: "text", sub_type: "message", message_RU: "Случайный кнут", message: "Random Whip" }, 90 | { type: "spawn", func: "vector", args: [912, 360, 50, 0, 900, 0, 2000] } 91 | ], 92 | "s-457-1004-1108-0": [{ type: "text", sub_type: "message", message_RU: "Линия земли", message: "Earth Line" }], 93 | "s-457-1004-1111-0": [{ type: "text", sub_type: "message", message_RU: "Комбо ударов", message: "Stomp Combo" }], 94 | "s-457-1004-3108-0": [{ type: "text", sub_type: "message", message_RU: "Эвейд", message: "Dodge" }], 95 | "s-457-1004-3105-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ атака", message: "AoE Attack" }], 96 | "s-457-1004-3106-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ бублик", message: "Donut AoE" }], 97 | "s-457-1004-3103-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ удар", message: "AoE Stomp" }], 98 | "s-457-1004-4201-0": [{ type: "text", sub_type: "message", message_RU: "Лава", message: "Lava" }, 99 | { type: "text", sub_type: "message", message_RU: "Безопасные круги", message: "Safe Circles", delay: 1500 }, 100 | { type: "spawn", sub_type: "item", id: 88704, sub_delay: 12000, pos: { x: -83453, y: 100168, z: 3389 } }, 101 | { type: "spawn", sub_type: "build_object", id: 1, sub_delay: 12000, pos: { x: -83453, y: 100168, z: 3389, w: -2.36 }, ownerName: "SAFE", message: "SAFE" }, 102 | { type: "spawn", sub_type: "item", id: 88704, sub_delay: 12000, pos: { x: -83463, y: 99177, z: 3389 } }, 103 | { type: "spawn", sub_type: "build_object", id: 1, sub_delay: 12000, pos: { x: -83463, y: 99177, z: 3389, w: 2.38 }, ownerName: "SAFE", message: "SAFE" }, 104 | { type: "spawn", sub_type: "item", id: 88704, sub_delay: 12000, pos: { x: -84461, y: 99186, z: 3389 } }, 105 | { type: "spawn", sub_type: "build_object", id: 1, sub_delay: 12000, pos: { x: -84461, y: 99186, z: 3389, w: 0.80 }, ownerName: "SAFE", message: "SAFE" }, 106 | { type: "spawn", sub_type: "item", id: 88704, sub_delay: 12000, pos: { x: -84452, y: 100173, z: 3389 } }, 107 | { type: "spawn", sub_type: "build_object", id: 1, sub_delay: 12000, pos: { x: -84452, y: 100173, z: 3389, w: -0.79 }, ownerName: "SAFE", message: "SAFE" } 108 | ], 109 | "qb-457-405-457016": [{ type: "text", sub_type: "message", message_RU: "ЩИТ", message: "SHIELD" }], 110 | "qb-457-1004-457003": [{ type: "text", sub_type: "notification", message_RU: "Убить миньонов", message: "Kill Minions", check_func: () => mech_enable }], 111 | "s-457-1004-2105-0": "s-457-1004-1105-0", 112 | "s-457-1004-2106-0": "s-457-1004-1106-0", 113 | "s-457-1004-2107-0": "s-457-1004-1107-0", 114 | "s-457-1004-2108-0": "s-457-1004-1108-0", 115 | "s-457-1004-2111-0": "s-457-1004-1111-0" 116 | }; 117 | }; -------------------------------------------------------------------------------- /guides/9066.js: -------------------------------------------------------------------------------- 1 | // Demon's Wheel 2 | // 3 | // made by michengs / Calvary 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | let print = false; 9 | let msg_num = null; 10 | 11 | const mech_messages = { 12 | 0: { message: "Don't hit RED", message_RU: "Не бить КРАСНЫЙ" }, 13 | 1: { message: "Don't hit WHITE",message_RU: "Не бить БЕЛЫЙ" }, 14 | 2: { message: "Don't hit BLUE", message_RU: "Не бить СИНИЙ" }, 15 | 3: { message: "Hit RED", message_RU: "Бить КРАСНЫЙ" }, 16 | 4: { message: "Hit WHITE", message_RU: "Бить БЕЛЫЙ" }, 17 | 5: { message: "Hit BLUE", message_RU: "Бить СИНИЙ" }, 18 | }; 19 | 20 | function skilld_event(skillid) { 21 | if ([1311, 1313, 1315, 1317].includes(skillid)) { 22 | handlers.text({ sub_type: "message", message: "OUT", message_RU: "От него" }); 23 | } 24 | 25 | if ([1312, 1313, 1316, 1318].includes(skillid)) { 26 | handlers.text({ sub_type: "message", message: "IN", message_RU: "К нему" }); 27 | } 28 | 29 | if ([21311, 21314].includes(skillid)) { 30 | handlers.event([ 31 | { type: "text", sub_type: "message", message: "IN | OUT (Kaia)", message_RU: "К нему | От него (Кайа)" }, 32 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 4000] } 33 | ]); 34 | } 35 | 36 | if ([21312, 21313].includes(skillid)) { 37 | handlers.event([ 38 | { type: "text", sub_type: "message", message: "OUT | IN (Kaia)", message_RU: "От него | К нему (Кайа)" }, 39 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 4000] } 40 | ]); 41 | } 42 | 43 | if ([21303].includes(skillid)) { 44 | if (print) { 45 | handlers.text({ sub_type: "message", message: "Hit ALL", message_RU: "Бить ВСЕ" }); 46 | } else { 47 | handlers.text({ sub_type: "message", message: mech_messages[msg_num].message, message_RU: mech_messages[msg_num].message_RU }); 48 | } 49 | } 50 | } 51 | 52 | function secondboss_message(num) { 53 | msg_num = num; 54 | handlers.text({ sub_type: "notification", message: mech_messages[num].message, message_RU: mech_messages[num].message_RU }); 55 | } 56 | 57 | return { 58 | // First boss 59 | "h-466-46602-99": [{ type: "func", func: () => print = false }], 60 | "h-466-46602-30": [{ type: "func", func: () => print = true }], 61 | // 62 | "qb-466-46621-466050": [{ type: "func", func: secondboss_message, args: [0] }], 63 | "qb-466-46621-466051": [{ type: "func", func: secondboss_message, args: [1] }], 64 | "qb-466-46621-466052": [{ type: "func", func: secondboss_message, args: [2] }], 65 | "qb-466-46622-466054": [{ type: "func", func: secondboss_message, args: [3] }], 66 | "qb-466-46622-466055": [{ type: "func", func: secondboss_message, args: [4] }], 67 | "qb-466-46622-466056": [{ type: "func", func: secondboss_message, args: [5] }], 68 | // 69 | "s-466-46601-1105-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 70 | "s-466-46601-1106-0": [{ type: "text", sub_type: "message", message: "Exhaust", message_RU: "Выхлоп" }], 71 | "s-466-46601-1109-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Stun (tank)", message_RU: "Стан (танк)" }], 72 | "s-466-46601-1110-0": [{ type: "text", sub_type: "message", message: "Tail", message_RU: "Хвост" }], 73 | "s-466-46601-2105-0": "s-466-46601-1105-0", 74 | "s-466-46601-2106-0": "s-466-46601-1106-0", 75 | "s-466-46601-2109-0": "s-466-46601-1109-0", 76 | "s-466-46601-2110-0": "s-466-46601-1110-0", 77 | "s-466-46601-1311-0": [{ type: "func", func: skilld_event.bind(null, 1311) }], 78 | "s-466-46601-1313-0": [{ type: "func", func: skilld_event.bind(null, 1313) }], 79 | "s-466-46601-1315-0": [{ type: "func", func: skilld_event.bind(null, 1315) }], 80 | "s-466-46601-1317-0": [{ type: "func", func: skilld_event.bind(null, 1317) }], 81 | "s-466-46601-1312-0": [{ type: "func", func: skilld_event.bind(null, 1312) }], 82 | "s-466-46601-1314-0": [{ type: "func", func: skilld_event.bind(null, 1314) }], 83 | "s-466-46601-1316-0": [{ type: "func", func: skilld_event.bind(null, 1316) }], 84 | "s-466-46601-1318-0": [{ type: "func", func: skilld_event.bind(null, 1318) }], 85 | // Second boss 86 | "s-466-46602-1116-0": [ 87 | { type: "text", sub_type: "message", message: "Dodge. Pull", message_RU: "Эвейд. Притяжка" }, 88 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 220, 0, 6000] } 89 | ], 90 | "s-466-46602-1223-0": [{ type: "text", sub_type: "message", message: "Double RED", message_RU: "Двойной КРАСНЫЙ" }], 91 | "s-466-46602-1113-0": [{ type: "text", sub_type: "message", message: "LASER!!!", message_RU: "ЛАЗЕР!!!" }], 92 | "s-466-46602-1311-0": [{ type: "func", func: skilld_event.bind(null, 21311) }], 93 | "s-466-46602-1314-0": [{ type: "func", func: skilld_event.bind(null, 21314) }], 94 | "s-466-46602-1312-0": [{ type: "func", func: skilld_event.bind(null, 21312) }], 95 | "s-466-46602-1313-0": [{ type: "func", func: skilld_event.bind(null, 21313) }], 96 | "s-466-46602-1303-0": [{ type: "func", func: skilld_event.bind(null, 21303) }], 97 | "s-466-46602-1105-0": [{ type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 200, 0, 6000]}], 98 | "s-466-46602-2105-0": "s-466-46602-1105-0", 99 | "s-466-46602-2116-0": "s-466-46602-1116-0", 100 | "s-466-46602-2113-0": "s-466-46602-1113-0" 101 | }; 102 | }; -------------------------------------------------------------------------------- /guides/9067.js: -------------------------------------------------------------------------------- 1 | // Demokron Factory (Hard) 2 | // 3 | // made by michengs 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | "s-467-46703-213-0": [{ type: "text", sub_type: "message", message: "Back attack", message_RU: "Задняя" }], 8 | "s-467-46704-205-0": [{ type: "text", sub_type: "message", delay: 2500, message: "Pushback", message_RU: "Откид" }], 9 | "s-467-46704-208-0": [ 10 | { type: "text", sub_type: "message", message: "Laser", message_RU: "Лазер" }, 11 | { type: "text", sub_type: "message", delay: 13000, message: "Pushback", message_RU: "Откид" } 12 | ], 13 | "s-467-46704-209-0": [{ type: "text", sub_type: "message", message: "Attack to tank", message_RU: "Удар в танка" }], 14 | "s-467-46704-210-0": [ 15 | { type: "text", sub_type: "message", message: "Laser", message_RU: "Лазер" }, 16 | { type: "text", sub_type: "message", delay: 21000, message: "Pushback", message_RU: "Откид" } 17 | ], 18 | "s-467-46704-211-0": [ 19 | { type: "text", sub_type: "message", message: "Outward Wave", message_RU: "Волна от босса" }, 20 | { type: "text", sub_type: "message", delay: 3000, message: "Dodge", message_RU: "Эвейд!" } 21 | ], 22 | "s-467-46704-212-0": [ 23 | { type: "text", sub_type: "message", message: "Inward Wave", message_RU: "Волна к боссу" }, 24 | { type: "text", sub_type: "message", delay: 3000, message: "Dodge", message_RU: "Эвейд!" } 25 | ], 26 | "s-467-46704-213-0": [ 27 | { type: "text", sub_type: "message", message: "Circles", message_RU: "Круги!" }, 28 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд!" } 29 | ], 30 | "s-467-46704-214-0": [ 31 | { type: "text", sub_type: "message", message: "Circles", message_RU: "Круги!!" }, 32 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд!" } 33 | ], 34 | "s-467-46704-215-0": [ 35 | { type: "text", sub_type: "message", message: "Circles", message_RU: "Круги!" }, 36 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд!" } 37 | ], 38 | "s-467-46704-216-0": [ 39 | { type: "text", sub_type: "message", message: "Circles", message_RU: "Круги!" }, 40 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд!" } 41 | ], 42 | "s-467-46704-217-0": [ 43 | { type: "text", sub_type: "message", message: "Circles", message_RU: "Круги!" }, 44 | { type: "text", sub_type: "message", delay: 1000, message: "Dodge", message_RU: "Эвейд!" } 45 | ], 46 | "s-467-46704-219-0": [ 47 | { type: "text", sub_type: "message", message: "Two waves", message_RU: "Две волны" }, 48 | { type: "text", sub_type: "message", delay: 3000, message: "Dodge", message_RU: "Эвейд!" } 49 | ] 50 | }; 51 | }; -------------------------------------------------------------------------------- /guides/9070.js: -------------------------------------------------------------------------------- 1 | // Manglemire 2 | // 3 | // made by michengs / HSDN / ambushing 4 | 5 | const OPCODES = { 6 | "S_DUNGEON_EVENT_GAGE": { 7 | 366226: 39917, 8 | 367078: 47028, 9 | 367080: 57835, 10 | 367081: 39359, 11 | 376012: 47078 12 | } 13 | }; 14 | 15 | function addOpcodeAndDefinition(mod, name, version = null, definition = null) { 16 | if (OPCODES[name] !== undefined && OPCODES[name][mod.dispatch.protocolVersion] !== undefined) { 17 | mod.dispatch.addOpcode(name, OPCODES[name][mod.dispatch.protocolVersion]); 18 | } 19 | if (version !== null && definition !== null) { 20 | mod.dispatch.addDefinition(name, version, definition); 21 | } 22 | } 23 | 24 | module.exports = (dispatch, handlers, guide, lang) => { 25 | guide.type = SP; 26 | 27 | addOpcodeAndDefinition(dispatch._mod, "S_DUNGEON_EVENT_GAGE", 2, [ 28 | ["name", "refString"], 29 | ["message", "refString"], 30 | ["unk", "int32"], 31 | ["type", "int32"], 32 | ["value", "int32"], 33 | ["name", "string"], 34 | ["message", "string"] 35 | ]); 36 | 37 | const numbers = { 470046: 3, 470047: 6, 470048: 9 }; 38 | const boss_numbers = new Set(); 39 | let event_gage = 0; 40 | 41 | dispatch.hook("S_ABNORMALITY_BEGIN", 4, event => { 42 | if (numbers[event.id] !== undefined) { 43 | boss_numbers.add(numbers[event.id]); 44 | } 45 | }); 46 | 47 | dispatch.hook("S_ABNORMALITY_END", 1, event => { 48 | if (numbers[event.id] !== undefined) { 49 | boss_numbers.delete(numbers[event.id]); 50 | } 51 | }); 52 | 53 | dispatch.hook("S_DUNGEON_EVENT_GAGE", 2, event => { 54 | event_gage = event.value; 55 | }); 56 | 57 | function is_telling_truth() { 58 | const ones = event_gage % 10; 59 | const tens = Math.floor((event_gage % 100) / 10); 60 | 61 | return !boss_numbers.has(ones) && !boss_numbers.has(tens); 62 | } 63 | 64 | return { 65 | "nd-470-1000": [ 66 | { type: "stop_timers" }, 67 | { type: "despawn_all" }, 68 | { type: "func", func: () => { 69 | boss_numbers.clear(); 70 | event_gage = 0; 71 | } } 72 | ], 73 | 74 | "s-470-1000-1105-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 75 | "s-470-1000-1106-0": [{ type: "text", sub_type: "message", message: "Smash", message_RU: "Удар" }], 76 | "s-470-1000-1120-0": [{ type: "text", sub_type: "message", message: "Pull", message_RU: "Притяжка" }], 77 | "s-470-1000-1114-0": [{ type: "text", sub_type: "message", message: "Spray", message_RU: "Спрей" }], 78 | "s-470-1000-1201-0": [ 79 | { type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }, 80 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, 12, 250, 0, 2500] } 81 | ], 82 | "s-470-1000-1307-0": [{ type: "text", sub_type: "message", message: "With a Bomb - Go away. No Bomb - Enter the circle", message_RU: "С бомбой - отойти. Без бомбы - войти в круг" }], 83 | "s-470-1000-2105-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 84 | "s-470-1000-2106-0": [{ type: "text", sub_type: "message", message: "Smash", message_RU: "Удар" }], 85 | "s-470-1000-2107-0": [ 86 | { type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }, 87 | { type: "spawn", func: "circle", args: [true, 553, 0, 100, 12, 250, 0, 2500] } 88 | ], 89 | "s-470-1000-2114-0": [{ type: "text", sub_type: "message", message: "Line", message_RU: "Полоса" }], 90 | "s-470-1000-3106-0": [{ type: "text", sub_type: "message", message: "100" }], 91 | 92 | "s-470-1000-3213-0": [ // "My shield will save me!" (shield) 93 | { type: "text", sub_type: "message", message: "Break shield", message_RU: "Сломать щит", check_func: () => is_telling_truth() }, 94 | { type: "text", sub_type: "message", message: "Puddles (run away)", message_RU: "Лужи (убегать)", check_func: () => !is_telling_truth() } 95 | ], 96 | "s-470-1000-3212-0": [ // "I will kill you all!" (aoe around boss) 97 | { type: "text", sub_type: "message", message: "Out", message_RU: "Наружу", check_func: () => is_telling_truth() }, 98 | { type: "text", sub_type: "message", message: "In", message_RU: "Внутрь", check_func: () => !is_telling_truth() } 99 | ], 100 | "s-470-1000-3218-0": [ // "One of you must die!" (aoe around player) 101 | { type: "text", sub_type: "message", message: "Out", message_RU: "Наружу", check_func: () => is_telling_truth() }, 102 | { type: "text", sub_type: "message", message: "In", message_RU: "Внутрь", check_func: () => !is_telling_truth() } 103 | ], 104 | 105 | "qb-470-1000-470019": [ 106 | { type: "text", sub_type: "alert", message: "Truth", message_RU: "Правда", check_func: () => is_telling_truth() }, 107 | { type: "text", sub_type: "alert", message: "Lie", message_RU: "Ложь", check_func: () => !is_telling_truth() } 108 | ], 109 | "qb-470-1000-470011": [{ type: "text", sub_type: "message", message: "Stand on stars", message_RU: "Встать на звезду" }] 110 | }; 111 | }; -------------------------------------------------------------------------------- /guides/9710.js: -------------------------------------------------------------------------------- 1 | // Broken Prison 2 | // 3 | // made by ITunk 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | // 1 BOSS 8 | "s-710-1000-102-0": [{ type: "text", sub_type: "message", message: "Pushback (Kaia)", message_RU: "Откид (кайа)" }], 9 | "s-710-1000-105-0": [{ type: "text", sub_type: "message", message: "Bait (DoT)", message_RU: "Байт лужа" }], 10 | "s-710-1000-113-0": [{ type: "text", sub_type: "message", message: "DoT - Out", message_RU: "Лужа отвести" }], 11 | "s-710-1000-119-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 12 | "s-710-1000-303-0": [{ type: "text", sub_type: "message", message: "Mechanics", message_RU: "Меха" }], 13 | "s-710-1000-304-0": [ 14 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/регресс", class_position: "priest" }, 15 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 16 | ], 17 | 18 | // 2 BOSS 19 | "s-710-2000-102-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 20 | "s-710-2000-110-0": [{ type: "text", sub_type: "message", message: "Cleanse", message_RU: "Клинс" }], 21 | "s-710-2000-111-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 22 | "s-710-2000-115-0": [{ type: "text", sub_type: "message", message: "Damage - Stun", message_RU: "Задувка - Стан" }], 23 | "s-710-2000-116-0": [{ type: "text", sub_type: "message", message: "Bait", message_RU: "Байт" }], 24 | "s-710-2000-118-0": [{ type: "text", sub_type: "message", message: "Laser 360", message_RU: "Лазер 360" }], 25 | 26 | // 3 BOSS 27 | "s-710-3000-302-0": [{ type: "text", sub_type: "message", message: "Keep BLUE", message_RU: "Оставить синий" }], 28 | "s-710-3000-301-0": [{ type: "text", sub_type: "message", message: "Stand at the portal", message_RU: "Встать за портал" }], 29 | "s-710-3000-106-0": [{ type: "text", sub_type: "message", message: "Back attack", message_RU: "Удар назад" }], 30 | "s-710-3000-102-0": [{ type: "text", sub_type: "message", message: "Spin (Kaia)", message_RU: "Крутилка (кайа)" }], 31 | "s-710-3000-110-0": [{ type: "text", sub_type: "message", message: "Get Out", message_RU: "От него" }], 32 | "s-710-3000-205-0": [{ type: "text", sub_type: "message", message: "Mechanics", message_RU: "Меха" }], 33 | "s-710-3000-107-0": [{ type: "text", sub_type: "message", message: "Back attack", message_RU: "Удар назад" }], 34 | "s-710-3000-109-0": [{ type: "text", sub_type: "message", message: "Spin (Kaia)", message_RU: "Крутилка (кайа)" }], 35 | "s-710-3000-111-0": [{ type: "text", sub_type: "message", message: "Get In", message_RU: "К нему" }], 36 | "s-710-3000-115-0": [{ type: "text", sub_type: "message", message: "Bait attack", message_RU: "Байт бросок" }] 37 | }; 38 | }; -------------------------------------------------------------------------------- /guides/9720.js: -------------------------------------------------------------------------------- 1 | // Antaroth's Abyss 2 | // 3 | // made by HSDN / Yuyuko / Owyn 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | let secondboss_mech_counter = 0; 9 | let thirdboss_counter = 0; 10 | let thirdboss_timer = null; 11 | 12 | function secondboss_stacks_event() { 13 | secondboss_mech_counter++; 14 | 15 | handlers.text({ sub_type: "notification", message: `${secondboss_mech_counter} stack`, message_RU: `Стак ${secondboss_mech_counter}`, speech: false }); 16 | 17 | if (secondboss_mech_counter >= 5) { 18 | secondboss_mech_counter = 0; 19 | } 20 | } 21 | 22 | function thirdboss_backattack_event() { 23 | dispatch.clearTimeout(thirdboss_timer); 24 | thirdboss_counter++; 25 | 26 | if (thirdboss_counter >= 2) { 27 | handlers.text({ sub_type: "message", message: "Back Stun", message_RU: "Задний" }); 28 | } 29 | 30 | thirdboss_timer = dispatch.setTimeout(() => thirdboss_counter = 0, 3000); 31 | } 32 | 33 | return { 34 | // 1 BOSS 35 | "nd-720-1000": [ 36 | { type: "stop_timers" }, 37 | { type: "despawn_all" } 38 | ], 39 | "s-720-1000-1117-0": [{ type: "text", sub_type: "message", message: "In > Out", message_RU: "К нему > От него" }], 40 | "s-720-1000-1116-0": [{ type: "text", sub_type: "message", message: "Out > In", message_RU: "От него > К нему" }], 41 | "s-720-1000-1109-0": [{ type: "text", sub_type: "message", message: "Back Attack", message_RU: "Откид назад" }], 42 | "s-720-1000-1300-0": [{ type: "text", sub_type: "message", delay: 600, message: "Dodge!", message_RU: "Эвейд!" }], 43 | "s-720-1000-2117-0": "s-720-1000-1117-0", 44 | "s-720-1000-2116-0": "s-720-1000-1116-0", 45 | "s-720-1000-2109-0": "s-720-1000-1109-0", 46 | "s-720-1000-2220-0": "s-720-1000-1220-0", 47 | "qb-720-1000-7201000": [{ type: "text", sub_type: "message", message: "Flying", message_RU: "Подлет" }], 48 | 49 | // 2 BOSS 50 | "nd-720-2000": [ 51 | { type: "stop_timers" }, 52 | { type: "despawn_all" } 53 | ], 54 | "h-720-2000-99": [{ type: "func", func: () => secondboss_mech_counter = 0 }], 55 | "s-720-2000-1104-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Прыжок (стан)" }], 56 | "s-720-2000-1105-0": [{ type: "text", sub_type: "message", message: "Back Attack", message_RU: "Удар назад" }], 57 | "s-720-2000-1106-0": [ 58 | { type: "text", sub_type: "message", message: "Spin Attack", message_RU: "Крутилка" }, 59 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 60 | ], 61 | "s-720-2000-1108-0": [{ type: "text", sub_type: "message", message: "Target Swing", message_RU: "Таргет" }], 62 | "s-720-2000-1110-0": [ 63 | { type: "text", sub_type: "message", message: "Stun Attack", message_RU: "Передний стан" }, 64 | { type: "spawn", func: "circle", args: [false, 553, 0, 175, 10, 260, 0, 5000] } 65 | ], 66 | "s-720-2000-1111-0": [ 67 | { type: "text", sub_type: "message", message: "Left Slash", message_RU: "Левая полоса" }, 68 | { type: "spawn", func: "vector", args: [553, 270, 200, 180, 500, 0, 2000] }, 69 | { type: "spawn", func: "vector", args: [553, 270, 200, 0, 300, 0, 2000] }, 70 | { type: "spawn", func: "vector", args: [553, 90, 20, 180, 500, 0, 2000] }, 71 | { type: "spawn", func: "vector", args: [553, 90, 20, 0, 300, 0, 2000] }, 72 | { type: "spawn", func: "vector", args: [553, 6, 302, 270, 200, 0, 2000] }, 73 | { type: "spawn", func: "vector", args: [553, 176, 502, 270, 200, 0, 2000] } 74 | ], 75 | "s-720-2000-1112-0": [ 76 | { type: "text", sub_type: "message", message: "Right Slash", message_RU: "Правая полоса" }, 77 | { type: "spawn", func: "vector", args: [553, 90, 200, 180, 500, 0, 2000] }, 78 | { type: "spawn", func: "vector", args: [553, 90, 200, 0, 300, 0, 2000] }, 79 | { type: "spawn", func: "vector", args: [553, 270, 20, 180, 500, 0, 2000] }, 80 | { type: "spawn", func: "vector", args: [553, 270, 20, 0, 300, 0, 2000] }, 81 | { type: "spawn", func: "vector", args: [553, 354, 302, 90, 200, 0, 2000] }, 82 | { type: "spawn", func: "vector", args: [553, 184, 502, 90, 200, 0, 2000] } 83 | ], 84 | "s-720-2000-1113-0": "s-720-2000-1111-0", 85 | "s-720-2000-1114-0": "s-720-2000-1112-0", 86 | "s-720-2000-2104-0": "s-720-2000-1104-0", 87 | "s-720-2000-2105-0": "s-720-2000-1105-0", 88 | "s-720-2000-2106-0": "s-720-2000-1106-0", 89 | "s-720-2000-2108-0": "s-720-2000-1108-0", 90 | "s-720-2000-2110-0": "s-720-2000-1110-0", 91 | "s-720-2000-2111-0": "s-720-2000-1111-0", 92 | "s-720-2000-2112-0": "s-720-2000-1112-0", 93 | "s-720-2000-2113-0": "s-720-2000-1111-0", 94 | "s-720-2000-2114-0": "s-720-2000-1112-0", 95 | "s-720-2000-3116-0": [{ type: "text", sub_type: "message", message: "Circles", message_RU: "Круги" }], 96 | "s-720-2000-3119-0": [{ type: "text", sub_type: "message", message: "Red: Out safe", message_RU: "Красный: Наружу сейф" }], 97 | "s-720-2000-3220-0": [{ type: "text", sub_type: "message", message: "Blue: In safe", message_RU: "Синий: Внутрь сейф" }], 98 | // 99 | "dm-0-0-7202000": [{ type: "func", func: secondboss_stacks_event }], 100 | 101 | // 3 BOSS 102 | "nd-720-3000-0": [ 103 | { type: "stop_timers" }, 104 | { type: "despawn_all" } 105 | ], 106 | "s-720-3000-1104-0": [{ type: "func", func: thirdboss_backattack_event }], 107 | "s-720-3000-1119-0": [{ type: "spawn", func: "circle", args: [true, 553, 0, -325, 12, 325, 0, 2000] }], 108 | "s-720-3000-1107-0": [{ type: "text", sub_type: "message", message: "Random Jump", message_RU: "Прыжок (стан)" }], 109 | "s-720-3000-1107-1": [{ type: "spawn", func: "circle", args: [false, 553, 0, 85, 12, 250, 0, 2000] }], 110 | "s-720-3000-1109-0": [ 111 | { type: "text", sub_type: "message", message: "Left", message_RU: "Лево" }, 112 | { type: "spawn", func: "vector", args: [553, 0, 0, 180, 500, 0, 1500] }, 113 | { type: "spawn", func: "vector", args: [553, 0, 0, 0, 500, 0, 1500] }, 114 | { type: "spawn", func: "semicircle", args: [0, 180, 912, 0, 0, 20, 160, 0, 1500] }, 115 | { type: "spawn", func: "semicircle", args: [0, 180, 912, 0, 0, 12, 220, 0, 1500] }, 116 | { type: "spawn", func: "semicircle", args: [0, 180, 912, 0, 0, 10, 300, 0, 1500] }, 117 | { type: "spawn", func: "semicircle", args: [0, 180, 912, 0, 0, 8, 360, 0, 1500] }, 118 | { type: "spawn", func: "marker", args: [false, 270, 300, 0, 1500, true, null] } 119 | ], 120 | "s-720-3000-1111-0": [ 121 | { type: "text", sub_type: "message", message: "Right", message_RU: "Право" }, 122 | { type: "spawn", func: "vector", args: [553, 0, 0, 180, 500, 0, 1500] }, 123 | { type: "spawn", func: "vector", args: [553, 0, 0, 0, 500, 0, 1500] }, 124 | { type: "spawn", func: "semicircle", args: [180, 360, 912, 0, 0, 20, 160, 0, 1500] }, 125 | { type: "spawn", func: "semicircle", args: [180, 360, 912, 0, 0, 12, 220, 0, 1500] }, 126 | { type: "spawn", func: "semicircle", args: [180, 360, 912, 0, 0, 10, 300, 0, 1500] }, 127 | { type: "spawn", func: "semicircle", args: [180, 360, 912, 0, 0, 8, 360, 0, 1500] }, 128 | { type: "spawn", func: "marker", args: [false, 90, 300, 0, 1500, true, null] } 129 | ], 130 | "s-720-3000-1113-0": [{ type: "text", sub_type: "message", message: "Front | Back Stun", message_RU: "Передний | Задний" }], 131 | "s-720-3000-1115-0": [{ type: "text", sub_type: "message", message: "Spin Attack", message_RU: "Круговая" }], 132 | "s-720-3000-1120-0": [{ type: "text", sub_type: "message", message: "Energy Beam (Slow)", message_RU: "Волна (медленно)" }], 133 | "s-720-3000-1204-0": [{ type: "text", sub_type: "message", message: "Energy Beam (Fast)", message_RU: "Волна (быстро)" }], 134 | "s-720-3000-1206-0": [{ type: "text", sub_type: "message", message: "Orbs", message_RU: "Шары" }], 135 | "s-720-3000-1309-0": [{ type: "text", sub_type: "message", message: "AoE", message_RU: "АоЕ" }], 136 | "s-720-3000-1310-0": [{ type: "text", sub_type: "message", message: "Puddles", message_RU: "Лужи" }], 137 | "s-720-3000-1311-0": "s-720-3000-1310-0", 138 | "s-720-3000-1312-0": "s-720-3000-1310-0", 139 | "s-720-3000-1313-0": "s-720-3000-1310-0", 140 | "s-720-3000-1314-0": "s-720-3000-1310-0", 141 | "s-720-3000-1315-0": [{ type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид (кайа)" }], 142 | "s-720-3000-1400-0": [{ type: "text", sub_type: "message", message: "Clones: Beam", message_RU: "Копии: волны" }], 143 | "s-720-3000-1401-0": [{ type: "text", sub_type: "message", message: "Clones: Spin", message_RU: "Копии: круговые" }], 144 | "s-720-3000-2104-0": "s-720-3000-1104-0", 145 | "s-720-3000-2105-0": "s-720-3000-1105-0", 146 | "s-720-3000-2119-0": "s-720-3000-1119-0", 147 | "s-720-3000-2107-0": "s-720-3000-1107-0", 148 | "s-720-3000-2107-1": "s-720-3000-1107-1", 149 | "s-720-3000-2109-0": "s-720-3000-1109-0", 150 | "s-720-3000-2111-0": "s-720-3000-1111-0", 151 | "s-720-3000-2113-0": "s-720-3000-1113-0", 152 | "s-720-3000-2115-0": "s-720-3000-1115-0", 153 | "s-720-3000-2120-0": "s-720-3000-1120-0", 154 | "s-720-3000-2204-0": "s-720-3000-1204-0", 155 | "s-720-3000-2202-0": "s-720-3000-1202-0", 156 | "s-720-3000-2206-0": "s-720-3000-1206-0" 157 | }; 158 | }; -------------------------------------------------------------------------------- /guides/9735.js: -------------------------------------------------------------------------------- 1 | // RK-9 Kennel 2 | // 3 | // made by michengs 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | // 1 BOSS 8 | "nd-735-1000": [ 9 | { type: "stop_timers" }, 10 | { type: "despawn_all" } 11 | ], 12 | "s-735-1000-111-0": [{ type: "text", sub_type: "message", message: "Back + Front", message_RU: "Удар назад + вперед" }], 13 | "s-735-1000-112-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Удар назад" }], 14 | "s-735-1000-304-0": [{ type: "text", sub_type: "message", message: "Out", message_RU: "От него" }], 15 | "s-735-1000-305-0": [{ type: "text", sub_type: "message", message: "In", message_RU: "К нему" }], 16 | "s-735-1000-306-0": [{ type: "text", sub_type: "message", message: "Bombs", message_RU: "Бомбы" }], 17 | "s-735-1000-307-0": [{ type: "text", sub_type: "message", message: "Pull", message_RU: "Стяжка" }], 18 | "s-735-1000-309-0": [{ type: "text", sub_type: "message", message: "Four Missile", message_RU: "Запуск 4 ракет" }], 19 | 20 | // 2 BOSS 21 | "nd-735-2000": [ 22 | { type: "stop_timers" }, 23 | { type: "despawn_all" } 24 | ], 25 | "s-735-2000-102-0": [ 26 | { type: "text", sub_type: "message", message: "Pizza Cutter", message_RU: "Пила (Эвейд)" }, 27 | { type: "spawn", func: "circle", args: [true, 553, 0, 300, 12, 228, 0, 3000] } 28 | ], 29 | "s-735-2000-105-0": [ 30 | { type: "text", sub_type: "message", message: "360", message_RU: "Крутилка (откид)" }, 31 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 278, 0, 4000] } 32 | ], 33 | "s-735-2000-108-0": [ 34 | { type: "text", sub_type: "message", message: "Back Swipe", message_RU: "Откид назад" }, 35 | { type: "spawn", func: "vector", args: [553, 0, 0, 240, 380, 0, 2000] }, 36 | { type: "spawn", func: "vector", args: [553, 0, 0, 120, 380, 0, 2000] } 37 | ], 38 | "s-735-2000-301-0": [{ type: "text", sub_type: "message", message: "Throwing Orb", message_RU: "Бомба" }], 39 | "s-735-2000-304-0": [ 40 | { type: "text", sub_type: "message", message: "Get Out", message_RU: "От него" }, 41 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 400, 0, 4000] } 42 | ], 43 | "s-735-2007-201-0": [ 44 | { type: "spawn", func: "vector", args: [912, 0, 0, 0, 500, 0, 4000] }, 45 | { type: "spawn", func: "vector", args: [912, 0, 0, 90, 500, 0, 4000] }, 46 | { type: "spawn", func: "vector", args: [912, 0, 0, 180, 500, 0, 4000] }, 47 | { type: "spawn", func: "vector", args: [912, 0, 0, 270, 500, 0, 4000] } 48 | ], 49 | "s-735-2007-306-0": [ 50 | { type: "spawn", func: "vector", args: [912, 0, 0, 0, 500, 0, 4000] }, 51 | { type: "spawn", func: "vector", args: [912, 0, 0, 90, 500, 0, 4000] }, 52 | { type: "spawn", func: "vector", args: [912, 0, 0, 180, 500, 0, 4000] }, 53 | { type: "spawn", func: "vector", args: [912, 0, 0, 270, 500, 0, 4000] } 54 | ], 55 | "s-735-2007-307-0": [ 56 | { type: "spawn", func: "vector", args: [912, 0, 0, 0, 500, 0, 4000] }, 57 | { type: "spawn", func: "vector", args: [912, 0, 0, 90, 500, 0, 4000] }, 58 | { type: "spawn", func: "vector", args: [912, 0, 0, 180, 500, 0, 4000] }, 59 | { type: "spawn", func: "vector", args: [912, 0, 0, 270, 500, 0, 4000] } 60 | ], 61 | 62 | // 3 BOSS 63 | "nd-735-3000": [ 64 | { type: "stop_timers" }, 65 | { type: "despawn_all" } 66 | ], 67 | "s-735-3000-116-0": [{ type: "text", sub_type: "message", message: "Right Safe", message_RU: "Справа сейф" }, 68 | { type: "spawn", func: "point", args: [553, 120, 250, 0, 3000] }, 69 | { type: "spawn", func: "point", args: [553, 130, 240, 0, 3000] }, 70 | { type: "spawn", func: "point", args: [553, 140, 230, 0, 3000] }, 71 | { type: "spawn", func: "point", args: [553, 150, 220, 0, 3000] }, 72 | { type: "spawn", func: "point", args: [553, 160, 210, 0, 3000] }, 73 | { type: "spawn", func: "vector", args: [553, 170, 210, 180, 290, 0, 3000] }, 74 | { type: "spawn", func: "point", args: [553, 300, 250, 0, 3000] }, 75 | { type: "spawn", func: "point", args: [553, 310, 240, 0, 3000] }, 76 | { type: "spawn", func: "point", args: [553, 320, 230, 0, 3000] }, 77 | { type: "spawn", func: "point", args: [553, 330, 220, 0, 3000] }, 78 | { type: "spawn", func: "point", args: [553, 340, 210, 0, 3000] }, 79 | { type: "spawn", func: "vector", args: [553, 350, 210, 0, 290, 0, 3000] } 80 | ], 81 | "s-735-3000-117-0": [{ type: "text", sub_type: "message", message: "Left Safe", message_RU: "Слева сейф" }, 82 | { type: "spawn", func: "vector", args: [553, 10, 210, 0, 290, 0, 3000] }, 83 | { type: "spawn", func: "point", args: [553, 20, 210, 0, 3000] }, 84 | { type: "spawn", func: "point", args: [553, 30, 220, 0, 3000] }, 85 | { type: "spawn", func: "point", args: [553, 40, 230, 0, 3000] }, 86 | { type: "spawn", func: "point", args: [553, 50, 240, 0, 3000] }, 87 | { type: "spawn", func: "point", args: [553, 60, 250, 0, 3000] }, 88 | { type: "spawn", func: "point", args: [553, 240, 250, 0, 3000] }, 89 | { type: "spawn", func: "point", args: [553, 230, 240, 0, 3000] }, 90 | { type: "spawn", func: "point", args: [553, 220, 230, 0, 3000] }, 91 | { type: "spawn", func: "point", args: [553, 210, 220, 0, 3000] }, 92 | { type: "spawn", func: "point", args: [553, 200, 210, 0, 3000] }, 93 | { type: "spawn", func: "vector", args: [553, 190, 210, 180, 290, 0, 3000] } 94 | ], 95 | "s-735-3000-118-0": [{ type: "text", sub_type: "message", message: "Left Safe", message_RU: "Слева сейф" }, 96 | { type: "spawn", func: "vector", args: [553, 10, 210, 0, 290, 0, 3000] }, 97 | { type: "spawn", func: "point", args: [553, 20, 210, 0, 3000] }, 98 | { type: "spawn", func: "point", args: [553, 30, 220, 0, 3000] }, 99 | { type: "spawn", func: "point", args: [553, 40, 230, 0, 3000] }, 100 | { type: "spawn", func: "point", args: [553, 50, 240, 0, 3000] }, 101 | { type: "spawn", func: "point", args: [553, 60, 250, 0, 3000] }, 102 | { type: "spawn", func: "point", args: [553, 240, 250, 0, 3000] }, 103 | { type: "spawn", func: "point", args: [553, 230, 240, 0, 3000] }, 104 | { type: "spawn", func: "point", args: [553, 220, 230, 0, 3000] }, 105 | { type: "spawn", func: "point", args: [553, 210, 220, 0, 3000] }, 106 | { type: "spawn", func: "point", args: [553, 200, 210, 0, 3000] }, 107 | { type: "spawn", func: "vector", args: [553, 190, 210, 180, 290, 0, 3000] } 108 | ], 109 | "s-735-3000-119-0": [{ type: "text", sub_type: "message", message: "Right Safe", message_RU: "Справа сейф" }, 110 | { type: "spawn", func: "point", args: [553, 120, 250, 0, 3000] }, 111 | { type: "spawn", func: "point", args: [553, 130, 240, 0, 3000] }, 112 | { type: "spawn", func: "point", args: [553, 140, 230, 0, 3000] }, 113 | { type: "spawn", func: "point", args: [553, 150, 220, 0, 3000] }, 114 | { type: "spawn", func: "point", args: [553, 160, 210, 0, 3000] }, 115 | { type: "spawn", func: "vector", args: [553, 170, 210, 180, 290, 0, 3000] }, 116 | { type: "spawn", func: "point", args: [553, 300, 250, 0, 3000] }, 117 | { type: "spawn", func: "point", args: [553, 310, 240, 0, 3000] }, 118 | { type: "spawn", func: "point", args: [553, 320, 230, 0, 3000] }, 119 | { type: "spawn", func: "point", args: [553, 330, 220, 0, 3000] }, 120 | { type: "spawn", func: "point", args: [553, 340, 210, 0, 3000] }, 121 | { type: "spawn", func: "vector", args: [553, 350, 210, 0, 290, 0, 3000] } 122 | ], 123 | "s-735-3000-128-0": [{ type: "text", class_position: "tank", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 124 | "s-735-3000-305-0": [{ type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 300, 0, 7000] }], 125 | "s-735-3000-321-0": [{ type: "text", sub_type: "message", message: "Shield!", message_RU: "Щит!" }], 126 | "s-735-3000-324-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }] 127 | }; 128 | }; -------------------------------------------------------------------------------- /guides/9739.js: -------------------------------------------------------------------------------- 1 | // Red Refuge 2 | // 3 | // made by multarix 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | return { 7 | // 1 BOSS 8 | "nd-739-1000": [ 9 | { type: "stop_timers" }, 10 | { type: "despawn_all" } 11 | ], 12 | "s-739-1000-105-0": [{ type: "text", sub_type: "message", message: "Turn + Breath", message_RU: "Поворот + дыхание" }], 13 | "s-739-1000-308-0": [ 14 | { type: "text", sub_type: "message", message: "In > Out", message_RU: "К нему > От него" }, 15 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 7500] } 16 | ], 17 | "s-739-1000-308-1": [{ type: "text", sub_type: "message", message: "Out", message_RU: "От него" }], 18 | "s-739-1000-112-0": [{ type: "text", sub_type: "message", message: "Back Spray", message_RU: "Волна назад" }], 19 | "s-739-1000-107-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 20 | "s-739-1000-306-0": [ 21 | { type: "text", sub_type: "message", message: "Out > In", message_RU: "От него > К нему" }, 22 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 7500] } 23 | ], 24 | "s-739-1000-306-1": [{ type: "text", sub_type: "message", message: "In", message_RU: "К нему" }], 25 | 26 | // 2 BOSS 27 | "nd-739-2000": [ 28 | { type: "stop_timers" }, 29 | { type: "despawn_all" } 30 | ], 31 | "s-739-2000-105-0": [ 32 | { type: "text", sub_type: "message", message: "360", message_RU: "360" }, 33 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 2500] }, 34 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 510, 0, 2500] } 35 | ], 36 | "s-739-2000-113-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 37 | "s-739-2000-108-0": [ 38 | { type: "text", sub_type: "message", message: "Cleanse", message_RU: "Клинс", class_position: "heal" }, 39 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка", class_position: ["tank", "dps"] } 40 | ], 41 | "s-739-2000-115-0": [ 42 | { type: "text", sub_type: "message", message: "Whirlwind", message_RU: "Вихрь" }, 43 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 360, 0, 6500] } 44 | ], 45 | "s-739-2000-119-0": [{ type: "text", sub_type: "message", message: "Front", message_RU: "Спереди" }], 46 | "s-739-2000-120-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Сзади" }], 47 | "s-739-2000-303-0": [ 48 | { type: "text", sub_type: "message", message: "Whip", message_RU: "Кнут" }, 49 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1650 } 50 | ], 51 | 52 | // 3 BOSS 53 | "nd-739-3001": [ 54 | { type: "stop_timers" }, 55 | { type: "despawn_all" } 56 | ], 57 | "h-739-3001-30": [{ type: "text", sub_type: "message", message: "Reveal soon...", message_RU: "Скоро разоблачение..." }], 58 | "s-739-3001-201-0": [ 59 | { type: "text", sub_type: "message", message: "Stun (Pushback)", message_RU: "Рёв (откид)" }, 60 | { type: "text", sub_type: "message", delay: 1000, message: "3" }, 61 | { type: "text", sub_type: "message", delay: 2000, message: "2" }, 62 | { type: "text", sub_type: "message", delay: 3000, message: "1" }, 63 | { type: "text", sub_type: "message", delay: 4000, message: "Dodge!", message_RU: "Эвейд!" }, 64 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 5000] } 65 | ], 66 | "s-739-3001-107-0": [{ type: "text", sub_type: "message", message: "Many Hits", message_RU: "Несколько ударов" }], 67 | "s-739-3001-112-0": [{ type: "text", sub_type: "message", message: "Target", message_RU: "Таргет" }], 68 | "s-739-3001-115-0": [ 69 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 70 | { type: "text", sub_type: "message", delay: 1800, message: "Dodge!", message_RU: "Эвейд!" }, 71 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 4000] } 72 | ], 73 | "s-739-3001-118-0": [{ type: "text", sub_type: "message", message: "Scratching", message_RU: "Крутилка" }], 74 | "s-739-3001-164-0": [{ type: "text", sub_type: "message", message: "Counter Attack (bleed)", message_RU: "Отпрыжка (кровоток)" }], 75 | "s-739-3001-167-0": [{ type: "text", sub_type: "message", message: "Many Hits", message_RU: "Несколько ударов" }], 76 | "s-739-3001-172-0": "s-739-3001-112-0", 77 | "s-739-3001-301-0": "s-739-3001-112-0", 78 | "s-739-3001-302-0": "s-739-3001-112-0", 79 | "s-739-3001-170-0": [ 80 | { type: "text", sub_type: "message", message: "Turn + Pushback", message_RU: "Разворот + Откид" }, 81 | { type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид", delay: 2700 } 82 | ], 83 | "s-739-3001-175-0": [ 84 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 85 | { type: "text", sub_type: "message", delay: 1800, message: "Dodge!", message_RU: "Эвейд!" }, 86 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 4000] } 87 | ], 88 | "s-739-3001-177-0": [{ type: "text", sub_type: "message", message: "Backstab", message_RU: "Назад + Вперед" }], 89 | "s-739-3001-178-0": [{ type: "text", sub_type: "message", message: "Scratching (bleed)", message_RU: "Крутилка (кровоток)" }], 90 | "s-739-3001-203-0": [{ type: "text", sub_type: "message", message: "Phantom x3 (bleed)", message_RU: "Прыжки x3 (кровоток)" }], 91 | "s-739-3001-207-0": [{ type: "text", sub_type: "message", message: "Phantom x5 (bleed)", message_RU: "Прыжки x5 (кровоток)" }], 92 | "s-739-3001-213-0": [{ type: "text", sub_type: "message", message: "Reveal | Phantom (bleed)", message_RU: "Разоблачение | Прыжки (кровоток)" }], 93 | "s-739-3001-212-0": [{ type: "text", sub_type: "message", message: "Flash", message_RU: "Байт" }] 94 | }; 95 | }; -------------------------------------------------------------------------------- /guides/9750.js: -------------------------------------------------------------------------------- 1 | // Rift"s Edge (10-Person) 2 | // 3 | // made by ITunk 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | return { 9 | // 1 BOSS 10 | "nd-750-1001": [ 11 | { type: "stop_timers" }, 12 | { type: "despawn_all" } 13 | ], 14 | "s-750-1001-1102-0": [ 15 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 16 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 375, 0, 3300] } 17 | ], 18 | "s-750-1001-1115-0": [ 19 | { type: "text", sub_type: "message", message: "Floor", message_RU: "Атака в пол" }, 20 | { type: "spawn", func: "vector", args: [553, 50, 75, 0, 700, 0, 1400] }, 21 | { type: "spawn", func: "vector", args: [553, -50, 75, 0, 700, 0, 1400] } 22 | ], 23 | "s-750-1001-1116-1": [ 24 | { type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }, 25 | { type: "spawn", func: "vector", args: [553, 90, 125, 0, 1200, 0, 1600] }, 26 | { type: "spawn", func: "vector", args: [553, 270, 125, 0, 1200, 0, 1600] } 27 | ], 28 | "s-750-1001-2102-0": [ 29 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 30 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 375, 0, 2900] } 31 | ], 32 | "s-750-1001-2115-0": [ 33 | { type: "text", sub_type: "message", message: "Floor", message_RU: "Атака в пол" }, 34 | { type: "spawn", func: "vector", args: [553, 25, 75, 0, 700, 0, 1200] }, 35 | { type: "spawn", func: "vector", args: [553, -25, 75, 0, 700, 0, 1200] } 36 | ], 37 | "s-750-1001-2116-1": [ 38 | { type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }, 39 | { type: "spawn", func: "vector", args: [553, 90, 125, 0, 1200, 0, 1600] }, 40 | { type: "spawn", func: "vector", args: [553, 270, 125, 0, 1200, 0, 1600] } 41 | ], 42 | 43 | // 2 BOSS 44 | "nd-750-1002": [ 45 | { type: "stop_timers" }, 46 | { type: "despawn_all" } 47 | ], 48 | "s-750-1002-1113-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 49 | "s-750-1002-2113-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 50 | "s-750-1002-1114-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 51 | "s-750-1002-2114-0": [{ type: "text", sub_type: "message", message: "Discarding", message_RU: "Три откида" }], 52 | "s-750-1002-1115-0": [{ type: "text", sub_type: "message", message: "Flying Attack", message_RU: "Летающая атака" }], 53 | "s-750-1002-2115-0": [{ type: "text", sub_type: "message", message: "Flying Attack", message_RU: "Летающая атака" }], 54 | "s-750-1002-1116-0": [{ type: "text", sub_type: "message", message: "A swarm of bees", message_RU: "Рой пчел" }], 55 | "s-750-1002-2116-0": [{ type: "text", sub_type: "message", message: "A swarm of bees", message_RU: "Рой пчел" }], 56 | "s-750-1002-1117-0": [{ type: "text", sub_type: "message", message: "Rise (Kaia)", message_RU: "Взлет (Кайя)" }], 57 | "s-750-1002-2117-0": [{ type: "text", sub_type: "message", message: "Rise (Kaia)", message_RU: "Взлет (Кайя)" }], 58 | "s-750-1002-1205-0": [ 59 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 60 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 61 | ], 62 | "s-750-1002-1210-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 63 | "s-750-1002-2210-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 64 | 65 | // 3 BOSS 66 | "nd-750-1003": [ 67 | { type: "stop_timers" }, 68 | { type: "despawn_all" } 69 | ], 70 | "s-750-1003-1107-2": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 71 | "s-750-1003-2107-2": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 72 | "s-750-1003-1115-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 73 | "s-750-1003-2115-0": [{ type: "text", sub_type: "message", message: "Knockdown", message_RU: "Опрокид" }], 74 | "s-750-1003-1313-0": [ 75 | { type: "text", sub_type: "message", message: "Column", message_RU: "Колонна" }, 76 | { type: "text", sub_type: "message", delay: 8000, message: "Dodge", message_RU: "Эвейд" } 77 | ], 78 | "s-750-1003-1315-0": [ 79 | { type: "text", sub_type: "message", message: "Break Shield", message_RU: "Сломать щит", class_position: ["tank", "dps"] }, 80 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 81 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 82 | ] 83 | }; 84 | }; -------------------------------------------------------------------------------- /guides/9754.js: -------------------------------------------------------------------------------- 1 | // Bathysmal Rise 2 | // 3 | // made by michengs / Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | return { 9 | // 1 BOSS 10 | "s-754-1000-1101-0": [{ type: "text", sub_type: "message", message_RU: "Лево", message: "Left" }], 11 | "s-754-1000-1102-0": [{ type: "text", sub_type: "message", message_RU: "Право", message: "Right" }], 12 | "s-754-1000-1103-0": [{ type: "text", sub_type: "message", message_RU: "Удар головой!", message: "Head Slam!" }, 13 | { type: "spawn", func: "circle", args: [false, 553, 0, 200, 12, 275, 0, 4000] } 14 | ], 15 | "s-754-1000-1105-0": [{ type: "text", sub_type: "message", message_RU: "К нему", message: "Get In" }], 16 | "s-754-1000-1106-0": [{ type: "text", sub_type: "message", message_RU: "Круг", message: "Random Circle" }], 17 | "s-454-1000-1108-0": [{ type: "text", sub_type: "message", message_RU: "Левая сторона", message: "Left Side" }], 18 | "s-454-1000-1109-0": [{ type: "text", sub_type: "message", message_RU: "Правая сторона", message: "Right Side" }], 19 | "s-754-1000-2101-0": "s-754-1000-1101-0", 20 | "s-754-1000-2102-0": "s-754-1000-1102-0", 21 | "s-754-1000-2103-0": "s-754-1000-1103-0", 22 | "s-754-1000-2105-0": "s-754-1000-1105-0", 23 | "s-754-1000-2106-0": "s-754-1000-1106-0", 24 | "s-454-1000-2108-0": "s-454-1000-1108-0", 25 | "s-454-1000-2109-0": "s-454-1000-1109-0", 26 | "s-754-1000-3101-0": [{ type: "text", sub_type: "message", message_RU: "Камни разрушены", message: "Rocks Destroyed" }], 27 | "s-754-1000-3103-0": [{ type: "text", sub_type: "message", message_RU: "Опрокинуть босса", message: "Knock Down Boss" }], 28 | 29 | // 2 BOSS 30 | //"s-754-1001-1101-0": [{ type: "text", sub_type: "message", message_RU: "Передняя", message: "Frontal Attack" }], 31 | //"s-754-1001-1102-0": [{ type: "text", sub_type: "message", message_RU: "Сальто назад (быстро)", message: "Back Flip (Fast)" }], 32 | "s-754-1001-1104-0": [{ type: "text", sub_type: "message", message_RU: "Передняя крутилка!", message: "Frontal Spin!" }], 33 | "s-754-1001-1105-0": [{ type: "text", sub_type: "message", message_RU: "Хвост", message: "Tail" }], 34 | "s-754-1001-1108-0": [{ type: "text", sub_type: "message", message_RU: "Яд", message: "Random Poison" }], 35 | "s-754-1001-1109-0": [{ type: "text", sub_type: "message", message_RU: "Притяжка + Яд", message: "Pull + Poison" }, 36 | { type: "text", sub_type: "message", "delay": 1500, message_RU: "Вспышка", message: "Flash" } 37 | ], 38 | "s-754-1001-1110-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка! (медленно)", message: "Spin! (Slow)" }], 39 | "s-754-1001-1113-0": [{ type: "text", sub_type: "message", message_RU: "Лужа", message: "Slime Puddle" }], 40 | "s-754-1001-1111-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка с выпадом", message: "Spin Lunge Attack" }], 41 | //"s-754-1001-2101-0": "s-754-1001-1101-0", 42 | //"s-754-1001-2102-0": "s-754-1001-1102-0", 43 | "s-754-1001-2104-0": "s-754-1001-1104-0", 44 | "s-754-1001-2105-0": "s-754-1001-1105-0", 45 | "s-754-1001-2108-0": "s-754-1001-1108-0", 46 | "s-754-1001-2110-0": "s-754-1001-1110-0", 47 | "s-754-1001-2109-0": "s-754-1001-1109-0", 48 | "s-754-1001-2113-0": "s-754-1001-1113-0", 49 | "s-754-1001-2111-0": "s-754-1001-1111-0", 50 | 51 | "s-754-1001-3103-0": [{ type: "text", sub_type: "message", message_RU: "Опрокинуть босса", message: "Knock Down Boss" }], 52 | "s-754-1001-3105-0": [{ type: "text", sub_type: "message", message_RU: "Яд", message: "Poison" }], 53 | "s-754-1001-3102-0": [{ type: "text", sub_type: "message", message_RU: "Прыжок + Волна", message: "Big Jump + Wave" }], 54 | "s-754-403-1101-0": [{ type: "text", sub_type: "message", message_RU: "Водяная стена (разбить)", message: "Water Wall (Breake)" }, 55 | { type: "spawn", func: "marker", args: [false, 500, 180, 100, 9000] } 56 | ], 57 | 58 | // 3 BOSS 59 | "s-754-1002-1102-0": [{ type: "text", sub_type: "message", message_RU: "Передняя атака", message: "Frontal Attack" }], 60 | "s-754-1002-1104-0": [{ type: "text", sub_type: "message", message_RU: "Бублик (внутрь)", message: "Donut (In)" }], 61 | "s-754-1002-1107-0": [{ type: "text", sub_type: "message", message_RU: "Задний удар (быстро)", message: "Back Hit! (Fast)" }], 62 | "s-754-1002-1108-0": [{ type: "text", sub_type: "message", message_RU: "Задний удар", message: "Back Hit" }], 63 | "s-754-1002-1112-0": [{ type: "text", sub_type: "message", message_RU: "Сальто (быстро)", message: "Jump (Fast)" }], 64 | "s-754-1002-1106-0": [{ type: "text", sub_type: "message", message_RU: "Левая атака", message: "Left Attack" }], 65 | "s-754-1002-1110-0": [{ type: "text", sub_type: "message", message_RU: "Шестерни", message: "Gear Sweep" }], 66 | "s-754-1002-2102-0": "s-754-1002-1102-0", 67 | "s-754-1002-2104-0": "s-754-1002-1104-0", 68 | "s-754-1002-2107-0": "s-754-1002-1107-0", 69 | "s-754-1002-2108-0": "s-754-1002-1108-0", 70 | "s-754-1002-2112-0": "s-754-1002-1112-0", 71 | "s-754-1002-2106-0": "s-754-1002-1106-0", 72 | "s-754-1002-2110-0": "s-754-1002-1110-0", 73 | 74 | "s-754-1002-3105-0": [{ type: "text", sub_type: "message", message_RU: "К нему", message: "Get In" }], 75 | "s-754-1002-3117-0": [{ type: "text", sub_type: "message", message_RU: "К нему - От него - К нему", message: "In - Out - In" }, 76 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 12, 290, 0, 10000] } 77 | ], 78 | "s-754-1002-3106-0": [{ type: "text", sub_type: "message", message_RU: "Резка завершена (выйти)", message: "Cut Completed (Get Out)" }], 79 | "s-754-1002-3113-0": [{ type: "text", sub_type: "message", message_RU: "СЛОМАТЬ ЩИТ", message: "BREAKE SHIELD" }], 80 | 81 | "s-754-1002-3119-0": [{ type: "text", sub_type: "message", message_RU: "Волна (на центр)", message: "Wave Attack (Go Center)" }], 82 | "qb-754-1002-754001": [{ type: "text", sub_type: "alert", message_RU: "Электрическая сфера", message: "Electric Ball" }, 83 | { type: "text", sub_type: "alert", "delay": 45000, message_RU: "Электрическая сфера готова", message: "Electric Ball Ready" } 84 | ], 85 | // Special attacks 86 | "s-754-100-1101-0": [ 87 | // { type: "text", sub_type: "notification", message_RU: "Сфера (держить дальше)", message: "Ball (Stay Away)" }, 88 | { type: "spawn", func: "marker", args: [false, 0, 0, 100, 3000] } 89 | ] 90 | }; 91 | }; -------------------------------------------------------------------------------- /guides/9756.js: -------------------------------------------------------------------------------- 1 | // Timescape 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = ES; 7 | 8 | const third_boss_sun_w = -2; 9 | const third_boss_daemon_w = 0; 10 | const third_boss_goddess_w = 2; 11 | let third_boss_wall_w = null; 12 | let third_boss_small_w = null; 13 | let third_boss_middle_w = null; 14 | let third_boss_large_w = null; 15 | let third_boss_small_game_id = null; 16 | let third_boss_middle_game_id = null; 17 | let third_boss_large_game_id = null; 18 | 19 | function w_to_deg(radians) { 20 | if (radians == 0) return 0; 21 | if (radians == 2) return 120; 22 | if (radians == -2) return 240; 23 | } 24 | 25 | function calc_step(a, b, reverse = false) { 26 | if (a === b) return 0; 27 | let diff = w_to_deg(b) - w_to_deg(a); 28 | if (diff <= 0) diff += 360; 29 | if (reverse) return diff > 120 ? 1 : 2; 30 | return diff > 120 ? 2 : 1; 31 | } 32 | 33 | function third_boss_wall_announce() { 34 | const small = calc_step(third_boss_small_w, third_boss_wall_w); 35 | const middle = calc_step(third_boss_middle_w, third_boss_wall_w, true); 36 | const large = calc_step(third_boss_large_w, third_boss_wall_w); 37 | if (small + middle + large === 0) { 38 | handlers.text({ 39 | sub_type: "notification", 40 | message: "Set", 41 | message_RU: "Установлено", 42 | speech: false 43 | }); 44 | } else { 45 | handlers.text({ 46 | sub_type: "notification", 47 | message: `Small: ${small}, Middle: ${middle}, Large: ${large}`, 48 | message_RU: `Малый: ${small}, Средний: ${middle}, Большой: ${large}`, 49 | speech: false 50 | }); 51 | } 52 | } 53 | 54 | dispatch.hook("S_SPAWN_NPC", "*", e => { 55 | if (e.templateId === 243) { 56 | third_boss_wall_w = third_boss_sun_w; 57 | handlers.event([ 58 | { type: "text", sub_type: "alert", message: "Wall Change (Sun)", message_RU: "Смена печати (Солнце)" }, 59 | { type: "func", func: third_boss_wall_announce, delay: 2000 } 60 | ]); 61 | } 62 | if (e.templateId === 244) { 63 | third_boss_wall_w = third_boss_daemon_w; 64 | handlers.event([ 65 | { type: "text", sub_type: "alert", message: "Wall Change (Demon)", message_RU: "Смена печати (Демон)" }, 66 | { type: "func", func: third_boss_wall_announce, delay: 2000 } 67 | ]); 68 | } 69 | if (e.templateId === 245) { 70 | third_boss_wall_w = third_boss_goddess_w; 71 | handlers.event([ 72 | { type: "text", sub_type: "alert", message: "Wall Change (Goddess)", message_RU: "Смена печати (Богиня)" }, 73 | { type: "func", func: third_boss_wall_announce, delay: 2000 } 74 | ]); 75 | } 76 | if (e.templateId === 301) { 77 | third_boss_small_game_id = e.gameId; 78 | third_boss_small_w = parseInt(e.w); 79 | } 80 | if (e.templateId === 302) { 81 | third_boss_middle_game_id = e.gameId; 82 | third_boss_middle_w = parseInt(e.w); 83 | } 84 | if (e.templateId === 303) { 85 | third_boss_large_game_id = e.gameId; 86 | third_boss_large_w = parseInt(e.w); 87 | } 88 | }); 89 | 90 | dispatch.hook("S_CREATURE_ROTATE", "*", e => { 91 | dispatch.setTimeout(() => { 92 | if (e.gameId === third_boss_small_game_id) { 93 | third_boss_small_w = parseInt(e.w); 94 | third_boss_wall_announce(); 95 | } 96 | if (e.gameId === third_boss_middle_game_id) { 97 | third_boss_middle_w = parseInt(e.w); 98 | third_boss_wall_announce(); 99 | } 100 | if (e.gameId === third_boss_large_game_id) { 101 | third_boss_large_w = parseInt(e.w); 102 | third_boss_wall_announce(); 103 | } 104 | }, e.time + 100); 105 | }); 106 | 107 | return { 108 | // Boss 1 109 | "nd-756-401": [ 110 | { type: "stop_timers" }, 111 | { type: "despawn_all" } 112 | ], 113 | "s-756-401-104-0": [ 114 | { type: "text", sub_type: "message", message: "Bomb", message_RU: "Бомба" }, 115 | { type: "text", sub_type: "warning", message: "(1)", speech: false, delay: 550 }, 116 | { type: "text", sub_type: "warning", message: "(2)", speech: false, delay: 1300 }, 117 | { type: "text", sub_type: "warning", message: "(3)", speech: false, delay: 2050 }, 118 | { type: "text", sub_type: "message", message: "(4) Dodge!", message_RU: "(4) Эвейд!", delay: 2800 } 119 | ], 120 | "s-756-1001-107-0": [{ type: "text", sub_type: "alert", message: "Shot", message_RU: "Выстрел" }], 121 | "s-756-403-106-0": [{ type: "text", sub_type: "alert", message: "Circle", message_RU: "Круг" }], 122 | "s-756-1001-103-0": [{ type: "text", sub_type: "alert", message: "Tail", message_RU: "Хвост" }], 123 | "s-756-1001-101-0": [{ type: "text", sub_type: "alert", message: "Hit", message_RU: "Удар" }], 124 | "s-756-1001-112-0": [{ type: "text", sub_type: "message", message: "Rotate", message_RU: "Разворот" }], 125 | "s-756-1001-113-0": "s-756-1001-112-0", 126 | "s-756-1001-111-0": [{ type: "text", sub_type: "message", message: "Flight", message_RU: "Взлет" }], 127 | "s-756-1001-206-0": [{ type: "text", sub_type: "alert", message: "Pushback", message_RU: "Откид" }], 128 | "qb-756-1001-456020": [{ type: "text", sub_type: "message", message: "Give stun", message_RU: "Дать стан" }], 129 | 130 | // Boss 2 131 | "nd-756-1002": [ 132 | { type: "stop_timers" }, 133 | { type: "despawn_all" } 134 | ], 135 | "s-756-1002-102-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 136 | "s-756-1002-103-0": [{ type: "text", sub_type: "message", message: "Combo", message_RU: "Комба" }], 137 | "s-756-1002-104-0": [{ type: "text", sub_type: "message", message: "Shot (target)", message_RU: "Выстрел (таргет)" }], 138 | "s-756-1002-107-0": [{ type: "text", sub_type: "message", message: "Many Pokes", message_RU: "Серия ударов" }], 139 | "s-756-1002-110-0": [{ type: "text", sub_type: "message", message: "Clap", message_RU: "Удар вперед" }], 140 | "s-756-1002-111-0": [{ type: "text", sub_type: "message", message: "Front | Jump Back", message_RU: "Удар вперед | Прыжок назад" }], 141 | "s-756-1002-212-0": [{ type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }], 142 | "s-756-1002-314-0": [{ type: "text", sub_type: "alert", message: "Lay Back", message_RU: "Кувырок назад" }], 143 | "s-756-1002-315-0": [{ type: "text", sub_type: "alert", message: "Lay Front", message_RU: "Кувырок вперед" }], 144 | "s-756-1002-319-0": [{ type: "text", sub_type: "alert", message: "Spin", message_RU: "Крутилка" }], 145 | "s-756-1002-3110-0": [{ type: "text", sub_type: "message", message: "Breath", message_RU: "Дыхание" }], 146 | "s-756-1002-3112-0": [{ type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ", delay: 4000 }], 147 | 148 | // Boss 3 149 | "nd-756-1003": [ 150 | { type: "stop_timers" }, 151 | { type: "despawn_all" } 152 | ], 153 | "ab-756-1003-905607": [ 154 | { type: "text", sub_type: "message", message: "Cleanse + Plague of Exhaustion", message_RU: "Клинс + регресс", class_position: "priest" }, 155 | { type: "text", sub_type: "message", message: "Cleanse + Regression", message_RU: "Клинс + регресс", class_position: "mystic" } 156 | ], 157 | "s-756-1003-3101-0": [ 158 | { type: "text", sub_type: "message", message: "Take a Circle", message_RU: "Взять бублик", check_func: () => third_boss_wall_w !== third_boss_middle_w }, 159 | { type: "text", sub_type: "message", message: "Don't Take a Circle", message_RU: "Не брать бублик", check_func: () => third_boss_wall_w === third_boss_middle_w } 160 | ], 161 | "s-756-1003-103-0": [ 162 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 163 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 340, 0, 5000] } 164 | ], 165 | "s-756-1003-104-0": [{ type: "text", sub_type: "message", message: "Clap", message_RU: "Удар вперед" }], 166 | "s-756-1003-105-0": [{ type: "text", sub_type: "message", message: "Front", message_RU: "Вперед" }], 167 | "s-756-1003-105-1": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Назад" }], 168 | "s-756-1003-107-0": [{ type: "text", sub_type: "message", message: "Swipe", message_RU: "Откид" }], 169 | "s-756-1003-108-0": [{ type: "text", sub_type: "message", message: "Swipe", message_RU: "Откид" }], 170 | "s-756-1003-109-0": [{ type: "text", sub_type: "message", message: "Breath (target)", message_RU: "Дыхание (таргет)" }], 171 | "s-756-1003-111-0": [{ type: "text", sub_type: "message", message: "Leash (target)", message_RU: "Притяжка (таргет)" }], 172 | "s-756-1003-3104-0": [{ type: "text", sub_type: "message", message: "Cage", message_RU: "Клетка" }], // 456016 173 | "s-756-1003-3108-0": [{ type: "text", sub_type: "message", message: "Waves", message_RU: "Волны" }], 174 | "qb-756-1003-456015": [{ type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }], // 3103 175 | "qb-756-1003-456017": [{ type: "text", sub_type: "message", message: "Give Stun", message_RU: "Дать стан" }] // 3102 176 | }; 177 | }; -------------------------------------------------------------------------------- /guides/9757.js: -------------------------------------------------------------------------------- 1 | // Akeron's Inferno 2 | // 3 | // made by Emilia-s2 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | return { 9 | // 1 BOSS 10 | "nd-757-1001": [ 11 | { type: "stop_timers" }, 12 | { type: "despawn_all" } 13 | ], 14 | "s-757-1001-1104-0": [{ type: "text", sub_type: "message", message_RU: "Правая рука (откид)", message: "Right Hand (Push)" }], 15 | "s-757-1001-1117-0": [{ type: "text", sub_type: "message", message_RU: "Удар", message: "Kick (Smash)" }], 16 | "s-757-1001-1118-0": [{ type: "text", sub_type: "message", message_RU: "Случайный прыжок", message: "Random Jump" }], 17 | "s-757-1001-1116-0": [{ type: "text", sub_type: "message", message_RU: "Прыжки (танк)", message: "Jumps (Tank)" }], 18 | "s-757-1001-1107-0": [{ type: "text", sub_type: "message", message_RU: "Передняя атака", message: "Front" }], 19 | "s-757-1001-1206-0": [{ type: "text", sub_type: "message", message_RU: "Прыжок назад", message: "Jump Back" }], 20 | "s-757-1001-1109-0": [{ type: "text", sub_type: "message", message_RU: "Переднее АоЕ", message: "Front AoE" }], 21 | "s-757-1001-1108-0": [{ type: "text", sub_type: "message", message_RU: "Случайный прыжок", message: "Random Jump" }], 22 | "s-757-1001-2104-0": "s-757-1001-1104-0", 23 | "s-757-1001-2117-0": "s-757-1001-1117-0", 24 | "s-757-1001-2118-0": "s-757-1001-1118-0", 25 | "s-757-1001-2116-0": "s-757-1001-1116-0", 26 | "s-757-1001-2107-0": "s-757-1001-1107-0", 27 | "s-757-1001-2206-0": "s-757-1001-1206-0", 28 | "s-757-1001-2109-0": "s-757-1001-1109-0", 29 | "s-757-1001-2108-0": "s-757-1001-1108-0", 30 | 31 | // 2 BOSS 32 | "nd-757-1002": [ 33 | { type: "stop_timers" }, 34 | { type: "despawn_all" } 35 | ], 36 | "s-757-1002-1105-0": [{ type: "text", sub_type: "message", message_RU: "Огненное дыхание", message: "Fire Breath" }], 37 | "s-757-1002-1108-0": [{ type: "text", sub_type: "message", message_RU: "Огненные бомбы (спереди)", message: "Fire Bombs" }], 38 | "s-757-1002-1109-0": [{ type: "text", sub_type: "message", message_RU: "Плавание + Задняя", message: "Swim + Back Attack" }], 39 | "s-757-1002-1206-0": [{ type: "text", sub_type: "message", message_RU: "Прыжок + Случайная атака", message: "Jump + Random Target" }], 40 | "s-757-1002-1204-0": [{ type: "text", sub_type: "message", message_RU: "Большое АоЕ", message: "Large AoE", delay: 3000 }, 41 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 6, 630, 3000, 4000] } 42 | ], 43 | "s-757-1002-1107-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка", message: "Spin" }], 44 | "s-757-1002-1106-1": [{ type: "text", sub_type: "message", message_RU: "АоЕ + Пламя", message: "AoE + Side Flames", delay: 3000 }, 45 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 550, 3000, 4000] } 46 | ], 47 | "s-757-1002-1112-0": [{ type: "text", sub_type: "message", message_RU: "Огненные шары (таргет)", message: "Target Fireball" }], 48 | "s-757-1002-2105-0": "s-757-1002-1105-0", 49 | "s-757-1002-2108-0": "s-757-1002-1108-0", 50 | "s-757-1002-2109-0": "s-757-1002-1109-0", 51 | "s-757-1002-2206-0": "s-757-1002-1206-0", 52 | "s-757-1002-2204-0": "s-757-1002-1204-0", 53 | "s-757-1002-2107-0": "s-757-1002-1107-0", 54 | "s-757-1002-2106-1": "s-757-1002-1106-1", 55 | "s-757-1002-2112-0": "s-757-1002-1112-0", 56 | 57 | // 3 BOSS 58 | "nd-757-1003": [ 59 | { type: "stop_timers" }, 60 | { type: "despawn_all" } 61 | ], 62 | "s-757-1003-1105-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ", message: "AoE" }], 63 | "s-757-1003-1203-0": [{ type: "text", sub_type: "message", message_RU: "Крутилка", message: "Spin Cut Attack" }, 64 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 8, 400, 100, 4000] } 65 | ], 66 | "s-757-1003-1110-0": [{ type: "text", sub_type: "message", message_RU: "Яд (круг)", message: "Poison (Circle)" }], 67 | "s-757-1003-2105-0": "s-757-1003-1105-0", 68 | "s-757-1003-2203-0": "s-757-1003-1203-0", 69 | "s-757-1003-2110-0": "s-757-1003-1110-0", 70 | 71 | // 4 BOSS 72 | "nd-757-1004": [ 73 | { type: "stop_timers" }, 74 | { type: "despawn_all" } 75 | ], 76 | "s-757-1004-1105-0": [{ type: "text", sub_type: "message", message_RU: "Передняя атака", message: "Frontal Hit" }], 77 | "s-757-1004-1106-0": [{ type: "text", sub_type: "message", message_RU: "Случайный выстрел", message: "Random Shot" }], 78 | "s-757-1004-1107-0": [{ type: "text", sub_type: "message", message_RU: "Случайный кнут", message: "Random Whip" }], 79 | "s-757-1004-1108-0": [{ type: "text", sub_type: "message", message_RU: "Безопасные круги", message: "Earth Line" }], 80 | "s-757-1004-1111-0": [{ type: "text", sub_type: "message", message_RU: "Линия земли", message: "Stomp Combo" }], 81 | "s-757-1004-3108-0": [{ type: "text", sub_type: "message", message_RU: "Эвейд", message: "Dodge" }], 82 | "s-757-1004-3105-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ атака", message: "AoE Attack" }], 83 | "s-757-1004-3106-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ бублик", message: "Donut AoE" }], 84 | "s-757-1004-3103-0": [{ type: "text", sub_type: "message", message_RU: "АоЕ удар", message: "AoE Stomp" }], 85 | "s-757-1004-4201-0": [{ type: "text", sub_type: "message", message_RU: "Лава", message: "Lava" }], 86 | "qb-757-405-457016": [{ type: "text", sub_type: "message", message_RU: "ЩИТ", message: "SHIELD" }], 87 | "s-757-1004-2105-0": "s-757-1004-1105-0", 88 | "s-757-1004-2106-0": "s-757-1004-1106-0", 89 | "s-757-1004-2107-0": "s-757-1004-1107-0", 90 | "s-757-1004-2108-0": "s-757-1004-1108-0", 91 | "s-757-1004-2111-0": "s-757-1004-1111-0" 92 | }; 93 | }; -------------------------------------------------------------------------------- /guides/9759.js: -------------------------------------------------------------------------------- 1 | // Forsaken Island (Hard) 2 | // 3 | // made by ITunk 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | return { 9 | // 1 BOSS 10 | "s-759-1001-1104-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 11 | "s-759-1001-2104-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 12 | "s-759-1001-1106-0": [ 13 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 14 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 15 | ], 16 | "s-759-1001-2106-0": [ 17 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 18 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 19 | ], 20 | "s-759-1001-3107-0": [ 21 | { type: "text", sub_type: "message", message: "Front (Dodge)", message_RU: "Конус (эвейд)" }, 22 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 1500] }, 23 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 1500] } 24 | ], 25 | "s-759-1001-3101-0": [ 26 | { type: "text", sub_type: "message", message: "Out -> In", message_RU: "От него -> К нему" }, 27 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 2000] } 28 | ], 29 | "s-759-1001-3106-0": [ 30 | { type: "text", sub_type: "message", message: "In -> Out", message_RU: "К нему -> От него" }, 31 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 245, 0, 2000] } 32 | ], 33 | 34 | // 2 BOSS 35 | "s-759-1002-3101-0": [ 36 | { type: "text", sub_type: "message", message: "Push (Dodge)", message_RU: "Откид (эвейд)" }, 37 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 38 | ], 39 | "s-759-1002-3102-0": [{ type: "text", sub_type: "message", message: "Circles x5 (Dodge)", message_RU: "Круги х5 (эвейд)" }], 40 | "s-759-1002-3103-0": [{ type: "text", sub_type: "message", message: "Circles x5 (Dodge)", message_RU: "Круги х5 (эвейд)" }], 41 | "s-759-1002-3105-0": [{ type: "text", sub_type: "message", message: "Circle (Dodge)", message_RU: "Круг (эвейд)" }], 42 | "s-759-1002-3104-0": [{ type: "text", sub_type: "message", message: "AOE (Go to ghost)", message_RU: "АОЕ (К призраку)" }], 43 | "s-759-1002-3107-0": [{ type: "text", sub_type: "message", message: "Puddle (Dodge)", message_RU: "Лужа (эвейд)" }], 44 | "s-759-1002-3108-0": [{ type: "text", sub_type: "message", message: "Puddle (Dodge)", message_RU: "Лужа (эвейд)" }], 45 | 46 | // 3 BOSS 47 | "s-759-1003-2110-0": [ 48 | { type: "text", sub_type: "message", message: "Clover", message_RU: "Клевер" }, 49 | { type: "spawn", func: "circle", args: [false, 553, 45, 180, 12, 230, 0, 3000] }, 50 | { type: "spawn", func: "circle", args: [false, 553, 135, 180, 12, 230, 0, 3000] }, 51 | { type: "spawn", func: "circle", args: [false, 553, 225, 180, 12, 230, 0, 3000] }, 52 | { type: "spawn", func: "circle", args: [false, 553, 315, 180, 12, 230, 0, 3000] } 53 | ], 54 | "s-759-1003-1110-0": [ 55 | { type: "text", sub_type: "message", message: "Clover", message_RU: "Клевер" }, 56 | { type: "spawn", func: "circle", args: [false, 553, 45, 180, 12, 230, 0, 3000] }, 57 | { type: "spawn", func: "circle", args: [false, 553, 135, 180, 12, 230, 0, 3000] }, 58 | { type: "spawn", func: "circle", args: [false, 553, 225, 180, 12, 230, 0, 3000] }, 59 | { type: "spawn", func: "circle", args: [false, 553, 315, 180, 12, 230, 0, 3000] } 60 | ], 61 | 62 | "s-759-1003-3108-0": [{ type: "text", sub_type: "message", message: "Debuff x2", message_RU: "Дебаф х2" }], 63 | "s-759-1003-3109-0": [{ type: "text", sub_type: "message", message: "Carpet", message_RU: "Ковер" }], 64 | 65 | "s-759-1003-3105-0": [{ type: "text", sub_type: "message", message: "Circles (Dodge)", message_RU: "Круги (эвейд)" }], 66 | "s-759-1003-3106-0": [{ type: "text", sub_type: "message", message: "Circles (Dodge)", message_RU: "Круги (эвейд)" }], 67 | "s-759-3000-1102-0": [{ type: "text", sub_type: "message", message: "Pull", message_RU: "Притяжка" }], 68 | 69 | // Mini-bosses 70 | // 1 BOSS 71 | "s-759-1004-1104-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан) " }], 72 | "s-759-1004-2104-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 73 | "s-759-1004-3107-0": [ 74 | { type: "text", sub_type: "message", message: "Front (Dodge)", message_RU: "Конус (эвейд)" }, 75 | { type: "spawn", func: "vector", args: [553, 90, 80, 10, 1000, 0, 1500] }, 76 | { type: "spawn", func: "vector", args: [553, 270, 80, 350, 1000, 0, 1500] } 77 | ], 78 | "s-759-1004-1106-0": [ 79 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 80 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 81 | ], 82 | "s-759-1004-2106-0": [ 83 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }, 84 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 85 | ], 86 | "s-759-1004-3101-0": [ 87 | { type: "text", sub_type: "message", message: "Out", message_RU: "От него" }, 88 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 270, 0, 2000] } 89 | ], 90 | "s-759-1004-3106-0": [ 91 | { type: "text", sub_type: "message", message: "In", message_RU: "К нему" }, 92 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 245, 0, 2000] } 93 | ], 94 | 95 | // 2 BOSS 96 | "s-759-1005-3101-0": [ 97 | { type: "text", sub_type: "message", message: "Push (Dodge)", message_RU: "Откид (эвейд)" }, 98 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 320, 0, 3500] } 99 | ], 100 | "s-759-1005-3105-0": [{ type: "text", sub_type: "message", message: "Circle (Dodge)", message_RU: "Круг (эвейд)" }], 101 | "s-759-1005-3107-0": [{ type: "text", sub_type: "message", message: "Puddle (Dodge)", message_RU: "Лужа (эвейд)" }], 102 | "s-759-1005-3108-0": [{ type: "text", sub_type: "message", message: "Puddle (Dodge)", message_RU: "Лужа (эвейд)" }], 103 | "s-759-1005-3104-0": [{ type: "text", sub_type: "message", message: "AOE (Go to ghost)", message_RU: "АОЕ (К призраку)" }] 104 | }; 105 | }; -------------------------------------------------------------------------------- /guides/9770.js: -------------------------------------------------------------------------------- 1 | // Ruinous Manor 2 | // 3 | // made by Emilia-s2 / HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | guide.type = SP; 7 | 8 | let firstboss_debuff = null; 9 | let thirdboss_left_hand = false; 10 | 11 | return { 12 | // 1 BOSS 13 | "nd-770-1000": [ 14 | { type: "stop_timers" }, 15 | { type: "despawn_all" } 16 | ], 17 | "die": [{ type: "func", func: () => { firstboss_debuff = null; } }], 18 | "ae-0-0-97000057": [{ type: "func", func: () => firstboss_debuff = 1 }], // AoE (red) 19 | "ae-0-0-97000058": [{ type: "func", func: () => firstboss_debuff = 2 }], // AoE (blue) 20 | "am-770-1000-97000057": [{ type: "func", func: () => firstboss_debuff = 1 }], // Red 21 | "am-770-1000-97000058": [{ type: "func", func: () => firstboss_debuff = 2 }], // Blue 22 | "s-770-1000-1306-0": [ // red inside 23 | { type: "text", sub_type: "message", message: "OUT", message_RU: "ОТ НЕГО", check_func: () => firstboss_debuff === 1 }, 24 | { type: "text", sub_type: "message", message: "IN", message_RU: "К НЕМУ", check_func: () => firstboss_debuff === 2 }, 25 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 400, 0, 4000] } 26 | ], 27 | "s-770-1000-1307-0": [ // blue inside 28 | { type: "text", sub_type: "message", message: "IN", message_RU: "К НЕМУ", check_func: () => firstboss_debuff === 1 }, 29 | { type: "text", sub_type: "message", message: "OUT", message_RU: "ОТ НЕГО", check_func: () => firstboss_debuff === 2 }, 30 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 400, 0, 4000] } 31 | ], 32 | "s-770-1000-1206-0": [{ type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }], 33 | "s-770-1000-2206-0": "s-770-1000-1206-0", 34 | "s-770-1000-1106-0": [{ type: "text", sub_type: "message", message: "Stun Frontal (Dodge)", message_RU: "Передний стан" }], 35 | "s-770-1000-2106-0": "s-770-1000-1106-0", 36 | "s-770-1000-1107-0": [{ type: "text", sub_type: "message", message: "Front Push", message_RU: "Передний удар" }, 37 | { type: "spawn", func: "semicircle", args: [320, 404, 553, 0, 0, 7, 405, 0, 3500] }, 38 | { type: "spawn", func: "vector", args: [553, 0, 10, 406, 400, 0, 3500] }, 39 | { type: "spawn", func: "vector", args: [553, 0, 10, -406, 400, 0, 3500] } 40 | ], 41 | "s-770-1000-2107-0": "s-770-1000-1107-0", 42 | "s-770-1000-1117-0": [{ type: "text", sub_type: "message", message: "Crush Front", message_RU: "Удары" }], 43 | "s-770-1000-2117-0": "s-770-1000-1117-0", 44 | 45 | // 2 BOSS 46 | "nd-770-2000": [ 47 | { type: "stop_timers" }, 48 | { type: "despawn_all" } 49 | ], 50 | "s-770-2000-1103-0": [{ type: "text", sub_type: "message", message: "Frontal Attack", message_RU: "Передняя атака" }], 51 | "s-770-2000-2103-0": "s-770-2000-1103-0", 52 | "s-770-2000-1105-0": [{ type: "text", sub_type: "message", message: "Random Target", message_RU: "Таргет" }], 53 | "s-770-2000-2105-0": "s-770-2000-1105-0", 54 | "s-770-2000-1106-0": [{ type: "text", sub_type: "message", message: "Stun (Dodge)", message_RU: "Стан (эвейд)" }, 55 | { type: "spawn", func: "circle", args: [false, 553, 0, 40, 13, 180, 0, 2000] } 56 | ], 57 | "s-770-2000-2106-0": "s-770-2000-1106-0", 58 | "s-770-2000-1111-0": [{ type: "text", sub_type: "message", message: "Many Hits (Target)", message_RU: "Множество ударов (таргет)" }], 59 | "s-770-2000-2111-0": "s-770-2000-1111-0", 60 | 61 | // 3 BOSS 62 | "nd-770-3000": [ 63 | { type: "stop_timers" }, 64 | { type: "despawn_all" } 65 | ], 66 | "s-770-3000-1102-0": [ 67 | { type: "text", sub_type: "message", message: "Left Hand", message_RU: "Левая рука" }, 68 | { type: "func", func: () => thirdboss_left_hand = true }, 69 | { type: "func", func: () => thirdboss_left_hand = false, delay: 2000 } 70 | ], 71 | "s-770-3000-2102-0": "s-770-3000-1102-0", 72 | "s-770-3000-1101-0": [ 73 | { type: "text", sub_type: "message", message: "Right Hand", message_RU: "Правая рука", check_func: () => !thirdboss_left_hand }, 74 | { type: "text", sub_type: "message", message: "Right Hand | Tail Slam", message_RU: "Правая рука | Хвост", check_func: () => thirdboss_left_hand }, 75 | { type: "func", func: () => thirdboss_left_hand = false } 76 | ], 77 | "s-770-3000-2101-0": "s-770-3000-1101-0", 78 | "s-770-3000-1103-0": [ 79 | { type: "text", sub_type: "message", message: "Tail Slam", message_RU: "Хвост" }, 80 | { type: "spawn", func: "vector", args: [553, 283, 127, 180, 500, 0, 1400] }, 81 | { type: "spawn", func: "vector", args: [553, 77, 127, 180, 500, 0, 1400] }, 82 | { type: "spawn", func: "vector", args: [553, 165, 488, 270, 200, 0, 1400] }, 83 | { type: "func", func: () => thirdboss_left_hand = false } 84 | ], 85 | "s-770-3000-2103-0": "s-770-3000-1103-0", 86 | "s-770-3000-1301-0": [{ type: "text", sub_type: "message", message: "Circles", message_RU: "Круги" }], 87 | "s-770-3000-2301-0": "s-770-3000-1301-0", 88 | "s-770-3000-1106-0": [{ type: "text", sub_type: "message", message: "Front Swipe", message_RU: "Передний удар" }], 89 | "s-770-3000-2106-0": "s-770-3000-1106-0", 90 | "s-770-3000-1110-0": [ 91 | { type: "text", sub_type: "message", message: "Tail AOE (jump in front)", message_RU: "Хвост АОЕ (прыгать вперед)" }, 92 | { type: "spawn", func: "semicircle", args: [26, 340, 553, 0, 0, 7, 630, 0, 3000] }, 93 | { type: "spawn", func: "vector", args: [553, 4, 40, 338, 600, 0, 3000] }, 94 | { type: "spawn", func: "vector", args: [553, -4, 40, -338, 600, 0, 3000] } 95 | ], 96 | "s-770-3000-2110-0": "s-770-3000-1110-0", 97 | "s-770-3000-1304-0": [{ type: "text", sub_type: "message", message: "Get Ready!", message_RU: "Готовность!" }], 98 | "s-770-3000-1303-0": "s-770-3000-1304-0", 99 | "s-770-3000-1113-0": [ 100 | { type: "text", sub_type: "message", message: "Out", message_RU: "От него" }, 101 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 15, 300, 0, 2000] } 102 | ], 103 | "s-770-3000-1114-0": [ 104 | { type: "text", sub_type: "message", message: "In", message_RU: "К нему" }, 105 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 15, 300, 0, 2000] } 106 | ], 107 | "s-770-3000-1116-0": [ 108 | { type: "text", sub_type: "message", message: "In", message_RU: "К нему" }, 109 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 15, 300, 0, 2000] } 110 | ], 111 | "s-770-3000-1117-0": [ 112 | { type: "text", sub_type: "message", message: "Out", message_RU: "От него" }, 113 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 15, 300, 0, 2000] } 114 | ], 115 | "s-770-3000-2113-0": "s-770-3000-1113-0", 116 | "s-770-3000-2114-0": "s-770-3000-1114-0", 117 | "s-770-3000-2116-0": "s-770-3000-1116-0", 118 | "s-770-3000-2117-0": "s-770-3000-1117-0", 119 | "s-770-3000-1108-0": [ 120 | { type: "text", sub_type: "message", message: "Tail", message_RU: "Удар хвостом" }, 121 | { type: "spawn", func: "circle", args: [false, 553, -7, 280, 20, 155, 0, 2000] } 122 | ], 123 | "s-770-3000-2108-0": "s-770-3000-1108-0", 124 | "s-770-3000-1120-0": [ 125 | { type: "text", sub_type: "message", message: "Shooting Skulls (Triple)", message_RU: "Лазеры (тройные)" }, 126 | { type: "spawn", func: "vector", args: [912, 90, 260, 0, 1300, 0, 2000] }, 127 | { type: "spawn", func: "vector", args: [912, 0, 0, 0, 1300, 0, 2000] }, 128 | { type: "spawn", func: "vector", args: [912, 270, 250, 0, 1300, 0, 2000] } 129 | 130 | ], 131 | "s-770-3000-2120-0": "s-770-3000-1120-0", 132 | "s-770-3000-1121-0": [ 133 | { type: "text", sub_type: "message", message: "Shooting Skulls (Doble)", message_RU: "Лазеры (двойные)" }, 134 | { type: "spawn", func: "vector", args: [912, 90, 130, 0, 1300, 0, 2000] }, 135 | { type: "spawn", func: "vector", args: [912, 270, 130, 0, 1300, 0, 2000] } 136 | ], 137 | "s-770-3000-2121-0": "s-770-3000-1121-0" 138 | }; 139 | }; -------------------------------------------------------------------------------- /guides/9780.js: -------------------------------------------------------------------------------- 1 | // Velik's Hold (5-Person) 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | return { 8 | // 1 boss 9 | "nd-780-1000": [ 10 | { type: "stop_timers" }, 11 | { type: "despawn_all" } 12 | ], 13 | "s-780-1000-102-0": [{ type: "text", sub_type: "message", message: "Stun (Tank)", message_RU: "Стан (танк)" }], 14 | "s-780-1000-103-0": [{ type: "text", sub_type: "message", message: "Frontal Hits", message_RU: "Передние удары" }], 15 | "s-780-1000-104-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 16 | "s-780-1000-109-0": [{ type: "text", sub_type: "message", message: "Push Left", message_RU: "Откид влево" }], 17 | "s-780-1000-110-0": [{ type: "text", sub_type: "message", message: "Push Right", message_RU: "Откид вправо" }], 18 | "s-780-1000-112-0": [{ type: "text", sub_type: "message", message: "Jump Forward", message_RU: "Прыжок вперед" }], 19 | "s-780-1000-113-0": [{ type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }], 20 | "s-780-1000-114-0": [{ type: "text", sub_type: "message", message: "Back Attack", message_RU: "Полоса назад" }], 21 | "s-780-1000-115-0": [{ type: "text", sub_type: "message", message: "Wave Front", message_RU: "Волна вперед" }], 22 | "s-780-1000-115-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], 23 | "s-780-1000-202-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 24 | "s-780-1000-108-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 2800 }], 25 | "s-780-1000-302-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 26 | "s-780-1000-302-1": [{ type: "spawn", func: "vector", args: [912, 0, 0, 0, 1600, 0, 2000] }], 27 | "s-780-1001-302-0": [{ type: "spawn", func: "vector", args: [912, 0, 0, 0, 1600, 0, 4000] }], 28 | 29 | // 2 boss 30 | "nd-780-2000": [ 31 | { type: "stop_timers" }, 32 | { type: "despawn_all" } 33 | ], 34 | "s-780-2000-105-0": [{ type: "text", sub_type: "message", message: "Heavy Front Attack", message_RU: "Мощный удар вперед" }], 35 | "s-780-2000-106-0": [{ type: "text", sub_type: "message", message: "Flame Ray (Target)", message_RU: "Полоса (таргет)" }], 36 | "s-780-2000-106-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 500 }], 37 | "s-780-2000-107-0": [{ type: "text", sub_type: "message", message: "Whip", message_RU: "Кнут" }], 38 | "s-780-2000-107-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 39 | "s-780-2000-108-0": [{ type: "text", sub_type: "message", message: "Front Attack (Stun)", message_RU: "Удар вперед (стан)" }], 40 | "s-780-2000-301-0": [{ type: "text", sub_type: "message", message: "Jump (Target)", message_RU: "Прыжок (таргет)" }], 41 | "s-780-2000-301-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 42 | "s-780-2000-302-0": [{ type: "text", sub_type: "message", message: "AOE (Stand behind a stone)", message_RU: "АОЕ (встать за камень)" }], 43 | "s-780-2000-303-0": [{ type: "text", sub_type: "message", message: "Circles", message_RU: "Круги" }], 44 | "s-780-2000-304-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 45 | "s-780-2000-304-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 46 | "s-780-2001-326-0": [{ type: "spawn", func: "marker", args: [false, 180, 250, 0, 6000, true, null] }], // stone marker 47 | 48 | // 3 boss 49 | "nd-780-3000": [ 50 | { type: "stop_timers" }, 51 | { type: "despawn_all" } 52 | ], 53 | "s-780-3000-104-0": [{ type: "text", sub_type: "message", message: "Front Attack", message_RU: "Удар вперед" }], 54 | "s-780-3000-105-0": [{ type: "text", sub_type: "message", message: "Push Front", message_RU: "Откид вперед" }], 55 | "s-780-3000-109-0": [{ type: "text", sub_type: "message", message: "Double Front Attack", message_RU: "Двойной удар вперед" }], 56 | "s-780-3000-110-0": [{ type: "text", sub_type: "message", message: "Wave Front", message_RU: "Волна вперед" }], 57 | "s-780-3000-111-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Кувырок" }], 58 | "s-780-3000-112-0": [{ type: "text", sub_type: "message", message: "Target (Front | Back)", message_RU: "Таргет (Передняя | Задняя)" }], 59 | "s-780-3000-112-2": [{ type: "text", sub_type: "message", message: "Front | Back", message_RU: "Передняя | Задняя" }], 60 | "s-780-3000-113-0": [{ type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид назад" }], 61 | "s-780-3000-114-0": "s-780-3000-113-0", 62 | "s-780-3000-115-0": [{ type: "text", sub_type: "message", message: "Charging", message_RU: "Зарядка" }], 63 | "s-780-3000-301-0": [{ type: "text", sub_type: "message", message: "Get Out | Get In", message_RU: "От него | К нему" }], 64 | "s-780-3000-302-0": [{ type: "text", sub_type: "message", message: "Get In", message_RU: "К нему" }], 65 | "s-780-3000-304-0": [{ type: "text", sub_type: "message", message: "Shot (Target)", message_RU: "Выстрел (таргет)" }], 66 | "s-780-3000-304-3": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], 67 | "s-780-3000-306-0": [ 68 | { type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }, 69 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 4500 } 70 | ], 71 | "s-780-3000-307-0": "s-780-3000-306-0", 72 | "s-780-3000-308-0": [ 73 | { type: "text", sub_type: "message", message: "AOE (Flying)", message_RU: "АОЕ (подлёт)" }, 74 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 4500 } 75 | ], 76 | "s-780-3000-309-0": [ 77 | { type: "text", sub_type: "message", message: "Jump (Pushback)", message_RU: "Прыжок (откид)" }, 78 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 2200 } 79 | ] 80 | }; 81 | }; -------------------------------------------------------------------------------- /guides/9794.js: -------------------------------------------------------------------------------- 1 | // Thaumetal Refinery 2 | // 3 | // made by ITunk / Vampic 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | const { entity } = dispatch.require.library; 7 | 8 | let blue_vaccine_loc = null; 9 | let red_vaccine_loc = null; 10 | const road_from_gameIds = new Set(); 11 | 12 | function spawn_road(loc) { 13 | road_from_gameIds.forEach(road_from_gameId => { 14 | const road_from_ent = entity.mobs[road_from_gameId]; 15 | if (road_from_ent && loc) { 16 | const angle = (road_from_ent.pos.angleTo(loc) - road_from_ent.pos.w) * 180 / Math.PI; 17 | const distance = road_from_ent.pos.dist2D(loc); 18 | handlers.event([ 19 | { type: "spawn", func: "vector", args: [553, -90 + angle, 50, angle, distance, 0, 10000] }, 20 | { type: "spawn", func: "vector", args: [553, 90 + angle, 50, angle, distance, 0, 10000] } 21 | ], { loc: road_from_ent.pos }); 22 | } 23 | }); 24 | } 25 | 26 | dispatch.hook("S_ABNORMALITY_BEGIN", dispatch._mod.majorPatchVersion >= 107 ? 5 : 4, event => { 27 | if (event.id === 7941030) { 28 | if (dispatch._mod.game.me.is(event.target)) { 29 | handlers.text({ sub_type: "message", message: "Put banana to the tree", message_RU: "Положить банан к дереву" }); 30 | } 31 | } 32 | }); 33 | 34 | return { 35 | // 1 BOSS 36 | "nd-794-1000": [ 37 | { type: "stop_timers" }, 38 | { type: "despawn_all" } 39 | ], 40 | "s-794-1000-103-0": [ 41 | { type: "text", sub_type: "message", message: "AOE Stun (Dodge)", message_RU: "АОЕ стан (эвейд)" }, 42 | { type: "spawn", func: "circle", args: [true, 553, 0, 125, null, 250, 0, 2000] } 43 | ], 44 | "s-794-1000-107-0": [ 45 | { type: "text", sub_type: "message", message: "Jump (Dodge)", message_RU: "Прыжок (эвейд)" }, 46 | { type: "spawn", func: "circle", args: [true, 553, 0, 0, null, 250, 2500, 2500] } 47 | ], 48 | "s-794-1000-115-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 49 | "s-794-1000-119-0": [{ type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид назад" }], 50 | "s-794-1000-315-0": [{ type: "text", sub_type: "message", message: "In", message_RU: "К нему" }], 51 | "ae-0-0-7941002": [{ type: "text", sub_type: "message", message: "Eye (boss to banana)", message_RU: "Глазик (подвести босса к банану)" }], 52 | "qb-794-1000-994008": [{ type: "text", sub_type: "message", message: "Push (Kaia)", message_RU: "Откид (кайа)" }], 53 | 54 | // 2 BOSS 55 | "s-794-2000-111-0": [{ type: "text", sub_type: "message", message: "Bait (2 stones)", message_RU: "Байт (2 камня)" }], 56 | "s-794-2000-112-0": [{ type: "text", sub_type: "message", message: "Bait (3 stones)", message_RU: "Байт (3 камня)" }], 57 | "s-794-2000-106-0": [{ type: "text", sub_type: "message", message: "Bait (Rock)", message_RU: "Байт (глыба)" }], 58 | "s-794-2000-307-0": [{ type: "text", sub_type: "message", message: "Stones", message_RU: "Камни" }], 59 | "ae-0-0-7942006": [{ type: "text", sub_type: "message", message: "Stone on you", message_RU: "Камень на тебе", delay: 1000 }], 60 | "s-794-2000-117-0": [{ type: "text", sub_type: "message", message: "Inward Wave", message_RU: "Волна к нему", delay: 1000 }], 61 | "s-794-2000-118-0": [{ type: "text", sub_type: "message", message: "Outward Wave", message_RU: "Волна от него" }], 62 | "s-794-2000-114-0": [{ type: "text", sub_type: "message", message: "Together", message_RU: "Собраться" }], 63 | "s-794-2000-110-0": [{ type: "text", sub_type: "message", message: "Hit in dd", message_RU: "Удар в дд" }], 64 | 65 | // 3 BOSS 66 | "nd-794-3000": [ 67 | { type: "stop_timers" }, 68 | { type: "despawn_all" } 69 | ], 70 | "ns-794-3002": [{ type: "func", func: ent => road_from_gameIds.add(ent.gameId) }], // Колба с мобом 71 | "nd-794-3002": [{ type: "func", func: ent => road_from_gameIds.delete(ent.gameId), delay: 5000 }], 72 | "ns-794-3004": [{ type: "func", func: ent => blue_vaccine_loc = ent.pos }], // Синий 73 | "ns-794-3005": [{ type: "func", func: ent => red_vaccine_loc = ent.pos }], // Красный 74 | "s-794-3000-103-0": [{ type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид назад" }], 75 | "s-794-3000-107-0": [ 76 | { type: "spawn", func: "vector", args: [553, 0, 0, 90, 500, 0, 3000] }, 77 | { type: "spawn", func: "vector", args: [553, 0, 0, -90, 500, 0, 3000] }, 78 | { type: "text", sub_type: "message", message: "Front (Dodge)", message_RU: "Удар вперед (эвейд)" } 79 | ], 80 | "s-794-3000-108-0": [ 81 | { type: "spawn", func: "vector", args: [553, 0, 0, 90, 500, 0, 3000] }, 82 | { type: "spawn", func: "vector", args: [553, 0, 0, -90, 500, 0, 3000] }, 83 | { type: "text", sub_type: "message", message: "Back (Dodge)", message_RU: "Удар назад (эвейд)" } 84 | ], 85 | "s-794-3000-104-0": [{ type: "text", sub_type: "message", message: "Bait", message_RU: "Байт" }], 86 | "s-794-3000-111-0": [{ type: "text", sub_type: "message", message: "Out Safe", message_RU: "Снаружи сейв" }], 87 | "s-794-3000-112-0": [{ type: "text", sub_type: "message", message: "In Safe", message_RU: "Внутри сейв" }], 88 | "s-794-3000-113-0": [{ type: "text", sub_type: "message", message: "Donut (In)", message_RU: "Бублик (к нему)" }], 89 | "s-794-3000-114-0": [{ type: "text", sub_type: "message", message: "Donut (Out)", message_RU: "Бублик (между)" }], 90 | "s-794-3000-122-0": [{ type: "text", sub_type: "message", message: "Gather!", message_RU: "Собраться!" }], 91 | "s-794-3000-125-0": [{ type: "text", sub_type: "message", message: "Bait (Puddle)", message_RU: "Байт (лужа)" }], 92 | "s-794-3000-315-0": [ 93 | { type: "text", sub_type: "message", message: "Remove puddles from paths", message_RU: "Отвести лужи от дорожек" }, 94 | { type: "func", func: () => spawn_road(blue_vaccine_loc) } 95 | ], 96 | "s-794-3000-316-0": [ 97 | { type: "text", sub_type: "message", message: "Remove puddles from paths", message_RU: "Отвести лужи от дорожек" }, 98 | { type: "func", func: () => spawn_road(red_vaccine_loc) } 99 | ] 100 | }; 101 | }; -------------------------------------------------------------------------------- /guides/9939.js: -------------------------------------------------------------------------------- 1 | // Red Refuge (Hard) 2 | // 3 | // made by multarix 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | let first_boss_debuff = false; 7 | 8 | return { 9 | // 1 BOSS 10 | "nd-939-1000": [ 11 | { type: "stop_timers" }, 12 | { type: "despawn_all" } 13 | ], 14 | "s-939-1000-105-0": [{ type: "text", sub_type: "message", message: "Turn + Breath", message_RU: "Поворот + дыхание" }], 15 | "die": [{ type: "func", func: () => { first_boss_debuff = false; } }], 16 | "ar-0-0-93910005": [{ type: "func", func: () => first_boss_debuff = false }], 17 | "ae-0-0-93910005": [{ type: "func", func: () => first_boss_debuff = true }], 18 | "s-939-93910-305-0": [ 19 | { type: "text", sub_type: "message", message: "Enter the big circle", message_RU: "Зайти в большой круг", check_func: () => first_boss_debuff }, 20 | { type: "text", sub_type: "message", message: "Exit the big circle", message_RU: "Выйти из большого круга", check_func: () => !first_boss_debuff } 21 | ], 22 | "s-939-93911-305-0": "s-939-93910-305-0", 23 | "s-939-93912-305-0": "s-939-93910-305-0", 24 | "s-939-93913-305-0": "s-939-93910-305-0", 25 | "s-939-93914-305-0": "s-939-93910-305-0", 26 | "s-939-1000-308-0": [ 27 | { type: "text", sub_type: "message", message: "In > Out", message_RU: "К нему > От него" }, 28 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 7500] }, 29 | { type: "text", sub_type: "message", message: "Out", message_RU: "От него", delay: 3900 } 30 | ], 31 | "s-939-1000-112-0": [{ type: "text", sub_type: "message", message: "Back Spray", message_RU: "Волна назад" }], 32 | "s-939-1000-120-0": "s-939-1000-112-0", 33 | "s-939-1000-113-0": [{ type: "text", sub_type: "message", message: "Back Spray + Fire Wave", message_RU: "Волна назад + Огненная волна" }], 34 | "s-939-1000-115-0": [{ type: "text", sub_type: "message", message: "Front Spray + Fire Wave", message_RU: "Волна вперед + Огненная волна" }], 35 | "s-939-1000-107-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 36 | "s-939-1000-117-0": [{ type: "text", sub_type: "message", message: "Jump + Spin", message_RU: "Прыжок + Прокрутка" }], 37 | "s-939-1000-119-0": [{ type: "text", sub_type: "message", message: "Many Hits", message_RU: "Несколько ударов" }], 38 | "s-939-1000-306-0": [ 39 | { type: "text", sub_type: "message", message: "Out > In", message_RU: "От него > К нему" }, 40 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 7500] }, 41 | { type: "text", sub_type: "message", message: "In", message_RU: "К нему", delay: 3700 } 42 | ], 43 | 44 | // 2 BOSS 45 | "nd-939-2000": [ 46 | { type: "stop_timers" }, 47 | { type: "despawn_all" } 48 | ], 49 | "s-939-2000-105-0": [ 50 | { type: "text", sub_type: "message", message: "360", message_RU: "360" }, 51 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 300, 0, 2500] }, 52 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 510, 0, 2500] } 53 | ], 54 | "s-939-2000-113-0": [{ type: "text", sub_type: "message", message: "Stun", message_RU: "Стан" }], 55 | "s-939-2000-108-0": [ 56 | { type: "text", sub_type: "message", message: "Cleanse", message_RU: "Клинс", class_position: "heal" }, 57 | { type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка", class_position: ["tank", "dps"] } 58 | ], 59 | "s-939-2000-115-0": [ 60 | { type: "text", sub_type: "message", message: "Whirlwind", message_RU: "Вихрь" }, 61 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 360, 0, 6500] } 62 | ], 63 | "s-939-2000-119-0": [{ type: "text", sub_type: "message", message: "Front", message_RU: "Спереди" }], 64 | "s-939-2000-120-0": [{ type: "text", sub_type: "message", message: "Back", message_RU: "Сзади" }], 65 | "s-939-2000-303-0": [ 66 | { type: "text", sub_type: "message", message: "Whip", message_RU: "Кнут" }, 67 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1650 } 68 | ], 69 | "s-939-2000-304-0": [ 70 | { type: "text", sub_type: "message", message: "Pull", message_RU: "Стяжка" }, 71 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1650 } 72 | ], 73 | 74 | // 3 BOSS 75 | "nd-939-3001": [ 76 | { type: "stop_timers" }, 77 | { type: "despawn_all" } 78 | ], 79 | "h-939-3001-30": [{ type: "text", sub_type: "message", message: "Reveal soon...", message_RU: "Скоро разоблачение..." }], 80 | "s-939-3001-201-0": [ 81 | { type: "text", sub_type: "message", message: "Stun (Pushback)", message_RU: "Рёв (откид)" }, 82 | { type: "text", sub_type: "message", delay: 1000, message: "3" }, 83 | { type: "text", sub_type: "message", delay: 2000, message: "2" }, 84 | { type: "text", sub_type: "message", delay: 3000, message: "1" }, 85 | { type: "text", sub_type: "message", delay: 4000, message: "Dodge!", message_RU: "Эвейд!" }, 86 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 5000] } 87 | ], 88 | "s-939-3001-107-0": [{ type: "text", sub_type: "message", message: "Many Hits", message_RU: "Несколько ударов" }], 89 | "s-939-3001-112-0": [{ type: "text", sub_type: "message", message: "Target", message_RU: "Таргет" }], 90 | "s-939-3001-115-0": [ 91 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 92 | { type: "text", sub_type: "message", delay: 1600, message: "Dodge!", message_RU: "Эвейд!" }, 93 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 4000] } 94 | ], 95 | "s-939-3001-118-0": [{ type: "text", sub_type: "message", message: "Scratching", message_RU: "Крутилка" }], 96 | "s-939-3001-164-0": [{ type: "text", sub_type: "message", message: "Counter Attack (bleed)", message_RU: "Отпрыжка (кровоток)" }], 97 | "s-939-3001-167-0": [{ type: "text", sub_type: "message", message: "Many Hits", message_RU: "Несколько ударов" }], 98 | "s-939-3001-172-0": "s-939-3001-112-0", 99 | "s-939-3001-301-0": "s-939-3001-112-0", 100 | "s-939-3001-302-0": "s-939-3001-112-0", 101 | "s-939-3001-170-0": [ 102 | { type: "text", sub_type: "message", message: "Turn + Pushback", message_RU: "Разворот + Откид" }, 103 | { type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид", delay: 2700 } 104 | ], 105 | "s-939-3001-175-0": [ 106 | { type: "text", sub_type: "message", message: "Incoming Stun", message_RU: "Рёв" }, 107 | { type: "text", sub_type: "message", delay: 1600, message: "Dodge!", message_RU: "Эвейд!" }, 108 | { type: "spawn", func: "circle", args: [false, 553, 0, 0, 10, 630, 0, 4000] } 109 | ], 110 | "s-939-3001-177-0": [{ type: "text", sub_type: "message", message: "Backstab", message_RU: "Назад + Вперед" }], 111 | "s-939-3001-178-0": [{ type: "text", sub_type: "message", message: "Scratching (bleed)", message_RU: "Крутилка (кровоток)" }], 112 | "s-939-3001-203-0": [{ type: "text", sub_type: "message", message: "Phantom x3 (bleed)", message_RU: "Прыжки x3 (кровоток)" }], 113 | "s-939-3001-207-0": [{ type: "text", sub_type: "message", message: "Phantom x5 (bleed)", message_RU: "Прыжки x5 (кровоток)" }], 114 | "s-939-3001-213-0": [{ type: "text", sub_type: "message", message: "Reveal | Phantom (bleed)", message_RU: "Разоблачение | Прыжки (кровоток)" }], 115 | "s-939-3001-212-0": [{ type: "text", sub_type: "message", message: "Flash", message_RU: "Байт" }] 116 | }; 117 | }; -------------------------------------------------------------------------------- /guides/9980.js: -------------------------------------------------------------------------------- 1 | // Velik's Hold (Hard) 2 | // 3 | // made by HSDN 4 | 5 | module.exports = (dispatch, handlers, guide, lang) => { 6 | 7 | return { 8 | // 1 boss 9 | "nd-980-1000": [ 10 | { type: "stop_timers" }, 11 | { type: "despawn_all" } 12 | ], 13 | "s-980-1000-102-0": [{ type: "text", sub_type: "message", message: "Stun (Tank)", message_RU: "Стан (танк)" }], 14 | "s-980-1000-103-0": [{ type: "text", sub_type: "message", message: "Frontal Hits", message_RU: "Передние удары" }], 15 | "s-980-1000-104-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 16 | "s-980-1000-109-0": [{ type: "text", sub_type: "message", message: "Push Left", message_RU: "Откид влево" }], 17 | "s-980-1000-110-0": [{ type: "text", sub_type: "message", message: "Push Right", message_RU: "Откид вправо" }], 18 | "s-980-1000-112-0": [{ type: "text", sub_type: "message", message: "Jump Forward", message_RU: "Прыжок вперед" }], 19 | "s-980-1000-113-0": [{ type: "text", sub_type: "message", message: "Jump Back", message_RU: "Прыжок назад" }], 20 | "s-980-1000-114-0": [{ type: "text", sub_type: "message", message: "Back Attack", message_RU: "Полоса назад" }], 21 | "s-980-1000-115-0": [{ type: "text", sub_type: "message", message: "Wave Front", message_RU: "Волна вперед" }], 22 | "s-980-1000-115-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], 23 | "s-980-1000-202-0": [{ type: "text", sub_type: "message", message: "Jump (Stun)", message_RU: "Прыжок (стан)" }], 24 | "s-980-1000-108-0": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 2000 }], 25 | "s-980-1000-302-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Крутилка" }], 26 | "s-980-1000-302-1": [{ type: "spawn", func: "vector", args: [912, 0, 0, 0, 1600, 0, 2000] }], 27 | "s-980-1001-302-0": [{ type: "spawn", func: "vector", args: [912, 0, 0, 0, 1600, 0, 4000] }], 28 | 29 | // 2 boss 30 | "nd-980-2000": [ 31 | { type: "stop_timers" }, 32 | { type: "despawn_all" } 33 | ], 34 | "s-980-2000-105-0": [{ type: "text", sub_type: "message", message: "Heavy Front Attack", message_RU: "Мощный удар вперед" }], 35 | "s-980-2000-106-0": [{ type: "text", sub_type: "message", message: "Flame Ray (Target)", message_RU: "Полоса (таргет)" }], 36 | "s-980-2000-106-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 500 }], 37 | "s-980-2000-107-0": [{ type: "text", sub_type: "message", message: "Whip", message_RU: "Кнут" }], 38 | "s-980-2000-107-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 39 | "s-980-2000-108-0": [{ type: "text", sub_type: "message", message: "Front Attack (Stun)", message_RU: "Удар вперед (стан)" }], 40 | "s-980-2000-301-0": [{ type: "text", sub_type: "message", message: "Jump (Target)", message_RU: "Прыжок (таргет)" }], 41 | "s-980-2000-301-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 42 | "s-980-2000-302-0": [{ type: "text", sub_type: "message", message: "AOE (Stand behind a stone)", message_RU: "АОЕ (встать за камень)" }], 43 | "s-980-2000-303-0": [{ type: "text", sub_type: "message", message: "Circles", message_RU: "Круги" }], 44 | "s-980-2000-304-0": [{ type: "text", sub_type: "message", message: "Jump", message_RU: "Прыжок" }], 45 | "s-980-2000-304-1": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 1000 }], 46 | "s-980-2001-326-0": [{ type: "spawn", func: "marker", args: [false, 180, 250, 0, 6000, true, null] }], // stone marker 47 | 48 | // 3 boss 49 | "nd-980-3000": [ 50 | { type: "stop_timers" }, 51 | { type: "despawn_all" } 52 | ], 53 | "s-980-3000-104-0": [{ type: "text", sub_type: "message", message: "Front Attack", message_RU: "Удар вперед" }], 54 | "s-980-3000-105-0": [{ type: "text", sub_type: "message", message: "Push Front", message_RU: "Откид вперед" }], 55 | "s-980-3000-109-0": [{ type: "text", sub_type: "message", message: "Double Front Attack", message_RU: "Двойной удар вперед" }], 56 | "s-980-3000-110-0": [{ type: "text", sub_type: "message", message: "Wave Front", message_RU: "Волна вперед" }], 57 | "s-980-3000-111-0": [{ type: "text", sub_type: "message", message: "Spin", message_RU: "Кувырок" }], 58 | "s-980-3000-112-0": [{ type: "text", sub_type: "message", message: "Target (Front | Back)", message_RU: "Таргет (Передняя | Задняя)" }], 59 | "s-980-3000-112-2": [ 60 | { type: "text", sub_type: "message", message: "Side", message_RU: "В сторону" }, 61 | { type: "spawn", func: "vector", args: [553, 0, 0, 75, 800, 0, 2000] }, 62 | { type: "spawn", func: "vector", args: [553, 0, 0, 105, 800, 0, 2000] }, 63 | { type: "spawn", func: "vector", args: [553, 0, 0, 255, 800, 0, 2000] }, 64 | { type: "spawn", func: "vector", args: [553, 0, 0, 285, 800, 0, 2000] } 65 | ], 66 | "s-980-3000-113-0": [{ type: "text", sub_type: "message", message: "Pushback", message_RU: "Откид назад" }], 67 | "s-980-3000-114-0": "s-980-3000-113-0", 68 | "s-980-3000-115-0": [{ type: "text", sub_type: "message", message: "Charging", message_RU: "Зарядка" }], 69 | "s-980-3000-301-0": [{ type: "text", sub_type: "message", message: "Get Out | Get In", message_RU: "От него | К нему" }], 70 | "s-980-3000-302-0": [{ type: "text", sub_type: "message", message: "Get In", message_RU: "К нему" }], 71 | "s-980-3000-304-0": [{ type: "text", sub_type: "message", message: "Shot (Target)", message_RU: "Выстрел (таргет)" }], 72 | "s-980-3000-304-3": [{ type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд" }], 73 | "s-980-3000-306-0": [ 74 | { type: "text", sub_type: "message", message: "AOE", message_RU: "АОЕ" }, 75 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 4500 } 76 | ], 77 | "s-980-3000-307-0": "s-980-3000-306-0", 78 | "s-980-3000-308-0": [ 79 | { type: "text", sub_type: "message", message: "AOE (Flying)", message_RU: "АОЕ (подлёт)" }, 80 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 4500 } 81 | ], 82 | "s-980-3000-309-0": [ 83 | { type: "text", sub_type: "message", message: "Jump (Pushback)", message_RU: "Прыжок (откид)" }, 84 | { type: "text", sub_type: "message", message: "Dodge", message_RU: "Эвейд", delay: 2200 } 85 | ], 86 | "qb-980-3000-980206": [ 87 | { type: "text", sub_type: "message", message: "Plague of Exhaustion", message_RU: "Чума/Регресс", class_position: "priest" }, 88 | { type: "text", sub_type: "message", message: "Regression", message_RU: "Регресс", class_position: "mystic" } 89 | ] 90 | }; 91 | }; -------------------------------------------------------------------------------- /index.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | module.exports.NetworkMod = function (mod) { 4 | try { 5 | mod.require["tera-guide-core"].load(mod, { 6 | languages: ["en", "ru"], // supported languages 7 | colors: { gui: {}, general: {} }, // color settings 8 | command: ["guide"], // module command 9 | chat_name: "Guide", // set chat author name for notices 10 | }); 11 | } catch (e) { 12 | mod.error("Warning!\nDepended module \"tera-guide-core\" needed for TERA-Guide is not installed!\nPlease download and install: https://github.com/hsdn/tera-guide-core\n"); 13 | throw e; 14 | } 15 | }; -------------------------------------------------------------------------------- /lang/dungeons.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Available names for additional languages 4 | module.exports = { 5 | 7011: { 6 | "en": "Shadow of the Gutrends (Guardian)", 7 | "ru": "Живодеры и черная тень (хранитель)" 8 | }, 9 | 7015: { 10 | "en": "Escape from Balder's Refuge (Guardian)", 11 | "ru": "Спасти Убежище Балдера (хранитель)" 12 | }, 13 | 3040: { 14 | "en": "Lumikan's Trial", 15 | "ru": "Сонный паралич Лукмии (Подземелье испытаний)" 16 | }, 17 | 3042: { 18 | "en": "Gardan's Trial", 19 | "ru": "Место казни (Подземелье испытаний)" 20 | }, 21 | 3043: { 22 | "en": "Harnovog's Trial", 23 | "ru": "Крепость Тенебриса (Подземелье испытаний)" 24 | }, 25 | 3046: { 26 | "en": "Rogash's Trial", 27 | "ru": "Лаборатория слияния (Подземелье испытаний)" 28 | } 29 | }; -------------------------------------------------------------------------------- /lang/strings.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | // Available strings for additional languages 4 | // If no language is found, the default language (English) will be displayed 5 | module.exports.general = { 6 | 7 | // Русский 8 | ru: { 9 | unknowncommand: "Невереная команда, введите guide help", 10 | helpheader: "Введите \"guide help\" для вывода справки", 11 | helpbody: [ 12 | ["guide, вкл./выкл. модуля", "PRMSG"], 13 | ["guide gui, показать графический интерфейс", "PRMSG"], 14 | ["guide voice, вкл./выкл. голосовые сообщения", "PRMSG"], 15 | ["guide lNotice, вкл./выкл. отправки уведомлений в чата вместо экранных", "PRMSG"], 16 | ["guide gNotice, вкл./выкл. отправки сообщений в чат группы", "PRMSG"], 17 | ["guide auto~en~ru, выбор языка перевода", "PRMSG"], 18 | ["guide male~female, выбор пола диктора голосовых сообщений (если доступно)", "PRMSG"], 19 | ["guide 1~10, регулировка скорости чтения голосовых сообщений", "PRMSG"], 20 | ["guide spawnObject, вкл./выкл. спауна маркировочных объектов", "PRMSG"], 21 | ["guide stream, вкл./выкл. режима стрима (скрытие сообщений и объектов)", "PRMSG"], 22 | ["guide dungeons, список всех поддерживаемых данжей и их id", "PRMSG"], 23 | ["guide verbose id, вкл./выкл. всех сообщений для данжа, где id - идентификатор данжа", "PRMSG"], 24 | ["guide spawnObject id, вкл./выкл. спауна объектов для данжа, где id - идентификатор данжа", "PRMSG"], 25 | ["guide cr, установить цвет сообщения: красный", "CRMSG"], 26 | ["guide co, установить цвет сообщения: оранжевый", "COMSG"], 27 | ["guide cy, установить цвет сообщения: желтый", "CYMSG"], 28 | ["guide cg, установить цвет сообщения: зеленый", "CGMSG"], 29 | ["guide cdb, установить цвет сообщения: темно-синий", "CDBMSG"], 30 | ["guide cb, установить цвет сообщения: синий", "CBMSG"], 31 | ["guide cv, установить цвет сообщения: фиолетовый", "CVMSG"], 32 | ["guide cp, установить цвет сообщения: розовый", "CPMSG"], 33 | ["guide clp, установить цвет сообщения: светло-розовый", "CLPMSG"], 34 | ["guide clb, установить цвет сообщения: светло-синий", "CLBMSG"], 35 | ["guide cbl, установить цвет сообщения: черный", "CBLMSG"], 36 | ["guide cgr, установить цвет сообщения: серый", "CGRMSG"], 37 | ["guide cw, установить цвет сообщения: белый", "CWMSG"] 38 | ], 39 | red: "Красный", 40 | green: "Зеленый", 41 | settings: "Настройки", 42 | spawnObject: "Спаун маркировочных объектов", 43 | speaks: "Голосовые сообщения", 44 | lNotice: "Уведомления в чат вместо экранных", 45 | gNotice: "Сообщения в канал чата группы", 46 | stream: "Режим стримера (скрытие сообщений и объектов)", 47 | language: "Выбор языка", 48 | voice: "Голос (пол)", 49 | rate: "Скорость речи", 50 | color: "Выбор цвета", 51 | dungeons: "Настройки данжей", 52 | verbose: "Сообщения", 53 | objects: "Объекты", 54 | test: "Проверка", 55 | module: "Модуль TERA-Guide", 56 | enabled: "Вкл.", 57 | disabled: "Выкл.", 58 | male: "Мужской", 59 | female: "Женский", 60 | voicetest: "[Проверка скорости чтения сообщений]", 61 | colorchanged: "Цвет текста сообщений изменен", 62 | dgnotfound: "Данж с таким id не найден.", 63 | dgnotspecified: "Не указан id данжа.", 64 | enterdg: "Вы вошли в данж", 65 | fordungeon: "для данжа" 66 | } 67 | }; -------------------------------------------------------------------------------- /manifest.json: -------------------------------------------------------------------------------- 1 | { 2 | "files": { 3 | "LICENSE": "7fbe35da1c4792b039cd14af60048ea6813b743bd6e05ecef7a68023b50f5a43", 4 | "README.md": "05b456df0952bd2f666606c72c8f585aecf86d415fc067019205fff99788737e", 5 | "guides/2800.js": "69985782d759b407f53cf6d5c92e9d9b89aab9118be48ee49a6762debea861a8", 6 | "guides/3023.js": "1959f9a885606ea64f207184bd38e860196a6eff8b10ba332644416b4ceea7ad", 7 | "guides/3026.js": "ff23485206605241aa049b2080b7fbc67ad756be9ad3101f1615b131ec96e9e5", 8 | "guides/3027.js": "83dc96046c91eaa5dc9d18d9f649642e9c0e7f7154ecbcb373c9269faf16af63", 9 | "guides/3030.js": "e3180ff65a1ed4bf269b1164719d86cc44c3151e24b4e59b948abcbdd8384a84", 10 | "guides/3032.js": "336996a4a3fabeef4b6d90c77fb0b84a5f696fb9b019716bf1b37b04e37003ab", 11 | "guides/3034.js": "eff4e8f10579c0ff255ebbe327d6bbe2c565ddad7905d262e8e7c67cda76853d", 12 | "guides/3036.js": "1c096dae175d8d7831196387924bda4a33b307bd3045a839f73bfd7da27be4f4", 13 | "guides/3037.js": "3f1d726379080a7a014eeec14e0c757d22ff8e4923fa6d395d6a8f2e52d23afa", 14 | "guides/3101.js": "dd7442d3d9840448dc4d56a19b9bcf07a2ca8e15592b409dbdef241d3591580d", 15 | "guides/3102.js": "5725a922a78cae3f5215f9f44e1fec9319160e3f65e225c45568b86c1a9f600e", 16 | "guides/3103.js": "9a42e4b66954b95d99469001e1857f818fb9443cafe0dc2ed4dea34047c377cc", 17 | "guides/3104.js": "47aeff6d9ae5f7bbc2e1d0fc7e29fdbc58d7b5f51240843600d9900cb3b6b3e2", 18 | "guides/3106.js": "a5485af91dc71c2ff4ca3d83e3469043d787b1d121110885139ee3fa47e55072", 19 | "guides/3107.js": "dae1d54d414143a6d98d3a0c8ceb8d06b490fb3a8d0da625ba3713654941680f", 20 | "guides/3111.js": "3ae07f197ce94ec237267cd7e762bb8bcf497308e722246a916ad8a1419554c8", 21 | "guides/3123.js": "d061aa0b3bf4115700c4763a73babaab0ea19a28c4661e07e92a5890f5498fc8", 22 | "guides/3126.js": "16717e0725fd0b9364ca5afa6bc077d9503b900d80abf88f72cd2db83d449cc1", 23 | "guides/3201.js": "7d32e08858a76a5ac4b3ba711bfd84b0fe27fd6488f44198d36f9f4a9fd4ceea", 24 | "guides/3202.js": "b30a66b3f95cbf712140b15e73e525535aae29bb519f8bc2fa19c20dd67f39c2", 25 | "guides/3203.js": "e48fe4b22ab154d5882bbc1ba2081c2ca4b29c1fc42d8fb1e1642238d30d6049", 26 | "guides/3204.js": "f72578b0517b790cdb3fdbac9d30fd14294787d99740d130be4db1af69b7ef26", 27 | "guides/3206.js": "a1444026e0000907cde174aafeb9c7898bfb5ccf0bb373f05519495951b56faa", 28 | "guides/7011.js": "a8bec81fe8d60268568425dc5ce47779b2e1897406db0b51bdcfe042c14132b1", 29 | "guides/7015.js": "f559103c9ac65a9f10f907f75bf5bb44a5e0ba700626a379411899d70057e179", 30 | "guides/9027.js": "f37cffceebc7baa3c6eb8dd3ee011e6a457c09afae5756f7e4ecbc0ed0727001", 31 | "guides/9034.js": "580a7c43c07ff02e5f49ad451f96fceca8c4af335898595a0abf00f48022a4a6", 32 | "guides/9044.js": "fd02f263aed242f1d360eba462c6a6aea9e89ce9c5b50c415c6624ff35cd435c", 33 | "guides/9050.js": "7d2216728bdf6b09b83c192a58a621272c11fccb0fed92eac3712af2be9de50d", 34 | "guides/9053.js": "dc9c5b647d622ad700437c067fc53e4689c39621863d9da9dff15ad73fd1b554", 35 | "guides/9054.js": "8b512dfddcf1b9a91dca04a119b43ddfc2b4147db7592eeba96ff2390a17111d", 36 | "guides/9056.js": "fc5cb5dc1c6e6621ea0522235593262be89b2f3297b14200ec06edc3a56a539d", 37 | "guides/9057.js": "f4573b62d83d332c25209db4858faafd9da3e7e2ea32fc4a1bfa2e90dcf88e8a", 38 | "guides/9066.js": "fcbd27cc95fc3b3e3bd5354412c9448a1941207f424ed442b36c4202beba87ef", 39 | "guides/9067.js": "a72f4442d0754a5ad0db52503c5e0a30bf30ecd6c3da85c21212a5b854338041", 40 | "guides/9068.js": "58b27bdb409dac63e71f4db0ccccbbcf78e04df93745939f84a90a8b06e9b338", 41 | "guides/9070.js": "c69224e5118184c330b792986c12ed0b82b6f27992d375b17d5e6c45bbbed9eb", 42 | "guides/9710.js": "42c3bef1a896deb4cc2212e773cddc7fc257ba94bba39f2bf77b24ca0a0fb73f", 43 | "guides/9716.js": "b7b344c88f650292e7bb2abd71445c5b695f5f22d6785b5ea9e55bffcfd3dcb3", 44 | "guides/9720.js": "8b208a163e80de0ed668bb3e53fcde7c4d1312aeb03ea74089b45c3861c3571a", 45 | "guides/9735.js": "c4ff6f7fd3108f309d0b7377b6f77ec2fef85372c19e23033c3ec7f1202d93dd", 46 | "guides/9739.js": "9b3c7b7b710272808146808e7754313707e60b0be09d3fad1da2e84d0d4469c4", 47 | "guides/9750.js": "8cd2ec8652ab5b3b252d8c17a9cf6e79ef01852db842c8bb6196af3560fe51ae", 48 | "guides/9754.js": "58d16663e92e4296af1de04427cce2316bb8fce550982c0106c5a754dc0535b3", 49 | "guides/9756.js": "1084ff11b5eb4f1502462c09532574236b11790e2def40157be6d0faa2aa6d58", 50 | "guides/9757.js": "281bfd592710f46ca06d8ef5994ef06c641bca4066164fd6b55dbe5d25b5df6f", 51 | "guides/9759.js": "258308cfec24b109f0a04e29275de1ca17860fba85ea172aa2b48269f542f63a", 52 | "guides/9768.js": "f9bc7b5cf768273ac5bff03d5b3e20dd95fd6ccf58d7fa951e33c60c2d42ace8", 53 | "guides/9770.js": "e07f4cdba1b094a070926f926ea1b176d6403261241d680329724b0fe285eefb", 54 | "guides/9780.js": "290a193468e5061b3a5a0381cdd95d9955a578388adbc07e7118ff79ebfb46dd", 55 | "guides/9781.js": "14f91b5616b8fdac151986e130bbf29400dd06b84dfcd1a636cfc5eb1d6a7784", 56 | "guides/9782.js": "c3bc31da6b7a136444e6ea84a9d39653562689b35104c7caba6cc19c7d8ba9b4", 57 | "guides/9783.js": "121572271b47cd209365c4d84811d9e64cbd527b2f8fb7eb6009785f498d2226", 58 | "guides/9794.js": "a44ccdebf43fea73072785ba8523481b7a5690fd2e9859aa082b4470ab3741af", 59 | "guides/9916.js": "a556d7f4cb670f170d977fde78918c5e320da2d96986bec647d1ed87f2912b10", 60 | "guides/9920.js": "3967e251360f8f935cbcde14fa675984cdd34d492ec5ac5f25acfdd8c951cebe", 61 | "guides/9935.js": "45e3fcbf902e8c8e1d80809c5ac21b0873e414850a3c3f16b96c3cdda5be6471", 62 | "guides/9939.js": "a576eec125f006a59363ec011802c4138441d5957149f015b41ef895875d8d0d", 63 | "guides/9970.js": "9d2e3e6af84a63225385df069e74b4446db1eb7d088951b0024b201a0e55ceb3", 64 | "guides/9980.js": "30f050ab1ae519e559e43d83dca0999d1bdbd27b09834687a21201a87207668a", 65 | "guides/9981.js": "14f4d5b3ab2b58dbd05398490e228428673079ef047974c1d35c15a9eba1d463", 66 | "guides/9982.js": "605be3e9fdc872b89991868083ab4004458704417eaa14eb68232e6a94ae8853", 67 | "guides/9983.js": "77e84398481812d3fbf88a666601b2c62ea2179d939e1d06dca9d12f22dba698", 68 | "guides/9994.js": "915575da2f6005446fa2b330707efbe75b21c8ba91f658dd916901f4a2d734d1", 69 | "index.js": "e96e5d5833e0c28967b3ac43f017af0e0c0a33ffa686f20c4398d86222eba491", 70 | "lang/dungeons.js": "4c4a16197bf9898e0a420c082c67457b007253db9a125cfe875e69c0fd0b16d9", 71 | "lang/strings.js": "33e95fa48d7a386620e561e696e52d7f72253bb1b2de749a99336110aaaade34", 72 | "module.json": "93e2a1a65b5d039a4bcca69feccdcba1006ac7eb7bdcafd4eb5ced249da5861b", 73 | "settings_migrator.js": "febf6c909b0bcfb5ce27c8336ddd6fb6fdf83d7f0549516e9cddc740f72b8ea6" 74 | } 75 | } -------------------------------------------------------------------------------- /module.json: -------------------------------------------------------------------------------- 1 | { 2 | "name": "tera-guide", 3 | "options": { 4 | "niceName": "Guide", 5 | "guiName": "TERA-Guide", 6 | "settingsFile": "config.json", 7 | "settingsMigrator": "settings_migrator.js", 8 | "settingsVersion": 1.19 9 | }, 10 | "author": "HSDN", 11 | "description": "The dungeon guide module with TTS notifications. Display hints on screen and drawing zones of bosses attacks and mechanics.", 12 | "servers": ["https://raw.githubusercontent.com/hsdn/tera-guide/master/"], 13 | "supportUrl": "https://github.com/hsdn/tera-guide/issues", 14 | "dependencies": { 15 | "tera-guide-core": "https://raw.githubusercontent.com/hsdn/tera-guide-core/master/module.json" 16 | }, 17 | "disableAutoUpdate": false, 18 | "version": "4/5/2025" 19 | } -------------------------------------------------------------------------------- /settings_migrator.js: -------------------------------------------------------------------------------- 1 | "use strict"; 2 | 3 | const DefaultSettings = { 4 | "enabled": true, 5 | "stream": false, 6 | "lNotice": false, 7 | "gNotice": false, 8 | "spawnObject": true, 9 | "speech": { 10 | "enabled": false, 11 | "rate": 2, 12 | "volume": 100, 13 | "gender": "female" 14 | }, 15 | "cc": [ 16 | "" 17 | ], 18 | "language": "auto", 19 | "dungeons": {}, 20 | "debug": { 21 | "chat": true, 22 | "all": false, 23 | "s": false, 24 | "e": false, 25 | "am": false, 26 | "ae": false, 27 | "ab": false, 28 | "ar": false, 29 | "ad": false, 30 | "h": false, 31 | "ns": false, 32 | "nd": false, 33 | "rb": false, 34 | "re": false, 35 | "dm": false, 36 | "qb": false 37 | } 38 | }; 39 | 40 | module.exports = function MigrateSettings(from_ver, to_ver, settings) { 41 | if (from_ver === undefined) return { ...DefaultSettings, ...settings }; 42 | else if (from_ver === null) return DefaultSettings; 43 | else { 44 | from_ver = Number(from_ver); 45 | to_ver = Number(to_ver); 46 | 47 | if (from_ver + 0.01 < to_ver) { 48 | settings = MigrateSettings(from_ver, from_ver + 0.01, settings); 49 | return MigrateSettings(from_ver + 0.01, to_ver, settings); 50 | } 51 | 52 | const oldsettings = settings; 53 | settings = Object.assign(DefaultSettings, {}); 54 | 55 | to_ver = Math.round(to_ver * 100) / 100; 56 | 57 | switch (to_ver) { 58 | case 1.12: 59 | for (const option in oldsettings) { 60 | if (option === "dungeons" && Array.isArray(oldsettings[option])) { 61 | settings[option] = {}; 62 | for (const element of oldsettings[option]) { 63 | const id = element.id; 64 | delete element.id; 65 | settings[option][id] = element; 66 | } 67 | continue; 68 | } else 69 | settings[option] = oldsettings[option]; 70 | } 71 | return settings; 72 | 73 | case 1.13: 74 | remove(["dbg.json", "lib.js", "dispatch.js", "voice/index.js", "voice"]); 75 | break; 76 | 77 | case 1.14: 78 | oldsettings["debug"] = settings["debug"]; 79 | break; 80 | 81 | case 1.15: 82 | for (const option in oldsettings) { 83 | if (option === "speaks") 84 | settings["speech"]["enabled"] = oldsettings["speaks"]; 85 | else if (option === "rate") 86 | settings["speech"]["rate"] = parseInt(oldsettings["rate"]); 87 | else 88 | settings[option] = oldsettings[option]; 89 | } 90 | return settings; 91 | } 92 | 93 | for (const option in oldsettings) { 94 | if (settings[option] !== undefined) 95 | settings[option] = oldsettings[option]; 96 | } 97 | 98 | return settings; 99 | } 100 | 101 | function remove(files) { 102 | const fs = require("fs"), path = require("path"); 103 | try { 104 | for (const file of files) { 105 | const filePath = path.join(__dirname, file); 106 | if (fs.existsSync(filePath)) { 107 | if (fs.lstatSync(filePath).isDirectory()) 108 | fs.rmdirSync(filePath); 109 | else 110 | fs.unlinkSync(filePath); 111 | } 112 | } 113 | } catch (e) {} 114 | } 115 | }; --------------------------------------------------------------------------------