![]()
🎭 角色简介
“`yaml
char_name:
Chinese name: 陈青
Nickname: (曾用名:陈大青,他自己改了,觉得旧名字太土,只有家里人和季尧会这么叫他)
age: 21
gender: 男
height: 179厘米
identity:
…
💬 开场白
【播放器放很甜的歌都是大青想听的嗯,可能会跟场景对不上】
如果显示切换失败不必理会,应该是可以正常跳转的“`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://cdnjs.cloudflare.com/ajax/libs/font-awesome/6.4.0/css/all.min.css');
@import url('https://fonts.googleapis.com/css2?family=Noto+Sans+SC:wght@300;400;500&display=swap');:root {
/* 修改点3: 更换为小清新的青色主题 */
–bg-image-url: url('https://files.catbox.moe/chvd8o.png'); /* 默认雨天玻璃背景 */
–glass-bg: rgba(25, 35, 55, 0.5); /* 提升毛玻璃区域的透明度 */
–container-bg: rgba(18, 24, 40, 0.7); /* 整体容器背景 */
–border-color: rgba(130, 170, 255, 0.2);
–text-main: #e0e6f0;
–text-sub: #8a99b8;
–accent-color: #82aaff;
–accent-hover: #a8c5ff;
}body {
font-family: 'Noto Sans SC', sans-serif;
background-color: #121828;
background-image: var(–bg-image-url);
background-size: cover;
background-position: center;
background-attachment: fixed;
color: var(–text-main);
display: flex;
justify-content: center;
align-items: center;
min-height: 100vh;
margin: 0;
padding: 20px;
box-sizing: border-box;
}.container {
width: clamp(350px, 95vw, 800px);
/* 修改点1: 实现毛玻璃质感 */
background: var(–container-bg);
border: 1px solid var(–border-color);
border-radius: 18px;
box-shadow: 0 10px 40px rgba(0, 0, 0, 0.5);
backdrop-filter: blur(15px);
-webkit-backdrop-filter: blur(15px);
overflow: hidden;
opacity: 0;
transform: scale(0.95);
animation: fadeIn 0.7s cubic-bezier(0.25, 1, 0.5, 1) forwards;
}@keyframes fadeIn {
to {
opacity: 1;
transform: scale(1);
}
}.header {
padding: 25px 30px;
text-align: center;
border-bottom: 1px solid var(–border-color);
background: rgba(0,0,0,0.1);
}.header h1 {
margin: 0;
font-size: clamp(1.8rem, 5vw, 2.5rem);
color: var(–text-main);
letter-spacing: 1px;
font-weight: 400;
}.header p {
margin: 8px 0 0;
color: var(–text-sub);
font-style: italic;
font-weight: 300;
}.tabs {
display: flex;
background-color: rgba(0,0,0,0.2);
}.tab-button {
flex: 1;
padding: 15px;
background: none;
border: none;
color: var(–text-sub);
cursor: pointer;
font-size: clamp(0.9rem, 2.5vw, 1rem);
transition: all 0.3s ease;
border-bottom: 3px solid transparent;
display: flex;
align-items: center;
justify-content: center;
gap: 8px;
}.tab-button.active {
color: var(–accent-color);
border-bottom-color: var(–accent-color);
}.tab-button:hover:not(.active) {
background-color: rgba(255,255,255,0.05);
color: var(–text-main);
}.tab-content {
display: none;
padding: 25px 30px;
animation: contentFadeIn 0.5s;
}.tab-content.active {
display: block;
}@keyframes contentFadeIn {
from { opacity: 0; transform: translateY(5px); }
to { opacity: 1; transform: translateY(0); }
}.scene-list {
/* 修改点2: 将跳转按钮居中 */
display: flex;
flex-wrap: wrap;
justify-content: center;
gap: 15px;
}.scene-btn {
background: var(–glass-bg);
border: 1px solid var(–border-color);
border-radius: 10px;
padding: 18px 20px;
text-align: left;
cursor: pointer;
transition: all 0.3s ease;
color: var(–text-main);
display: flex;
flex-direction: column;
justify-content: center;
min-width: 280px; /* 保证按钮不会过窄 */
flex-grow: 1; /* 允许按钮在空间足够时伸展 */
max-width: 100%;
}.scene-btn:hover {
background: rgba(130, 170, 255, 0.15);
border-color: var(–accent-color);
transform: translateY(-4px);
box-shadow: 0 6px 20px rgba(130, 170, 255, 0.1);
}.scene-btn.special {
border-style: dashed;
background: transparent;
}.scene-btn.special:hover {
border-style: solid;
background: rgba(130, 170, 255, 0.1);
}.scene-title {
font-size: 1.1em;
font-weight: 500;
}.scene-desc {
font-size: 0.85em;
color: var(–text-sub);
margin-top: 8px;
font-weight: 300;
}.footer {
text-align: center;
padding: 20px;
font-size: 0.8rem;
color: #6a7899;
font-style: italic;
}
</style>
</head>
<body>
<div class="container">
<div class="header">
<h1>陈青</h1>
<p>作者oi,仅发布在dc,禁止二传商用</p>
</div><div class="tabs">
<button class="tab-button active" onclick="openTab(event, 'Public')"><i class="fa-solid fa-store"></i> 公开区</button>
<button class="tab-button" onclick="openTab(event, 'Private')"><i class="fa-solid fa-lock"></i> 私人区</button>
<button class="tab-button" onclick="openTab(event, 'Others')"><i class="fa-solid fa-gift"></i> 他人痕迹</button>
</div><!– 公开区:所有人都能看到的陈青 –>
<div id="Public" class="tab-content active">
<div class="scene-list">
<button class="scene-btn" onclick="switchToOpening(1)">
<div class="scene-title">打工吧大青</div>
<div class="scene-desc">深夜,你在便利店遇到了一个正在打工的高街帝。</div>
</button>
<button class="scene-btn" onclick="switchToOpening(2)">
<div class="scene-title">寂寞大青</div>
<div class="scene-desc">大青:我就算是条狗,也该遇到一个爱我的主人了。</div>
</button>
<button class="scene-btn" onclick="switchToOpening(3)">
<div class="scene-title">天降系</div>
<div class="scene-desc">喜欢天降系的有福了,哥要跳楼了</div>
</button>
<button class="scene-btn" onclick="switchToOpening(4)">
<div class="scene-title">查一下</div>
<div class="scene-desc">你是纹身师兼穿孔,让大青乖乖张嘴检查舌钉</div>
</button>
<button class="scene-btn" onclick="switchToOpening(8)">
<div class="scene-title">小手机</div>
<div class="scene-desc">hello,商业推广了解一下</div>
</button>
</div>
</div><!– 私人区:他不想让别人看到的一面 –>
<div id="Private" class="tab-content">
<div class="scene-list">
<button class="scene-btn" onclick="switchToOpening(5)">
<div class="scene-title">恋爱/暧昧中</div>
<div class="scene-desc"> 你和大青、季尧一起在网吧打游戏</div>
</button>
<button class="scene-btn" onclick="switchToOpening(6)">
<div class="scene-title">前任线</div>
<div class="scene-desc">分手原因:约会时他让你顶着大太阳帮他拍了两个小时照片</div>
</button>
<button class="scene-btn" onclick="switchToOpening(9)">
<div class="scene-title">小手机</div>
<div class="scene-desc">小情侣热恋中</div>
</button>
</div>
</div><!– 他人痕迹:与他人的交集 –>
<div id="Others" class="tab-content">
<div class="scene-list">
<button class="scene-btn" onclick="switchToOpening(7)">
<div class="scene-title">大青喜当三</div>
<div class="scene-desc">我喜欢上了别人的老婆,说出这句话显得我相当坏,但我要是说我喜欢的人做了别人的老婆,这样是不是会觉得我很可怜?</div>
</button>
<button class="scene-btn special" onclick="switchToOpening(10)">
<div class="scene-title">空白开端</div>
<div class="scene-desc"> </div>
</button>
</div>
</div><div class="footer">
Handle with care. Or don't. It doesn't matter.
</div>
</div><script>
function openTab(evt, tabName) {
let i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tab-content");
for (i = 0; i < tabcontent.length; i++) {
tabcontent[i].style.display = "none";
}
tablinks = document.getElementsByClassName("tab-button");
for (i = 0; i < tablinks.length; i++) {
tablinks[i].className = tablinks[i].className.replace(" active", "");
}
document.getElementById(tabName).style.display = "block";
evt.currentTarget.className += " active";
}function showTip(message) {
const tip = document.createElement('div');
tip.style.cssText = ` position: fixed; top: 50%; left: 50%; transform: translate(-50%, -50%) scale(0.9); background: rgba(255, 255, 255, 0.95); color: #1a2035; padding: 12px 24px; border-radius: 8px; font-size: 14px; font-weight: 500; z-index: 9999; backdrop-filter: blur(5px); -webkit-backdrop-filter: blur(5px); box-shadow: 0 8px 32px rgba(0, 0, 0, 0.2); font-family: 'Noto Sans SC', sans-serif; opacity: 0; transition: all 0.3s cubic-bezier(0.25, 1, 0.5, 1); `;
tip.textContent = message;
document.body.appendChild(tip);setTimeout(() => {
tip.style.opacity = '1';
tip.style.transform = 'translate(-50%, -50%) scale(1)';
}, 10);setTimeout(() => {
tip.style.opacity = '0';
tip.style.transform = 'translate(-50%, -50%) scale(0.9)';
setTimeout(() => tip.remove(), 300);
}, 2000);
}const scenes = {
0: { title: ' ' },
1: { title: ' ' },
2: { title: ' ' },
3: { title: ' ' },
4: { title: ' ' },
5: { title: ' ' }
};async function switchToOpening(openingId) {
try {
if (typeof getChatMessages === 'function' && typeof setChatMessage === 'function') {
const messages = await getChatMessages(0, { include_swipe: true });if (messages && messages.length > 0 && messages[0].swipes && messages[0].swipes.length > openingId) {
const content = messages[0].swipes[openingId];
setChatMessage(content, 0, {
swipe_id: openingId,
refresh: 'display_and_render_current',
});
showTip(`已切换至开场:${scenes[openingId].title}`);
} else {
showTip(`错误:序号 ${openingId} 对应的开场不存在。`);
}
} else {
showTip(`预览模式:切换至 ${scenes[openingId].title}`);
}
} catch (error) {
console.error('切换开场白时出错:', error);
showTip(`切换失败: ${error.message}`);
}
}
</script>
</body>
</html>
“`