Files
squad-rain-ops-mini/wwwroot/help.html

636 lines
26 KiB
HTML
Raw Permalink 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">
<title>RainOps 插件功能手册</title>
<link rel="stylesheet" href="/lib/css/bootstrap.min.css">
<link rel="stylesheet" href="/lib/css/font-awesome.min.css">
<style>
:root {
/* Modern Palette */
--primary-color: #4361ee;
--secondary-color: #3f37c9;
--success-color: #4caf50;
--info-color: #00b4d8;
--warning-color: #f72585;
--danger-color: #f44336;
--bg-color: #f8f9fa;
--card-bg: #ffffff;
--text-primary: #2b2d42;
--text-secondary: #8d99ae;
--border-color: #edf2f4;
--sidebar-width: 280px;
}
body {
font-family: 'Inter', -apple-system, BlinkMacSystemFont, 'Segoe UI', Roboto, Oxygen, Ubuntu, Cantarell, 'Open Sans', 'Helvetica Neue', sans-serif;
background-color: var(--bg-color);
color: var(--text-primary);
margin: 0;
padding: 0;
line-height: 1.6;
-webkit-font-smoothing: antialiased;
display: flex;
min-height: 100vh;
}
/* Sidebar Styling */
.sidebar {
width: var(--sidebar-width);
background-color: var(--card-bg);
border-right: 1px solid var(--border-color);
position: fixed;
height: 100vh;
overflow-y: auto;
padding: 2rem 1.5rem;
box-sizing: border-box;
z-index: 1000;
}
.logo {
font-size: 1.5rem;
font-weight: 800;
color: var(--primary-color);
margin-bottom: 2rem;
display: flex;
align-items: center;
gap: 0.5rem;
}
.nav-menu {
list-style: none;
padding: 0;
margin: 0;
}
.nav-item {
margin-bottom: 0.5rem;
}
.nav-link {
display: block;
padding: 0.75rem 1rem;
border-radius: 8px;
color: var(--text-secondary);
text-decoration: none;
font-weight: 500;
transition: all 0.2s ease;
}
.nav-link:hover, .nav-link.active {
background-color: #eff3ff;
color: var(--primary-color);
}
.nav-link i {
margin-right: 0.75rem;
width: 20px;
text-align: center;
}
.nav-category {
font-size: 0.75rem;
text-transform: uppercase;
color: #b8c2cc;
font-weight: 700;
margin: 1.5rem 0 0.75rem 1rem;
letter-spacing: 0.05em;
}
/* Main Content Styling */
.main-content {
margin-left: var(--sidebar-width);
flex: 1;
padding: 3rem 4rem;
max-width: 1200px;
}
header {
margin-bottom: 4rem;
}
h1 {
font-size: 2.5rem;
font-weight: 800;
margin-bottom: 1rem;
color: var(--text-primary);
}
.subtitle {
font-size: 1.1rem;
color: var(--text-secondary);
max-width: 600px;
}
/* Section Styling */
section {
margin-bottom: 4rem;
scroll-margin-top: 2rem;
}
.section-header {
display: flex;
align-items: center;
margin-bottom: 2rem;
padding-bottom: 1rem;
border-bottom: 2px solid var(--border-color);
}
.section-title {
font-size: 1.75rem;
font-weight: 700;
color: var(--text-primary);
margin: 0;
}
.section-icon {
font-size: 1.5rem;
margin-right: 1rem;
color: var(--primary-color);
background: #eff3ff;
padding: 0.75rem;
border-radius: 12px;
}
/* Card Grid */
.plugin-grid {
display: grid;
grid-template-columns: repeat(auto-fill, minmax(320px, 1fr));
gap: 1.5rem;
}
.plugin-card {
background: var(--card-bg);
border: 1px solid var(--border-color);
border-radius: 16px;
padding: 2rem;
transition: transform 0.2s, box-shadow 0.2s;
display: flex;
flex-direction: column;
}
.plugin-card:hover {
transform: translateY(-4px);
box-shadow: 0 12px 24px -8px rgba(0, 0, 0, 0.08);
border-color: #dbe4ff;
}
.card-header {
display: flex;
justify-content: space-between;
align-items: flex-start;
margin-bottom: 1rem;
}
.plugin-name {
font-size: 1.25rem;
font-weight: 700;
color: var(--text-primary);
margin: 0;
}
.badge {
font-size: 0.75rem;
padding: 0.25rem 0.75rem;
border-radius: 20px;
font-weight: 600;
letter-spacing: 0.02em;
}
.badge-basic { background-color: #e3f2fd; color: #1976d2; }
.badge-points { background-color: #fff3e0; color: #f57c00; }
.badge-tool { background-color: #f3e5f5; color: #7b1fa2; }
.plugin-desc {
color: var(--text-secondary);
font-size: 0.95rem;
margin-bottom: 1.5rem;
flex-grow: 1;
}
.command-box {
background-color: #f8f9fa;
border-radius: 8px;
padding: 1rem;
font-size: 0.9rem;
border: 1px solid var(--border-color);
}
.command-label {
font-size: 0.75rem;
font-weight: 700;
color: #b8c2cc;
text-transform: uppercase;
margin-bottom: 0.5rem;
display: block;
}
.command-code {
font-family: 'JetBrains Mono', 'Fira Code', monospace;
color: var(--primary-color);
background: rgba(67, 97, 238, 0.05);
padding: 0.2rem 0.4rem;
border-radius: 4px;
font-weight: 600;
}
/* Responsive */
@media (max-width: 768px) {
.sidebar {
transform: translateX(-100%);
transition: transform 0.3s ease;
}
.main-content {
margin-left: 0;
padding: 2rem;
}
}
</style>
</head>
<body>
<!-- Sidebar Navigation -->
<nav class="sidebar">
<div class="logo">
<i class="fa fa-cube"></i> RainOps
</div>
<ul class="nav-menu">
<li class="nav-category">平台概览</li>
<li class="nav-item">
<a href="#intro" class="nav-link active"><i class="fa fa-home"></i> 平台介绍</a>
</li>
<li class="nav-item">
<a href="#menus" class="nav-link"><i class="fa fa-list"></i> 菜单功能</a>
</li>
<li class="nav-category">插件功能</li>
<li class="nav-item">
<a href="#basic" class="nav-link"><i class="fa fa-shield"></i> 基础管理</a>
</li>
<li class="nav-item">
<a href="#points" class="nav-link"><i class="fa fa-gift"></i> 积分娱乐</a>
</li>
<li class="nav-item">
<a href="#tools" class="nav-link"><i class="fa fa-wrench"></i> 辅助工具</a>
</li>
</ul>
</nav>
<!-- Main Content -->
<main class="main-content">
<!-- 平台介绍 -->
<header id="intro">
<h1>RainOps Mini 使用手册</h1>
<p class="subtitle">RainOps Mini 是一款专为 Squad 战术小队服务器设计的轻量级、高性能管理面板。它集成了实时 RCON 控制、详细的数据分析、丰富的玩家管理功能以及强大的插件系统,旨在帮助服主和管理员更高效地维护服务器秩序,提升玩家的游戏体验。</p>
</header>
<!-- 菜单功能 -->
<section id="menus">
<div class="section-header">
<i class="fa fa-list section-icon"></i>
<h2 class="section-title">平台菜单功能</h2>
</div>
<div class="plugin-grid">
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">仪表盘 (Dashboard)</h3><span class="badge badge-basic">核心</span></div>
<p class="plugin-desc">服务器核心数据的实时概览,包括在线人数、阵营分数、当前地图及运行时间。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">RCON 控制台</h3><span class="badge badge-tool">控制</span></div>
<p class="plugin-desc">直接向服务器发送指令的控制终端,支持常用指令快捷操作与实时日志流。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">数据分析</h3><span class="badge badge-basic">统计</span></div>
<p class="plugin-desc">可视化的服务器数据统计,展示玩家活跃度趋势、地图偏好等关键指标。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">历史对局</h3><span class="badge badge-basic">记录</span></div>
<p class="plugin-desc">详尽记录每一场对局的胜负结果、时长及详细战报。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">玩家库</h3><span class="badge badge-basic">数据</span></div>
<p class="plugin-desc">存储所有进入过服务器的玩家信息,支持按 SteamID 或名称查询历史记录。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">积分管理</h3><span class="badge badge-points">经济</span></div>
<p class="plugin-desc">管理玩家积分系统,查看和调整玩家的积分余额。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">聊天消息</h3><span class="badge badge-tool">监控</span></div>
<p class="plugin-desc">实时监控和查询服务器内的所有聊天记录,支持关键词搜索。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">日志查询</h3><span class="badge badge-tool">审计</span></div>
<p class="plugin-desc">系统运行日志与游戏事件日志的综合查询入口。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">权限管理</h3><span class="badge badge-basic">安全</span></div>
<p class="plugin-desc">配置管理员权限,分配不同的管理角色和操作范围。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">会员管理</h3><span class="badge badge-points">VIP</span></div>
<p class="plugin-desc">管理服务器 VIP 玩家名单,设置白名单权限与有效期。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">CDK 管理</h3><span class="badge badge-points">福利</span></div>
<p class="plugin-desc">生成和管理兑换码 (CDK),用于发放积分或 VIP 资格。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">封禁管理</h3><span class="badge badge-basic">安全</span></div>
<p class="plugin-desc">查看和解除玩家封禁,管理黑名单。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">插件管理</h3><span class="badge badge-tool">扩展</span></div>
<p class="plugin-desc">启用、禁用及配置服务器运行的各类插件。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">配置文件</h3><span class="badge badge-tool">系统</span></div>
<p class="plugin-desc">在线编辑服务器与插件的详细配置文件。</p>
</div>
<div class="plugin-card">
<div class="card-header"><h3 class="plugin-name">子账户管理</h3><span class="badge badge-basic">安全</span></div>
<p class="plugin-desc">创建和管理拥有面板访问权限的子账户。</p>
</div>
</div>
</section>
<!-- 基础管理插件 -->
<section id="basic">
<div class="section-header">
<i class="fa fa-shield section-icon"></i>
<h2 class="section-title">基础管理插件</h2>
</div>
<div class="plugin-grid">
<!-- TK Auto Kick -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">TK 自动惩罚</h3>
<span class="badge badge-basic">自动管理</span>
</div>
<p class="plugin-desc">
自动监控服务器内的队友伤害行为。当发生 TK 时,系统会自动警告双方。施暴者若未在规定时间内在聊天框输入道歉关键词,将会被自动踢出服务器。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>道歉: 输入 <span class="command-code">sorry</span>, <span class="command-code">sry</span></div>
</div>
</div>
<!-- Team Balance -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">自动队伍平衡</h3>
<span class="badge badge-basic">平衡性</span>
</div>
<p class="plugin-desc">
实时监控双方阵营人数。当人数差超过设定阈值时,自动将优势方最后加入的玩家强制切换到劣势方。系统会优先保护白名单玩家及较早加入的玩家。
</p>
<div class="command-box">
<span class="command-label">触发机制</span>
<div>无需指令,后台自动运行</div>
</div>
</div>
<!-- AFK Kick -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">AFK 闲置踢出</h3>
<span class="badge badge-basic">自动管理</span>
</div>
<p class="plugin-desc">
定期检查服务器内未加入小队或未分配阵营的闲置玩家。当服务器人数较多时,长时间闲置的玩家将被请出,为活跃玩家腾出位置。
</p>
<div class="command-box">
<span class="command-label">保护机制</span>
<div>白名单玩家可豁免检测</div>
</div>
</div>
<!-- Squad Creation -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">小队创建限制</h3>
<span class="badge badge-basic">规则执行</span>
</div>
<p class="plugin-desc">
监控小队创建行为并全服广播。可根据配置限制创建小队的门槛(如最低游戏时长或积分要求),不满足条件的玩家创建的小队将被自动解散。
</p>
<div class="command-box">
<span class="command-label">触发机制</span>
<div>自动检测,不满足条件自动解散</div>
</div>
</div>
<!-- Game Time -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">游戏时长查询</h3>
<span class="badge badge-basic">信息查询</span>
</div>
<p class="plugin-desc">
记录并统计玩家在服务器的累积在线时长,数据可用于排行榜展示或作为特定功能的门槛判断。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>查询: <span class="command-code">!time</span> (或配置的关键词)</div>
</div>
</div>
</div>
</section>
<!-- 积分娱乐插件 -->
<section id="points">
<div class="section-header">
<i class="fa fa-gift section-icon"></i>
<h2 class="section-title">积分娱乐插件</h2>
</div>
<div class="plugin-grid">
<!-- Auto Sign In -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">自动签到</h3>
<span class="badge badge-points">福利</span>
</div>
<p class="plugin-desc">
只要玩家保持在线,系统会按照设定的时间间隔自动发放积分奖励,鼓励玩家长时间游玩。
</p>
<div class="command-box">
<span class="command-label">获取方式</span>
<div>保持在线即可自动获取</div>
</div>
</div>
<!-- Manual Sign In -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">每日签到</h3>
<span class="badge badge-points">福利</span>
</div>
<p class="plugin-desc">
玩家每日可通过输入指令主动签到一次,获取额外的积分奖励。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>签到: <span class="command-code">qd</span><span class="command-code">签到</span></div>
</div>
</div>
<!-- Team Switch -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">战队跳边系统</h3>
<span class="badge badge-points">功能增强</span>
</div>
<p class="plugin-desc">
允许玩家在游戏中申请更换阵营。支持每局有限的免费额度,耗尽后可消耗积分跳边。积分不足时可呼叫战队成员协助。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>跳边: <span class="command-code">tb</span>, <span class="command-code">stb</span></div>
<div>协助: <span class="command-code">hp</span> + 验证码</div>
</div>
</div>
<!-- Red Packet -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">积分红包</h3>
<span class="badge badge-points">社交</span>
</div>
<p class="plugin-desc">
土豪玩家可以将自己的积分打包成红包发送到公屏,其他玩家通过指令抢红包,增强服务器互动氛围。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>发红包: <span class="command-code">发红包 [数量] [总额]</span></div>
<div>抢红包: <span class="command-code">抢红包</span></div>
</div>
</div>
<!-- Lottery -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">积分抽奖</h3>
<span class="badge badge-points">娱乐</span>
</div>
<p class="plugin-desc">
玩家可以投入积分参与抽奖,系统随机判断输赢,有机会赢取倍数积分奖励。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>抽奖: <span class="command-code">cj [金额]</span></div>
</div>
</div>
<!-- Personal Buff -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">个人击杀播报</h3>
<span class="badge badge-points">个性化</span>
</div>
<p class="plugin-desc">
消耗积分订阅个性化播报服务。开启后,玩家的击杀、被击杀或救起行为将在屏幕中央高亮显示。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>开启: <span class="command-code">k 1</span></div>
<div>关闭: <span class="command-code">k 0</span></div>
</div>
</div>
<!-- CDK Redeem -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">CDK 兑换</h3>
<span class="badge badge-points">福利</span>
</div>
<p class="plugin-desc">
支持玩家在游戏内直接输入兑换码CDK兑换积分奖励或白名单资格。
</p>
<div class="command-box">
<span class="command-label">玩家指令</span>
<div>兑换: <span class="command-code">dui [兑换码]</span></div>
</div>
</div>
</div>
</section>
<!-- 辅助工具插件 -->
<section id="tools">
<div class="section-header">
<i class="fa fa-wrench section-icon"></i>
<h2 class="section-title">辅助工具插件</h2>
</div>
<div class="plugin-grid">
<!-- Broadcast -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">循环广播</h3>
<span class="badge badge-tool">通知</span>
</div>
<p class="plugin-desc">
自动在服务器内循环播放预设的公告消息,如社区群号、服务器规则提示等,确保玩家及时获取重要信息。
</p>
<div class="command-box">
<span class="command-label">触发机制</span>
<div>按设定间隔自动轮播</div>
</div>
</div>
<!-- Ticket Query -->
<div class="plugin-card">
<div class="card-header">
<h3 class="plugin-name">阵营票数监控</h3>
<span class="badge badge-tool">监控</span>
</div>
<p class="plugin-desc">
实时读取并监控游戏内存中的阵营票数数据,为管理员或网页端提供实时的战况数据支持。
</p>
<div class="command-box">
<span class="command-label">功能说明</span>
<div>仅后台数据采集,无玩家指令</div>
</div>
</div>
</div>
</section>
</main>
<script>
// Simple script to handle active state of nav links
document.addEventListener('DOMContentLoaded', () => {
const sections = document.querySelectorAll('section');
const navLinks = document.querySelectorAll('.nav-link');
window.addEventListener('scroll', () => {
let current = '';
sections.forEach(section => {
const sectionTop = section.offsetTop;
const sectionHeight = section.clientHeight;
if (pageYOffset >= (sectionTop - 150)) {
current = section.getAttribute('id');
}
});
navLinks.forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href').includes(current)) {
link.classList.add('active');
}
});
});
});
</script>
</body>
</html>