← 返回
未分类

GAM文件解析工具集

BA4988学习机 .gam 游戏文件解析与编辑工具集。包含技能表、角色数据、怪物/装备数据提取函数,以及byte3特殊效果分析工具。当需要对RPG伏魔记等GAM文件进行数据提取、技能分析、Byte3特殊效果推测时使用。
BA4988学习机 .gam 游戏文件解析与编辑工具集。包含技能表、角色数据、怪物/装备数据提取函数,以及byte3特殊效果分析工具。当需要对RPG伏魔记等GAM文件进行数据提取、技能分析、Byte3特殊效果推测时使用。
王侠不骑车
未分类 community v1.0.1 2 版本 98507.5 Key: 无需
★ 0
Stars
📥 66
下载
💾 0
安装
2
版本
#latest

概述

GAM文件解析工具集

解析 BA4988 学习机 .gam 游戏文件的 Python 工具集。

何时使用

  • 读取 .gam 文件中的技能表(名称、byte3、MP、描述)
  • 分析技能 byte3 的特殊效果标志(毒/乱/封/眠)
  • 查找和提取角色数据(角色名称、技能ID)
  • 提取怪物/NPC表数据
  • 需要快速编写一次性分析脚本时

核心工具脚本

scripts/gam_parse.py

完整的解析工具模块,包含以下函数:

函数功能
------------
load_gam(path)加载GAM文件,返回 bytes 数据
read_skill(data, index)读取单个技能的全部字段
read_all_skills(data)读取全部80个技能,返回列表
print_skills_table(skills)打印技能表(含byte3位分析)
print_skill_analysis(skills)按byte3位组合分组分析特殊效果
find_character(data, name)按名称搜索角色
read_character_skills(data, char_index)读取指定角色的技能ID
read_monster(data, index)读取单个怪物数据
read_all_monsters(data)读取全部怪物
read_gbk_ff(data, offset, max_len)以0xFF结尾读取GBK字符串(适用于怪物名称)
read_gbk_null(data, offset, max_len)以0x00结尾读取GBK字符串(适用于技能名称、描述)
write_gbk_term(buf, offset, text)写GBK字符串+0x00终止符,不padding,返回终止符偏移(关键:不破坏后续字节)
byte3_analyze(byte3)解析byte3的含义(全体标志+特殊效果位)

使用方式

脚本可以独立运行,也可以作为模块导入:

# 方式1:命令行运行,打印全部技能表
python gam_parse.py RPG伏魔记.gam

# 方式2:作为模块导入
from gam_parse import *
data = load_gam("RPG伏魔记.gam")
skills = read_all_skills(data)

格式参考

参见 references/gam_format.md 获取完整的数据结构文档。

常量(直接拷贝使用)

# 文件结构常量
SKILL_TABLE_OFFSET = 0x7C010   # 技能表起始偏移
SKILL_ENTRY_SIZE   = 0x80      # 每个技能128字节
SKILL_MAX_COUNT    = 80        # 最多80个技能

MONSTER_TABLE_OFFSET = 0x78400 # 怪物表起始偏移
MONSTER_ENTRY_SIZE   = 0x30    # 每个怪物48字节
MONSTER_MAX_COUNT    = 150     # 最多150个怪物

# 技能字段偏移
SKILL_F_MARKER   = 0x00   # 标记位(应为0x01)
SKILL_F_INDEX    = 0x01   # 技能序号
SKILL_F_BYTE2    = 0x02   # byte2(用途待确认)
SKILL_F_BYTE3    = 0x03   # byte3(全体标志+特殊效果)
SKILL_F_MP       = 0x04   # MP消耗(单字节)
SKILL_F_NAME     = 0x06   # 技能名称(内联,最长20字节,0x00终止,0x00填充)
SKILL_F_DESC     = 0x1E   # 技能描述(内联,0x00终止,前面可能有0x00填充)

byte3 编码规则

bit7(0x80) = 全体攻击标志(待验证)
bit6(0x40) = 未知
bit5(0x20) = 未知
bit4(0x10) = 未知
bit3(0x08) = 未知
bit2(0x04) = ?(可能=封/眠/毒之一,待确认)
bit1(0x02) = ?(可能=眠/封/毒之一,待确认)
bit0(0x01) = 乱(混乱)✅ 已确认

版本历史

共 2 个版本

  • v1.0.1 更新了BUG,还有BUG没修复 功能说明: - 支持解析步步高 BA4988 学习机 .gam 格式游戏文件 - 技能表解析:读取全部80个技能的名称、MP消耗、描述、byte3特殊效果 - byte3 位分析:自动分析全体攻击标志(0x80)和特殊效果位(混乱等) - 怪物/NPC表提取:读取怪物名称、HP、攻击力、防御力、速度、经验值 - 角色数据提取:按名称搜索角色、读取角色技能ID列表 - 提供 GBK 字符串读写工具(支持 0x00/0xFF 两种截断规则) 使用方式: - 命令行:python gam_parse.py RPG伏魔记.gam - 作为模块:from gam_parse import * 附带完整格式参考文档(references/gam_format.md),包含数据结构偏移量和验证数据。 当前
    2026-05-21 23:19 安全 安全
  • v1.0.0 初始版本,包含完整的GAM文件解析功能:技能表读取、byte3特殊效果分析、角色数据提取、怪物数据提取等。
    2026-05-18 14:22 安全 安全

安全检测

腾讯云安全 (Keen)

安全,无风险
查看报告

腾讯云安全 (Sanbu)

安全,无风险
查看报告

🔗 相关推荐

MarkText 中文汉化

user_56cd569d
>MarkText Markdown 编辑器中文汉化技能。通过修改 app.asar 内部文件,替换 409 处 UI 文本,实现完整的中文界面。支持一键汉化、一键还原、自动备份。
★ 1 📥 116

Vibe Coding 架构师

user_56cd569d
Vibe Coding 架构选型与项目启动方法论。在写任何一行代码之前,先用结构化思维锁定架构,再把架构翻译成 Prompt,最后才进入编码阶段。涵盖需求澄清、架构选型、任务拆解、Prompt 生成、逐步实施五大阶段。
★ 1 📥 142

腾讯龙虾技能打包助手

user_56cd569d
打包、导出、发布、上传技能到腾讯技能平台。将本地已调试好的技能一键打包为文件夹并生成腾讯技能平台所需的可复制表单字段(Slug、显示名称、图标、描述、版本号、变更说明),省去手动整理和反复粘贴的麻烦。
★ 1 📥 93