Commit Graph

80 Commits

Author SHA1 Message Date
fd4c494530 ```
refactor(fight): 重构战斗状态效果系统

- 重命名BaseStatus.Switch方法为SwitchOut以提高语义清晰度
- 修改ParasiticSeed结构体继承关系,从BaseStatus改为EffectNode
- 添加Status字段用于存储状态类型枚举
- 修复战斗循环中血量计算逻辑,使用Min替代Max确保血量不超过上限
- 完善PetSwitch逻辑,确保我方单位下场时状态正确失效

fix(fight): 修复战斗播报和切换逻辑

- 在战斗回合信息中添加技能
2025-12-26 03:51:24 +08:00
143e02de77 ```
feat(fight): 实现精灵切换时的出战和下场触发机制

- 新增SwitchOut接口方法用于精灵下场时触发
- 重命名Switch为SwitchIn用于精灵出战时触发
- 在战斗流程中添加精灵下场时的广播调用
- 修改EffectDefeatTrigger等效果的切换逻辑

refactor(effects): 优化战斗效果的切换处理逻辑

- 修改Effect147和Effect148的触发条件判断逻辑
-
2025-12-25 20:49:54 +08:00
90fdb49b92 ```
feat(logic): 新增减少最大生命值效果并优化属性同步逻辑

新增了减少最大生命值的效果实现(opTypeMaxHP),并在 EffectPropSyncReverse
结构体中增加了对目标宠物属性的处理逻辑。同时重构了属性同步与反转相关代码,
改进了效果激活
2025-12-19 21:12:45 +08:00
96b5dbb425 feat(fight): 重构属性同步与反转效果逻辑
统一处理效果45、51、55、56的属性同步与反转逻辑,优化代码结构并提高可维护性。新增通用效果结构体 `EffectPropSyncReverse` 和操作类型定义,集中管理不同属性操作行为。

fix(controller): 修复玩家离开地图逻辑错误

修正 `FRESH_LEAVE_FIGHT_LEVEL` 接口中 defer 调用为进入地图,并发送角色信息包给客户端以确保状态一致。

feat(effect): 新增天敌机制核心逻辑占位

在 `NewSel14` 效果中添加 `Turn_Start` 方法,实现若遇到天敌则害怕多回合的核心逻辑框架。

chore(config): 更新Boss配置怪物ID及血量

调整Boss ID为2的怪物配置,替换原有Monster ID并设置血量为10,用于测试或平衡调整。

refactor(fight): 优化战斗循环和精灵切换逻辑

整理战斗主循环中的血量赋值语句格式,调整精灵切换时变量顺序以避免潜在问题,并修复死亡标记逻辑。

refactor(node): 恢复BoolisFalse方法实现

取消注释 `BoolisFalse` 方法内容,恢复其正常功能以便其他模块正确判断布尔条件。

style(logic): 格式化代码空行和缩进

清理多余空行,对齐导入语句与其他代码块格式,增强整体代码可读性。

debug(effect): 增加烧伤伤害调试打印

在持续伤害效果中加入println语句,输出实际造成的真实伤害数值便于排查问题。
2025-12-18 23:57:17 +08:00
1
fb835a017f 1 2025-12-18 13:10:40 +00:00
1
def1808590 "fix(fight): 优化效果恢复逻辑,增加持续时间检查并修复回合结束效果递减" 2025-12-18 07:19:38 +00:00
ae616ac848 feat(boss): 实现 boss 特殊技能逻辑增强
- 新增 NewSeIdx_12 技能:受到特殊攻击时提升指定 battle_lv 等级,可配置最大触发次数
- 新增 NewSeIdx_16 技能:根据 HP 减少量动态提升指定 battle_lv 等级,每损失 1/8 最大 HP 提升一级
- 新增 NewSeIdx_26 技能:预留 Turn_Start 接口以支持回合开始时的逻辑处理
- 在 EffectNode 中增加命中日志输出,便于调试效果触发情况
2025-12-18 00:32:47 +08:00
49b9e938f5 ```
refactor(controller): 优化控制器初始化与命令解析逻辑

- 重构 getCmd 和 ParseCmdTag
2025-12-11 10:32:39 +08:00
1
6b534adc07 ``` feat(fight): 新增战斗回合Hook机制,实现特定条件下强制结束战斗和随机出手逻辑 2025-12-10 18:37:32 +00:00
91690658b5 feat(boss-effect): 统一处理参数类型转换,提升数值比较与运算准确性
对多个 boss 技能效果文件中的参数调用进行了统一调整,将原先直接使用 `e.Args()[index]` 的地方,
改为通过 `e.Args()[index].IntPart()` 或 `e.Args()[index]` 进行类型转换后再参与逻辑判断或数值计算。
同时修正了部分 HP 比较方式,由整型比较转为 decimal
2025-12-06 15:11:42 +08:00
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
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
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
315f720e49 fix: 修复空提交问题 2025-11-21 05:47:51 +00: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
1
c6d3b4788d 1 2025-11-17 19:31:51 +00:00
1
5dbff2411c 重构 2025-11-16 20:30:17 +00:00
1
7dd732c1ec t 2025-11-16 13:10:34 +00:00
0e1860bdf4 ```
feat(fight): 实现精灵大乱斗模式并优化对战逻辑

新增大乱斗模式(PET_MELEE)支持,重构原有精灵王之战相关逻辑。
更新战斗初始化流程,添加随机精灵选择机制。
调整玩家匹配与取消邀请接口实现方式。
完善战斗结束处理函数,移除未实现异常抛出。
```
2025-11-15 01:53:51 +08:00
004ce51c5e feat(fight): 调整效果叠加逻辑与精灵属性处理
- 将 `MaxStack` 方法重命名为 `CanStack`,并修改其逻辑为布尔值控制是否可叠加
- 更新多个效果文件中的注释和调用方式以适配新的叠加控制方法
- 修复精灵属性类型获取逻辑,增加缓存字段 `PType`
- 修改战斗回合处理流程,优化技能解析顺序和状态比较时机
- 调整状态效果初始化逻辑,确保状态类效果默认允许无限叠加
- 更正伤害类型缺失问题,在固定伤害
2025-11-14 06:14:49 +08:00
6afae2c704 fix(fight): 调整技能命中逻辑与效果触发时机
移除冗余的 Calculate_Pre 调用注释,优化技能命中判断流程。
将 SkillID 赋值操作移动至命中条件判断内部,确保仅在技能命中时记录。
注释掉部分不再使用的接口方法定义,保持代码整洁。
2025-11-14 04:23:50 +08:00
c4d0119129 ```
refactor(fight): 重构击败触发效果机制,优化代码结构

将 EffectDefeatTrigger 中的回调函数模式改为基于 effectID 的 switch-case 实现,
移除冗余的 defeatTriggerFunc 类型定义。统一通过 triggerByID 方法根据 ID 分发执行具体行为,
提高可维护性和扩展性。

同时更新 AddEffect 方法签名以支持传入主动方输入上下文,增强效果添加时的控制逻辑。
修复部分效果在添加状态时未正确传递施加者信息的问题。

此外,清理了部分注释和无用代码,使逻辑更清晰。
```
2025-11-14 03:21:00 +08:00
6ba9c3549c feat(fight): 优化精灵切换逻辑与技能效果处理
- 修改 `ChangePet` 方法,记录初始攻击值并在切换时正确传递
- 简化多个 effect 的初始化方式,移除冗余的 `EffectNode` 字段
- 增强 Effect58 和 Effect67 的逻辑判断,增加空指针检查和类型判断
- 引入 decimal 包用于精确血量计算
- 统一 `Switch` 接口参数,增强状态类和节点类的兼容性
- 修正部分技能效果的触发条件和持续时间设置
- 调整回合结束逻辑,注释掉原有后手增益机制
2025-11-13 23:06:55 +08:00
5e3d558d30 ```
feat(player): 添加 UseCoins 方法统一处理玩家金币消耗逻辑

重构购买物品和变更外观功能,使用 UseCoins 方法替代手动操作 Coins 字段,
确保金币扣除的安全性和一致性。同时修复可能因并发导致的金币超扣问题。

此外,调整部分战斗系统接口参数传递方式,将 DamageZone 指
2025-11-13 21:36:18 +08:00
6e01848b04 ```
refactor(socket): 移除未使用的网络相关导入和注释掉的 RST 攻击检测逻辑

移除了 `ServerEvent.go` 中未使用的 `net` 和 `strings` 包导入。同时,
将原有的 RST 攻击检测及防护逻辑代码注释掉,便于后续重新设计或彻底删除。

fix(logic): 调整 fight pool 初始化与释放策略

将 `fight/action.go` 中的 `Fightpool` 类型从 `*ants.MultiPool`
改为 `*ants.Pool`,并调整其初始化方式为 `NewPool(-1)` 以适应动态扩容。
此外,在 `main.go` 中将 `ReleaseTimeout` 参数由 100 调整为 0,
确保立即清理超时任务。

feat(fight): 优化战斗输入状态重置逻辑

在 `fight/action.go` 的 `ReadyFight` 方法中提前设置
`GetInputByPlayer(c, false).Finished = true`,避免重复赋值。
同时更新了状态睡眠效果的处理流程,并简化了输入模块的状态缓存机制,
移除了冗余的 `Initeffectcache` 函数调用及相关逻辑。

perf(fight): 动态计算玩家动作等待时间

在 `loop.go` 的 `collectPlayerActions` 方法中,
将固定超时时间替换为基于 `waittime` 的动态等待时间计算公式,
提高响应灵活性。同时修复通道关闭判断条件以增强稳定性。

refactor(fight): 更新技能效果解析和状态持续逻辑

修改 `input.go` 中 `GenSataus` 方法以正确初始化状态数组;
在 `Turn.go` 中重构 `Turn_End` 方法内的执行逻辑,
确保仅在我方后手时增加回合数,提升战斗流程准确性。

chore(service): 删除废弃文件 SocketHandler_Tomee.go

完全移除已弃用的 `SocketHandler_Tomee.go` 文件及其全部内容,
减少项目冗余代码。
```
2025-11-13 05:05:05 +08:00
f281b949ba ```
feat(fight): 调整战斗逻辑与精灵切换机制

- 优化精灵切换时的效果处理,增加切换事件支持
- 修复战斗中超时逻辑和技能CD计算问题
- 增强状态效果在精灵上下场时的清理机制
- 修改伤害计算逻辑以提高准确性
- 更新战斗池初始化参数提升并发性能

此外,同步更新了宠物放生字段命名及逻辑处理方式,并调整网络通信中的限流策略。
```
2025-11-13 02:43:00 +08:00
0b5cfac0b2 ```
feat(fight): 调整战斗逻辑与伤害计算流程

- 移除 `Over` 方法中的冗余回调参数 `fn`
- 修复部分技能效果中错误的伤害目标对象(Our/Opp)
- 优化战斗循环逻辑,使用 `over` channel 替代 `quit` 作为战斗结束信号
- 增加回合效果执行前的存活状态判断
- 修正伤害计算过程中对血量扣减的逻辑错误
-
2025-11-12 01:19:24 +08:00
1
65758c799e fix(fight): 战斗修改 2025-11-11 05:54:24 +00:00
da9286d3d8 ```
feat(fight): 调整技能效果命中逻辑与回合开始处理

- 修改了技能效果命中的判定顺序,确保暴击计算在效果添加之前执行
- 修复了回合开始时敌我双方状态结算的上下文错误
- 优化了效果缓存初始化逻辑,避免重复添加相同效果
- 增加了效果去重判断,防止完全相同的效果被重复添加
- 调整了战斗循环中结束逻辑的位置,确保广播和通道关闭正确执行
- 更新了部分日志提示信息,使其更符合实际业务含义
- 移除了部分无用代码和注释,提高
2025-11-11 01:10:26 +08:00
1
996e342459 fix(fight): 修复空变更提交问题 2025-11-10 10:25:18 +00:00
8b48ce1c06 ```
feat(fight): 调整技能与状态效果逻辑,优化战斗流程

- 注释掉状态 ID 13 的注册,暂不启用 DrainedHP 状态
- 为 Effect10 增加输入参数设置,标记目标单位
- 重构 Effect62 实现逻辑,新增子效果 Effect62_1 支持回合触发秒杀机制
- 引入 decimal 包以支持精确伤害计算
- 修改命中判断流程,修复部分技能命中异常问题
- 增加睡眠状态对空技能的防御处理
- 优化战斗死亡判定逻辑,支持同归于尽判定及战斗结束控制
2025-11-08 23:20:48 +08:00
b864576ca9 fix(task): 修复任务奖励与宠物 2025-11-08 18:37:11 +08:00
c916440033 ```
feat(fight): 完善战斗系统中道具使用逻辑与血量恢复机制

- 修改 item.go 中 Item 结构体,将 Bonus 字段类型由 string
2025-11-08 16:38:41 +08:00
1
abaa51af38 feat(log): 添加QQWry IP数据库支持并实现IP地址解析功能 2025-11-03 16:19:24 +00:00
1
35935549bd refactor(effect): 重构效果节点生命周期管理及属主控制逻辑
- 将Alive()方法改为Alive(bool)可设置方法,替代NotALive()
- 将GetOwner()改为Owner(bool)可设置方法
- 修复效果初始化时默认激活状态
- 优化效果叠层和取消逻辑
- 修正超时处理日志输出
2025-11-03 14:46:33 +00:00
30ed47a30c ```
refactor(socket): 优化消息处理逻辑,避免顺序执行问题

将消息处理的循环从协程外部移入协程内部,确保每个消息在独立的 goroutine 中处理,
避免因并发导致的消息顺序错乱问题。同时移除了多余的空行,使代码更简洁。

fix(controller): 为低 ID 用户设置 VIP 标志

在 COMMEND_ONLINE 接口逻辑中,新增对 UserID 小于 10000 的用户设置 IsVip = 1,
用于标识测试或特殊用户身份。

ref
2025-11-03 03:59:59 +08:00
eac1d41043 fix(rpc): 修复日志输出格式并修正logic服务器注册逻辑
修复了rpc模块中日志输出时参数拼接错误的问题,同时修正了RegisterLogic函数中端口映射的逻辑错误。

feat(socket): 替换错误处理方式为panic

在ServerEvent.go中将网络启动失败的返回错误改为panic处理,提高错误可见性。

feat(fight): 增加战斗加载进度控制

在LoadPercent函数中增加对FightC非
2025-11-01 00:40:19 +08:00
1
f1ff5a8dbc `` refactor(fight/effect): 重构效果系统,优化效果存储结构和叠层逻辑,移除EffectID结构`` 2025-10-31 11:21:24 +00:00
e75ecd413d feat(fight): 重构战斗系统技能逻辑与精灵切换功能
- 优化技能执行流程,统一使用 SelectSkillAction 作为技能载体
- 移除冗余的技能 ID 字段,简化数据结构
- 调整命中判断和技能效果触发机制,提升准确性
- 修改精灵切换与捕获相关方法参数格式
- 更新技能列表结构为动态数组以支持灵活长度
- 完善睡眠等异常状态的处理逻辑
- 修复战斗中技能 PP 扣减及副本还原问题
- 清理无用代码,如多余的 FindWithIndex 函数定义
- 强化验证码缓存键命名规则,增强安全性
2025-10-26 20:56:03 +08:00
83fb06a229 feat(utils): 重构 OrderedMap 为 OrderMap,支持排序和非阻塞遍历
- 将原有的 `OrderedMap` 替换为 `OrderMap`,基于 `map` 和 `slice` 实现,提升性能并简化逻辑
- 支持自定义 key 排序规则,若未提供则按插入顺序维护
- 提供 `Set`、`Get`、`Delete`、`Keys`、`Values` 等基本操作,均并发安全
- 引入非阻塞遍历机制(`Iter`、`Iter
2025-10-22 21:30:05 +08:00
b90bceafd9 ```
feat(xmlres): 添加任务数据加载与初始化逻辑

在 xmlres 包中新增 TaskMap 用于存储任务数据,并在 initfile 函数中
加载 task.xml 文件内容。同时调整 login 控制器中的任务重置逻辑,根据
任务类型每日重置任务状态。修复 pet 控制器释放宠物时的数据更新问题。
战斗系统中增加 Effect 的 OnMiss 回调处理,并修正状态效果映射关系。
修复 PVP 邀
2025-10-20 23:59:49 +08:00
a22287d987 ```
fix(network): 修复 rpc 和 websocket 地址拼接缺少冒号的问题

修复了 jsonrpc 服务启动时监听地址缺少冒号导致解析错误的问题,
同时修正 websocket 客户端连接地址的拼接逻辑。此外,注释掉了一处日志输出,
并调整了端口检测函数的参数类型以匹配实际配置结构。

```
2025-10-08 17:16:54 +08:00
485b22a3f7 ```
feat(config): 添加RPC端口和游戏端口配置项

在配置结构体中新增了RPC端口和游戏端口字段,并更新了配置文件以支持多端口监听。同时,
调整了服务器端口选择逻辑,优先使用默认端口,不再生成随机端口。

refactor(server): 移除随机端口生成逻辑

删除了随机端口生成及相关依赖,端口选择改为从预定义列表中查找可用端口,提高端口分配的
可控性和稳定性。

fix(fight): 注释掉未实现的panic语句

为避免程序运行时因未实现逻辑导致崩溃,注释掉了Turn_Start和Fight_Start中的panic调用,
并添加了相关注释说明后续需实现的内容。

chore(config): 更新默认配置参数

更新了服务器地址、端口、数据库连接信息及Redis配置,确保开发环境配置正确。
```
2025-10-08 16:54:03 +08:00
1
b93a4dd1a2 技能实现 2025-10-05 07:13:43 +00:00
f847386b7c feat(fight): 优化技能命中逻辑与效果触发流程
重构了技能攻击处理逻辑,调整了命中判断和效果应用的顺序。
新增 `Calculate_Pre` 接口方法用于实现无视类效果。
修复技能是否命中的判断逻辑,确保效果命中状态正确传递。
清理上回合缓存的效果数据,保证每回合初始状态干净。
统一使用 `IsFirst` 方法判断先后手,提升代码一致性。
完善玩家离线时的数据保存顺序,避免重复操作。
更新依赖模块版本信息。
2025-10-05 00:29:22 +08:00
3aa0362cfe 1提交 2025-09-30 18:32:15 +08:00
91d0d29ec9 战斗修改 2025-09-29 02:40:35 +08:00
1
08d8ab3ed9 refactor(fight/effect): 重构技能效果处理逻辑,统一使用DamageZone结构管理伤害值,新增Effect20疲惫效果和先/后手威力翻倍效果 2025-09-26 21:15:58 +00:00
c52c409ffc feat(player): 新增玩家累计经验查询接口
新增 PlayerExp 控制器方法,用于返回玩家的累计经验值。同时调整了经验池字段类型为 uint32 并修复相关使用逻辑。

feat(pet): 实现宠物经验增加与升级逻辑

在 Player 结构体中新增 AddPetExp 方法,支持宠物经验增长、自动升级及进化判断。升级后会重新计算面板属性并推送更新包。

feat(fight): 重构战斗伤害计算与效果系统

引入 DamageZone 和 EnumDamageType 类型,统一红伤处理流程;移除旧有的 Pet/Skill/Prop 属性获取临时修改机制,改为直接访问真实属性。更新多个技能效果实现以适配新结构。

refactor(effect): 优化技能效果初始化和生命周期方法

统一技能效果初始化方式,明确各阶段回调函数职责,如 PreActionStart、PreAttacked 等。删除已废弃的属性修改钩子函数,并更新状态类效果实现。

refactor(input): 移除 deepcopy 依赖并替换为 go-deepcopy

将原先使用的 mohae/deepcopy 替换为 barkimedes/go-deepcopy,用于战斗节点中的 effect 拷贝逻辑,提升性能和安全性。

refactor(model): 调整玩家信息字段类型

将 PlayerInfo 中的 GoldBean 字段由 int32 改为 uint32,ExpPool 字段由 int64 改为 uint32,确保数据类型一致性与合理性。

feat(nono): 增加 Nono 跟随/收回协议结构定义

新增 NonoFollowOrHomeInInfo 和 NonoFollowOutInfo 结构体,用于处理 Nono 宠物的跟随与收回操作指令。

chore(deps): 添加 go-deepcopy 依赖

在 go.mod 中引入 github.com/barkimedes/go-deepcopy 依赖库,用于替代原有的 deepcopy 工具。
2025-09-26 13:33:55 +08:00