RuleSet头像路径修复记录
时间：2025-06-15 (NOUVEAU DAY 69)
问题：玩家头像仍旧没有正常显示为RuleSet头像，NPC头像的路径变成了错误的格式

=== 问题分析 ===

1. 主要问题：
   - 玩家头像在valid.php、game.php等界面没有使用RuleSet头像
   - NPC头像路径错误：显示为 http://192.168.2.23:23333/img/gamedata/ruleset/ACBRA_2009/img/n_14.gif
   - 正确路径应为：http://192.168.2.23:23333/gamedata/ruleset/ACBRA_2009/img/n_14.gif

2. 根本原因：
   - 模板文件中硬编码了 "img/" 前缀
   - init_icon_states函数中的逻辑错误
   - 模板文件没有使用RuleSet头像逻辑

=== 修复内容 ===

1. 修复 templates/default/profile.htm (游戏界面玩家头像)
   - 添加RuleSet头像检测逻辑
   - 使用get_ruleset_avatar_path函数获取正确路径
   - 设置fallback到默认头像

2. 修复 templates/default/validover.htm (注册完成界面)
   - 添加RuleSet头像支持
   - 修复硬编码的头像路径

3. 修复 templates/default/usergdicon.htm (头像选择界面)
   - 添加RuleSet头像预览功能
   - 支持动态切换头像显示

4. 修复 templates/default/user_profile.htm (用户资料界面)
   - 添加RuleSet头像支持

5. 修复 templates/default/battle_rev.htm (战斗界面)
   - 移除硬编码的 "img/" 前缀
   - 修复 $tdata['iconImg'] 和 $sdata['iconImg'] 路径问题

6. 修复 templates/default/npcinfohelp.htm (NPC信息界面)
   - 修复NPC头像显示路径

7. 修复 include/init.func.php 中的 init_icon_states 函数
   - 修复大头像逻辑错误：确保 $pa['iconImg'] 总是被设置
   - 之前的逻辑：存在大头像时只设置 iconImgB，不存在时才设置 iconImg
   - 修复后：总是设置 iconImg，额外检查并设置 iconImgB

=== 技术细节 ===

1. 模板逻辑：
   - 检查当前房间是否使用RuleSet
   - 获取RuleSet配置
   - 根据性别和头像ID获取RuleSet头像路径
   - 检查文件是否存在
   - 设置正确的头像路径变量

2. 路径修复：
   - 移除模板中的硬编码 "img/" 前缀
   - 使用 init_icon_states 函数生成的完整路径
   - 确保路径格式正确

3. 函数修复：
   - init_icon_states 函数确保 iconImg 字段总是被设置
   - 大头像作为额外功能，不影响基础头像显示

=== 预期效果 ===

修复后应该实现：
1. 玩家头像在所有界面正确显示RuleSet头像
2. NPC头像路径格式正确：gamedata/ruleset/ACBRA_2009/img/n_14.gif
3. 头像选择界面预览RuleSet头像
4. 战斗界面正确显示所有角色头像
5. 不再出现重复的 img/ 前缀

=== 测试建议 ===

1. 在ACBRA_2009房间中测试玩家头像显示
2. 检查NPC头像是否正确显示
3. 测试头像选择界面的预览功能
4. 验证战斗界面的头像显示
5. 检查浏览器开发者工具中的图片请求路径

=== 撤回操作 ===

经用户指正，以下文件与RuleSet系统无关，已撤回修改：
- templates/default/usergdicon.htm (修改账号信息页面，只适用于大房间头像)
- templates/default/user_profile.htm (账号信息页面本体，只适用于大房间头像)
- templates/default/npcinfohelp.htm (大房间NPC信息清单，在help.htm中作为模板嵌套)

=== 相关文件 ===

最终修改的文件：
- templates/default/profile.htm (游戏界面玩家头像)
- templates/default/validover.htm (注册完成界面)
- templates/default/battle_rev.htm (战斗界面)
- include/init.func.php (核心头像处理函数)

依赖的文件：
- gamedata/ruleset/ruleset_config.php
- include/user.func.php (get_ruleset_avatar_path函数)

=== 重要说明 ===

今后对RuleSet的修改不应涉及以下文件：
- usergdicon.htm (账号信息修改页面)
- user_profile.htm (账号信息页面本体)
- npcinfohelp.htm (大房间NPC信息清单)
