Skip to content

3dchaos/DyzQuery

Repository files navigation

典狱长数据查询系统

一个基于Python的传奇游戏数据查询系统,支持怪物爆率、地图信息、物品掉落的查询和管理。

当前版本: v1.2

🚀 功能特性

核心功能

  • 怪物爆率查询: 支持复杂的爆率格式解析(普通、Child、Child Random、CALL)
  • 地图信息管理: 查询怪物在地图上的刷新位置和配置
  • 物品掉落查询: 反向查询物品的掉落怪物和爆率
  • Web界面: 现代化的Web查询界面,支持物品颜色分级显示
  • GUI应用: 桌面应用程序,支持数据管理和服务器启动
  • 外网访问: 自动获取并显示外网IP地址,支持远程访问
  • 服务端版本显示: 自动读取并显示服务端版本信息
  • 特殊字符兼容: 支持包含特殊字符的服务端名称,自动清理和转换

爆率解析支持

  • 普通格式: 1/100 物品名
  • Child格式: #Child 1/100 [参数] (物品列表)
  • Child Random格式: #Child 1/100 Random [参数] (物品列表)
  • CALL格式: #CALL [文件路径] @标签名

物品颜色分级系统

根据爆率高低自动为物品分配颜色等级:

  • 白色: 1/10及以下 - 最常见
  • 绿色: 1/50及以下 - 较常见
  • 蓝色: 1/200及以下 - 普通
  • 紫色: 1/1000及以下 - 稀有
  • 橙色: 1/5000及以下 - 很稀有
  • 红色: 其他 - 最稀有

特殊字符兼容性

系统自动处理服务端名称中的特殊字符:

  • 自动清理: 移除或替换SQL表名中不允许的字符
  • 字符转换: 将连字符、空格等特殊字符替换为下划线
  • 安全处理: 确保生成的表名符合SQL语法要求
  • 默认回退: 如果清理后为空,使用默认名称"DefaultServer"

📁 项目结构

查询爆率Python(本地)/
├── main.py                 # 主程序入口
├── gui_app.py             # GUI桌面应用
├── web_app.py             # Web应用服务器
├── data_manager.py        # 数据管理器
├── txt_reader.py          # 通用TXT文件读取器
├── drop_rate_parser.py    # 爆率文件解析器
├── drop_rate_database.py  # 爆率数据库管理
├── drop_rate_calculator.py # 爆率计算工具
├── globalVars.py          # 全局变量和常量管理
├── requirements.txt       # Python依赖
├── sqlite3.dll           # SQLite数据库驱动
├── dyzchaxun.ico         # 应用图标
├── README.md             # 项目说明
└── 测试服务端目录/        # 测试数据目录
    ├── Config.ini        # 服务器配置
    └── Mir200/          # 游戏服务端数据
        ├── Envir/
        │   ├── MapInfo.txt      # 地图信息
        │   ├── MonGen.txt       # 怪物生成配置
        │   └── MonItems/        # 怪物爆率文件
        └── M2Data/
            └── dyzSearch.DB     # 数据库文件

🛠️ 安装和运行

环境要求

  • Python 3.7+
  • Windows系统(推荐)

安装步骤

  1. 克隆项目
git clone <项目地址>
cd 查询爆率Python(本地)
  1. 安装依赖
pip install -r requirements.txt
  1. 运行程序
python main.py

运行模式

1. GUI桌面应用

  • 启动GUI界面进行数据管理
  • 支持启动Web服务器
  • 提供数据查询和管理功能
  • 显示软件版本号和服务端版本信息

2. Web应用

  • 访问 http://localhost:8080
  • 现代化的Web查询界面
  • 支持地图、怪物、物品查询
  • 物品颜色分级显示
  • 服务端版本信息显示

📊 数据库结构

主要数据表

  • drop_rate_stats: 爆率统计表
  • monster_drop_rates: 原始爆率数据
  • items: 物品信息表
  • map_table: 地图信息表

爆率计算逻辑

  • 普通格式: 直接使用爆率
  • Child格式: 子爆率 × 物品爆率
  • Child Random格式: 子爆率 × 1/物品数量
  • CALL格式: 调用外部文件的标签内容

🔧 核心模块说明

globalVars.py

全局变量和常量管理文件,提供:

  • 软件版本信息管理
  • 网络配置常量
  • 数据库配置常量
  • GUI和Web界面配置
  • 错误和成功消息模板
  • 爆率颜色分级配置

txt_reader.py

通用TXT文件读取器,支持:

  • 多种编码格式(UTF-8、GBK、GB2312等)
  • 自动编码检测
  • 大小写转换
  • 注释行过滤
  • 灵活的空白字符处理

drop_rate_parser.py

爆率文件解析器,支持:

  • 四种爆率格式的解析
  • 外部文件调用
  • 嵌套标签解析
  • 复杂爆率计算

drop_rate_database.py

爆率数据库管理器,提供:

  • 数据库创建和管理
  • 爆率数据存储
  • 统计信息计算
  • 查询接口

web_app.py

Web应用服务器,提供:

  • RESTful API接口
  • 现代化Web界面
  • 实时数据查询
  • 跨标签页导航
  • 物品颜色分级显示
  • 服务端版本信息显示

🎯 使用示例

查询怪物爆率

  1. 启动程序:python main.py
  2. 选择"怪物查询"标签
  3. 搜索怪物名称
  4. 查看爆出物品和爆率(带颜色分级)

查询物品掉落

  1. 选择"物品查询"标签
  2. 搜索物品名称
  3. 查看掉落怪物和爆率(带颜色分级)

查询地图信息

  1. 选择"地图查询"标签
  2. 搜索地图名称
  3. 查看怪物刷新配置

🔍 查询功能

支持的查询类型

  • 怪物查询: 查看怪物的爆出物品和出现地图
  • 物品查询: 查看物品的掉落怪物和爆率
  • 地图查询: 查看地图的怪物刷新配置

爆率显示

  • 支持多种爆率格式的显示
  • 自动计算最终爆率
  • 显示爆率来源和计算过程
  • 根据爆率高低显示不同颜色

🚀 开发说明

添加新的爆率格式

  1. drop_rate_parser.py 中添加解析逻辑
  2. drop_rate_database.py 中添加存储逻辑
  3. web_app.py 中添加显示逻辑

扩展数据库功能

  1. 修改 drop_rate_database.py 中的表结构
  2. 更新相关的查询接口
  3. 测试数据完整性

修改全局配置

  1. 编辑 globalVars.py 文件
  2. 修改相应的常量值
  3. 重启应用程序

📝 更新日志

v1.1.1 (当前版本)

  • 修复SQL语法错误: 解决服务端名称包含特殊字符导致的SQL语法错误
  • 增强特殊字符兼容性:
    • 自动清理服务端名称中的特殊字符(如 ϵǸ9
    • 将连字符、空格等字符替换为下划线
    • 移除连续的下划线,清理首尾下划线
    • 提供默认服务端名称回退机制
  • 优化SQL查询方式:
    • 将f-string SQL查询改为.format()方式
    • 修复动态表名嵌入时的语法问题
    • 确保SQL语句的正确性和安全性
  • 修复tkinter导入问题:
    • 解决打包后tkinter.messagebox导入错误
    • 使用兼容性更好的导入方式
    • 添加异常处理和回退机制
  • 完善安装包功能:
    • 创建完整的安装脚本和卸载脚本
    • 添加详细的使用说明文档
    • 支持自动安装到系统目录
  • 精简项目结构:
    • 删除不必要的文档文件
    • 清理构建缓存文件
    • 优化项目文件组织

v1.1.0

  • 新增全局变量管理: 创建 globalVars.py 文件,集中管理所有常量和配置
  • 添加版本号显示: GUI界面显示软件版本号
  • 优化Web界面:
    • 添加服务端版本信息显示
    • 实现物品颜色分级系统(白、绿、蓝、紫、橙、红)
    • 增加tab-content高度,改善显示效果
    • 在爆出物品和出现地图之间添加分隔线
    • 删除Web页面上的广告
  • 优化GUI界面:
    • 将广告移到右下角,减小字体
    • 使用全局常量替换硬编码值
  • 清理项目文件: 删除多余的缓存文件和构建文件
  • 完善文档: 更新README,添加新功能说明

v1.0.0

  • ✅ 基础功能实现
  • ✅ GUI和Web界面
  • ✅ 爆率解析系统
  • ✅ 数据库管理

📄 许可证

本项目仅供学习和研究使用。

🤝 贡献

欢迎提交Issue和Pull Request来改进项目。


典狱长数据查询系统 v1.1.0 - 让游戏数据查询更简单、更高效!

About

典狱长查询工具源码

Resources

License

Stars

Watchers

Forks

Releases

No releases published

Packages

No packages published

Languages