SCP-CN-3620
2025年2月17日
修订 18
评分
46
↑ 71
↓ 25
支持率
74%
总票数 96
Wilson 95% 下界
64.4%
在相同票数下更稳健的支持率估计
争议指数
0.770
评分趋势
按周聚合 加载图表中...
最近修订
1 / 7
最近投票
1 / 10
2025-09-14
2025-09-14
2025-09-14
2025-09-14
2025-09-13
2025-08-28
2025-08-28
2025-08-24
2025-08-21
2025-08-11
相关页面
暂无推荐
页面源码
[[>]]
[[module Rate]]
[[/>]]
[[=]]
+ ##ff5555|**页面正在遭受--攻击--食用!**##
[[/=]]
[[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>
body {
background-color: black;
color: black;
font-family: Arial, sans-serif;
font-size: 18px;
line-height: 1.6;
padding: 20px;
}
.text-container {
position: relative;
}
.text-container span {
display: inline-block;
opacity: 1;
transition: opacity 0.01s ease-in-out;
}
.text-container span.hidden {
opacity: 0;
}
</style>
</head>
<body>
<div class="text-container" id="text-container">
<span>项目编号: SCP-CN-3620</span><br><br>
<span>项目等级:Keter</span><br><br>
<span>特殊收容措施:SCP-CN-3620 目前被收容于 Site-CN-999 的封闭式服务器中中。</span><br>
<span>所有与 SCP-CN-3620 相关的实验必须在至少两名 A 级权限人员的监督下进行。</span><br>
<span>任何对于SCP-CN-3620 所在服务器未经授权的访问或操作将立即被终止连接。</span><br<br>
<span> </span><br><br>
<span>描述:</span><br>
<span>SCP-CN-3620 是一段具有一定智能的异常代码,首次发现于中国██省██市的一台废弃服务器中。</span><br>
<span>该代码以“蛇”的形式存在于虚拟环境中,并表现出对数据的强烈“吞食”渴求。</span><br>
<span>SCP-CN-3620 的异常特性在于,其吞噬虚拟环境中的数据文件后,其”体积“/大小将会增长。</span><br><br>
</div>
<script>
const textContainer = document.getElementById('text-container');
const spans = textContainer.querySelectorAll('span');
let index = 0;
function hideText() {
if (index < spans.length) {
spans[index].classList.add('hidden');
index++;
setTimeout(hideText, 500); // 每句话消失的时间间隔(
}
}
// 启动!!!!!!!!
setTimeout(hideText, 4000); // 直接来吧
</script>
</body>
</html>
[[/html]]
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
@@ @@
> Site-CN-999 内部通告
> -----
> 日期: ██/██/20██
> 发件人: 主管 ████
> 收件人: Site-CN-999 全体人员
> 主题: 关于 SCP-CN-3620 收容程序的紧急通知
> ------
>
> 各位站点成员
>
> 好吧,我们失败了
>
> 三天前,Site-CN-999 的虚拟环境监控系统检测到 SCP-CN-3620 的异常活动频率显著增加。它开始主动攻击我们的防火墙,并试图突破虚拟环境的限制。如果它成功,后果将不堪设想——整个区域的网络系统可能会在几秒钟内崩溃,甚至可能波及全球。
>
> 在过去的 72 小时内,我们尝试了多种方法来抑制 SCP-CN-3620 的活动,包括数据库封存,强制删除,离线处理。然而,这些方法都失败了。每次我们试图中断它的程序,它都会以更快的速度恢复,并且变得更加难以控制。
>
> 昨晚,SCP-CN-3620 甚至短暂地突破了第███层防火墙,导致我们的主服务器瘫痪了整整 32 分钟21秒。在这段时间内,我们的系统完全失效,而 SCP-CN-3620 趁机吞噬了大量数据文件,包括他自己的文档数据。幸运的是,我们的应急小组及时启动了备用系统,才避免了更大的灾难。
>
> 所以,经过紧急会议,我们决定采用一种全新的收容策略——“虚拟收容程序”。这个程序的原理很简单:通过模拟 SCP-CN-3620 的行为模式,我们可以人为地控制它的活动,并防止它突破收容。
>
> 具体来说,你们将在一个虚拟环境中操作一条“蛇”,通过不断的生存下去,来取得短暂的和平。
>
> 从现在开始,站点所有人员应使用就近的电子设备——应急小组已经把程序发在你们设备上了。
----
> ##ff5555|**收容行动需知**##
>
> 程序一旦启动不可停止
> 移动端用户可通过按键操纵,如果遇到##ff5555|**蛇消失**##的问题,不要惊慌,只是游戏界面较大,手机屏幕显示不全
> ##ff5555|**电脑用户**##可直接使用##ff5555|**方向键**##操纵
----
> 主管留言:
>
> 祝你好运!
[[=]]
----
[[/=]]
[[=]]
再来一局?点我 [[[https://scp-wiki-cn.wikidot.com/scp-cn-3620| 刷新页面]]]
[[/=]]
[[html]]
<!DOCTYPE html>
<html lang="zh">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<title>开!</title>
<style>
body {
margin: 0;
height: 100vh;
background: #0a0a0a;
font-family: 'Courier New', monospace;
overflow: hidden;
}
.game-container {
display: flex;
justify-content: center;
align-items: center;
height: 100vh
gap: 30px;
padding: 20px;
opacity: 1;
}
canvas {
border: 2px solid #999999;
background: #000;
box-shadow: 0 0 30px rgba(0, 255, 128, 0.2);
}
#scpDocument {
width: 300px;
height: 363px;
background: rgba(0, 30, 15, 0.9);
border: 1px solid #004422;
color: #00ff88;
padding: 20px;
overflow-y: auto;
line-height: 1.6;
}
#warning {
position: fixed;
opacity: 0.5;
bottom: 100px; /* 调整位置 */
color: #ff5555;
animation: blink 1s infinite;
display: none;
}
#breachEffect {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(255,0,0,0.9);
color: #fff;
display: none;
justify-content: center;
align-items: center;
flex-direction: column;
z-index: 2000;
font-family: 'Arial Black', sans-serif;
text-align: center;
animation: breachPulse 0.5s infinite;
}
@keyframes blink {
50% { opacity: 0.3; }
}
@keyframes breachPulse {
0% { background: rgba(200,0,0,0.9); }
50% { background: rgba(255,0,0,0.9); }
100% { background: rgba(200,0,0,0.9); }
}
.breach-text {
font-size: 4em;
text-shadow: 0 0 20px #fff;
margin: 20px;
transform: scale(3);
animation: textAppear 2s forwards;
}
@keyframes textAppear {
to {
transform: scale(1);
opacity: 1;
}
from {
transform: scale(3);
opacity: 0;
}
}
.terminal-text {
font-family: 'Courier New', monospace;
font-size: 1.2em;
margin: 10px;
opacity: 0;
animation: terminalTyping 3s 2s forwards;
}
@keyframes terminalTyping {
from {
opacity: 0;
letter-spacing: -10px;
}
to {
opacity: 1;
letter-spacing: normal;
}
}
/* 按钮哈哈哈哈哈哈哈哈哈哈哈哈 */
#controls {
position: fixed;
bottom: 0;
left: 0;
width: 100%;
height: 100px;
display: flex;
justify-content: center;
align-items: center;
gap: 10px;
opacity: 0.5;
z-index: 1000;
}
.control-button {
width: 60px;
height: 60px;
background: #004422;
border: 2px solid #00ff88;
color: #00ff88;
font-size: 24px;
display: flex;
justify-content: center;
align-items: center;
cursor: pointer;
user-select: none;
opacity: 0.7;
border-radius: 10px;
box-shadow: 0 0 10px rgba(0, 255, 128, 0.5);
}
.control-button:active {
background: #00ff88;
color: #004422;
}
#pauseOverlay {
position: fixed;
top: 0;
left: 0;
width: 100%;
height: 100%;
background: rgba(0, 0, 0, 0.9);
color: #00ff88;
display: none;
justify-content: center;
align-items: center;
flex-direction: column;
z-index: 3000;
font-family: 'Courier New', monospace;
text-align: center;
}
#pauseOverlay h2 {
font-size: 2.5em;
margin-bottom: 20px;
}
#pauseOverlay p {
font-size: 1.2em;
margin-bottom: 30px;
}
#resumeButton {
padding: 10px 20px;
background: #004422;
border: 2px solid #00ff88;
color: #00ff88;
font-size: 1.2em;
cursor: pointer;
user-select: none;
border-radius: 5px;
transition: background 0.3s, color 0.3s;
}
#resumeButton:hover {
background: #00ff88;
color: #004422;
}
</style>
</head>
<body>
<div class="particles" id="particles"></div>
<div class="game-container">
<canvas id="gameCanvas" width="400" height="400"></canvas>
<div id="scpDocument"></div>
</div>
<div id="warning">.</div>
<div id="breachEffect">
<div class="breach-text">收容失效</div>
<div class="terminal-text">[系统崩溃] 实体已突破第███层防火墙</div>
<div class="terminal-text" style="animation-delay:3s">页面已崩溃</div>
<div class="terminal-text" style="animation-delay:5s">虚拟环收容境蕌寴峔嶏岦崨嵾巁帀幉庰廔弢彍怷</div>
</div>
<!-- 暂停pause! -->
<div id="pauseOverlay">
<h2>您收到了一条消息</h2>
<p>主管 13:32</p>
<p>上班在玩什么呢?</p>
<button id="resumeButton">回复“滚”</button>
</div>
<!-- 按钮,可以按 -->
<div id="controls">
<div class="control-button" id="up">⬆️</div>
<div class="control-button" id="down">⬇️</div>
<div class="control-button" id="left">⬅️</div>
<div class="control-button" id="right">➡️</div>
</div>
<script>
const canvas = document.getElementById('gameCanvas');
const ctx = canvas.getContext('2d');
const scpDocument = document.getElementById('scpDocument');
const gameContainer = document.querySelector('.game-container');
const warningElement = document.getElementById('warning');
const breachEffect = document.getElementById('breachEffect');
const particlesContainer = document.getElementById('particles');
const pauseOverlay = document.getElementById('pauseOverlay');
const resumeButton = document.getElementById('resumeButton');
const GRID_SIZE = 20;
const TILE_COUNT = canvas.width / GRID_SIZE;
let snake = [{ x: 10, y: 10 }];
let food = { x: 15, y: 15 };
let direction = { x: 0, y: 0 };
let nextDirection = { x: 1, y: 0 };
let gameSpeed = 150;
let score = 0;
let phase = 0;
let gameActive = true;
const scpData = [
"SCP-CN-3620 ",
"正在重启中......",
"实时数据吞吐量: [0] TB",
"当前投喂文件数: [0]",
"Dr.grape失败",
"Resty失败",
"剩余1人存活",
"…………",
"<span style='color:#ff5555'>坚持住!</span>"
];
function createParticles() {
for (let i = 0; i < 100; i++) {
const particle = document.createElement('div');
particle.className = 'particle';
particle.style.left = `${Math.random() * 100}vw`;
particle.style.top = `${Math.random() * 100}vh`;
particle.style.animationDuration = `${Math.random() * 5 + 5}s`;
particlesContainer.appendChild(particle);
}
}
function gameLoop() {
if (!gameActive) return;
direction = nextDirection;
const newHead = {
x: (snake[0].x + direction.x + TILE_COUNT) % TILE_COUNT,
y: (snake[0].y + direction.y + TILE_COUNT) % TILE_COUNT
};
if (snake.some(segment => segment.x === newHead.x && segment.y === newHead.y)) {
gameOver();
return;
}
snake.unshift(newHead);
if (newHead.x === food.x && newHead.y === food.y) {
score++;
updateDocument();
spawnFood();
checkPhase();
checkScoreForPause(); // 检查是否需要暂停,OKOK
} else {
snake.pop();
}
drawGame();
setTimeout(gameLoop, gameSpeed);
}
function drawGame() {
ctx.fillStyle = '#001100';
ctx.fillRect(0, 0, canvas.width, canvas.height);
snake.forEach((segment, index) => {
ctx.fillStyle = `hsl(${120 + index * 5}, 70%, ${50 - index % 15}%)`;
ctx.fillRect(
segment.x * GRID_SIZE,
segment.y * GRID_SIZE,
GRID_SIZE - 1,
GRID_SIZE - 1
);
ctx.strokeStyle = '#00ff88';
ctx.strokeRect(
segment.x * GRID_SIZE,
segment.y * GRID_SIZE,
GRID_SIZE - 1,
GRID_SIZE - 1
);
});
ctx.fillStyle = '#ff2255';
ctx.beginPath();
ctx.arc(
food.x * GRID_SIZE + GRID_SIZE/2,
food.y * GRID_SIZE + GRID_SIZE/2,
GRID_SIZE/2 - 2, 0, Math.PI * 2
);
ctx.fill();
ctx.strokeStyle = '#ff8888';
ctx.lineWidth = 2;
ctx.stroke();
}
function spawnFood() {
let attempts = 0;
let foundValidPosition = false;
while (!foundValidPosition && attempts < 100) {
food.x = Math.floor(Math.random() * 13) + 3;
food.y = Math.floor(Math.random() * TILE_COUNT);
foundValidPosition = !snake.some(segment =>
Math.abs(segment.x - food.x) < 2 &&
Math.abs(segment.y - food.y) < 2
);
attempts++;
}
if (!foundValidPosition) {
food.x = (snake[0].x + 5) % TILE_COUNT;
food.y = (snake[0].y + 5) % TILE_COUNT;
}
}
function updateDocument() {
scpData[2] = `实时数据吞吐量: [${score * 157}] TB`;
scpData[3] = `当前投喂文件数: [${score}]`;
const content = scpData
.slice(0, Math.min(score + 2, scpData.length))
.map(line => line.replace(/\[0\]/g, score))
.map(line => `<p>${line}</p>`)
.join('');
scpDocument.innerHTML = content;
scpDocument.scrollTop = scpDocument.scrollHeight;
}
//这里不能动
function checkPhase() {
if (score % 7 === 0 && score > 0) {
phase++;
gameSpeed = Math.max(50, 150 - phase * 20);
warningElement.style.display = 'block';
setTimeout(() => warningElement.style.display = 'none', 2000);
}
}
function checkScoreForPause() {
if (score === 12 && score > 0) {
pauseGame();
}
}
function pauseGame() {
gameActive = false;
pauseOverlay.style.display = 'flex';
}
function resumeGame() {
gameActive = true;
pauseOverlay.style.display = 'none';
gameLoop(); // 继续游戏循环
}
function gameOver() {
gameActive = false;
breachEffect.style.display = 'flex';
canvas.style.filter = 'blur(5px)';
document.removeEventListener('keydown', handleKeyPress);
//难
// 彩蛋:好样的
if (score === 4) {
const eggText = document.createElement('div');
eggText.className = 'terminal-text';
eggText.textContent = '👍 差点打败 KC';
eggText.style.animation = 'terminalTyping 3s forwards';
breachEffect.appendChild(eggText);
}
// 彩蛋:人如鸡
if (score === 3) {
const eggText = document.createElement('div');
eggText.className = 'terminal-text';
eggText.textContent = '仁济😓';
eggText.style.animation = 'terminalTyping 3s forwards';
breachEffect.appendChild(eggText);
}
// 彩蛋:神
if (score > 19) {
const eggText = document.createElement('div');
eggText.className = 'terminal-text';
eggText.textContent = '👍';
eggText.style.animation = 'terminalTyping 3s forwards';
breachEffect.appendChild(eggText);
}
// 彩蛋:神
if (score < 20) {
const eggText = document.createElement('div');
eggText.className = 'terminal-text';
eggText.textContent = '发配到D级餐厅洗碗😭';
eggText.style.animation = 'terminalTyping 3s forwards';
breachEffect.appendChild(eggText);
}
setTimeout(() => {
const newText = document.createElement('div');
newText.className = 'terminal-text';
newText.textContent = `最佳得分:${score}`;
newText.style.animation = 'terminalTyping 3s forwards';
breachEffect.appendChild(newText);
}, 7000);
document.body.addEventListener('click', () => {
document.documentElement.requestFullscreen().catch(() => {});
}, { once: true });
}
function handleKeyPress(e) {
e.preventDefault();
switch(e.key) {
case 'ArrowLeft':
if (direction.x === 0) nextDirection = { x: -1, y: 0 };
break;
case 'ArrowUp':
if (direction.y === 0) nextDirection = { x: 0, y: -1 };
break;
case 'ArrowDown':
if (direction.y === 0) nextDirection = { x: 0, y: 1 };
break;
case 'ArrowRight':
if (direction.x === 0) nextDirection = { x: 1, y: 0 };
break;
}
}
// 绑定虚拟按钮事件
document.getElementById('left').addEventListener('click', () => {
if (direction.x === 0) nextDirection = { x: -1, y: 0 };
});
document.getElementById('up').addEventListener('click', () => {
if (direction.y === 0) nextDirection = { x: 0, y: -1 };
});
document.getElementById('down').addEventListener('click', () => {
if (direction.y === 0) nextDirection = { x: 0, y: 1 };
});
document.getElementById('right').addEventListener('click', () => {
if (direction.x === 0) nextDirection = { x: 1, y: 0 };
});
// 绑定继续游戏按钮事件,这里绑上面
resumeButton.addEventListener('click', resumeGame);
function initGame() {
gameContainer.style.display = 'flex';
document.addEventListener('keydown', handleKeyPress);
spawnFood();
updateDocument();
drawGame();
gameLoop();
createParticles();
}
initGame();
</script>
</body>
</html>
[[/html]]
[[div class="footer-wikiwalk-nav"]]
[[=]]
<< [[[SCP-CN-3619]]] | SCP-CN-3620 | [[[SCP-CN-3621]]] >>
[[/=]]
[[/div]]