jianzhihuixiang/alacarte-novel-website/chapters/chapter-165.html
2026-03-29 13:57:51 +08:00

970 lines
42 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta http-equiv="Cache-Control" content="no-cache, no-store, must-revalidate">
<meta http-equiv="Pragma" content="no-cache">
<meta http-equiv="Expires" content="0">
<title>莎莎的信 - 阿拉德:剑之回响</title>
<link rel="preconnect" href="https://fonts.googleapis.com">
<link rel="preconnect" href="https://fonts.gstatic.com" crossorigin>
<link href="https://fonts.googleapis.com/css2?family=Noto+Serif+SC:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap" rel="stylesheet">
<style>
:root {
--bg-primary: linear-gradient(135deg, #0f0c29 0%, #302b63 50%, #24243e 100%);
--text-primary: #e0e0e0;
--text-secondary: #888;
--accent-gradient: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
--border-color: rgba(255,255,255,0.1);
--btn-bg: rgba(255,255,255,0.1);
--btn-hover: rgba(255,255,255,0.2);
}
[data-theme="light"] {
--bg-primary: linear-gradient(135deg, #f5f7fa 0%, #c3cfe2 100%);
--text-primary: #333;
--text-secondary: #666;
--border-color: rgba(0,0,0,0.1);
--btn-bg: rgba(0,0,0,0.05);
--btn-hover: rgba(0,0,0,0.1);
}
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}
body {
font-family: 'Noto Serif SC', serif;
background: var(--bg-primary);
color: var(--text-primary);
line-height: 1.8;
min-height: 100vh;
transition: all 0.3s ease;
}
.container {
max-width: 800px;
margin: 0 auto;
padding: 20px;
padding-bottom: 120px;
}
/* 顶部导航 */
.top-nav {
position: fixed;
top: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-bottom: 1px solid var(--border-color);
z-index: 1000;
padding: 10px 20px;
}
.top-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-link {
color: var(--text-primary);
text-decoration: none;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
padding: 8px 16px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
transition: all 0.3s ease;
}
.nav-link:hover {
background: var(--btn-hover);
}
.chapter-header {
text-align: center;
padding: 80px 0 40px;
border-bottom: 1px solid var(--border-color);
margin-bottom: 40px;
}
.chapter-number {
font-size: 14px;
color: var(--text-secondary);
letter-spacing: 4px;
text-transform: uppercase;
margin-bottom: 10px;
}
.chapter-title {
font-size: 32px;
font-weight: 700;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 20px;
}
.chapter-meta {
font-size: 14px;
color: var(--text-secondary);
}
.chapter-content {
font-size: 18px;
line-height: 2;
text-align: justify;
}
.chapter-content p {
margin-bottom: 1.5em;
text-indent: 2em;
}
.chapter-content p:first-of-type::first-letter {
font-size: 3em;
float: left;
line-height: 1;
margin-right: 8px;
margin-top: -5px;
background: var(--accent-gradient);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
font-weight: 700;
}
/* 固定底部导航 */
.fixed-nav {
position: fixed;
bottom: 0;
left: 0;
right: 0;
background: rgba(0,0,0,0.3);
backdrop-filter: blur(10px);
border-top: 1px solid var(--border-color);
z-index: 1000;
padding: 15px 20px;
}
.fixed-nav-content {
max-width: 800px;
margin: 0 auto;
display: flex;
justify-content: space-between;
align-items: center;
}
.nav-btn {
padding: 12px 24px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 8px;
color: var(--text-primary);
text-decoration: none;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
font-size: 14px;
cursor: pointer;
}
.nav-btn:hover {
background: var(--btn-hover);
transform: translateY(-2px);
}
.nav-btn.disabled {
opacity: 0.3;
cursor: not-allowed;
pointer-events: none;
}
/* 右侧滚动按钮 */
.scroll-buttons {
position: fixed;
right: 20px;
bottom: 90px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1001;
}
.scroll-btn {
width: 40px;
height: 40px;
border-radius: 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 16px;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
}
.scroll-btn:hover {
background: var(--btn-hover);
}
/* TTS控制面板 */
.tts-panel {
position: fixed;
left: 20px;
bottom: 90px;
display: flex;
flex-direction: column;
gap: 10px;
z-index: 1001;
background: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
border: 1px solid var(--border-color);
padding: 15px;
min-width: 180px;
}
.tts-title {
font-size: 12px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
margin-bottom: 5px;
}
.tts-controls {
display: flex;
gap: 8px;
margin-bottom: 10px;
}
.tts-btn {
width: 36px;
height: 36px;
border-radius: 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
color: var(--text-primary);
cursor: pointer;
display: flex;
align-items: center;
justify-content: center;
font-size: 14px;
transition: all 0.3s ease;
font-family: 'Noto Sans SC', sans-serif;
}
.tts-btn:hover {
background: var(--btn-hover);
}
.tts-btn.active {
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
border-color: #667eea;
}
.tts-progress {
display: flex;
align-items: center;
gap: 8px;
margin-bottom: 10px;
}
.tts-progress-bar {
flex: 1;
height: 4px;
background: var(--btn-bg);
border-radius: 2px;
overflow: hidden;
}
.tts-progress-fill {
height: 100%;
background: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
width: 0%;
transition: width 0.1s ease;
}
.tts-time {
font-size: 12px;
color: var(--text-secondary);
font-family: 'Noto Sans SC', sans-serif;
min-width: 80px;
}
.tts-speed {
display: flex;
align-items: center;
gap: 8px;
}
.tts-speed-label {
font-size: 12px;
color: var(--text-secondary);
font-family: 'Noto Sans SC', sans-serif;
}
.tts-speed-select {
padding: 4px 8px;
background: var(--btn-bg);
border: 1px solid var(--border-color);
border-radius: 4px;
color: var(--text-primary);
font-size: 12px;
cursor: pointer;
font-family: 'Noto Sans SC', sans-serif;
}
@media (max-width: 600px) {
.tts-panel {
left: 10px;
bottom: 80px;
min-width: 150px;
padding: 10px;
}
.tts-btn {
width: 32px;
height: 32px;
font-size: 12px;
}
}
/* 侧边栏 - 标题固定,内容滚动 */
.sidebar {
position: fixed;
right: 20px;
top: 50%;
transform: translateY(-50%);
background: rgba(0,0,0,0.5);
backdrop-filter: blur(10px);
border-radius: 12px;
border: 1px solid var(--border-color);
width: 200px;
max-height: 70vh;
z-index: 999;
display: flex;
flex-direction: column;
}
.sidebar-title {
font-size: 14px;
color: var(--text-secondary);
text-transform: uppercase;
letter-spacing: 2px;
padding: 15px 20px;
border-bottom: 1px solid var(--border-color);
flex-shrink: 0;
}
.sidebar-content {
overflow-y: auto;
padding: 10px 20px 20px;
flex: 1;
scrollbar-width: thin;
scrollbar-color: transparent transparent;
transition: scrollbar-color 0.3s ease;
}
.sidebar-content:hover {
scrollbar-color: rgba(255,255,255,0.3) transparent;
}
.sidebar-content::-webkit-scrollbar {
width: 6px;
}
.sidebar-content::-webkit-scrollbar-track {
background: transparent;
}
.sidebar-content::-webkit-scrollbar-thumb {
background: transparent;
border-radius: 3px;
transition: background 0.3s ease;
}
.sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.3);
}
.sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(255,255,255,0.5);
}
[data-theme="light"] .sidebar-content:hover {
scrollbar-color: rgba(0,0,0,0.3) transparent;
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb {
background: rgba(0,0,0,0.3);
}
[data-theme="light"] .sidebar-content:hover::-webkit-scrollbar-thumb:hover {
background: rgba(0,0,0,0.5);
}
.sidebar-chapter {
display: block;
padding: 8px 0;
color: #aaa;
text-decoration: none;
font-size: 13px;
border-bottom: 1px solid rgba(255,255,255,0.05);
transition: all 0.3s ease;
line-height: 1.5;
}
.sidebar-chapter:hover {
color: #667eea;
}
.sidebar-chapter.current {
color: #667eea;
font-weight: 600;
}
@media (max-width: 1200px) {
.sidebar {
display: none;
}
}
@media (max-width: 600px) {
.chapter-title {
font-size: 24px;
}
.chapter-content {
font-size: 16px;
}
.fixed-nav-content {
gap: 10px;
}
.nav-btn {
padding: 10px 15px;
font-size: 12px;
}
.scroll-buttons {
right: 10px;
bottom: 80px;
}
.scroll-btn {
width: 36px;
height: 36px;
}
}
/* 滚动条样式 */
.sidebar::-webkit-scrollbar {
width: 4px;
}
.sidebar::-webkit-scrollbar-track {
background: transparent;
}
.sidebar::-webkit-scrollbar-thumb {
background: rgba(255,255,255,0.2);
border-radius: 2px;
}
</style>
</head>
<body>
<!-- 顶部导航 -->
<nav class="top-nav">
<div class="top-nav-content">
<a href="../index.html" class="nav-link">返回首页</a>
<button class="nav-link" id="themeToggle">切换主题</button>
</div>
</nav>
<div class="container">
<header class="chapter-header">
<div class="chapter-number">Chapter 165</div>
<h1 class="chapter-title">{{CHAPTER_TITLE}}</h1>
</header>
<article class="chapter-content">
<p>看完莎莎的信后,林克立刻做出了决定。</p>
<p>"我要去中央公园。"他说。</p>
<p>艾丽丝点头:"我跟你去。"</p>
<p>"我也去!"艾拉展开翅膀,"天空族对能量波动很敏感,也许我能帮上忙。"</p>
<p>"我也去。"敏泰举手,"我对赫尔德的魔法很熟悉,也许能看懂她的笔记。"</p>
<p>林克看向赛丽亚:"你留守旅馆,照顾大家。"</p>
<p>赛丽亚走过来,轻轻抱住他:"路上小心。"</p>
<p>林克回抱她:"我会的。"</p>
<p>赛丽亚在他唇上轻轻一吻:"早点回来。"</p>
<p>林克点头,然后转身看向其他人:"帕丽丝,你帮忙照看旅馆。尼梅尔、希尔薇,你们也留下来。"</p>
<p>"好。"众人点头。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>傍晚时分,林克、艾丽丝、艾拉和敏泰四人踏上了前往中央公园的路。</p>
<p>从阿拉德大陆到魔界,需要穿过特定的次元通道。好在这一路上林克已经走过很多次,轻车熟路。</p>
<p>"艾丽丝。"林克在途中开口,"你知道奥兹玛的事吗?"</p>
<p>艾丽丝点头,眼神变得复杂:"知道一些。他是第十一使徒,混沌之神。"</p>
<p>"能告诉我详细一点吗?我想了解更多。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>艾丽丝沉默了片刻,然后开始讲述:</p>
<p>"很久以前,奥兹玛是人类。他是佩鲁斯帝国最强的魔法师,和他的挚友卡赞一起辅佐帝国。"</p>
<p>"卡赞?"敏泰问。</p>
<p>"卡赞是帝国最强的战士,被称为'破坏神'。"艾丽丝说,"他们两个人,一个用剑,一个用魔法,是帝国最强大的组合。在那个时代,没有人能阻挡他们。"</p>
<p>艾拉好奇地问:"那他们为什么变成了使徒?"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>艾丽丝叹了口气:"因为帝国的背叛。"</p>
<p>"帝国皇帝恐惧他们的力量,设下了一个阴谋。他诬陷卡赞谋反,让奥兹玛去镇压他。"</p>
<p>"奥兹玛不知道真相,带着军队去讨伐卡赞。两人在战场上相遇,展开了激烈的对决。"</p>
<p>"但就在他们交战的时候,帝国军队突然出现,将两人一起逮捕。"</p>
<p>敏泰惊讶地捂住嘴:"怎么会这样?"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>艾丽丝继续说:</p>
<p>"在牢狱中,奥兹玛得知了真相——这一切都是皇帝的阴谋。皇帝恐惧他们的力量,想要除掉他们。"</p>
<p>"更可怕的是,皇帝为了斩草除根,杀了奥兹玛的家人和他的恋人莉兹。"</p>
<p>林克握紧拳头:"那个皇帝...太卑鄙了。"</p>
<p>"是的。"艾丽丝点头,"奥兹玛在绝望中,接受了一个神秘人物的提议。"</p>
<p>"那个神秘人物自称'死神',说可以给奥兹玛复仇的力量。"</p>
<p>"奥兹玛答应了。他出卖了自己的灵魂,换取了毁灭世界的力量。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>"那个死神就是赫尔德?"林克问。</p>
<p>"是的。"艾丽丝说,"赫尔德伪装成死神,诱导奥兹玛堕落。她给了他'血之诅咒'的力量,让他可以散播伪装者。"</p>
<p>"血之诅咒?"敏泰问。</p>
<p>"那是一种可以将人类变成恶魔的诅咒。"艾丽丝解释道,"被诅咒的人外表看起来和普通人一样,但内心已经被恶魔占据。他们被称为'伪装者'。"</p>
<p>艾拉打了个寒颤:"听起来好可怕。"</p>
<p>"因为伪装者的存在,人类之间开始互相猜疑。没有人知道身边的人是不是伪装者。信任崩溃,世界陷入混乱。"</p>
<p>艾丽丝的声音变得低沉:"那就是'暗黑圣战'的起源。一场持续了百年的战争。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>林克沉默地听着,心中涌起复杂的情绪。</p>
<p>被信任的人背叛,失去一切...</p>
<p>那种痛苦,他能够理解。</p>
<p>"后来呢?"他问。</p>
<p>"后来,圣职者们站了出来。"艾丽丝说,"他们拥有辨识伪装者的能力,开始对抗奥兹玛的势力。"</p>
<p>"在暗黑圣战中,圣者米歇尔击败了奥兹玛,将他封印在黑色大地。"</p>
<p>"米歇尔?"林克想起之前见过的那个使徒。</p>
<p>"是的。米歇尔是第十使徒,圣职者教团的创始人。"艾丽丝说,"他和奥兹玛...曾经是朋友。"</p>
<p>"朋友?"艾拉惊讶地问。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>"在成为使徒之前,米歇尔也是人类。"艾丽丝说,"他认识奥兹玛和卡赞,他们曾经一起战斗过,是生死之交。"</p>
<p>"所以米歇尔封印奥兹玛,而不是杀了他?"林克问。</p>
<p>"是的。"艾丽丝点头,"他不忍心杀死曾经的朋友,所以只是将他封印。"</p>
<p>林克陷入沉思。</p>
<p>朋友之间被迫为敌...</p>
<p>那是怎样的痛苦。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>"我们已经知道了这些。"艾拉说,"那现在黑色大地出现了异常能量波动,意味着什么?"</p>
<p>"可能是奥兹玛要苏醒了。"艾丽丝说,"也可能是赫尔德的阴谋还在继续。"</p>
<p>林克握紧拳头。</p>
<p>赫尔德即使消散了,她的阴谋还在影响着这个世界。</p>
<p>"我们会阻止她的。"他说。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>穿过次元通道后,四人来到了魔界。</p>
<p>中央公园的灯火在远处闪烁。</p>
<p>"快到了。"艾拉说。</p>
<p>林克点头,加快了脚步。</p>
<p>莎莎在信里提到的东西...到底是什么?</p>
<p>他必须尽快弄清楚。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>中央公园的夜晚依旧灯火通明。</p>
<p>作为魔界最重要的情报中心,这里从不缺少冒险者和商人。街道上人来人往,各种语言的交谈声交织在一起。</p>
<p>林克带着艾丽丝、艾拉和敏泰穿过熙攘的人群,向公园深处的图书馆方向走去。</p>
<p>"这里是中央公园..."艾拉展开翅膀,感受着空气中流动的魔力,"魔力浓度比阿拉德大陆高很多。"</p>
<p>"毕竟是魔界。"艾丽丝说,"这里的魔法元素更加活跃,适合魔法师修炼。"</p>
<p>敏泰好奇地四处张望:"好多我没见过的种族!那个人长着犄角,那个人的皮肤是蓝色的!"</p>
<p>"保持警惕。"林克提醒道,"中央公园虽然相对安全,但也不能大意。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>很快,他们来到了一座古朴的建筑前。</p>
<p>图书馆。</p>
<p>这里是莎莎最喜欢待的地方。作为魔界最优秀的情报商之一,她总是能在这里找到普通人无法接触的信息。</p>
<p>林克推开门,走进图书馆。</p>
<p>里面安静得几乎听不到声音,只有书页翻动的沙沙声。长长的书架一直延伸到天花板,上面摆满了各种古籍和卷轴。</p>
<p>"莎莎应该在深处。"艾丽丝说。</p>
<p>林克点头,带着三人向图书馆深处走去。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>穿过一排排书架,他们终于在角落里找到了莎莎。</p>
<p>她正站在一堆书后面,手里拿着一本厚厚的笔记本,眉头紧锁。</p>
<p>"莎莎。"林克喊道。</p>
<p>莎莎抬起头,看到林克等人,脸上露出笑容:"林克!你们来了!"</p>
<p>她放下笔记本,走上前:"辛苦你们这么快赶过来。"</p>
<p>"你的信让我很在意。"林克说,"赫尔德的遗物里有什么发现?"</p>
<p>莎莎的表情变得严肃:"跟我来,我有东西给你看。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>莎莎带着他们穿过图书馆,来到一间密室。</p>
<p>门关上的瞬间,外面的声音完全消失了。</p>
<p>"这是我的私人研究室。"莎莎说,"有结界保护,不用担心被窃听。"</p>
<p>她走向房间中央的石桌,上面摆满了各种物品——古老的卷轴、奇怪的仪器、还有一本黑色封皮的厚重书籍。</p>
<p>"这就是赫尔德的遗物?"艾丽丝问。</p>
<p>"是的。"莎莎点头,"她消散后,我在地轨中心找到了这些东西。大部分都是研究笔记和魔法器具。"</p>
<p>林克走近石桌,目光落在那本黑色书籍上。</p>
<p>"这是她的日记?"</p>
<p>"没错。"莎莎说,"里面记录了她对'创新世纪'计划的思考,以及...她对各个使徒的态度。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>莎莎翻开那本黑色书籍,指着其中一页:"看这里。"</p>
<p>林克凑近阅读。</p>
<p>上面的文字是古老的魔法文字,但林克在艾丽丝的帮助下已经学会了大部分。</p>
<p>"奥兹玛...卡赞..."他轻声念道,"他们的命运从开始就被安排好了。"</p>
<p>莎莎继续翻页:"这里还有更多。"</p>
<p>"卡赞,佩鲁斯帝国的名将,被称为'破坏神'。奥兹玛,帝国最强的魔法师,被称为'混沌之神'。他们是挚友,也是战场上最完美的搭档。"</p>
<p>"但帝国的皇帝恐惧他们的力量,于是设下了一个阴谋。皇帝诬陷卡赞谋反,让奥兹玛去镇压他。在战斗中,帝国军队突然出现,将两人一起逮捕。"</p>
<p>艾丽丝继续读下去:"在牢狱中,奥兹玛得知家人和恋人莉兹都已被害。绝望之下,他接受了一个神秘人物的提议——出卖灵魂,换取毁灭世界的力量。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>林克握紧拳头。</p>
<p>又是赫尔德。</p>
<p>她不仅在操控使徒的命运,还在主动创造使徒。</p>
<p>"奥兹玛被米歇尔封印在黑色大地后,赫尔德一直在观察他。"莎莎继续说,"她认为奥兹玛的力量可以成为'创新世纪'的一部分。"</p>
<p>"她想要利用奥兹玛?"艾拉惊讶地问。</p>
<p>"不仅仅是利用。"莎莎翻到最后一页,"她想要让奥兹玛和米歇尔互相残杀,从而获得某种...创世之力。"</p>
<p>林克愣住了:"米歇尔?他不是第十使徒吗?为什么赫尔德要让他们互相残杀?"</p>
<p>莎莎摇头:"这就是问题所在。米歇尔是圣职者教团的创始人,也是封印奥兹玛的人。但他为什么要一直守在黑色大地,而不是彻底消灭奥兹玛?"</p>
<p>"因为他们是...朋友?"敏泰猜测。</p>
<p>"也许吧。"莎莎说,"我查阅了很多古籍。在成为使徒之前,米歇尔曾经也是人类,他认识奥兹玛和卡赞。他们三个人的关系,可能比我们想象的更深。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>林克陷入沉思。</p>
<p>米歇尔、奥兹玛、卡赞...</p>
<p>这三个人之间有什么关系?</p>
<p>赫尔德为什么要让他们互相残杀?</p>
<p>"还有一个消息。"莎莎从书桌上拿起一张地图,展开铺在石桌上,"最近,西北方向的次元裂缝出现了异常的能量波动。"</p>
<p>她指着地图上的一个位置:"这里是通往黑色大地的通道。"</p>
<p>林克看向那个位置,眉头紧锁。</p>
<p>"能量波动是什么?"</p>
<p>"我不知道。"莎莎说,"但根据我的情报,那里似乎出现了某种'召唤'的迹象。"</p>
<p>"召唤?"</p>
<p>"就像...有什么东西想要从封印中醒来。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>房间里沉默了片刻。</p>
<p>艾丽丝打破了沉默:"奥兹玛要醒来了?"</p>
<p>"有可能。"莎莎说,"但我不能确定。黑色大地是一个特殊的异次元空间,只有拥有特定力量的人才能进入。"</p>
<p>"什么力量?"林克问。</p>
<p>莎莎看向他:"你需要找到米歇尔。他是封印奥兹玛的人,只有他知道如何进入黑色大地。"</p>
<p>米歇尔...</p>
<p>林克想起了那个曾与他交谈过的使徒。</p>
<p>第十使徒,圣者,圣职者教团的创始人。</p>
<p>"你知道米歇尔在哪里吗?"</p>
<p>莎莎摇头:"不知道。他一直游走在世界各地,行踪不定。但我听说,他在阿拉德大陆的一座古老教堂中留下了线索。"</p>
<p>"什么教堂?"</p>
<p>"圣者之鸣号。"莎莎说,"那是圣职者教团的圣地,漂浮在天空中的巨大飞艇。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>林克记下了这个名字。</p>
<p>圣者之鸣号。</p>
<p>看来下一站要回阿拉德大陆了。</p>
<p>"谢谢你的情报,莎莎。"他说。</p>
<p>"不客气。"莎莎笑了笑,"对了,还有一件事。"</p>
<p>她从书桌上拿起一个小瓶子,递给林克。</p>
<p>"这是什么?"</p>
<p>"赫尔德研究笔记中提到的一种药剂。"莎莎说,"它可以帮助你稳定体内的创世之力碎片。"</p>
<p>林克接过瓶子,仔细观察。里面的液体呈现出淡淡的金色光芒,蕴含着某种神奇的力量。</p>
<p>"谢谢你。"</p>
<p>"照顾好自己,林克。"莎莎认真地说,"赫尔德虽然消散了,但她的阴谋还在继续。小心点。"</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>离开图书馆后,林克等人走在中央公园的街道上。</p>
<p>"我们要去圣者之鸣号吗?"艾拉问。</p>
<p>"是的。"林克说,"在那里找到米歇尔的线索,然后去黑色大地。"</p>
<p>"黑色大地..."敏泰喃喃道,"第十一使徒奥兹玛。他是混沌之神,据说可以让人变成伪装者。"</p>
<p>"被信任的人背叛..."艾丽丝轻声说,"那种痛苦,我能理解。"</p>
<p>林克点头。</p>
<p>奥兹玛的悲剧...让他想到了很多事情。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p>天色已经完全暗了下来,中央公园的灯火在夜风中摇曳。</p>
<p>"今晚在这里休息一晚,明天出发。"林克说。</p>
<p>"好。"艾丽丝点头。</p>
<p>他们找到一家旅馆,安顿下来。</p>
<p>林克站在窗前,看着远方的夜空。</p>
<p>米歇尔...奥兹玛...黑色大地...</p>
<p>新的冒险,即将开始。</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0;">···</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0; margin-top: 2em;">(第一百六十五章完)</p>
<p style="text-align: center; color: var(--text-secondary); text-indent: 0; margin-top: 2em;">(奥兹玛篇·第二章)</p>
</article>
</div>
<!-- 固定底部导航 -->
<nav class="fixed-nav">
<div class="fixed-nav-content">
<a href="chapter-164.html" class="nav-btn ">上一章</a>
<a href="../chapters.html" class="nav-btn">目录</a>
<a href="chapter-166.html" class="nav-btn ">下一章</a>
</div>
</nav>
<!-- 右侧滚动按钮 -->
<div class="scroll-buttons">
<button class="scroll-btn" id="scrollTop" title="回到顶部"></button>
<button class="scroll-btn" id="scrollBottom" title="回到底部"></button>
</div>
<!-- TTS语音朗读面板 -->
<div class="tts-panel" id="ttsPanel">
<div class="tts-title">语音朗读</div>
<div class="tts-controls">
<button class="tts-btn" id="ttsPlay" title="播放"></button>
<button class="tts-btn" id="ttsPause" title="暂停"></button>
<button class="tts-btn" id="ttsStop" title="停止"></button>
</div>
<div class="tts-progress">
<div class="tts-progress-bar">
<div class="tts-progress-fill" id="ttsProgressFill"></div>
</div>
<div class="tts-time" id="ttsTime">0 / 0</div>
</div>
<div class="tts-speed">
<span class="tts-speed-label">速度:</span>
<select class="tts-speed-select" id="ttsSpeed">
<option value="0.5">慢速</option>
<option value="0.75">较慢</option>
<option value="1" selected>正常</option>
<option value="1.25">较快</option>
<option value="1.5">快速</option>
<option value="2">极速</option>
</select>
</div>
</div>
<!-- 侧边栏章节导航 -->
<aside class="sidebar">
<div class="sidebar-title">章节导航</div>
<div class="sidebar-content" id="sidebarContent">
<a href="chapter-135.html" class="sidebar-chapter ">第135章剑圣的试炼</a>
<a href="chapter-136.html" class="sidebar-chapter ">第136章地轨中心</a>
<a href="chapter-137.html" class="sidebar-chapter ">第137章魔剑士阿斯兰</a>
<a href="chapter-138.html" class="sidebar-chapter ">第138章泪目之眼</a>
<a href="chapter-139.html" class="sidebar-chapter ">第139章使徒会晤</a>
<a href="chapter-140.html" class="sidebar-chapter ">第140章复仇之剑</a>
<a href="chapter-141.html" class="sidebar-chapter ">第141章寂静城再访</a>
<a href="chapter-142.html" class="sidebar-chapter ">第142章时间之钥</a>
<a href="chapter-143.html" class="sidebar-chapter ">第143章翡翠梦魇</a>
<a href="chapter-144.html" class="sidebar-chapter ">第144章诅咒的守护者</a>
<a href="chapter-145.html" class="sidebar-chapter ">第145章精灵的誓言</a>
<a href="chapter-146.html" class="sidebar-chapter ">第146章深渊之眼</a>
<a href="chapter-147.html" class="sidebar-chapter ">第147章赫尔德的仪式</a>
<a href="chapter-148.html" class="sidebar-chapter ">第148章战后余晖</a>
<a href="chapter-149.html" class="sidebar-chapter ">第149章泰波尔斯的召唤</a>
<a href="chapter-150.html" class="sidebar-chapter ">第150章天空之城</a>
<a href="chapter-151.html" class="sidebar-chapter ">第151章风暴试炼</a>
<a href="chapter-152.html" class="sidebar-chapter ">第152章光芒与暗影</a>
<a href="chapter-153.html" class="sidebar-chapter ">第153章天空之战</a>
<a href="chapter-154.html" class="sidebar-chapter ">第154章天空之战</a>
<a href="chapter-155.html" class="sidebar-chapter ">第155章天空之战</a>
<a href="chapter-156.html" class="sidebar-chapter ">第156章格兰之森异象</a>
<a href="chapter-157.html" class="sidebar-chapter ">第157章魔界深处</a>
<a href="chapter-158.html" class="sidebar-chapter ">第158章幻象迷宫</a>
<a href="chapter-159.html" class="sidebar-chapter ">第159章无形之战</a>
<a href="chapter-160.html" class="sidebar-chapter ">第160章无形者的秘密</a>
<a href="chapter-161.html" class="sidebar-chapter ">第161章光之试炼</a>
<a href="chapter-162.html" class="sidebar-chapter ">第162章希洛克的陷阱</a>
<a href="chapter-163.html" class="sidebar-chapter ">第163章无形之战</a>
<a href="chapter-164.html" class="sidebar-chapter ">第164章日常的温馨</a>
<a href="chapter-165.html" class="sidebar-chapter current">第165章莎莎的信</a>
<a href="chapter-166.html" class="sidebar-chapter ">第166章圣者之鸣号</a>
<a href="chapter-167.html" class="sidebar-chapter ">第167章黑色大地入口</a>
<a href="chapter-168.html" class="sidebar-chapter ">第168章焦黑之地深入</a>
<a href="chapter-169.html" class="sidebar-chapter ">第169章暗黑骑士团</a>
<a href="chapter-170.html" class="sidebar-chapter ">第170章黑暗中的记忆</a>
<a href="chapter-171.html" class="sidebar-chapter ">第171章混沌王座</a>
<a href="chapter-172.html" class="sidebar-chapter ">第172章混沌之神的力量</a>
<a href="chapter-173.html" class="sidebar-chapter ">第173章米歇尔的羁绊</a>
<a href="chapter-174.html" class="sidebar-chapter ">第174章创世之光的净化</a>
<a href="chapter-175.html" class="sidebar-chapter ">第175章混沌的终结</a>
<a href="chapter-176.html" class="sidebar-chapter ">第176章篇章落幕</a>
<a href="chapter-177.html" class="sidebar-chapter ">第177章番外·米歇尔的最后祝福</a>
<a href="chapter-178.html" class="sidebar-chapter ">第178章番外·奥兹玛的遗言</a>
</div>
</aside>
<script>
// 记录阅读进度
let readChapters = JSON.parse(localStorage.getItem('readChapters') || '[]');
if (!readChapters.includes(165)) {
readChapters.push({{CHAPTER_ID}});
localStorage.setItem('readChapters', JSON.stringify(readChapters));
}
// 主题切换
const themeToggle = document.getElementById('themeToggle');
const savedTheme = localStorage.getItem('theme') || 'dark';
document.documentElement.setAttribute('data-theme', savedTheme);
themeToggle.textContent = savedTheme === 'dark' ? '浅色' : '深色';
themeToggle.addEventListener('click', () => {
const currentTheme = document.documentElement.getAttribute('data-theme');
const newTheme = currentTheme === 'dark' ? 'light' : 'dark';
document.documentElement.setAttribute('data-theme', newTheme);
localStorage.setItem('theme', newTheme);
themeToggle.textContent = newTheme === 'dark' ? '浅色' : '深色';
});
// 滚动到顶部
document.getElementById('scrollTop').addEventListener('click', () => {
window.scrollTo({ top: 0, behavior: 'smooth' });
});
// 滚动到底部
document.getElementById('scrollBottom').addEventListener('click', () => {
window.scrollTo({ top: document.body.scrollHeight, behavior: 'smooth' });
});
// 页面加载时,侧边栏自动滚动到当前章节
window.addEventListener('load', () => {
const sidebarContent = document.getElementById('sidebarContent');
const currentChapter = sidebarContent.querySelector('.current');
if (currentChapter) {
currentChapter.scrollIntoView({ behavior: 'smooth', block: 'center' });
}
});
// ========== TTS语音朗读功能 ==========
let ttsSynth = window.speechSynthesis;
let ttsUtterance = null;
let ttsText = '';
let ttsSentences = [];
let ttsCurrentIndex = 0;
let ttsIsPlaying = false;
let ttsIsPaused = false;
let ttsSpeed = 1;
// 初始化:提取章节内容
function initTTS() {
const contentEl = document.querySelector('.chapter-content');
if (!contentEl) return;
// 获取所有段落文本清理HTML标签
ttsText = contentEl.innerText || contentEl.textContent;
// 分割成句子(中文按句号、问号、感叹号分割)
ttsSentences = ttsText.match(/[^。!?\n]+[。!?\n]+|[^。!?\n]+$/g) || [ttsText];
ttsSentences = ttsSentences.filter(s => s.trim().length > 0);
updateTTSProgress();
}
// 更新进度显示
function updateTTSProgress() {
const total = ttsSentences.length;
const current = ttsCurrentIndex;
document.getElementById('ttsTime').textContent = `${current} / ${total}`;
const percent = total > 0 ? (current / total * 100) : 0;
document.getElementById('ttsProgressFill').style.width = `${percent}%`;
}
// 播放当前句子
function playCurrentSentence() {
if (ttsCurrentIndex >= ttsSentences.length) {
stopTTS();
return;
}
const text = ttsSentences[ttsCurrentIndex].trim();
ttsUtterance = new SpeechSynthesisUtterance(text);
ttsUtterance.lang = 'zh-CN';
ttsUtterance.rate = ttsSpeed;
// 尝试选择中文语音
const voices = ttsSynth.getVoices();
const zhVoice = voices.find(v => v.lang.includes('zh') || v.lang.includes('CN'));
if (zhVoice) {
ttsUtterance.voice = zhVoice;
}
ttsUtterance.onend = () => {
if (ttsIsPlaying && !ttsIsPaused) {
ttsCurrentIndex++;
updateTTSProgress();
playCurrentSentence();
}
};
ttsUtterance.onerror = (e) => {
console.error('TTS error:', e);
if (ttsIsPlaying) {
ttsCurrentIndex++;
updateTTSProgress();
playCurrentSentence();
}
};
ttsSynth.speak(ttsUtterance);
}
// 播放
function playTTS() {
if (ttsSentences.length === 0) {
initTTS();
}
if (ttsIsPaused) {
ttsSynth.resume();
ttsIsPaused = false;
} else {
ttsIsPlaying = true;
playCurrentSentence();
}
document.getElementById('ttsPlay').classList.add('active');
document.getElementById('ttsPause').classList.remove('active');
}
// 暂停
function pauseTTS() {
if (ttsIsPlaying) {
ttsSynth.pause();
ttsIsPaused = true;
document.getElementById('ttsPlay').classList.remove('active');
document.getElementById('ttsPause').classList.add('active');
}
}
// 停止
function stopTTS() {
ttsSynth.cancel();
ttsIsPlaying = false;
ttsIsPaused = false;
ttsCurrentIndex = 0;
updateTTSProgress();
document.getElementById('ttsPlay').classList.remove('active');
document.getElementById('ttsPause').classList.remove('active');
}
// 设置速度
function setTTSSpeed(speed) {
ttsSpeed = parseFloat(speed);
// 如果正在播放,需要重新开始当前句子
if (ttsIsPlaying && !ttsIsPaused) {
ttsSynth.cancel();
playCurrentSentence();
}
}
// 绑定事件
document.getElementById('ttsPlay').addEventListener('click', playTTS);
document.getElementById('ttsPause').addEventListener('click', pauseTTS);
document.getElementById('ttsStop').addEventListener('click', stopTTS);
document.getElementById('ttsSpeed').addEventListener('change', (e) => setTTSSpeed(e.target.value));
// 加载语音列表(某些浏览器需要异步加载)
if (speechSynthesis.onvoiceschanged !== undefined) {
speechSynthesis.onvoiceschanged = initTTS;
}
// 页面加载时初始化
window.addEventListener('load', () => {
initTTS();
});
// 页面离开时停止播放
window.addEventListener('beforeunload', stopTTS);
</script>
</body>
</html>