|
Остров Грез
Делаем пятёрку испытаний на Острове Грёз, без лишней «религии», но с мозговыносящими иллюзиями и завязкой на CHAOS / LIGHT / DARK.
Это будет отдельная сюжетная линия-головоломка, в духе Элмориона. 0. Общая конструкцияЛокация: Остров Грёз (пустой остров из клиента).
Квест: Q93001_IllusionOfDreams / «Иллюзии Острова Грёз».
Тип: сольник, без смерти, только откаты/телепорты.
Счётчики: используем только уже существующие: CHAOS, LIGHT, DARK (через AstraFaction / AstraCrystalLogger). Игрок попадает на остров: Структура квеста Q93001Этапы (cond): NPC на острове — это Иллюзии (один и тот же тип, разные роли): npc_IllusionVoice – Голос Иллюзии (старт/финал) npc_IllusionMemory – Память npc_IllusionPath – Путь npc_IllusionGate – Двери npc_IllusionShadow – Тень
1. Испытание Выбора — «Голос Иллюзии»NPC: Голос Иллюзии, стоит на центральной площадке острова. Суть:
Игроку задают вопрос с тремя вариантами ответа. Например: «Ты оказался на Острове Грёз.
Чего ты ищешь на самом деле?»
Варианты: «Выхода.» «Силы.» «Истину.»
Только один вариант ведёт дальше (меняется логика в зависимости от фракций). Влияние CHAOS / LIGHT / DARK: Если LIGHT доминирует → правильный выбор логичный:
«Истину» → проход дальше.
Голос даёт мягкий намёк в тексте. Если CHAOS доминирует → правильный вариант выбирается рандомно при входе (в квесте хранится correctOption = 1–3).
Игроку придётся тыкать / запоминать. Если DARK доминирует → текст намёка ложный:
NPC подталкивает к неверному выбору.
Провал:
Неверный выбор → телепорт в начало острова, но без сброса квеста (можно пробовать снова). 2. Испытание Памяти — «Образ Памяти»Место: другая площадка на острове (ставишь NPC у отдельно стоящей постройки). Механика:
NPC показывает игроку 3–5 фраз подряд (с задержкой), например: «Пламя.» «Сны.» «Тени.» «Песок.» «Ветер.»
Потом спрашивает: «Какое слово было третьим?»
Игрок выбирает из 4 вариантов. Сложность по фракциям: LIGHT ↑ → последовательность из 3 слов, 2 варианта ответа. BALANCE (если будет) → 4 слова, 3 варианта. DARK ↑ → 5 слов, 4 варианта, один вариант – очень похож (например, «Тень» / «Тени»). CHAOS ↑ → при провале последовательность меняется, нельзя «зазубрить».
Провал:
Телепорт обратно к Образу Памяти, можно повторить попытку. 3. Испытание Пути — «Иллюзия Пути»Место: длинная дорожка/мосты острова (открытые пространства). Механика:
На земле есть невидимые «правильные» и «ложные» участки пути.
Неправильный → телепорт в начало этой зоны. Ты размечаешь: Вариация по фракциям: LIGHT доминирует → вокруг правильного пути можно слегка «подсветить» окружение (декоративный объект, факел, кристалл). DARK доминирует → появляются “ложные пути”: визуально кажется, что путь есть (например, кусок моста), но зона-триггер телепортит назад. CHAOS доминирует → правильный путь выбирается динамически из 2–3 предзаданных паттернов (например, в зависимости от текущего времени сервера или рандома).
Провал:
Телепорт к началу испытания Пути, прогресс квеста не сбрасывается. 4. Испытание Дверей — «Страж Дверей»Место: часть острова с тремя воротами/арками (ты выбираешь декорации). Механика:
Перед игроком 3 «двери» (3 NPC-триггера/зоны).
Только одна ведёт дальше, две — в петлю. Вариации: LIGHT доминирует → визуальная подсказка:
правильная дверь слегка отличается (свет, статуя, факел, кристалл). DARK доминирует → правильная дверь наоборот выглядит менее “приметно”, а две другие — красиво и ярко. CHAOS доминирует → правильная дверь выбирается случайно раз в N минут / при каждом входе игрока (куски логики в квесте).
Провал:
Неверная дверь → маленькая отдельная «комнатка-иллюзия» (микро-площадка), откуда NPC возвращает игрока назад к Стражу Дверей с язвительной фразой типа: «Кажется, этот выход был не для тебя.»
5. Испытание Теней — «Тень Сновидения»Место: круглая площадка с возможностью расставить 4–5 NPC. Механика:
Перед игроком появляются 4 «двойника» — NPC, использующие модель игрока или похожего персонажа (или один и тот же шаблон). Каждый «двойник» при разговоре говорит одну фразу.
Нужно выбрать настоящего, исходя из намёка от Тени. Пример намёка: «Истинный ты всегда немного не в такт миру.»
И один из двойников будет, к примеру, делать эмоцию / говорить с задержкой / стоять чуть в стороне. Вариации по фракциям: LIGHT ↑ → намёк честный, читаемый. DARK ↑ → намёк двусмысленный, легко понять наоборот. CHAOS ↑ → правильный двойник выбирается рандомно из 2–3, а текст намёка вообще абстрактный.
Провал:
Неверный выбор → Тень “поглощает” игрока → телепорт на край острова, откуда он возвращается к этому испытанию (чуть дольше пробежаться, как наказание, но без боли). Финал — Выход с ОстроваПосле успешного прохождения всех 5 испытаний: Голос Иллюзии снова появляется в центре острова. Диалог: «Ты прошёл через иллюзии этого места, не потеряв себя.
Остров Грёз запомнит твой шаг.
Хочешь проснуться — или продолжить видеть сны?»
Кнопки: «Пробудиться (выйти)» → телепорт в город / нужную локацию. «Остаться ещё» → игрок остаётся, но квест считается завершённым; может просто побродить.
НаградаТут важно не ломать экономику, так что варианты: Титул: «Пробудившийся с Острова Грёз» Свиток Телепорта: в какую-то сюжетную локацию Elmorion (например, Святилище Сопряжения). 1–2 декоративных предмета:
чуть-чуть адены / опыта, чтобы не было ощущения «нулевой награды».
И можно добавить одноразовый/редкий квестовый предмет, который потом пригодится в другой сюжетке:
например, item_EchoOfDreams — «Эхо Грёз». Привязка к АСТРЕ — без нового счётчикаТехнически достаточно: при входе в каждое испытание квест делает:
в зависимости от faction и, возможно, процентного перевеса:
То есть Остров Грёз = зеркало состояния мира: чем больше Хаоса / Тьмы / Света → тем по-разному он «ведёт себя» для игроков. Что дальше могу сделатьВ следующем шаге могу: расписать конкретные диалоги для всех 5 испытаний (RU/EN — если нужно); накидать структуру Q93001.java / Q93001.xml (cond, события, bypass); предложить IDs NPC, предметов, свитков; дать структуру HTML-файлов:
Квесты
📁 СтруктураФайл:
dist/game/data/scripts/quests/Q93001_IllusionOfDreams/Q93001_IllusionOfDreams.java Пакет:
package quests.Q93001_IllusionOfDreams; NPC (примерные ID — подставишь свои):
- private static final int ILLUSION_VOICE = 40001; // Голос Иллюзии (старт/финал)
- private static final int ILLUSION_MEMORY = 40002; // Испытание памяти
- private static final int ILLUSION_PATH = 40003; // Испытание пути
- private static final int ILLUSION_GATE = 40004; // Испытание дверей
- private static final int ILLUSION_SHADOW = 40005; // Испытание теней
Скопировать код (Потом впишешь эти ID в npc.xml как кастомных «иллюзий».)
🧠 Квест Q93001_IllusionOfDreams.java (скелет под Java 8)
- package quests.Q93001_IllusionOfDreams;
- import org.l2jmobius.gameserver.model.actor.Npc;
- import org.l2jmobius.gameserver.model.actor.Player;
- import org.l2jmobius.gameserver.model.quest.Quest;
- import org.l2jmobius.gameserver.model.quest.QuestState;
- import org.l2jmobius.gameserver.model.quest.State;
- import org.l2jmobius.gameserver.network.serverpackets.ExShowScreenMessage;
- // Если уже используешь утилиты АСТРЫ – раскомментируешь.
- // import astra.AstraFaction;
- // import astra.AstraFactionUtil;
- /**
- * Q93001_IllusionOfDreams
- *
- * Остров Грёз — линейка из 5 испытаний-головоломок без смерти.
- * Игрок по шагам общается с иллюзорными NPC и выбирается с острова.
- *
- * Этапы (cond):
- * 0 – квест не взят
- * 1 – старт, пройти Испытание Выбора у Голоса Иллюзии
- * 2 – пройти Испытание Памяти
- * 3 – пройти Испытание Пути
- * 4 – пройти Испытание Дверей
- * 5 – пройти Испытание Теней
- * 6 – финал, получение награды и выход с острова
- */
- public class Q93001_IllusionOfDreams extends Quest
- {
- // ID квеста
- private static final int QUEST_ID = 93001;
-
- // NPC
- private static final int ILLUSION_VOICE = 40001; // Голос Иллюзии (старт/финал)
- private static final int ILLUSION_MEMORY = 40002; // Испытание Памяти
- private static final int ILLUSION_PATH = 40003; // Испытание Пути
- private static final int ILLUSION_GATE = 40004; // Испытание Дверей
- private static final int ILLUSION_SHADOW = 40005; // Испытание Теней
-
- // Пример предметов (свитки / эхо / награды) – подставишь свои ID
- private static final int SCROLL_DREAM = 90001; // Свиток Сновидения (телепорт на остров)
- private static final int SCROLL_AWAKENING = 90002; // Свиток Пробуждения (выход)
- private static final int REWARD_ECHO_OF_DREAMS = 90003; // Эхо Грёз (квестовая награда)
-
- public Q93001_IllusionOfDreams()
- {
- super(QUEST_ID);
-
- // Стартовый NPC – Голос Иллюзии
- addStartNpc(ILLUSION_VOICE);
- addTalkId(ILLUSION_VOICE, ILLUSION_MEMORY, ILLUSION_PATH, ILLUSION_GATE, ILLUSION_SHADOW);
-
- // Здесь нет убийств и дропа – чисто разговоры и эвенты.
- }
-
- @Override
- public String onAdvEvent(String event, Npc npc, Player player)
- {
- String html = null;
- final QuestState qs = getQuestState(player, false);
- if (qs == null)
- {
- return html;
- }
-
- // -------------------------
- // СТАРТ КВЕСТА
- // -------------------------
- if (event.equals("start_quest"))
- {
- if (qs.isCreated())
- {
- qs.startQuest();
- qs.setCond(1, true); // Переход к Испытанию 1
- // Можешь выдать телепорт на остров или сразу считать, что игрок уже там.
- // giveItems(player, SCROLL_DREAM, 1);
- showScreenMessage(player, "Остров Грёз окутывает тебя иллюзиями...", 5000);
- html = "illusion_voice_start_ok.htm";
- }
- }
- // -------------------------
- // ИСПЫТАНИЕ 1: ВЫБОР
- // -------------------------
- else if (event.startsWith("choice_") && (npc.getId() == ILLUSION_VOICE))
- {
- if (qs.getCond() == 1)
- {
- // event может быть: choice_1, choice_2, choice_3
- final int choice;
- try
- {
- choice = Integer.parseInt(event.substring("choice_".length()));
- }
- catch (NumberFormatException e)
- {
- return null;
- }
-
- // Здесь можно добавить логику в зависимости от доминирующей фракции.
- // Например:
- // final AstraFaction faction = AstraFactionUtil.getDominantFaction();
- // int correctChoice = getCorrectChoiceByFaction(faction);
-
- // Пока делаем тупо: правильный ответ = 3 ("Истину")
- final int correctChoice = 3;
-
- if (choice == correctChoice)
- {
- qs.setCond(2, true); // Переход к Испытанию Памяти
- showScreenMessage(player, "Твой выбор отзывается в глубине Острова Грёз...", 5000);
- html = "illusion_voice_choice_success.htm";
- }
- else
- {
- // Неверный выбор – можно сделать телепорт в начало острова или просто язвительную реплику
- showScreenMessage(player, "Иллюзия смеётся над твоим выбором...", 4000);
- html = "illusion_voice_choice_fail.htm";
- }
- }
- }
- // -------------------------
- // ИСПЫТАНИЕ 2: ПАМЯТЬ
- // -------------------------
- else if (event.startsWith("memory_answer_") && (npc.getId() == ILLUSION_MEMORY))
- {
- if (qs.getCond() == 2)
- {
- // answer_1, answer_2, ...
- final int answer;
- try
- {
- answer = Integer.parseInt(event.substring("memory_answer_".length()));
- }
- catch (NumberFormatException e)
- {
- return null;
- }
-
- // Здесь потом можешь сделать генерацию последовательности и проверку из vars.
- // Сейчас: правильный ответ = 2
- final int correctAnswer = 2;
-
- if (answer == correctAnswer)
- {
- qs.setCond(3, true); // Переход к Испытанию Пути
- showScreenMessage(player, "Память не подвела тебя. Иллюзии уступают...", 5000);
- html = "illusion_memory_success.htm";
- }
- else
- {
- showScreenMessage(player, "Мысли путаются. Попробуй ещё раз...", 4000);
- html = "illusion_memory_fail.htm";
- }
- }
- }
- // -------------------------
- // ИСПЫТАНИЕ 3: ПУТЬ
- // -------------------------
- else if (event.equals("path_success") && (npc.getId() == ILLUSION_PATH))
- {
- if (qs.getCond() == 3)
- {
- // Сюда ты будешь вызывать event, когда игрок дошёл по правильному пути (через триггер/зону)
- qs.setCond(4, true);
- showScreenMessage(player, "Ты находишь верный путь сквозь пустоту...", 5000);
- html = "illusion_path_success.htm";
- }
- }
- else if (event.equals("path_fail") && (npc.getId() == ILLUSION_PATH))
- {
- if (qs.getCond() == 3)
- {
- // Неверный шаг – отправь игрока обратно на старт испытания (через телепорт в зоне)
- showScreenMessage(player, "Пустота под ногами. Иллюзия сбросила тебя обратно...", 5000);
- html = "illusion_path_fail.htm";
- }
- }
- // -------------------------
- // ИСПЫТАНИЕ 4: ДВЕРИ
- // -------------------------
- else if (event.startsWith("gate_choice_") && (npc.getId() == ILLUSION_GATE))
- {
- if (qs.getCond() == 4)
- {
- final int door;
- try
- {
- door = Integer.parseInt(event.substring("gate_choice_".length()));
- }
- catch (NumberFormatException e)
- {
- return null;
- }
-
- // Пока: правильная дверь №1
- final int correctDoor = 1;
-
- if (door == correctDoor)
- {
- qs.setCond(5, true); // Переход к Испытанию Теней
- showScreenMessage(player, "За этой дверью — не конец, но ты ближе к пробуждению...", 5000);
- html = "illusion_gate_success.htm";
- }
- else
- {
- showScreenMessage(player, "Не та дверь. Иллюзия водит тебя кругами...", 5000);
- html = "illusion_gate_fail.htm";
- }
- }
- }
- // -------------------------
- // ИСПЫТАНИЕ 5: ТЕНИ
- // -------------------------
- else if (event.startsWith("shadow_choice_") && (npc.getId() == ILLUSION_SHADOW))
- {
- if (qs.getCond() == 5)
- {
- final int shadow;
- try
- {
- shadow = Integer.parseInt(event.substring("shadow_choice_".length()));
- }
- catch (NumberFormatException e)
- {
- return null;
- }
-
- // Правильная "тень" – №2 (потом можно завязать на фракции/рандоме)
- final int correctShadow = 2;
-
- if (shadow == correctShadow)
- {
- qs.setCond(6, true);
- showScreenMessage(player, "Ты различаешь себя среди теней. Иллюзии отступают...", 5000);
- html = "illusion_shadow_success.htm";
- }
- else
- {
- showScreenMessage(player, "Тень поглотила твой образ. Но это лишь сон...", 5000);
- html = "illusion_shadow_fail.htm";
- }
- }
- }
- // -------------------------
- // ФИНАЛ – ПОЛУЧЕНИЕ НАГРАДЫ И ВЫХОД
- // -------------------------
- else if (event.equals("finish_quest") && (npc.getId() == ILLUSION_VOICE))
- {
- if (qs.isCond(6))
- {
- // Выдаём награду один раз
- if (!qs.isCompleted())
- {
- giveItems(player, REWARD_ECHO_OF_DREAMS, 1);
- giveItems(player, SCROLL_AWAKENING, 1); // Свиток выхода, если хочешь
- addExpAndSp(player, 5_000_000, 5_000); // Подгони под свой сервер
- }
- qs.exitQuest(false, true);
- showScreenMessage(player, "Ты пробуждаешься от снов Острова Грёз...", 5000);
- html = "illusion_voice_finish.htm";
- }
- }
-
- return html;
- }
-
- @Override
- public String onTalk(Npc npc, Player player)
- {
- String html = getNoQuestMsg(player);
- final QuestState qs = getQuestState(player, true);
-
- switch (npc.getId())
- {
- case ILLUSION_VOICE:
- {
- if (qs.isCreated())
- {
- html = "illusion_voice_start.htm"; // Приглашение начать испытания
- }
- else if (qs.isStarted())
- {
- if (qs.isCond(1))
- {
- html = "illusion_voice_cond1.htm"; // Напоминание про выбор
- }
- else if (qs.isCond(6))
- {
- html = "illusion_voice_ready_finish.htm"; // Готов завершить
- }
- else
- {
- html = "illusion_voice_inprogress.htm"; // Общий текст в процессе
- }
- }
- else if (qs.isCompleted())
- {
- html = "illusion_voice_completed.htm";
- }
- break;
- }
- case ILLUSION_MEMORY:
- {
- if (qs.isStarted() && qs.isCond(2))
- {
- html = "illusion_memory_start.htm";
- }
- else
- {
- html = "illusion_generic_no.htm";
- }
- break;
- }
- case ILLUSION_PATH:
- {
- if (qs.isStarted() && qs.isCond(3))
- {
- html = "illusion_path_start.htm";
- }
- else
- {
- html = "illusion_generic_no.htm";
- }
- break;
- }
- case ILLUSION_GATE:
- {
- if (qs.isStarted() && qs.isCond(4))
- {
- html = "illusion_gate_start.htm";
- }
- else
- {
- html = "illusion_generic_no.htm";
- }
- break;
- }
- case ILLUSION_SHADOW:
- {
- if (qs.isStarted() && qs.isCond(5))
- {
- html = "illusion_shadow_start.htm";
- }
- else
- {
- html = "illusion_generic_no.htm";
- }
- break;
- }
- }
- return html;
- }
-
- private void showScreenMessage(Player player, String text, int time)
- {
- // Небольшая утилита, чтобы не копипастить пакеты по квесту.
- player.sendPacket(new ExShowScreenMessage(text, time));
- }
-
- public static void main(String[] args)
- {
- new Q93001_IllusionOfDreams();
- }
-
- // -------------------------
- // Пример, как потом можно будет завязать выбор на фракции АСТРЫ
- // -------------------------
- /*
- private int getCorrectChoiceByFaction(AstraFaction faction)
- {
- switch (faction)
- {
- case CHAOS:
- return 1;
- case LIGHT:
- return 3;
- case DARK:
- return 2;
- }
- return 3;
- }
- */
- }
Скопировать код 🧾 Что тебе ещё нужно будет сделатьПримеры имён, которые я использовала в коде: illusion_voice_start.htm – старт диалога с кнопкой bypass -h Quest Q93001_IllusionOfDreams start_quest illusion_voice_choice_success.htm / illusion_voice_choice_fail.htm illusion_memory_start.htm, illusion_memory_success.htm, illusion_memory_fail.htm illusion_path_start.htm, illusion_path_success.htm, illusion_path_fail.htm illusion_gate_start.htm, illusion_gate_success.htm, illusion_gate_fail.htm illusion_shadow_start.htm, illusion_shadow_success.htm, illusion_shadow_fail.htm illusion_voice_finish.htm, illusion_voice_ready_finish.htm, illusion_voice_completed.htm illusion_generic_no.htm – заглушка «ты ещё не дошёл до этой части иллюзий»
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams choice_1">Ищу выход</Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams choice_2">Ищу силу</Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams choice_3">Ищу истину</Button>
Скопировать код3. NPC вписать в npc.xml и спавн на Острове Грёз. 4. Когда захочешь – доработаем: генерацию последовательностей для памяти, завязку правильных ответов на CHAOS/LIGHT/DARK, триггеры по зонам для пути и дверей.
Ниже — готовые HTML-файлы под те имена, которые уже используются в Java. illusion_voice_start.htmПервый разговор с Голосом Иллюзии, предложение начать квест.
- <html><body>
- Голос Иллюзии:<br>
- ...Слышишь? Это не шаги, это эхо твоих собственных мыслей.<br>
- Ты пришёл на Остров Грёз, где всё вокруг — лишь отражения того, что у тебя внутри.<br>
- <br>
- Хочешь пройти испытания иллюзий и найти выход из этого места?<br>
- <br>
- <!-- EN:
- Voice of Illusion:
- ...Do you hear it? These are not footsteps, but echoes of your own thoughts.
- You have come to the Isle of Dreams, where everything around you is just a reflection of what is inside you.
- Do you want to face the trials of illusions and find a way out of this place?
- -->
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams start_quest">
- Начать испытания Острова Грёз
- </Button>
- <Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">
- Я ещё не готов
- </Button>
- </body></html>
Скопировать код illusion_voice_start_ok.htmОтвет после нажатия «start_quest» - <html><body>
- Голос Иллюзии:<br>
- Тогда запомни простую вещь: здесь не убивают тело — здесь проверяют голову.<br>
- Каждая ошибка вернёт тебя назад, но не убьёт.<br>
- <br>
- Первое испытание простое: скажи, чего ты на самом деле ищешь.<br>
- <br>
- Иди вперёд и слушай, что ответишь сам себе.<br>
- <!-- EN: Then remember: nothing here kills your body — only tests your mind. -->
- </body></html>
Скопировать код illusion_voice_cond1.htm
Игрок уже начал квест, но ещё не прошёл первое испытание. - <html><body>
- Голос Иллюзии:<br>
- Ты всё ещё на пороге. Остров ждёт, когда ты сделаешь первый осознанный выбор.<br>
- Подойди ближе и ответь: чего ты ищешь в этих снах?<br>
- <br>
- <!-- EN: You are still at the threshold. The Island is waiting for your first conscious choice. -->
- </body></html>
Скопировать код illusion_voice_inprogress.htm
Квест идёт, но ещё не финал, и игрок не на cond=1 и не на cond=6. - <html><body>
- Голос Иллюзии:<br>
- Иллюзии уже играют с тобой. Не спеши просыпаться — сначала разберись, кто здесь главнее: они или ты.<br>
- <br>
- Продолжай свои испытания. Этот сон ещё не закончен.<br>
- <!-- EN: Illusions are already playing with you. Don't rush to wake up — finish the trials first. -->
- </body></html>
Скопировать код
illusion_voice_ready_finish.htmИгрок прошёл все 5 испытаний (cond=6), но ещё не нажал «finish_quest».
- <html><body>
- Голос Иллюзии:<br>
- Ты прошёл все пять испытаний, и Остров Грёз больше не может удерживать тебя.<br>
- <br>
- Хочешь проснуться — или остаться здесь ещё немного и притвориться, что это реальность?<br>
- <br>
- <!-- EN: You have passed all five trials. Do you want to wake up or stay in this dream a little longer? -->
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams finish_quest">
- Пробудиться и получить награду
- </Button>
- <Button ALIGN=LEFT ICON="RETURN" action="bypass -h npc_%objectId%_Chat 0">
- Останусь ещё немного
- </Button>
- </body></html>
Скопировать код illusion_voice_finish.htmФинальный текст после выдачи награды. - <html><body>
- Голос Иллюзии:<br>
- Сон отпускает. Иллюзии больше не цепляются за твоё сознание.<br>
- То, что ты увидел здесь, — всего лишь отражение, но выводы ты сделаешь уже наяву.<br>
- <br>
- Если когда-нибудь вновь захочешь испытать себя — Остров Грёз запомнит тебя.<br>
- <!-- EN: The dream releases you. What you saw here was only a reflection, but conclusions you will make in the real world. -->
- </body></html>
Скопировать код illusion_voice_choice_success.htm
Успешный выбор в первом испытании (choice_3). - <html><body>
- Голос Иллюзии:<br>
- Выход? Сила? Ты серьёзно?<br>
- <br>
- На Острове Грёз такие ответы чаще всего ведут по кругу.<br>
- Попробуй ещё раз — но в этот раз подумай, а не просто нажми.<br>
- <!-- EN: Such answers usually lead in circles. Try again, but think this time. -->
- </body></html>
Скопировать код illusion_voice_completed.htm
Если игрок повторно разговаривает после завершённого квеста. - <html><body>
- Голос Иллюзии:<br>
- Мы уже видели твой сон.<br>
- Остров Грёз помнит тебя, даже если ты сам делаешь вид, что забыл.<br>
- <br>
- Возвращайся, если захочешь ещё раз пройти через свои иллюзии.<br>
- <!-- EN: The Island remembers you. Come back if you want to walk through your illusions again. -->
- </body></html>
Скопировать код Блок 2. Образ Памяти (Испытание 2)
illusion_memory_start.htm
- <html><body>
- Образ Памяти:<br>
- Память — первая вещь, которую пожирают иллюзии.<br>
- Я покажу тебе несколько образов. Запомни их порядок.<br>
- <br>
- <font color="LEVEL">Пламя.</font><br>
- <font color="LEVEL">Сны.</font><br>
- <font color="LEVEL">Тени.</font><br>
- <font color="LEVEL">Пепел.</font><br>
- <br>
- Теперь скажи: <font color="LEVEL">какое слово было вторым?</font><br>
- <br>
- <!-- EN: Flame – Dreams – Shadows – Ash. Which word was second? -->
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams memory_answer_1">
- «Пламя»
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams memory_answer_2">
- «Сны»
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams memory_answer_3">
- «Тени»
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams memory_answer_4">
- «Пепел»
- </Button>
- </body></html>
Скопировать код (В коде правильный ответ сейчас 2 — «Сны».)
illusion_memory_success.htm
- <html><body>
- Образ Памяти:<br>
- Вот так всё и начинается: сначала путаются слова, потом — решения.<br>
- <br>
- Не страшно. Это ещё сон, а не приговор.<br>
- Соберись и попробуй ещё раз.<br>
- <!-- EN: This is how it starts: first words get mixed, then choices. Try again. -->
- </body></html>
Скопировать код Блок 3. Иллюзия Пути (Испытание 3)illusion_path_start.htm
- <html><body>
- Иллюзия Пути:<br>
- Перед тобой — дорога, которой на самом деле нет.<br>
- Каждый шаг либо приблизит тебя к выходу, либо вернёт в начало.<br>
- <br>
- Смотри под ноги и доверься интуиции, а не привычке бежать по прямой.<br>
- Когда дойдёшь до конца, вернись ко мне — и я признаю твою победу.<br>
- <!-- EN: Every step either leads you forward or drops you back. Reach the end and return to me. -->
- </body></html>
Скопировать код illusion_path_success.htm
- <html><body>
- Иллюзия Пути:<br>
- Вот видишь — путь существовал только потому, что ты продолжал идти.<br>
- <br>
- Теперь тебя ждёт другое испытание — двери, за которыми не всегда то, что кажется.<br>
- Ищущий дорогу уже сделал половину работы.<br>
- <!-- EN: The path existed only because you kept walking. Now go to the gates. -->
- </body></html>
Скопировать код illusion_path_fail.htm
- <html><body>
- Иллюзия Пути:<br>
- Пустота под ногами — лучший аргумент в пользу того, что ты поспешил.<br>
- <br>
- Остров не злой — он просто честно показывает, куда ведёт невнимательность.<br>
- Подумай и попробуй снова.<br>
- <!-- EN: The void under your feet is proof you rushed. Think and try again. -->
- </body></html>
Скопировать код Блок 4. Страж Дверей (Испытание 4)illusion_gate_start.htm
- <html><body>
- Страж Дверей:<br>
- Три двери. Три выхода. Три варианта ошибиться.<br>
- <br>
- За одной дверью — следующий шаг сна.<br>
- За двумя другими — круг по этому же месту.<br>
- <br>
- Выбирай:<br>
- <!-- EN: Three doors. One leads forward, two send you in circles. -->
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams gate_choice_1">
- Войти в левую дверь
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams gate_choice_2">
- Войти в среднюю дверь
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams gate_choice_3">
- Войти в правую дверь
- </Button>
- </body></html>
Скопировать код (Сейчас в коде правильная — 1 / левая.)
illusion_gate_success.htm
- <html><body>
- Страж Дверей:<br>
- Редко кто с первого раза выбирает ту дверь, которая действительно ведёт дальше.<br>
- <br>
- Запомни: чаще всего правильный путь выглядит не самым привлекательным.<br>
- Иди, тебя ждут твои собственные тени.<br>
- <!-- EN: You chose the door that truly leads forward. Now, face your own shadows. -->
- </body></html>
Скопировать код illusion_gate_fail.htm
- <html><body>
- Страж Дверей:<br>
- Ну что, поддался на красивую иллюзию?<br>
- <br>
- Ничего страшного. Здесь максимум — круг по Острову Грёз, а не конец света.<br>
- Возвращайся и попробуй ещё раз.<br>
- <!-- EN: You fell for a pretty illusion. Come back and try another door. -->
- </body></html>
Скопировать код Блок 5. Тень Сновидения (Испытание 5)illusion_shadow_start.htm
- <html><body>
- Тень Сновидения:<br>
- Вот тут начинается самое интересное.<br>
- <br>
- Вокруг тебя — образы, похожие на тебя самого.<br>
- Они знают твои жесты, твои привычки, даже твои ошибки.<br>
- <br>
- Найди среди них того, кто действительно похож на <font color="LEVEL">тебя</font>, а не на то, каким ты притворяешься.<br>
- <!-- EN: Around you are reflections that look like you. Find the one that is truly you. -->
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams shadow_choice_1">
- Осмотреть первую тень
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams shadow_choice_2">
- Осмотреть вторую тень
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams shadow_choice_3">
- Осмотреть третью тень
- </Button>
- <Button ALIGN=LEFT ICON="NORMAL" action="bypass -h Quest Q93001_IllusionOfDreams shadow_choice_4">
- Осмотреть четвёртую тень
- </Button>
- </body></html>
Скопировать код(В коде правильная — 2.) illusion_shadow_success.htm
- <html><body>
- Тень Сновидения:<br>
- Ты узнал себя, даже когда вокруг были более удобные и красивые варианты.<br>
- <br>
- Иллюзии больше не могут удерживать тебя здесь.<br>
- Возвращайся к Голосу Иллюзии — он покажет выход из этого сна.<br>
- <!-- EN: You recognized yourself among the shadows. Return to the Voice of Illusion. -->
- </body></html>
Скопировать код illusion_shadow_fail.htm
- <html><body>
- Тень Сновидения:<br>
- Вот так люди и теряются — выбирают того, кем проще быть, а не того, кто они есть.<br>
- <br>
- Хорошая новость: здесь за это не наказывают, здесь просто отправляют на второй круг.<br>
- Попробуй ещё раз.<br>
- <!-- EN: You chose the easier version of yourself. Try again. -->
- </body></html>
Скопировать код Общая заглушкаillusion_generic_no.htm
- <html><body>
- Иллюзия:<br>
- Ты ещё не дошёл до этой части сна.<br>
- <br>
- Вернись к тем испытаниям, которые уже ждут тебя.<br>
- <!-- EN: You haven't reached this part of the dream yet. -->
- </body></html>
Скопировать код GPT
https://chatgpt.com/g/g-p-689b22 ... b-baee-94567e60f62f
|