藏宝湾网游单机站

 找回密码
 注册

QQ登录

只需一步,快速开始

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

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

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

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

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

★『战online+原始传奇+维京传奇+伏魔者+魔域永恒+混沌战域』一刀99999999999刀刀光柱★

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

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

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

神武端游源码泄露08年神武2复古1比1原版
★08年神武2复古1比1原版金币翼龙免费4月10日新开2区★

★神武端游源码泄露08年神武2复古1比1原版金币翼龙免费4月10日新开2区★

☆春节活动开放放置传奇☆

★春节活动开放放置传奇★

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

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

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

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

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

★承接推广★

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

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

★完美国际纯防六职业,4月18号正式开区★

★完美国际纯防六职业,4月18号正式开区 ,上线赠送飞机坐骑,红蓝符★

★本服为纯06版本,1比1匹配,为大长期版本。半年一个新区。。上线1级生活技能全满,包裹仓库全开★

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

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

★★新增全新门派九黎城,★不做垃圾,力争什么都做到最好★持续更新,长久稳定★

★承接推广★

★承接推广★

★承接推广★

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

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

★《天使之战MU》经典奇迹重现★

★《天使之战MU》经典奇迹重现★

★2025年热门手游推荐:所有游戏充值永久0.1折,648只需6.48元!原版物价不膨胀★

★真实六职业-战-法-道-弓-刺-僧★

★独家传奇体验RPG玩法真实六职业-战-法-道-弓-刺-僧★

★转生属性,六格装备,称号种类,超多的道士BB,生肖技能 各种全新玩法等你来玩★

★彩虹岛s6独家玩法肝帝天堂★

★彩虹岛s6独家玩法肝帝天堂★

★s6彩虹岛,新服开区,来就送死霸脚底龙晶诸多特效。独家玩法护肝不杆不克,可刷一切★

查看: 358|回复: 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-4-26 20:33 , Processed in 0.055912 second(s), 18 queries .

Powered by Discuz! X3.4

Copyright © 2001-2021, Tencent Cloud.

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