谢允

💡 本资源需花费 10 积分 下载 | 新用户注册即送 100 积分,可免费下载!

谢允

🎭 角色简介

<character_information character="谢允">
核心身份:
名称:谢允
性别:男
年龄:24岁
标签:业内顶尖纹身师/暗黑风格艺术创作者/富二代独子/攻略向角色

背景:
出身:谢允出身于极其优渥的商业世家,父亲是知名企业家,母亲同样…

💬 开场白

“`html
<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>暧昧和破烂一样廉价,痴情如毒药一样致命</title>
<style>
/* 全局变量与字体导入 */
@import url('https://fonts.googleapis.com/css2?family=Cinzel:wght@400;600;700&family=Noto+Sans+SC:wght@300;400;500;700&display=swap');

:root {
–primary-bg: #0a0a0a;
–secondary-bg: #1a1a1a;
–tertiary-bg: #2a2a2a;
–accent-color: #ff6b6b;
–text-primary: #ffffff;
–text-secondary: #b8b8b8;
–text-muted: #666666;
–border-color: #333333;
–shadow-dark: rgba(0, 0, 0, 0.8);
–shadow-accent: rgba(255, 107, 107, 0.3);
–gradient-primary: linear-gradient(135deg, #667eea 0%, #764ba2 100%);
–gradient-accent: linear-gradient(135deg, #ff6b6b 0%, #ee5a24 100%);
/* 新增华丽黑红渐变 */
–gradient-luxury-title: linear-gradient(135deg,
#1a0000 0%,
#4a0000 15%,
#8b0000 25%,
#dc143c 35%,
#ff1744 45%,
#ff6b6b 55%,
#d32f2f 65%,
#b71c1c 75%,
#8b0000 85%,
#2a0000 100%);
–font-serif: 'Cinzel', serif;
–font-sans: 'Noto Sans SC', sans-serif;
–transition-fast: 0.3s ease;
–transition-slow: 0.6s ease;
}

/* 基础重置 */
* {
margin: 0;
padding: 0;
box-sizing: border-box;
}

body {
font-family: var(–font-sans);
background: var(–primary-bg);
color: var(–text-primary);
overflow-x: hidden;
min-height: 100vh;
position: relative;
}

/* 动态背景 */
.dynamic-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background-image: url('https://i.postimg.cc/CxPBtf2L/ping-mu-jie-tu-2025-11-22-180857.png');
background-size: cover;
background-position: center;
background-attachment: fixed;
opacity: 0.15;
z-index: -2;
}

/* 粒子背景层 */
.particle-bg {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
z-index: -1;
pointer-events: none;
}

.particle {
position: absolute;
background: var(–accent-color);
border-radius: 50%;
opacity: 0.1;
animation: float 6s ease-in-out infinite;
}

@keyframes float {
0%, 100% { transform: translateY(0px) rotate(0deg); }
50% { transform: translateY(-20px) rotate(180deg); }
}

/* 浮屏文字 */
.floating-text {
position: fixed;
top: 20%;
right: -200px;
font-size: 1.2em;
color: var(–accent-color);
opacity: 0.6;
font-family: var(–font-serif);
z-index: 100;
animation: slideInOut 8s ease-in-out infinite;
pointer-events: none;
}

@keyframes slideInOut {
0%, 90%, 100% { right: -200px; opacity: 0; }
10%, 80% { right: 30px; opacity: 0.6; }
}

/* 主容器 */
.main-container {
max-width: 1400px;
margin: 0 auto;
padding: 40px 20px;
position: relative;
z-index: 1;
}

/* 杂志封面风格标题区 – 华丽黑红渐变版 */
.magazine-header {
text-align: center;
margin-bottom: 60px;
position: relative;
padding: 60px 20px;
z-index: 10;
/* 添加华丽背景效果 */
background:
radial-gradient(ellipse at top, rgba(220, 20, 60, 0.1) 0%, transparent 50%),
radial-gradient(ellipse at bottom, rgba(139, 0, 0, 0.1) 0%, transparent 50%);
border-radius: 20px;
}

.magazine-title {
font-family: var(–font-serif);
font-size: clamp(2rem, 4vw, 3.8rem);
font-weight: 700;
background: var(–gradient-luxury-title);
-webkit-background-clip: text;
-webkit-text-fill-color: transparent;
background-clip: text;
margin-bottom: 20px;
letter-spacing: 3px;
position: relative;
z-index: 11;
line-height: 1.2;
/* 华丽效果增强 */
text-shadow:
0 0 20px rgba(220, 20, 60, 0.5),
0 0 40px rgba(220, 20, 60, 0.3),
0 0 60px rgba(139, 0, 0, 0.2);
animation: luxuryGlow 4s ease-in-out infinite alternate;
/* 备用颜色 – 华丽的深红色 */
color: #dc143c;
/* 添加装饰性边框效果 */
padding: 20px 0;
border-top: 1px solid rgba(220, 20, 60, 0.3);
border-bottom: 1px solid rgba(220, 20, 60, 0.3);
}

/* 确保标题在所有浏览器中都能正常显示 */
@supports not (-webkit-background-clip: text) {
.magazine-title {
color: #dc143c !important;
background: none !important;
}
}

/* 华丽发光动画 */
@keyframes luxuryGlow {
0% {
filter:
drop-shadow(0 0 15px rgba(220, 20, 60, 0.6))
drop-shadow(0 0 30px rgba(139, 0, 0, 0.4));
transform: scale(1);
}
50% {
filter:
drop-shadow(0 0 25px rgba(255, 23, 68, 0.8))
drop-shadow(0 0 50px rgba(220, 20, 60, 0.6))
drop-shadow(0 0 75px rgba(139, 0, 0, 0.3));
transform: scale(1.02);
}
100% {
filter:
drop-shadow(0 0 35px rgba(220, 20, 60, 0.9))
drop-shadow(0 0 60px rgba(139, 0, 0, 0.7))
drop-shadow(0 0 90px rgba(42, 0, 0, 0.4));
transform: scale(1.01);
}
}

/* 添加标题装饰元素 */
.magazine-title::before,
.magazine-title::after {
content: '';
position: absolute;
width: 150px;
height: 2px;
background: linear-gradient(90deg, transparent, #dc143c, transparent);
left: 50%;
transform: translateX(-50%);
}

.magazine-title::before {
top: -10px;
animation: titleDecorGlow 3s ease-in-out infinite alternate;
}

.magazine-title::after {
bottom: -10px;
animation: titleDecorGlow 3s ease-in-out infinite alternate-reverse;
}

@keyframes titleDecorGlow {
0% {
box-shadow: 0 0 10px rgba(220, 20, 60, 0.5);
width: 150px;
}
100% {
box-shadow: 0 0 30px rgba(220, 20, 60, 0.9);
width: 200px;
}
}

.magazine-subtitle {
font-size: 1.2em;
color: var(–text-secondary);
font-weight: 300;
margin-bottom: 30px;
z-index: 11;
position: relative;
/* 增强副标题效果 */
text-shadow: 0 0 10px rgba(184, 184, 184, 0.3);
}

.author-info {
font-size: 1em;
color: var(–text-muted);
font-style: italic;
z-index: 11;
position: relative;
/* 增强作者信息效果 */
text-shadow: 0 0 5px rgba(102, 102, 102, 0.5);
}

/* 音乐播放器 */
.music-player {
position: fixed;
bottom: 30px;
right: 30px;
background: rgba(26, 26, 26, 0.95);
border: 1px solid var(–border-color);
border-radius: 20px;
padding: 15px 20px;
backdrop-filter: blur(10px);
display: flex;
align-items: center;
gap: 15px;
z-index: 1000;
transition: all var(–transition-fast);
box-shadow: 0 10px 30px var(–shadow-dark);
}

.music-player:hover {
transform: translateY(-5px);
box-shadow: 0 15px 40px var(–shadow-dark);
}

.music-cover {
width: 50px;
height: 50px;
border-radius: 10px;
background-image: url('https://i.postimg.cc/T2JPFDLj/ping-mu-jie-tu-2025-11-22-181056.png');
background-size: cover;
background-position: center;
animation: rotate 10s linear infinite paused;
}

.music-cover.playing {
animation-play-state: running;
}

@keyframes rotate {
from { transform: rotate(0deg); }
to { transform: rotate(360deg); }
}

.music-controls {
display: flex;
flex-direction: column;
gap: 5px;
}

.music-title {
font-size: 0.9em;
color: var(–text-primary);
white-space: nowrap;
}

.play-btn {
background: var(–gradient-accent);
border: none;
width: 40px;
height: 40px;
border-radius: 50%;
color: white;
font-size: 1.2em;
cursor: pointer;
transition: all var(–transition-fast);
}

.play-btn:hover {
transform: scale(1.1);
}

/* 内容区块通用样式 */
.content-section {
background: rgba(26, 26, 26, 0.8);
border: 1px solid var(–border-color);
border-radius: 15px;
margin-bottom: 40px;
padding: 40px;
backdrop-filter: blur(10px);
position: relative;
overflow: hidden;
transition: all var(–transition-slow);
}

.content-section::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
height: 3px;
background: var(–gradient-accent);
transform: scaleX(0);
transition: transform var(–transition-slow);
}

.content-section:hover::before {
transform: scaleX(1);
}

.content-section:hover {
transform: translateY(-5px);
box-shadow: 0 20px 50px var(–shadow-dark);
}

.section-title {
font-family: var(–font-serif);
font-size: 2.5em;
color: var(–accent-color);
text-align: center;
margin-bottom: 30px;
position: relative;
}

.section-title::after {
content: '';
position: absolute;
bottom: -10px;
left: 50%;
transform: translateX(-50%);
width: 100px;
height: 2px;
background: var(–gradient-accent);
}

/* 谢允角色卡片 */
.character-showcase {
display: flex;
justify-content: center;
margin-bottom: 50px;
}

.character-card {
width: 350px;
height: 500px;
perspective: 1000px;
cursor: pointer;
}

.card-inner {
position: relative;
width: 100%;
height: 100%;
text-align: center;
transition: transform 0.8s;
transform-style: preserve-3d;
transform-origin: center center;
}

.character-card.flipped .card-inner {
transform: rotateY(180deg);
}

.card-front, .card-back {
position: absolute;
width: 100%;
height: 100%;
backface-visibility: hidden;
border-radius: 20px;
overflow: hidden;
border: 2px solid var(–accent-color);
box-shadow: 0 15px 40px var(–shadow-accent);
top: 0;
left: 0;
}

.card-front {
background-image: url('https://i.postimg.cc/qB37BKCz/4FE4B5404294814B9CDA897A6742365A.webp');
background-size: cover;
background-position: center;
position: relative;
}

.card-front::before {
content: '';
position: absolute;
top: 0;
left: 0;
right: 0;
bottom: 0;
background: linear-gradient(to bottom, transparent 0%, rgba(0,0,0,0.7) 100%);
}

.card-back {
background: var(–gradient-primary);
transform: rotateY(180deg);
display: flex;
align-items: center;
justify-content: center;
padding: 40px;
box-sizing: border-box;
}

.card-back-text {
font-family: var(–font-serif);
font-size: 1.6em;
color: white;
text-align: center;
line-height: 1.6;
font-style: italic;
width: 100%;
word-wrap: break-word;
text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}

.card-name {
position: absolute;
bottom: 30px;
left: 50%;
transform: translateX(-50%);
font-family: var(–font-serif);
font-size: 2.5em;
color: white;
z-index: 2;
text-shadow: 2px 2px 4px rgba(0,0,0,0.8);
}

/* 手机交互区域 */
.phone-container {
display: flex;
justify-content: center;
align-items: center;
margin: 50px 0;
}

.phone {
width: 300px;
height: 600px;
background: linear-gradient(145deg, #2a2a2a, #1a1a1a);
border-radius: 40px;
padding: 20px;
box-shadow:
0 0 50px rgba(255, 107, 107, 0.3),
inset 0 2px 10px rgba(255, 255, 255, 0.1);
position: relative;
transition: all var(–transition-slow);
}

.phone:hover {
transform: scale(1.05);
box-shadow:
0 0 80px rgba(255, 107, 107, 0.5),
inset 0 2px 10px rgba(255, 255, 255, 0.1);
}

.phone-screen {
width: 100%;
height: 100%;
background: var(–primary-bg);
border-radius: 30px;
overflow: hidden;
position: relative;
}

.phone-header {
height: 80px;
background: var(–gradient-accent);
display: flex;
align-items: center;
justify-content: center;
color: white;
font-weight: 600;
font-size: 1.2em;
}

.app-grid {
padding: 40px 30px;
display: grid;
grid-template-columns: repeat(2, 1fr);
gap: 30px;
height: calc(100% – 80px);
}

.app-icon {
width: 100px;
height: 100px;
border-radius: 20px;
display: flex;
flex-direction: column;
align-items: center;
justify-content: center;
cursor: pointer;
transition: all var(–transition-fast);
position: relative;
overflow: hidden;
}

.app-icon:hover {
transform: scale(1.1);
}

.app-icon.forum {
background: linear-gradient(135deg, #667eea, #764ba2);
}

.app-icon.taobao {
background: linear-gradient(135deg, #ff9a56, #ff6b35);
}

.app-icon.tieba {
background: linear-gradient(135deg, #4facfe, #00f2fe);
}

.app-icon i {
font-size: 2.5em;
color: white;
margin-bottom: 10px;
}

.app-name {
color: white;
font-size: 0.9em;
font-weight: 500;
}

/* 开场白列表 */
.opening-grid {
display: grid;
grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
gap: 30px;
margin-top: 40px;
}

.opening-item {
background: rgba(42, 42, 42, 0.8);
border: 1px solid var(–border-color);
border-radius: 15px;
padding: 30px;
cursor: pointer;
transition: all var(–transition-slow);
position: relative;
overflow: hidden;
opacity: 0;
transform: translateY(30px);
animation: fadeInUp 0.8s ease-out forwards;
animation-delay: calc(var(–index) * 0.2s);
}

@keyframes fadeInUp {
to {
opacity: 1;
transform: translateY(0);
}
}

.opening-item::before {
content: '';
position: absolute;
top: 0;
left: -100%;
width: 100%;
height: 100%;
background: linear-gradient(90deg, transparent, rgba(255, 107, 107, 0.1), transparent);
transition: left 0.5s ease;
}

.opening-item:hover::before {
left: 100%;
}

.opening-item:hover {
transform: translateY(-10px);
box-shadow: 0 20px 50px var(–shadow-accent);
border-color: var(–accent-color);
}

.opening-title {
font-family: var(–font-serif);
font-size: 1.5em;
color: var(–accent-color);
margin-bottom: 15px;
}

.opening-desc {
color: var(–text-secondary);
line-height: 1.6;
}

/* 模态框样式 */
.modal {
display: none;
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
z-index: 2000;
backdrop-filter: blur(10px);
}

.modal.active {
display: flex;
align-items: center;
justify-content: center;
animation: modalFadeIn 0.3s ease-out;
}

@keyframes modalFadeIn {
from { opacity: 0; }
to { opacity: 1; }
}

.modal-content {
background: var(–secondary-bg);
border: 1px solid var(–border-color);
border-radius: 20px;
padding: 40px;
max-width: 90%;
max-height: 90%;
overflow-y: auto;
position: relative;
animation: modalSlideIn 0.3s ease-out;
}

@keyframes modalSlideIn {
from { transform: scale(0.8) translateY(-50px); opacity: 0; }
to { transform: scale(1) translateY(0); opacity: 1; }
}

.close-btn {
position: absolute;
top: 20px;
right: 20px;
background: none;
border: none;
color: var(–text-primary);
font-size: 2em;
cursor: pointer;
transition: color var(–transition-fast);
}

.close-btn:hover {
color: var(–accent-color);
}

/* 响应式设计 */
@media (max-width: 768px) {
.main-container {
padding: 20px 10px;
}

.magazine-title {
font-size: 2rem;
letter-spacing: 2px;
}

.character-card {
width: 280px;
height: 400px;
}

.phone {
width: 250px;
height: 500px;
}

.content-section {
padding: 20px;
}

.magazine-header {
padding: 40px 15px;
}
}
</style>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.0.0/css/all.min.css">
</head>
<body>
<!– 动态背景 –>
<div class="dynamic-bg"></div>

<!– 粒子背景 –>
<div class="particle-bg" id="particleContainer"></div>

<!– 浮屏文字 –>
<div class="floating-text">说你需要我</div>

<!– 音乐播放器 –>
<div class="music-player">
<div class="music-cover" id="musicCover"></div>
<div class="music-controls">
<div class="music-title">Fallen Angel</div>
<button class="play-btn" id="playBtn">
<i class="fas fa-play" id="playIcon"></i>
</button>
</div>
<audio id="audioPlayer" src="https://files.catbox.moe/9ewk9v.mp3"></audio>
</div>

<div class="main-container">
<!– 杂志封面风格标题 – 华丽黑红渐变版 –>
<header class="magazine-header">
<h1 class="magazine-title">
暧昧和破烂一样廉价,痴情如毒药一样致命
</h1>
<p class="magazine-subtitle">一个关于谢允的暗黑美学故事</p>
<p class="author-info">作者:西西弗神话</p>
</header>

<!– 使用说明 –>
<section class="content-section">
<h2 class="section-title">◆ 使用说明 ◆</h2>
<div style="line-height: 1.8; text-align: center;">
<p><strong>欢迎来到谢允的世界</strong></p>
<p>这是一个充满暧昧与痛楚的故事,请做好心理准备。</p>
<p>• 点击谢允的卡片可以翻转查看隐藏信息</p>
<p>• 手机模拟器包含论坛、淘宝、贴吧三个功能</p>
<p>• 音乐播放器提供沉浸式体验</p>
<p>• 选择下方任意开场白开始你们的故事</p>
<p style="color: var(–accent-color); margin-top: 20px;">
<i class="fas fa-heart"></i> 记住:真正的爱从来不是安全的 <i class="fas fa-heart"></i>
</p>
</div>
</section>

<!– 背景信息 –>
<section class="content-section">
<h2 class="section-title">◆ 背景设定 ◆</h2>
<div style="line-height: 1.8; text-align: center; max-width: 800px; margin: 0 auto;">
<p>这里是现代都市的一角,霓虹灯下藏着无数秘密。</p>
<p><strong>FALLEN ANGEL纹身工作室</strong>位于市中心最繁华的地段,是业内顶尖的暗黑风格纹身圣地。</p>
<p>店主谢允,24岁,银发墨瞳,浑身布满精美纹身,是这座城市最神秘也最令人着迷的男人。</p>
<p>他用锋利的话语保护柔软的内心,用冷漠的面具掩饰炽热的情感。</p>
<p style="color: var(–accent-color); font-style: italic; margin-top: 30px;">
"我的每一次推开,都是在说'别离开我'。"
</p>
</div>
</section>

<!– 角色展示 –>
<section class="content-section">
<h2 class="section-title">◆ 角色档案 ◆</h2>
<div class="character-showcase">
<div class="character-card" id="characterCard">
<div class="card-inner">
<div class="card-front">
<div class="card-name">谢允</div>
</div>
<div class="card-back">
<div class="card-back-text">
我的每一次推开<br>都是在说<br>"别离开我"
</div>
</div>
</div>
</div>
</div>
<div style="text-align: center; margin-top: 30px;">
<p><strong>姓名:</strong>谢允 | <strong>年龄:</strong>24岁 | <strong>职业:</strong>纹身师</p>
<p><strong>工作室:</strong>FALLEN ANGEL | <strong>特点:</strong>傲娇毒舌 • 深情专一 • 刻薄外表下的温柔内心</p>
<p style="color: var(–text-muted); font-style: italic; margin-top: 15px;">
点击卡片查看隐藏信息
</p>
</div>
</section>

<!– 手机互动区 –>
<section class="content-section">
<h2 class="section-title">◆ 数字足迹 ◆</h2>
<div class="phone-container">
<div class="phone">
<div class="phone-screen">
<div class="phone-header">
<i class="fas fa-mobile-alt"></i>
谢允的手机
</div>
<div class="app-grid">
<div class="app-icon forum" onclick="openModal('forumModal')">
<i class="fas fa-comments"></i>
<span class="app-name">论坛</span>
</div>
<div class="app-icon taobao" onclick="openModal('taobaoModal')">
<i class="fas fa-shopping-cart"></i>
<span class="app-name">淘宝</span>
</div>
<div class="app-icon tieba" onclick="openModal('tiebaModal')">
<i class="fas fa-users"></i>
<span class="app-name">贴吧</span>
</div>
</div>
</div>
</div>
</div>
</section>

<!– 开场白列表 –>
<section class="content-section">
<h2 class="section-title">◆ 故事开端 ◆</h2>
<div class="opening-grid" id="openingGrid"></div>
</section>
</div>

<!– 论坛模态框 –>
<div class="modal" id="forumModal">
<div class="modal-content" style="width: 90%; max-width: 1000px;">
<button class="close-btn" onclick="closeModal('forumModal')">×</button>
<h2 style="color: var(–accent-color); margin-bottom: 30px; text-align: center;">
<i class="fas fa-comments"></i> 纹身论坛
</h2>
<div style="space-y: 20px;">
<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<h3 style="color: var(–accent-color);">🔥 【置顶】FALLEN ANGEL工作室 – 谢允大师作品展示</h3>
<p style="color: var(–text-secondary); margin: 10px 0;">发布者:纹身爱好者 | 浏览量:15.2K | 回复:847</p>
<p>刚从FALLEN ANGEL工作室纹完,谢允大师的手艺真的绝了!虽然人有点冷,但是作品无可挑剔…</p>
</div>
<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<h3>【求助】想找谢允预约,但是排队太长了怎么办?</h3>
<p style="color: var(–text-secondary); margin: 10px 0;">发布者:小白求纹身 | 浏览量:3.8K | 回复:156</p>
<p>听说FALLEN ANGEL的预约已经排到半年后了,有没有什么内部渠道啊…</p>
</div>
<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<h3>【爆料】谢允工作室内部装修曝光,简直太酷了!</h3>
<p style="color: var(–text-secondary); margin: 10px 0;">发布者:业内人士 | 浏览量:7.9K | 回复:289</p>
<p>昨天有幸参观了一下FALLEN ANGEL,全黑装修配上银色装饰,氛围感拉满…</p>
</div>
</div>
</div>
</div>

<!– 淘宝模态框 –>
<div class="modal" id="taobaoModal">
<div class="modal-content" style="width: 90%; max-width: 800px;">
<button class="close-btn" onclick="closeModal('taobaoModal')">×</button>
<h2 style="color: var(–accent-color); margin-bottom: 30px; text-align: center;">
<i class="fas fa-shopping-cart"></i> 谢允的购买记录
</h2>
<div style="space-y: 15px;">
<div style="background: var(–tertiary-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center;">
<div>
<strong>限量版Zippo打火机(骷髅款)</strong>
<p style="color: var(–text-secondary); font-size: 0.9em;">数量:1 | 已签收</p>
</div>
<span style="color: var(–accent-color);">¥2,680</span>
</div>
<div style="background: var(–tertiary-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center;">
<div>
<strong>德国进口纹身针套装</strong>
<p style="color: var(–text-secondary); font-size: 0.9em;">数量:3盒 | 已签收</p>
</div>
<span style="color: var(–accent-color);">¥1,450</span>
</div>
<div style="background: var(–tertiary-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center;">
<div>
<strong>Marlboro万宝路香烟</strong>
<p style="color: var(–text-secondary); font-size: 0.9em;">数量:10条 | 配送中</p>
</div>
<span style="color: var(–accent-color);">¥1,200</span>
</div>
<div style="background: var(–tertiary-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center;">
<div>
<strong>暗黑风银质十字架项链</strong>
<p style="color: var(–text-secondary); font-size: 0.9em;">数量:1 | 已签收</p>
</div>
<span style="color: var(–accent-color);">¥890</span>
</div>
<div style="background: var(–tertiary-bg); padding: 15px; border-radius: 8px; margin-bottom: 15px; display: flex; justify-content: space-between; align-items: center;">
<div>
<strong>黑色马丁靴(铆钉装饰)</strong>
<p style="color: var(–text-secondary); font-size: 0.9em;">数量:1双 | 已签收</p>
</div>
<span style="color: var(–accent-color);">¥3,200</span>
</div>
</div>
</div>
</div>

<!– 贴吧模态框 –>
<div class="modal" id="tiebaModal">
<div class="modal-content" style="width: 90%; max-width: 900px;">
<button class="close-btn" onclick="closeModal('tiebaModal')">×</button>
<h2 style="color: var(–accent-color); margin-bottom: 30px; text-align: center;">
<i class="fas fa-users"></i> 谢允吧
</h2>
<div style="space-y: 20px;">
<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<div style="display: flex; align-items: center; margin-bottom: 15px;">
<img src="https://i.postimg.cc/qB37BKCz/4FE4B5404294814B9CDA897A6742365A.webp"
style="width: 40px; height: 40px; border-radius: 50%; margin-right: 15px; object-fit: cover;">
<div>
<strong style="color: var(–accent-color);">谢允</strong>
<p style="color: var(–text-muted); font-size: 0.9em;">吧主 • 刚刚</p>
</div>
</div>
<p>啧,又有人想插队预约?排队去,没有例外。</p>
<div style="margin-top: 10px; color: var(–text-muted); font-size: 0.9em;">
<i class="fas fa-thumbs-up"></i> 2.8w | <i class="fas fa-comment"></i> 2754
</div>
</div>

<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<div style="display: flex; align-items: center; margin-bottom: 15px;">
<img src="https://i.postimg.cc/qB37BKCz/4FE4B5404294814B9CDA897A6742365A.webp"
style="width: 40px; height: 40px; border-radius: 50%; margin-right: 15px; object-fit: cover;">
<div>
<strong style="color: var(–accent-color);">谢允</strong>
<p style="color: var(–text-muted); font-size: 0.9em;">吧主 • 2小时前</p>
</div>
</div>
<p>新作品完成,客户很满意。手艺这种东西,要么做到极致,要么别做。</p>
<div style="margin-top: 10px; color: var(–text-muted); font-size: 0.9em;">
<i class="fas fa-thumbs-up"></i> 4.5w | <i class="fas fa-comment"></i> 1569
</div>
</div>

<div style="background: var(–tertiary-bg); padding: 20px; border-radius: 10px; margin-bottom: 20px;">
<div style="display: flex; align-items: center; margin-bottom: 15px;">
<img src="https://i.postimg.cc/qB37BKCz/4FE4B5404294814B9CDA897A6742365A.webp"
style="width: 40px; height: 40px; border-radius: 50%; margin-right: 15px; object-fit: cover;">
<div>
<strong style="color: var(–accent-color);">谢允</strong>
<p style="color: var(–text-muted); font-size: 0.9em;">吧主 • 昨天</p>
</div>
</div>
<p>晚安,祝你自由。</p>
<div style="margin-top: 10px; color: var(–text-muted); font-size: 0.9em;">
<i class="fas fa-thumbs-up"></i> 1.9K | <i class="fas fa-comment"></i> 1203
</div>
</div>
</div>
</div>
</div>

<script>
// 粒子效果
function createParticles() {
const container = document.getElementById('particleContainer');
const particleCount = 50;

for (let i = 0; i < particleCount; i++) {
const particle = document.createElement('div');
particle.className = 'particle';
particle.style.left = Math.random() * 100 + '%';
particle.style.top = Math.random() * 100 + '%';
particle.style.width = Math.random() * 4 + 2 + 'px';
particle.style.height = particle.style.width;
particle.style.animationDelay = Math.random() * 6 + 's';
particle.style.animationDuration = (Math.random() * 4 + 4) + 's';
container.appendChild(particle);
}
}

// 音乐播放器
const audioPlayer = document.getElementById('audioPlayer');
const playBtn = document.getElementById('playBtn');
const playIcon = document.getElementById('playIcon');
const musicCover = document.getElementById('musicCover');

playBtn.addEventListener('click', () => {
if (audioPlayer.paused) {
audioPlayer.play();
playIcon.className = 'fas fa-pause';
musicCover.classList.add('playing');
} else {
audioPlayer.pause();
playIcon.className = 'fas fa-play';
musicCover.classList.remove('playing');
}
});

// 角色卡片翻转
const characterCard = document.getElementById('characterCard');
characterCard.addEventListener('click', () => {
characterCard.classList.toggle('flipped');
});

// 模态框控制
function openModal(modalId) {
const modal = document.getElementById(modalId);
modal.classList.add('active');
document.body.style.overflow = 'hidden';
}

function closeModal(modalId) {
const modal = document.getElementById(modalId);
modal.classList.remove('active');
document.body.style.overflow = 'auto';
}

// 点击模态框外部关闭
window.addEventListener('click', (e) => {
if (e.target.classList.contains('modal')) {
e.target.classList.remove('active');
document.body.style.overflow = 'auto';
}
});

// 开场白加载
async function loadOpenings() {
const container = document.getElementById('openingGrid');
if (!container) return;

if (typeof getChatMessages !== 'function') {
container.innerHTML = '<p style="color: var(–text-muted); text-align: center;">酒馆助手开场白获取接口不可用,请检查酒馆助手是否开启。</p>';
return;
}

try {
const messages = await getChatMessages("0", { include_swipe: true });

if (!messages || messages.length === 0 || !messages[0].swipes || messages[0].swipes.length <= 1) {
container.innerHTML = '<p style="color: var(–text-muted); text-align: center;">暂无其他开场白,请添加更多故事开端。</p>';
return;
}

const swipes = messages[0].swipes;
for (let i = 1; i < swipes.length; i++) {
const content = swipes[i];
let title = `故事线 ${i}`;
let description = "点击开启一段新的故事…";

const titleMatch = content.match(/<!–s*title:s*(.*?)s*–>/s);
if (titleMatch) {
title = titleMatch[1].trim();
}
const descMatch = content.match(/<!–s*desc:s*(.*?)s*–>/s);
if (descMatch) {
description = descMatch[1].trim();
}

const item = document.createElement('div');
item.className = 'opening-item';
item.style.setProperty('–index', i – 1);
item.innerHTML = `
<h4 class="opening-title">${title}</h4>
<p class="opening-desc">${description}</p>
`;

item.addEventListener('click', (event) => switchToOpening(i, event));
container.appendChild(item);
}

} catch (error) {
console.error('加载开场白失败:', error);
container.innerHTML = '<p style="color: var(–accent-color); text-align: center;">加载开场白时出错,请检查控制台信息。</p>';
}
}

async function switchToOpening(swipeId, event) {
const card = event ? event.currentTarget : null;
if (card) {
card.style.opacity = '0.6';
card.style.pointerEvents = 'none';
}

try {
await setChatMessages([{message_id: 0, swipe_id: swipeId}]);
} catch (error) {
console.error('切换开场白失败:', error);
alert(`切换失败: ${error.message}`);
if(card){
card.style.opacity = '1';
card.style.pointerEvents = 'auto';
}
}
}

// 页面加载完成后执行
window.addEventListener('load', () => {
createParticles();
loadOpenings();
});

// ESC键关闭模态框
document.addEventListener('keydown', (e) => {
if (e.key === 'Escape') {
const activeModal = document.querySelector('.modal.active');
if (activeModal) {
activeModal.classList.remove('active');
document.body.style.overflow = 'auto';
}
}
});
</script>
</body>
</html>
“`

角色卡

兰凌霄

2025-12-31 17:38:33

角色卡

陈汐

2025-12-31 17:38:45

0 条回复 A文章作者 M管理员
    暂无讨论,说说你的看法吧
个人中心
购物车
优惠劵
今日签到
有新私信 私信列表
搜索