VIP进服特效插件 完整教程

插件名称：VIP进服特效系统（SQL完整版）
版本：v3.1（2026-10-16）
适用：CS:GO 社区服（SourceMod 1.10+ / 1.11）
功能：VIP进服横幅特效（四重显示）+ VIP菜单（剩余天数 / 激活码 / 续费 / 特权列表）
授权：免费公开使用，可自由转发

------------------------------------------------------------
目录

1. 插件效果预览
2. 两个版本怎么选
3. 部署 SQL完整版（推荐）
5. 管理员操作：生成激活码（仅SQL版）

服务器控制台或游戏里（root权限）输入：

!makecode 30

- `30` = 激活码的有效天数（1~3650）
- 生成结果：`激活码: VIP-XXXX-XXXX （30天）`
- 把这个激活码发给玩家即可

激活码规则：
- 一次性使用，激活后作废
- 新玩家激活：从当天开始算天数
- 老VIP续费：在原到期时间上叠加（不会浪费剩余时间）

------------------------------------------------------------
6. 玩家操作

  操作  |  命令
  打开VIP菜单  |  `!vip`
  激活/续费VIP  |  `!activate 激活码`（如 `!activate VIP-ABCD-1234`）

激活流程：
1. 游戏聊天框输入 `!vip` → 菜单显示"您还不是VIP"或剩余天数
2. 选"1. 激活/续费VIP" → 按提示输入 `!activate <激活码>`
3. 激活成功 → 提示"您的VIP还剩余[X天]"
4. 以后进服自动显示VIP特效横幅

命令支持任意输入方式：`!vip` / `vip` / `.vip` 都能触发，激活和生成码同样支持点开头（`.activate 码` / `.makecode 天数`）。

------------------------------------------------------------
7. 数据库说明（MySQL）

一键建库：执行 `VIP进服特效一键建库.sql`，包含：

-- 创建数据库（改成你自己的库名）
CREATE DATABASE IF NOT EXISTS vip DEFAULT CHARSET utf8;
USE vip;

-- VIP玩家表：steamid / 昵称 / 到期时间(Unix时间戳)
CREATE TABLE IF NOT EXISTS vip_users (
    steamid VARCHAR(32) PRIMARY KEY,
    name VARCHAR(64),
    expire INT
);

-- 激活码表：码 / 天数 / 被谁用了 / 使用时间
CREATE TABLE IF NOT EXISTS vip_codes (
    code VARCHAR(32) PRIMARY KEY,
    days INT,
    used_by VARCHAR(32),
    used_at INT
);

加VIP示例（一键建表+加VIP.sql 已含，改 SteamID 即可）：

INSERT INTO vip_users (steamid, name, expire)
VALUES ('STEAM_1:1:403240413', '480desu', UNIX_TIMESTAMP() + 3650*86400)
ON DUPLICATE KEY UPDATE expire = VALUES(expire);

------------------------------------------------------------
8. 横幅显示参数调节（分辨率适配）

配置文件（SQL版）：csgo\cfg\sourcemod\vip_enter_effect_sql.cfg

sm_banner_x "-1.0"        // 顶部横幅水平位置：-1=居中，0=最左，1=最右
sm_banner_y "0.15"        // 顶部横幅垂直位置：0=最顶，1=最底（当前默认0.15）
sm_banner_holdtime "4.0"  // 顶部横幅显示时长（秒）
sm_banner_color_r "128"   // 横幅文字颜色RGB
sm_banner_color_g "100"
sm_banner_color_b "255"   // 默认蓝紫(128,100,255)

改法：直接编辑cfg文件保存，然后服务器控制台输入：

sm plugins reload vip_enter_effect_sql

也可以在游戏/控制台直接改（立即生效，不用重载）：

sm_banner_y 0.15

不同分辨率（4:3 / 16:9 / 21:9）观感不同时，调 sm_banner_x / sm_banner_y 即可，无需改源码。

------------------------------------------------------------
9. 常见问题排查

  问题  |  原因  |  解决
  控制台显示"数据库连接失败"  |  sm_db_* 配置不对/MySQL没开  |  检查cfg里的主机/库名/账号/密码/端口
  进服没有横幅  |  数据库没记录/已过期  |  先激活VIP；确认插件已加载
  查询显示"该玩家没有VIP记录"  |  SteamID格式不对  |  必须 STEAM_1:1:xxxx（不是STEAM_0/64位）
  提示"数据库未连接"  |  连接失败  |  看控制台 [VIP] 错误日志，检查MySQL
  激活码提示无效  |  码输错/已被用  |  重新向管理员要新码，注意大小写
  生成激活码没权限  |  不是root  |  用 root 账号或 admins.cfg 加 flags "z"
  横幅显示慢  |  等玩家进队伍才显示  |  进T/CT队伍后0.5秒内显示，属正常
  横幅重复显示  |  ——  |  已加防重复：同一次进服只显示一次
  加载报错 Bad Load  |  插件文件损坏  |  重新解压 smx 覆盖

------------------------------------------------------------
10. 自定义修改

想改横幅文字 / 特权列表，编辑源码 `vip_enter_effect_sql.sp` 后重新编译：

- 横幅文字：搜 `VIP玩家` 四个显示函数里的内容
- 特权列表：搜 `ShowVipFeatureList` 函数，改里面的菜单项
- 横幅颜色/位置：直接改cfg参数（见第8节），不用编译

编译方法：用 SourceMod 的 spcomp 编译：

spcomp64 vip_enter_effect_sql.sp -o vip_enter_effect_sql.smx

------------------------------------------------------------
11. 文件清单

使用说明.txt                    ← 简明部署手册
vip_enter_effect_sql.smx        ← SQL完整版（推荐使用）
vip_enter_effect_sql.sp          ← SQL完整版源码
VIP进服特效一键建库.sql          ← MySQL一键建库+建表（纯SQL无注释）
VIP进服特效一键建表+加VIP.sql    ← 建表+给指定玩家加VIP示例
databases_vip配置.cfg            ← 数据库配置参考（给旧版/自建用）
本教程                        ← 完整教程


============================================================
                      免责声明
============================================================

本插件由AI辅助编写，未经完整测试，可能存在未知Bug或兼容性问题。

使用过程中如遇到任何问题（如报错、功能异常、数据异常等），
请自行学习并修复，或借助AI工具协助排查与修复。

插件仅供学习交流使用，使用者须自行承担使用风险；
因使用本插件造成的一切损失，与插件作者无关。

============================================================
