Commit Graph

740 Commits

Author SHA1 Message Date
11f6817d62 feat(fight): 优化战斗逻辑与精灵切换流程
- 在多个战斗控制器方法中添加 defer 调用,确保战斗操作正确延迟执行
- 修改 ChangePet 方法返回值类型,增强接口一致性
- 修复战斗准备阶段逻辑,重构战斗开始信息构建过程
- 移除冗余广播调用,调整 PVE 战斗初始化流程
- 更新 README 中的 pprof 命令地址并完善项目介绍部分

fix(effect): 修复效果叠加逻辑与ID解析问题

- 效果叠加时默认增加一层,而非直接相加参数
- 修正 EffectIDCombiner 类型、CatchTime 的掩码偏移计算错误
- 添加重复效果日志输出,便于调试追踪

feat(boss): 完善BOSS特性实现逻辑

- 修正 NewSel17 特性
2025-11-29 19:26:56 +08:00
f1c75abde6 Merge branch 'main' of github.com:72wo/blazing 2025-11-28 00:16:57 +08:00
f90581e0f6 ```
feat(fight): 优化擂台战斗逻辑与状态管理

- 修改了擂台主人设置逻辑,引入 `Set` 方法统一处理玩家信息更新
- 增加对擂主是否可战斗的判断,防止无效挑战
- 调整连胜计算和广播机制,确保数据一致性
- 修复擂台挑战失败时的状态回滚问题
- 引入错误码替代硬编码返回值,提高代码可读性与维护性
- 统一访问擂台玩家的方式,移除冗余字段
2025-11-28 00:16:51 +08:00
1
cb58c312bc fix(fight): 修正空变更导致的潜在逻辑问题 2025-11-27 12:05:21 +00:00
1
279f5d9d39 fix(fight): 修正空变更导致的潜在逻辑问题 2025-11-27 11:11:13 +00:00
1
aa87e1c55a fix(fight): 修正空变更导致的潜在逻辑问题 2025-11-27 10:58:30 +00:00
1
914e203d8b fix(fight): 修正Boss战捕捉逻辑执行顺序问题 2025-11-27 06:54:35 +00:00
0ab1a85d17 ```
feat(blazing): 更新怪物刷新规则模型结构

重构 monster_refresh.go 中的 MonsterRefresh 模型,调整字段定义以支持更灵活的刷新配置。
新增 MapID、MinLevel、MaxLevel、FixPos 和 Script 字段,用于支持地图和等级相关的刷新逻辑。
保留部分异色相关字段并标记为待定,便于后续决定是否移除。
新增 MonsterRefreshEX 结构体扩展 MonsterRefresh 并支持数组形式的 MonsterID 和 ShinyID。
修改注释内容以准确反映当前字段含义与用途。
同时修正 dict_info.go 中查询条件错误,将 type in (?) 更正
2025-11-27 01:23:12 +08:00
5a9c37e852 feat(effect): 实现多个新技能效果逻辑
- 新增 NewSel12 效果:实现特定条件下增加属性的功能
- 新增 NewSel36 效果:实现按回合轮换属性顺序出招的去血逻辑
- 修改 NewSel37 效果:限制仅对红伤生效
- 修改 NewSel39 和 NewSel40 效果:方法名从 Damage_Floor 改为 Damage_DIV_ex
- 新增 NewSel44 效果:实现重生逻辑,恢复
2025-11-26 23:09:20 +08:00
f15f08189f feat(effect): 实现多个新技能效果逻辑
新增了多个宠物战斗中的技能效果实现,包括伤害反弹、必杀技增强、先手权调整、
回复机制以及特殊条件触发逻辑。同时修复了部分技能判断条件与执行顺序问题,
优化了 AI 在 NPC 战斗中的行为表现,并完善了相关配置文件内容。
2025-11-26 18:39:23 +08:00
0ea1a24419 feat(fight): 实现 boss 战斗中精灵特性的支持与多个新魂印效果
- 在 `fight_boss.go` 中为 Boss 的每只宠物增加了 CatchTime 字段以区分不同精灵,
  并修复了技能特效参数解析的问题。
- 新增多个魂印(NewSeIdx)实现,包括:
  * 无限 PP、伤害倍率控制、命中屏蔽、属性克制、暴击率调整等。
- 调整了部分已有 NewSeIdx 文件中的方法调用方式,统一使用 `ID().GetCatchTime()`
  来判断精灵是否在场。
- 修改了 EffectIDCombiner 的字段访问方式,改为通过 Get/Set 方法操作。
- 优化战斗逻辑,在 NPC 战斗中加入 AI 自动出招机制。
2025-11-26 15:25:10 +08:00
f76587f952 feat(pet): 实现精灵融合功能并优化相关逻辑
新增精灵融合接口及处理逻辑,支持主副精灵融合生成新精灵,并消耗金币与材料。
同时调整了战斗技能选择流程、修复地图热度统计安全问题以及完善宠物删除机制。

- 添加 `PetFusion` 控制器方法实现融合核心逻辑
- 新增 `C2S_PetFusion` 和 `PetFusionInfo` 结构体用于通信
- 修正战斗中技能随机选取后立即返回的问题
- 修复太空站进入/离开时对地图热度的并发访问风险
-
2025-11-26 01:33:48 +08:00
f682abe537 ```
feat(item): 优化购买金币商品逻辑并完善宠物属性计算

- 购买金币商品时增加失败回滚机制,确保扣除金币与实际获得物品一致
- 使用 `CalculatePetPane` 替代 `Update` 方法以正确刷新宠物面板数据
- 精简地图热度统计逻辑,移除并发安全库依赖,改用普通 map 配合原子操作
- 移除 Space 结构体中冗余的 SuperValue 字段,直接通过 map 统计地图人数
- 更新地图配置文件中的怪物分布信息,调整部分怪物等级和数量配置
```
2025-11-25 21:10:52 +08:00
6455455992 feat(fight): 增加Boss精灵特效索引解析与空列表校验
在挑战Boss逻辑中,新增对Boss怪物NewSeIdxs字段的解析,将其分割并转换为EffectInfo添加到宠物信息中。同时增加对PetList为空时的错误处理,返回精灵不存在错误码。

refactor(effect): 调整技能属性判断方式及方法命名

将部分战斗效果和技能实体中的Type()方法重命名为GetType(),统一接口调用方式,并修改属性类型比较逻辑,直接通过整型值进行判断,提升代码一致性与可维护性。

fix(xml): 补充地图Boss配置项Id字段

更新地图配置文件中Boss节点缺失的Id属性,确保Boss数据结构完整性和唯一标识正确加载。

chore(input): 增加技能实体非空检查防止panic

在输入处理模块中加入对SelectSkillAction.SkillEntity的空指针检查,避免因未初始化技能导致运行时异常。
2025-11-25 18:25:52 +08:00
3e1887c7b8 ```
feat(broadcast): 添加全服广播功能并完善相关逻辑

新增 Broadcast 结构体及 Server 的 Broadcast 方法,用于实现全服广播消息,
并在 RPC 客户端中增加对应接口。同时在 fight 模块中添加聊天信息结构体和处理逻辑。

refactor(pet_skill): 优化宠物技能设置逻辑

修复宠物技能替换判断条件错误的问题,并调整相关逻辑顺序以提高代码可读性与健壮性。

feat(chat): 实现战斗内聊天功能

新增战斗中的聊天指令结构体 ChatInfo 和对应的控制器方法 FightChat,
支持玩家在战斗中发送聊天消息。

refactor(item_buy): 调整金币购买道具的扣费方式

将原直接比较金币数量改为调用
2025-11-25 16:36:55 +08:00
40d72790ff feat(xmlres): 实装性格重塑,实装性格指定
fix(fight): 使用模型层方法生成精灵信息
refactor(controller): 移除冗余变量与内联XML读取逻辑
refactor(pet): 重构经验更新与进化逻辑
refactor(item): 校验并扣减使用道具数量
feat(item): 新增金豆购买商品协议结构体
feat(user): 迁移角色服装变更逻辑至user控制器
feat(pet): 增加技能排序协议定义
refactor(utils): 移除未使用的工具函数引用
chore(config): 更新地图怪物配置信息

详细变更内容包括:
- 在`xmlres/file.go`中初始化`GoldProductMap`并加载相关配置。
- 将`GenPetInfo`方法从玩家服务迁移至`model`包以统一管理。
- 合并部分不必要的局部变量声明,并优化XML资源加载方式。
- 拆分精灵升级与进化方法,明确调用职责。
- 在战斗和治疗等操作前增加货币校验及扣除逻辑。
- 补充金豆购买相关的客户端/服务端通信结构体。
- 调整技能选择逻辑避免潜在索引越界问题。
- 更新部分注释说明和代码结构以提升可维护性。
2025-11-25 12:29:50 +08:00
147758c5ae fix(fight_boss): 调整Boss捕捉逻辑位置以确保正确执行
将Boss捕捉率获取逻辑从循环外移至循环内,确保在处理Boss宠物信息之后再进行捕捉率赋值。

feat(pet): 新增协议结构体定义用于学习力相关操作

新增C2S_9756与S2C_9756结构体,支持学习力相关的客户端请求与服务端响应处理。
2025-11-25 02:35:36 +08:00
28e0addda0 ```
feat(pet): 添加学习力分配功能并优化相关逻辑

- 新增 PetEVdiy 接口用于自定义宠物学习力分配
- 限制单次学习力分配不超过510,单项不超过255
- 学习力池 EVPool 字段添加到 PlayerInfo 结构体
- 使用 github.com/samber/lo 简化数组求和操作
- 更新 fight_boss 逻辑以正确处理 BOSS 战斗后经验与学习力奖励发放
- 调整任务列表中部分
2025-11-25 00:55:10 +08:00
50232339d9 ```
refactor(rpc): 更新结构体标签以跳过特定字段序列化

将多个结构体中的 `struc:"[0]pad"` 标签更改为 `struc:"skip"`,
以避免在序列化过程中处理不必要的填充字段。同时新增放生与领回相关逻辑,
并完善部分控制器函数和消息结构定义。
```
2025-11-24 11:56:20 +08:00
1
2723b1871d fix: 修复空提交问题 2025-11-23 23:42:16 +00:00
1
240c349b8a fix: 修复空提交问题 2025-11-23 23:38:03 +00:00
1
aa4574b5eb fix: 修复空提交问题 2025-11-23 09:59:34 +00:00
1
41315ac884 fix: 修复空提交问题 2025-11-23 09:54:54 +00:00
5c5e5c06ab ```
feat(fight): 优化Boss战奖励发放与经验通知逻辑

- 重构 Boss 怪物掉落物品发放代码,提高可读性与扩展性
- 注释掉宠物经验变化的通知指令(2509),暂不发送给客户端
- 修复战斗模式判断条件,从 Mode 改为 Status 判断 PVE 战斗
- 调整战斗超时逻辑,修改超时原因并增加调试日志输出
- 优化战斗结束回调执行顺序,确保广播前完成状态更新
- 重写 PetInfo.AddEV 方法,支持更安全
2025-11-23 00:06:14 +08:00
1dbd4169e9 feat(xmlres): 更新 BOSS 配置结构并优化字段注释
新增多个 BOSS 相关配置字段,包括任务关联、奖励机制与挑战限制等,
增强 BOSS 精灵的可配置性与业务表达能力。同时完善字段注释以对齐 XML
实际使用情况,并保留原有部分字段用于兼容历史配置。

fix(fight): 调整战斗胜利回调执行顺序以确保数据一致性

将战斗结束回调移至广播之前执行,保证在发送战斗结果前已完成所有状态
更新,尤其是针对胜利宠物的信息同步
2025-11-22 22:57:32 +08:00
7f443736bc feat(fight): 重构战斗效果触发机制与ID管理
- 统一将 Skill_Hit_Pre 和 Skill_Hit_Pre_ex 方法重命名为 Action_start 和 Action_start_ex
- 新增 Action_end 和 Action_end_ex 接口方法,完善行动周期控制
- 修改效果ID生成逻辑,使用 EffectIDCombiner 替代简单整数运算,提升扩展性
- 调整状态类效果判断方式,通过前缀匹配识别状态类型
- 增加随机持续时间和参数设置功能,增强部分效果的表现力
- 优化战斗流程中效果执行时机,确保行为前后逻辑完整闭环
2025-11-22 00:44:42 +08:00
1
684d79981a 11 2025-11-21 06:11:35 +00:00
1
315f720e49 fix: 修复空提交问题 2025-11-21 05:47:51 +00:00
1
8a10948775 fix: 修复空提交问题 2025-11-21 03:07:17 +00:00
7a9440747f ```
feat(fight): 增加战斗模式枚举并重构战斗逻辑判断

- 引入完整的 BattleMode 枚举定义,替代原有的 BattleStatus,明确区分各类战斗场景
- 在多个控制器中替换对旧 Status 字段的依赖,统一使用 Mode 判断战斗状态
- 修复部分函数调用前未检查 FightC 是否为空的问题,增加 ErrBattleEnded 错误返回
- 调整玩家战斗资格判断逻辑,增强状态控制和原子操作安全性
- 更新 Boss 战与 NPC 战逻辑,支持更灵活的捕捉机制和事件触发条件
- 优化擂台战斗流程,防止重复挑战和异常退出后的状态清理
- 改进里程碑系统参数存储方式,并完善执行回调逻辑
```
2025-11-21 02:43:24 +08:00
e54d4bacaa ```
feat(fight): 增加战斗模式枚举并重构战斗逻辑判断

- 引入完整的 BattleMode 枚举定义,替代原有的 BattleStatus,明确区分各类战斗场景
- 在多个控制器中替换对旧 Status 字段的依赖,统一使用 Mode 判断战斗状态
- 修复部分函数调用前未检查 FightC 是否为空的问题,增加 ErrBattleEnded 错误返回
- 调整
2025-11-21 02:40:27 +08:00
105c6f5a23 ```
fix(fight): 修复战斗逻辑中的一些潜在问题

- 在 `fight_leitai.go` 中增加玩家是否可以战斗的判断,避免非法挑战
- 注释掉部分冗余的日志打印与广播调用,并调整了擂台状态更新逻辑
- 修正 `effect_62.go` 中镇魂歌效果持续时间的处理方式,引入独立计数器 `duy`
- 优化随机精灵生成逻辑,确保 CatchTime 正确设置
- 增加对数据库操作错误的 panic 处理,提高代码健壮性
- 调整部分结构体指针传递,统一返回结构体指针以避免拷贝问题
- 移除未使用的导入包和调试日志,清理无用代码
```
2025-11-20 21:37:37 +08:00
9f89f9f259 ```
fix(binary): 修复零值处理导致的结构体打包异常

在 binaryFallback 的 Sizeof 和 Pack 方法中增加对 IsZero 值的判断,
避免空值参与序列化计算引发错误。同时调整了 struc 包相关逻辑以正确
处理空值情况,并打印调试日志辅助排查。

feat(fight): 完善玩家 PVP 对战胜负统计逻辑

修正 PET_MELEE 与 PET_King 模式下胜利归属判定问题,确保只有实际胜出
者才累计胜利次数。此外优化了战斗邀请流程,移除冗余状态控制字段并增强
邀请有效性校验,提升 PvP 流程稳定性。

refactor(pack): 简化数据组包逻辑并提高兼容性

重构 TomeeHeader.Pack 方法,去除反射相关的复杂类型判断,统一使用 struc
进行编码,强化对 nil、interface{} 及多级指针的支持。另外更新了客户端发包
记录日志内容以便追踪调试。

style(code): 规范代码格式并清理无用注释和字段

删除多个文件中的无效或过时注释,如 PlayerID 字段标记废弃、无意义的日志输出等;
同步更新结构体字段命名一致性(如 NonoColor),并对部分函数参数及条件表达式做
可读性优化,整体提升代码整洁度和维护性。
```
2025-11-20 15:19:13 +08:00
53d6db7e17 fix(fight): 修复战斗中属性变化与暴击判定逻辑
- 调整能力提升计算时机,确保命中后再恢复原始属性
- 暴击判断前置,仅在命中时计算暴击翻倍及破防逻辑
- 优化回合结束效果清除逻辑,增加状态存活判断

refactor(controller): 重构擂台相关接口返回结构体类型

- 将 ARENA_SET_OWENR、ARENA_FIGHT_OWENR 等函数的返回值统一改为
  NullOutboundInfo,并移除冗余字段返回
- 广播逻辑调整,统一使用 Broadcast
2025-11-20 05:57:29 +08:00
c0b09c92c4 ```
refactor(common): 统一使用 common.TomeeHeader 替代 player.TomeeHeader

将多处
2025-11-19 16:11:02 +08:00
1
31439b707c fix: 修复空提交问题 2025-11-19 00:09:12 +00:00
1
24f2a6d7c8 fix: 修复空提交问题 2025-11-18 23:41:31 +00:00
1
6831861e0d fix: 修复空提交问题 2025-11-18 22:16:55 +00:00
1
f164d3c358 fix: 修复空提交问题 2025-11-18 21:03:00 +00:00
1
6c32a5d7ac 修改广播逻辑 2025-11-18 20:52:04 +00:00
1
4ab6b726a7 fix: 修复空提交问题 2025-11-17 21:45:45 +00:00
1
c6d3b4788d 1 2025-11-17 19:31:51 +00:00
1
27de997f92 fix: 修复空提交问题 2025-11-17 17:36:24 +00:00
1
64e8b2c412 fix: 修复空提交问题 2025-11-17 16:04:20 +00:00
1
795503856c fix: 修复空提交问题 2025-11-17 15:31:23 +00:00
ec14ab11c0 feat(fight): 优化战斗逻辑与奖励事件处理
- 在 `fight_boss.go` 中,调整了玩家挑战 Boss 的奖励事件注册逻辑,
  并在战斗结束后正确取消事件监听。
- 修改了多个技能效果文件(`effect_13.go`、`effect_38.go`、`effect_49.go`),
  增强状态持续时间计算和数据安全性。
- 更新 `player/done.go` 中的 `SPT` 方法签名以返回监听器实例。
- 调整数据库操作方法,将 `Update` 替换为 `Save` 以确保数据一致性。
- 修复菜单排序语法问题,统一使用字符串形式的排序表达式。
2025-11-17 13:37:08 +08:00
a95e6b8491 ```
feat(common): 升级 gf 框架版本至 v2.8.0 并优化模型时间字段

- 将 `github.com/gogf/gf/contrib/drivers/pgsql/v2` 和 redis 依赖从 v2.6.3 升级到 v2.8.0
- 使用 `*gtime.Time` 替代标准库 `time.Time` 以支持更灵活的时间处理
- 移除 Model 结构体中 CreateTime、UpdateTime 等字段的默认初始化逻辑
- 注释掉已弃用的 GDBM 函数,推荐使用 DBM
- 在 DBM 中添加 OnConflict("id") 配置以增强写入安全性
- 调整部分代码结构与调用方式以适配新版框架行为
```
2025-11-17 12:59:46 +08:00
4e5886dbf9 Merge branch 'main' of github.com:72wo/blazing 2025-11-17 11:00:19 +08:00
f1c990c182 fix(logic/service/player): 修复玩家信息保存时的指针解引用问题
修复了 Player 结构体在调用 Service.Info.Save 方法时传入的是指针而非实际值的问题,
同时修改 InfoService.Save 方法以接受值类型参数而不是指针,并更新内部数据赋值逻辑。
2025-11-17 11:00:12 +08:00
1
f286297ff3 fix: 修复空提交问题 2025-11-17 03:00:03 +00:00