藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

★【黑暗之光SF★我是大主宰SF】【神将三国SF】★

★【0.1折】★【变态网页游戏私服】★

★神将三国网页版上线送V5 5w元宝 5000w铜币 我是大主宰上线满v,80万元宝,小怪都爆元宝,耐玩长久稳定★

【原始传奇SF/维京传奇SF】【GM包站手游】

★【原始传奇SF/维京传奇SF】【GM包站手游】★

★2025火爆『传奇岁月+赤焰号角+维京传奇+原始传奇』爆战力称号BUFF+神装99999999万人PK★

首创可以单机 可以互动 可以赚烟钱的传奇

★全网独家 可以单机 可以互动的传奇!★

★全网唯一持续更新的可单机游戏!每15-25天更新一次内容,保持游戏新鲜度!! 众多独家的功能特色,众多你没见过的全新玩法,有能力的赚点烟钱,还能偶尔沙城战斗!★

★承接推广★
★承接推广★

★承接推广★

☆六一新区开放-放置传奇☆

★六一新区开放-放置传奇★

★可白嫖 上班摸鱼类 放置文字传奇游戏(放置休闲)qq群756025698★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★三职业复古★开局送神装★爆率100%★散人逆袭★

★〖双线〗〖无忧传奇〗〖每日新区〗〖开局送神装 100%高爆率 装备元宝打怪爆〗★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★DNF★全职业平衡★公益服★
★DNF★全职业平衡★公益服★

【dnf86版本】【怀旧服】【全职业平衡】【非变态服】【非商业服】【775016356】

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

查看: 174|回复: 1

[原创] 远征GM命令跟数据库创建

[复制链接]
 楼主| 发表于 3 天前 | 显示全部楼层 |阅读模式
本帖最后由 bfdz49 于 2025-5-28 11:21 编辑
  1. INSERT INTO GMCommands (CommandName, Description, Format, ErrorMsg, RequiredRight, CheckRight, SupportServer, ServerID)
  2. VALUES
  3. ('count', '显示在线玩家数量', '/count', '无效的命令格式', 10, 1, 0, NULL),
  4. ('userlist', '显示在线玩家列表', '/userlist', '无效的命令格式', 50, 1, 0, NULL),
  5. ('monitorluaerror', '监控玩家客户端的 Lua 错误信息', '/monitorluaerror <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  6. ('cancelmonitorluaerror', '取消监控玩家客户端的 Lua 错误信息', '/cancelmonitorluaerror <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  7. ('tile', '设置玩家的瓷砖位置', '/tile <玩家名> <x> <y>', '无效的命令格式', 150, 1, 1, NULL),
  8. ('move', '移动玩家到指定位置', '/move <玩家名> <x> <y>', '无效的命令格式', 150, 1, 1, NULL),
  9. ('moveex', '扩展移动玩家到指定位置', '/moveex <玩家名> <x> <y>', '无效的命令格式', 150, 1, 1, NULL),
  10. ('pull', '将玩家拉到 GM 位置', '/pull <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  11. ('push', '将玩家推到指定位置', '/push <玩家名> <x> <y>', '无效的命令格式', 150, 1, 1, NULL),
  12. ('setpos', '设置玩家的位置', '/setpos <玩家名> <x> <y>', '无效的命令格式', 150, 1, 1, NULL),
  13. ('getpos', '获取玩家的位置', '/getpos <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  14. ('mute', '禁言玩家', '/mute <玩家名> <时间> <原因>', '无效的命令格式', 100, 1, 1, NULL),
  15. ('muteex', '扩展禁言玩家', '/muteex <玩家名> <时间> <原因>', '无效的命令格式', 100, 1, 1, NULL),
  16. ('mutebroadcast', '广播禁言信息', '/mutebroadcast <玩家名> <时间> <原因>', '无效的命令格式', 100, 1, 1, NULL),
  17. ('kick', '踢出玩家', '/kick <玩家名> <原因>', '无效的命令格式', 100, 1, 1, NULL),
  18. ('kickbroadcast', '广播踢出信息', '/kickbroadcast <玩家名> <原因>', '无效的命令格式', 100, 1, 1, NULL),
  19. ('king', '设置玩家为国王', '/king <玩家名>', '无效的命令格式', 200, 1, 0, NULL),
  20. ('ad', '广播广告信息', '/ad <信息>', '无效的命令格式', 50, 1, 1, NULL),
  21. ('adreset', '重置广告信息', '/adreset', '无效的命令格式', 50, 1, 1, NULL),
  22. ('maintain', '设置维护模式', '/maintain <时间> <持续时间>', '无效的命令格式', 200, 1, 1, NULL),
  23. ('hide', '设置 GM 隐身状态', '/hide <状态>', '无效的命令格式', 100, 1, 0, NULL),
  24. ('scan', '扫描玩家信息', '/scan <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  25. ('scanprocess', '扫描玩家进程', '/scanprocess <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  26. ('scanqq', '扫描玩家 QQ 信息', '/scanqq <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  27. ('scanwinver', '扫描玩家 Windows 版本', '/scanwinver <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  28. ('scanping', '扫描玩家网络延迟', '/scanping <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  29. ('statuserinfo', '统计玩家信息', '/statuserinfo <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  30. ('getuserinfo', '获取玩家详细信息', '/getuserinfo <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  31. ('consolecmd', '执行控制台命令', '/consolecmd <命令>', '无效的命令格式', 200, 1, 1, NULL),
  32. ('scanplugin', '扫描玩家插件', '/scanplugin <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  33. ('killprocess', '杀死玩家进程', '/killprocess <玩家名> <进程名>', '无效的命令格式', 150, 1, 1, NULL),
  34. ('crash', '使玩家客户端崩溃', '/crash <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  35. ('killservercluster', '杀死服务器集群', '/killservercluster', '无效的命令格式', 200, 1, 1, NULL),
  36. ('addkey', '添加关键字', '/addkey <关键字>', '无效的命令格式', 50, 1, 1, NULL),
  37. ('removekey', '移除关键字', '/removekey <关键字>', '无效的命令格式', 50, 1, 1, NULL),
  38. ('clearkey', '清空关键字列表', '/clearkey', '无效的命令格式', 50, 1, 1, NULL),
  39. ('getfile', '获取文件信息', '/getfile <玩家名> <文件名>', '无效的命令格式', 100, 1, 1, NULL),
  40. ('getlog', '获取日志信息', '/getlog <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  41. ('debug', '调试信息', '/debug <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  42. ('startprofile', '开始性能分析', '/startprofile <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  43. ('stopprofile', '停止性能分析', '/stopprofile <玩家名>', '无效的命令格式', 150, 1, 1, NULL),
  44. ('getpath', '获取路径信息', '/getpath <玩家名>', '无效的命令格式', 100, 1, 1, NULL),
  45. ('getmutelist', '获取禁言列表', '/getmutelist', '无效的命令格式', 100, 1, 1, NULL),
  46. ('clearmutelist', '清空禁言列表', '/clearmutelist', '无效的命令格式', 100, 1, 1, NULL),
  47. ('freeze', '冻结玩家', '/freeze <玩家名> <时间> <原因>', '无效的命令格式', 150, 1, 1, NULL),
  48. ('prison', '将玩家投入监牢', '/prison <玩家名> <时间> <原因>', '无效的命令格式', 1
复制代码
创建数据库GM

  1. 创建   GMCommands   表
  2. CREATE TABLE GMCommands (
  3.     CommandID INT PRIMARY KEY IDENTITY(1,1), -- 主键,自增
  4.     CommandName NVARCHAR(255) NOT NULL, -- 命令名称
  5.     Description NVARCHAR(MAX), -- 命令描述
  6.     Format NVARCHAR(255), -- 命令格式
  7.     ErrorMsg NVARCHAR(255), -- 错误信息
  8.     RequiredRight BIGINT NOT NULL, -- 执行该命令所需的权限
  9.     CheckRight BIT NOT NULL DEFAULT 1, -- 是否需要检查权限
  10.     SupportServer BIT NOT NULL DEFAULT 0, -- 是否支持服务器操作
  11.     ServerID INT -- 服务器 ID(如果适用)
  12. );


  13. 创建   GMUsers   表

  14. CREATE TABLE GMUsers (
  15.     UserID INT PRIMARY KEY IDENTITY(1,1), -- 主键,自增
  16.     GMName NVARCHAR(255) NOT NULL, -- GM 用户名
  17.     ServerID INT, -- 用户所属服务器 ID(如果适用)
  18.     Rights BIGINT NOT NULL -- 用户的权限级别
  19. );

  20. 创建   CommandResults   表

  21. CREATE TABLE CommandResults (
  22.     ResultID INT PRIMARY KEY IDENTITY(1,1), -- 主键,自增
  23.     CommandID INT NOT NULL, -- 执行的命令 ID
  24.     SenderID INT NOT NULL, -- 发送者的用户 ID
  25.     ResultData VARBINARY(MAX), -- 命令执行的结果数据
  26.     ResultTime DATETIME NOT NULL DEFAULT GETDATE() -- 命令执行的时间
  27. );

  28. 可以为   CommandResults   表添加外键约束,引用   GMCommands   和   GMUsers   表。
  29. ALTER TABLE CommandResults
  30. ADD CONSTRAINT FK_CommandResults_CommandID
  31. FOREIGN KEY (CommandID) REFERENCES GMCommands(CommandID);

  32. ALTER TABLE CommandResults
  33. ADD CONSTRAINT FK_CommandResults_SenderID
  34. FOREIGN KEY (SenderID) REFERENCES GMUsers(UserID);

  35. 插入   GMCommands   数据

  36. INSERT INTO GMCommands (CommandName, Description, Format, ErrorMsg, RequiredRight, CheckRight, SupportServer, ServerID)
  37. VALUES
  38. ('kick', 'Kick a user from the server', '/kick <username>', 'Invalid command format', 100, 1, 1, NULL),
  39. ('broadcast', 'Broadcast a message to all users', '/broadcast <message>', 'Invalid command format', 50, 1, 1, NULL),
  40. ('status', 'Check server status', '/status', 'Invalid command format', 10, 1, 0, NULL);

  41. 插入   CommandResults   数据

  42. INSERT INTO CommandResults (CommandID, SenderID, ResultData, ResultTime)
  43. VALUES
  44. (1, 1, 0x12345678, '2025-05-28 10:00:00'),
  45. (2, 2, 0x87654321, '2025-05-28 10:30:00'),
  46. (3, 3, 0x11223344, '2025-05-28 11:00:00');

  47. 查询所有命令
  48. SELECT * FROM GMCommands;


  49. 查询特定用户的所有命令执行
  50. SELECT cr.ResultID, gc.CommandName, cr.ResultData, cr.ResultTime
  51. FROM CommandResults cr
  52. JOIN GMCommands gc ON cr.CommandID = gc.CommandID
  53. WHERE cr.SenderID = 1;



  54. GMCommands 表存储 GM 命令的基本信息和配置

  55. Column Name               Data Type                Description                                 
  56. CommandID                 INT (Primary Key)         命令的唯一标识符                             
  57. CommandName               NVARCHAR(255)            命令名称                                    
  58. Description               NVARCHAR(MAX)            命令描述                                    
  59. Format                    NVARCHAR(255)            命令格式                                    
  60. ErrorMsg                  NVARCHAR(255)            错误信息                                    
  61. RequiredRight             BIGINT                   执行该命令所需的权限                        
  62. CheckRight                BIT                      是否需要检查权限                             
  63. SupportServer             BIT                      是否支持服务器操作                           
  64. ServerID                  INT                      服务器 ID(如果适用)                        



  65. GMUsers 表存储 GM 用户的信息


  66. Column Name               Data Type                Description                                 
  67. UserID                    INT (Primary Key)         用户的唯一标识符                             
  68. GMName                    NVARCHAR(255)            GM 用户名                                    
  69. ServerID                  INT                      用户所属服务器 ID(如果适用)               
  70. Rights                    BIGINT                   用户的权限级别                              



  71. CommandResults 表存储命令执行的结果


  72. Column Name               Data Type                Description                                 
  73. ResultID                  INT (Primary Key)         结果的唯一标识符                             
  74. CommandID                 INT (Foreign Key)         执行的命令 ID                                
  75. SenderID                  INT                      发送者的用户 ID                              
  76. ResultData                VARBINARY(MAX)           命令执行的结果数据                           
  77. ResultTime                DATETIME                 命令执行的时间                              




复制代码
插入玩家数据
  1. 插入或更新玩家记录
  2. 出现错误话 例如这样
  3. 消息 544,级别 16,状态 1,第 1 行
  4. 当 IDENTITY_INSERT 设置为 OFF 时,不能为表 'GMUsers' 中的标识列插入显式值。

  5. 完成时间: 2025-05-28T10:29:30.9169367+08:00


  6. 解决方法方法 :关闭   IDENTITY_INSERT

  7. SET IDENTITY_INSERT GMUsers ON;

  8. 插入数据,3833是玩家的ID

  9. INSERT INTO GMUsers (UserID, GMName, ServerID, Rights)
  10. VALUES (3833, 'Player3833', NULL, 200);

  11. 重新打开   IDENTITY_INSERT

  12. SET IDENTITY_INSERT GMUsers OFF;

  13. 完整的 SQL 脚本

  14. SET IDENTITY_INSERT GMUsers ON;

  15. IF NOT EXISTS (SELECT 1 FROM GMUsers WHERE UserID = 3833)
  16. BEGIN
  17.     INSERT INTO GMUsers (UserID, GMName, ServerID, Rights)
  18.     VALUES (3833, 'Player3833', NULL, 200);
  19. END
  20. ELSE
  21. BEGIN
  22.     UPDATE GMUsers
  23.     SET Rights = 200, GMName = 'Player3833'
  24.     WHERE UserID = 3833;
  25. END

  26. SET IDENTITY_INSERT GMUsers OFF;


  27. 不使用   IDENTITY   插入如果你不需要显式指定   UserID  ,可以让 SQL Server 自动生成   UserID  。在这种情况下,你只需要插入其他字段,  UserID   会自动递增

  28. IF NOT EXISTS (SELECT 1 FROM GMUsers WHERE UserID = 3833)
  29. BEGIN
  30.     INSERT INTO GMUsers (GMName, ServerID, Rights)
  31.     VALUES ('Player3833', NULL, 200);
  32. END
  33. ELSE
  34. BEGIN
  35.     UPDATE GMUsers
  36.     SET Rights = 200, GMName = 'Player3833'
  37.     WHERE UserID = 3833;
  38. END

复制代码



本帖子中包含更多资源

您需要 登录 才可以下载或查看,没有账号?注册

x

评分

参与人数 1金币 +1 收起 理由
szdxzhao + 1 『遥遥领先!遥遥领先~』

查看全部评分

发表于 3 天前 | 显示全部楼层
大佬威武。。。。。。。。。。。
您需要登录后才可以回帖 登录 | 注册

本版积分规则

本站内容如若侵犯到您的权益,请来电来函告知,我们会尽快处理!
联系QQ:1953150286,2251387361,123784736,免责申明

排行榜|联系我们|小黑屋|手机版|Archiver|游戏藏宝湾 |

GMT+8, 2025-5-31 05:17 , Processed in 0.054200 second(s), 19 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

快速回复 返回顶部 返回列表