藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

【原始传奇SF/维京传奇SF★0.1折手游】

★【原始传奇SF/维京传奇SF★0.1折手游】★

★『0.01折+G.M游戏+千军纵横+开天西游+维京传奇+异兽洪荒+原始传奇』送99999充值★

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

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

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

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

★承接推广★

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

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

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

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

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

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

★承接推广★

★承接推广★

★承接推广★

稀有私服独家服★手游端游页游☆游戏发布网

★稀有私服☆独家服★手游端游页游☆游戏发布网★

★★专业的游戏发布论坛☆丰富的私服开服信息☆涵盖手机和网页及电脑端游★稀有游戏私服发布网★★

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

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

★★仙剑奇侠传★沉浸式体验★★

★★仙剑奇侠传★沉浸式体验★★

★【仙剑奇侠传】【以李逍遥视角代入仙剑世界,沉浸式体验】【内部福利多多】

★★秦时明月★少司命-邀约★★

★★★秦时明月★少司命-邀约★★★

★【秦时明月:沧海】【天天领648代金券】【8大内部特权礼包】【丰富玩法 江湖历练】【独创玩法 机关兽协作】★

★梦幻16门派全新大唐九黎★

★梦幻16门派全新大唐九黎★

★★独家PK系统,享受极致免费PK ★打造系统,装备可打造出无级别,宝珠点化无级别 ★炼妖系统,力劈善恶台子观照,炼妖炼到手软 ★不做垃圾,力争什么都做到最好 ★持续更新,长久稳定★

★正版传奇3三端引擎 官方授权 正版联运★
★正版传奇3三端引擎 官方授权 正版联运★

★『全新传奇3三端引擎 盛趣官方授权 正版联运 功能强大 灵活度高 功能免费定制模块』★

★【独家RPG文字梦幻】【摸鱼搬砖不氪不肝】★

★【独家RPG文字梦幻】【摸鱼搬砖不氪不肝】★

★新区开放,三端互通,适合上班挂机、摸鱼。 休闲放置,不占时间,玩熟了一天只需十几分钟就能轻松搞定★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

查看: 396|回复: 1

[原创] 话西游GM代码列表

[复制链接]
 楼主| 发表于 2025-2-27 14:51:07 | 显示全部楼层 |阅读模式
我今天做个代码 可以拿源代码来实现他有什么帮助可以在下面留言我会回复

看图

(1)定义GM日志记录函数
  1. import sqlite3
  2. from datetime import datetime

  3. def log_gm_action(db_connection, gm_id, command_id, player_id, action_details):
  4.     cursor = db_connection.cursor()
  5.     cursor.execute("""
  6.         INSERT INTO GMLogs (gm_id, command_id, player_id, timestamp, action_details)
  7.         VALUES (?, ?, ?, ?, ?)
  8.     """, (gm_id, command_id, player_id, datetime.now(), action_details))
  9.     db_connection.commit()
复制代码
定义GM指令执行函数
  1. def execute_gm_command(db_connection, gm_id, command_name, player_id, params):
  2.     cursor = db_connection.cursor()
  3.    
  4.     # 查询指令信息
  5.     cursor.execute("SELECT command_id, required_permission FROM GMCommands WHERE command_name = ?", (command_name,))
  6.     command = cursor.fetchone()
  7.     if not command:
  8.         print("Invalid command.")
  9.         return
  10.    
  11.     command_id, required_permission = command
  12.    
  13.     # 模拟权限检查
  14.     cursor.execute("SELECT permission_level FROM GMAccounts WHERE gm_id = ?", (gm_id,))
  15.     gm_permission = cursor.fetchone()
  16.     if not gm_permission or gm_permission[0] < required_permission:
  17.         print("Permission denied.")
  18.         return
  19.    
  20.     # 根据指令类型执行操作
  21.     if command_name == ".modify":
  22.         attribute, value = params.split()
  23.         cursor.execute(f"UPDATE Players SET {attribute} = ? WHERE player_id = ?", (value, player_id))
  24.         db_connection.commit()
  25.         log_gm_action(db_connection, gm_id, command_id, player_id, f"Modified {attribute} to {value}")
  26.         print(f"Modified player {player_id}'s {attribute} to {value}.")
  27.     elif command_name == ".additem":
  28.         item_id, quantity = params.split()
  29.         cursor.execute("UPDATE Players SET items = json_set(items, '$.items', json(items || json(?))) WHERE player_id = ?", (f'{{"item_id":{item_id}, "quantity":{quantity}}}', player_id))
  30.         db_connection.commit()
  31.         log_gm_action(db_connection, gm_id, command_id, player_id, f"Added item {item_id} x{quantity}")
  32.         print(f"Added item {item_id} x{quantity} to player {player_id}.")
  33.     else:
  34.         print("Command not implemented.")
复制代码
服务端接收GM指令服务端需要监听GM工具发送的指令,并调用相应的存储函数执行操作
  1. import socket
  2. import threading

  3. def handle_client(client_socket, db_connection):
  4.     while True:
  5.         try:
  6.             command = client_socket.recv(1024).decode('utf-8')
  7.             if not command:
  8.                 break
  9.             print(f"Received command: {command}")
  10.             # 解析指令并执行
  11.             gm_id, command_name, player_id, params = command.split('|')
  12.             execute_gm_command(db_connection, int(gm_id), command_name, int(player_id), params)
  13.         except Exception as e:
  14.             print(f"Error: {e}")
  15.             break
  16.     client_socket.close()

  17. def start_server():
  18.     db_connection = sqlite3.connect("game.db")
  19.     server_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  20.     server_socket.bind(('0.0.0.0', 8888))
  21.     server_socket.listen(5)
  22.     print("Server started. Listening on port 8888...")

  23.     while True:
  24.         client_socket, addr = server_socket.accept()
  25.         print(f"Accepted connection from {addr}")
  26.         client_handler = threading.Thread(target=handle_client, args=(client_socket, db_connection))
  27.         client_handler.start()

  28. if __name__ == "__main__":
  29.     start_server()
复制代码
客户端发送GM指令客户端通过网络连接到服务端,发送GM指令
  1. import socket

  2. def send_gm_command(gm_id, command_name, player_id, params):
  3.     client_socket = socket.socket(socket.AF_INET, socket.SOCK_STREAM)
  4.     client_socket.connect(('127.0.0.1', 8888))
  5.     command = f"{gm_id}|{command_name}|{player_id}|{params}"
  6.     client_socket.send(command.encode('utf-8'))
  7.     client_socket.close()

  8. # 示例:发送GM指令
  9. send_gm_command(1, ".modify", 123, "hp 1000")
  10. send_gm_command(1, ".additem", 123, "101 5")
复制代码
创建数据库表
  1. CREATE TABLE GMAccounts (
  2.     gm_id INT PRIMARY KEY,
  3.     username VARCHAR(255) NOT NULL,
  4.     password_hash VARCHAR(255) NOT NULL,
  5.     permission_level INT NOT NULL
  6. );

  7. CREATE TABLE GMCommands (
  8.     command_id INT PRIMARY KEY,
  9.     command_name VARCHAR(255) NOT NULL,
  10.     description TEXT,
  11.     required_permission INT NOT NULL
  12. );

  13. CREATE TABLE GMLogs (
  14.     log_id INT PRIMARY KEY,
  15.     gm_id INT NOT NULL,
  16.     command_id INT NOT NULL,
  17.     player_id INT NOT NULL,
  18.     timestamp DATETIME NOT NULL,
  19.     action_details TEXT
  20. );

  21. CREATE TABLE Players (
  22.     player_id INT PRIMARY KEY,
  23.     name VARCHAR(255) NOT NULL,
  24.     level INT NOT NULL,
  25.     hp INT NOT NULL,
  26.     mana INT NOT NULL,
  27.     gold INT NOT NULL,
  28.     items TEXT
  29. );
复制代码






本帖子中包含更多资源

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

x
发表于 2025-2-27 23:57:57 | 显示全部楼层
您需要登录后才可以回帖 登录 | 注册

本版积分规则

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

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

GMT+8, 2025-7-6 20:58 , Processed in 0.044362 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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