藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

★【神将三国SF★我是大主宰SF】【维京传奇SF】★

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

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

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

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

★『维京传奇+战online+仙姬剑+王城霸主+原始传奇+千军纵横』1刀99999999999999元宝满地★

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

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

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

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

★承接推广★

☆新区开放-放置传奇☆

★新区开放-放置传奇★

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

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

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

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

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

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

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

★上班族专属★休闲放置★充值可打★

★上班族专属★休闲放置★充值可打★

★〓新区来袭〓稳定三年联机游戏单机玩法-充值可爆-休闲挂机-纯收菜-可交易无PK★

★承接推广★

★承接推广★

★承接推广★

★★单开梦幻-梦境-公益服,白嫖所有★★

★★单开梦幻-梦境-公益服,白嫖所有★★

★★上线送V10,送无限挂机,解放双手★ ★全新挖宝。无尽宝塔任务,名人堂挑战★

查看: 500|回复: 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-10-15 04:21 , Processed in 0.120493 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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