Commit Graph

102 Commits

Author SHA1 Message Date
58a2e227fd ```
feat(logic/service/fight/effect): 添加新的状态函数注册逻辑

新增三个状态函数注册项:
- 状态码132:判断当前宠物血量是否小于对方宠物血量
- 状态码401:判断当前宠物类型是否与对方宠物类型相同
- 调整代码结构,优化状态函数注册方式
```
2025-11-14 06:27:10 +08:00
00f7a8903a feat(effect): 删除重复的技能效果文件
移除了 logic/service/fight/effect/ 目录下重复的 effect_45 copy.go 文件,
该文件包含与 effect51 相关的防御力同步逻辑实现。此变更旨在清理代码库中
的冗余文件,确保技能效果逻辑的唯一性和可维护性。
2025-11-14 06:15:39 +08:00
004ce51c5e feat(fight): 调整效果叠加逻辑与精灵属性处理
- 将 `MaxStack` 方法重命名为 `CanStack`,并修改其逻辑为布尔值控制是否可叠加
- 更新多个效果文件中的注释和调用方式以适配新的叠加控制方法
- 修复精灵属性类型获取逻辑,增加缓存字段 `PType`
- 修改战斗回合处理流程,优化技能解析顺序和状态比较时机
- 调整状态效果初始化逻辑,确保状态类效果默认允许无限叠加
- 更正伤害类型缺失问题,在固定伤害
2025-11-14 06:14:49 +08:00
d52c6cbb79 ```
feat(fight): 更新概率判定函数注释并新增状态与属性操作类型

更新 PlayerCaptureContext.Roll 函数注释,明确返回值含义。
新增 PetStatus 枚举值 NULL,表示无效状态。
新增 AbilityOpType.COPY 操作类型,支持复制对手属性值。
```
2025-11-14 04:55:29 +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
f224bef17a feat(fight): 移除无用代码并优化技能效果逻辑
- 删除了多个未使用的技能效果文件(effect_10-16_94_99_14.go、effect_61_70_118.go、
  effect_66.go、effect_67.go、effect_78_86_106.go、effect_84_92.go、prop.go)
- 修正了部分技能效果中的错误逻辑判断和数值计算方式
- 调整了伤害计算与治疗效果的参数使用顺序,使其符合预期行为
- 注释掉调试打印语句及测试调用,减少冗余输出
- 修复了部分效果中对技能分类的错误比较条件

此次修改提升了战斗系统代码的整洁性和准确性。
2025-11-14 02:04:19 +08:00
3c067751f1 fix(logic/service/fight): 修正状态效果判断逻辑中的类型转换问题
将 StatEffect_Exist 方法的参数类型从 int 改为 info.EnumPetStatus,
并在调用 GetEffect 时进行显式类型转换,以提高代码可读性和类型安全性。
同时清理了部分冗余的类型转换调用。
2025-11-14 00:47:49 +08:00
55ff5c6119 ```
refactor(effect): 更新状态枚举类型为 EnumPetStatus

将多个技能效果文件中的 EnumBattleStatus 类型统一更新为 EnumPetStatus,
以更准确地反映其用途。同时修改了相关函数签名和变量声明。

此外,清理了部分注释格式,并补充了关于被动效果不能被免疫的说明。
```
2025-11-14 00:26:34 +08:00
3377c6f0a3 技能补全 2025-11-13 23:48:34 +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
45911dd23d Merge branch 'main' of github.com:72wo/blazing 2025-11-12 21:46:25 +08:00
0d61134dd8 fix(fight): 修复技能命中和伤害计算逻辑错误
- 修正 `Effect7` 中敌我双方血量判断逻辑,确保技能命中率和伤害值正确计算
- 调整 `FightC` 中技能攻击流程,统一使用 `Exec` 替代 `ExecCace` 执行效果
- 移除重复的 `AddEffects` 方法,简化效果添加逻辑
- 注释暂未使用的逻辑,避免无效调用影响战斗流程
- 增加战斗超时保护机制,防止协程泄漏
- 优化玩家离线保存逻辑
2025-11-12 21:44:56 +08:00
1
6c98a678ff fix(fight): 修复空变更提交问题 2025-11-12 13:44:21 +00: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
7505c85252 fix(fight): 修复空变更提交问题 2025-11-10 09:37:18 +00:00
1
c41861fed0 fix(fight): 修复空变更提交问题 2025-11-10 08:57:09 +00:00
1
6cb091a4be fix(fight): 增加boss死亡逻辑 2025-11-10 08:25:40 +00:00
4b34445dfc ```
refactor(fight): 重构战斗逻辑中技能实体传递方式

将战斗逻辑中使用的 action.SelectSkillAction 替换为 info.SkillEntity,
以统一技能数据结构。同时更新相关函数签名和字段引用。

此外,移除了未使用的 Attack 字段,并调整了部分逻辑实现以提高代码清晰度。
还修复了 effect_power_doblue.go 中对输入参数的错误引用问题。

最后,修改了通道命名规范(ActionChan -> actionChan, GetActionChan -> GetOverChan),
并引入 overchan 用于战斗结束通知,提升并发安全性与语义明确性。
```
2025-11-10 02:29:00 +08:00
1
51cd6636c4 fix(fight): 修复空变更提交问题 2025-11-09 02:47:39 +00:00
1
2d010e10af fix(fight): 修复睡眠,修改战斗伤害叠加逻辑 2025-11-09 02:29:21 +00:00
18dcae0a9b feat(logic/service/fight/effect): 修改技能效果触发逻辑
新增概率判定机制,使技能效果触发具有随机性。当概率判定失败时,直接返回 true,
不添加疲惫状态效果
2025-11-09 00:56:53 +08:00
ffaa5520bf feat(effect_status): 添加寄生种子效果的前置处理逻辑
新增对寄生种子效果的特殊处理,当当前宠物类型为1时直接返回true,
避免执行父类扣血逻辑。此修改为实现寄生种子给对面回血buff做准备。
2025-11-08 23:26:10 +08:00
8b48ce1c06 ```
feat(fight): 调整技能与状态效果逻辑,优化战斗流程

- 注释掉状态 ID 13 的注册,暂不启用 DrainedHP 状态
- 为 Effect10 增加输入参数设置,标记目标单位
- 重构 Effect62 实现逻辑,新增子效果 Effect62_1 支持回合触发秒杀机制
- 引入 decimal 包以支持精确伤害计算
- 修改命中判断流程,修复部分技能命中异常问题
- 增加睡眠状态对空技能的防御处理
- 优化战斗死亡判定逻辑,支持同归于尽判定及战斗结束控制
2025-11-08 23:20:48 +08:00
4f421842f4 feat(effect): 新增吸血状态并重构部分技能效果逻辑
新增 PetStatus.DrainedHP 状态用于处理寄生种子等吸血效果,
重构 Effect96 与 DrainHP、DrainedHP 类型及相关接口方法。
统一将部分状态伤害逻辑移至 DrainHP 基类中,并修复睡眠状态
2025-11-08 19:48:59 +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
06cd6199b0 ```
fix(fight): 修复战斗逻辑中技能解析和优先级判断的问题

调整了战斗回合开始前的技能解析逻辑,确保即使攻击被放弃也能正确施加效果。
修复了技能优先级相同时的速度比较逻辑,避免错误的角色交换。
优化了临时变量的使用,提高代码可读性。

fix(socket): 修复TCP连接处理中的类型断言问题

在处理TCP连接时增加类型断言检查,防止因上下文类型不匹配导致的panic。

fix(effect): 修正默认持续回合数的随机范围

将随机持续回合数从
2025-11-08 00:47:45 +08:00
e2a184b687 feat(rpc): 优化客户端连接管理,使用 sync.Map 替代普通 map
将 `Clientmap` 从普通 map 改为 `sync.Map`,提升并发安全性。新增
`addClient` 和 `getClient` 方法封装存取逻辑,并在多处调用点进行了替换。

fix(fight): 修复战斗逻辑中技能ID与攻击时间字段引用错误

将 `attacker.AttackValue.SkillID` 和
`attacker.AttackValue.AttackTime` 的访问方式修正为正确的字段路径。

refactor(fight): 调整战斗结束信息处理流程

合并 `FightOverInfo` 结构到 `FightC` 中,简化广播发送逻辑,统一通过
`f.FightOverInfo` 发送战斗结果。

refactor(effect): 修改效果叠加判断逻辑并增强健壮性

更新效果节点比较方法,增加参数匹配检查以支持更精确的效果识别;同时添加
`equalInts` 工具函数用于数组内容对比。
2025-11-07 22:50:34 +08:00
1
35935549bd refactor(effect): 重构效果节点生命周期管理及属主控制逻辑
- 将Alive()方法改为Alive(bool)可设置方法,替代NotALive()
- 将GetOwner()改为Owner(bool)可设置方法
- 修复效果初始化时默认激活状态
- 优化效果叠层和取消逻辑
- 修正超时处理日志输出
2025-11-03 14:46:33 +00:00
1ebf500121 ```
feat(logic): 重构状态效果技能的注册与触发逻辑

- 重构 Effect10 结构体,增加状态类型注释
- 重命名工厂函数 newp 为 newEffectStatus,提升可读性
- 使用 registerStatusEffects 统一注册所有状态类技能,提高扩展性
- 优化 OnSkill 方法逻辑,支持命中
2025-11-03 19:35:56 +08:00
e8776d9884 feat(fight): 重构状态效果处理器并激活睡眠状态清除逻辑
- 重构 Effect10 结构体及初始化逻辑,简化状态效果的注册方式
- 更新技能触发函数 OnSkill 实现,优化命中判定与持续回合计算
- 激活睡眠状态下受击清除效果的处理逻辑
- 移除未使用的 math/rand 包引用及冗余代码注释
2025-11-03 19:31:17 +08:00
88f4fa7c8f ```
feat(rpc): 更新客户端映射变量命名以符合导出规则

将 rpc.go 中的 clientmap 变量重命名为 Clientmap,使其可被其他包访问。
同时修复了拼写错误 useid1 -> userid,并在 RegisterLogic 方法中调用 Refurh 函数。

fix(socket): 移除无效的读超时设置

删除 ServerEvent.go 中 OnOpen 方法内无意义的 SetReadDeadline 调用。

refactor(controller): 调整 COMMEND_ONLINE 接口返回结构引用路径

将 getserver.go 中 COMMEND_ONLINE 方法的响应结构体引用从 user 包切换至 rpc 包,
并替换为 rpc.NewInInfo 和 rpc.GetServerInfoList1 方法。

refactor(fight): 修改技能持续回合默认值及部分逻辑注释

将 effect_10-16_94_99_114.go 中默认随机回合数由 1~3 改为 10~12。
注释掉 fightc.go 中关于睡眠状态清除的部分代码。

refactor(effect): 调整效果叠加判断条件

在 node.go 的 AddEffect 方法中调整 MaxStack 判断逻辑,
将 "<" 条件改为 "<=" 以确保最大叠层数正确处理。

feat(player): 新增 XOR 解密函数支持数据解密

在 SocketHandler_Tomee.go 中新增 XORDecrypt 函数用于解密客户端数据,
并在 OnEvent 方法中对 header.Data 使用该函数进行解密。

refactor(user): 删除冗余结构定义并迁移至 rpc 包

移除 user/CommendSvrInfo.go 中的结构体定义及相关方法实现,
相关功能已迁移到 rpc 包中统一管理。
```
2025-11-03 19:25:49 +08:00
9b73de4faf ```
feat(rpc): 更新客户端映射变量命名以符合导出规则

将 rpc.go 中的 clientmap 变量重命名为 Clientmap,使其可被其他包访问。
同时修复了拼写错误 useid1 -> userid,并在 RegisterLogic 方法中调用 Refurh 函数。

fix
2025-11-03 19:14:34 +08:00
30ed47a30c ```
refactor(socket): 优化消息处理逻辑,避免顺序执行问题

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

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

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

ref
2025-11-03 03:59:59 +08:00
ea4ca98e49 fix(socket): 修复连接处理逻辑并优化数据解码流程
- 修复 `OnOpen` 中网络类型判断位置不正确的问题,提前过滤非 TCP 连接
- 移除 `OnTraffic` 中重复的网络类型判断
- 优化 `TomeeSocketCodec` 的解码逻辑,使用 `InboundBuffered` 和 `Next` 提高效率
- 调整 `ByteArray` 创建方法参数,避免可变参数带来的性能损耗
- 在 `ClientData` 中将 `IsCrossDomain` 改为 `sync.Once` 避免重复处理
- 使用 `AsyncWrite` 替代 `Write` 提升写入异步性
- 修复连接关闭流程,使用
2025-11-01 14:31:19 +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
5542718a2b feat(fight): 优化睡眠状态效果逻辑,确保对方攻击后解除睡眠
睡眠状态现在会正确挂载到对手身上,以实现在对方攻击后自动解除睡眠效果。

fix(fight): 修复技能PP减少逻辑,确保使用技能时正确扣减PP

在技能执行过程中,通过查找当前宠物的技能列表来正确地减少对应技能的PP值,避免了错误的PP扣减。

fix(fight): 修复回合开始时技能列表初始化问题

修正了战斗中角色和对手的技能列表初始化逻辑,确保双方技能数据正确加载。

feat(pet): 限制宠物技能数量为4个并修复技能学习逻辑

更新宠物技能学习逻辑,确保只保留最后四个技能,并在学习新技能时正确添加至技能列表。

fix(p
2025-10-27 01:11:31 +08: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
20f9af7dca fix(logic/service/fight): 修复战斗效果添加逻辑并优化调试信息输出
- 在 effect_10-16_94_99_114.go 中正确设置 Effect 字段的自我引用
- 修复 OnHit 方法中效果添加的逻辑问题
- 在 node.go 的 AddEffect 方法中增加调试信息,输出效果 ID 和持续回合数
- 优化调试日志格式,便于追踪效果的持续时间变化
2025-10-22 00:41:58 +08:00
3a43e78aab 战斗修改 2025-10-22 00:25:38 +08:00
b90bceafd9 ```
feat(xmlres): 添加任务数据加载与初始化逻辑

在 xmlres 包中新增 TaskMap 用于存储任务数据,并在 initfile 函数中
加载 task.xml 文件内容。同时调整 login 控制器中的任务重置逻辑,根据
任务类型每日重置任务状态。修复 pet 控制器释放宠物时的数据更新问题。
战斗系统中增加 Effect 的 OnMiss 回调处理,并修正状态效果映射关系。
修复 PVP 邀
2025-10-20 23:59:49 +08:00
1
cb1abe69b3 `` refactor(fight): 重构状态效果处理逻辑,统一使用Skill_Hit_Pre方法并修复回合开始触发时机``
待实现寄生种子
2025-10-15 14:24:46 +00:00