Commit Graph

204 Commits

Author SHA1 Message Date
0b5cfac0b2 ```
feat(fight): 调整战斗逻辑与伤害计算流程

- 移除 `Over` 方法中的冗余回调参数 `fn`
- 修复部分技能效果中错误的伤害目标对象(Our/Opp)
- 优化战斗循环逻辑,使用 `over` channel 替代 `quit` 作为战斗结束信号
- 增加回合效果执行前的存活状态判断
- 修正伤害计算过程中对血量扣减的逻辑错误
-
2025-11-12 01:19:24 +08:00
1
a0905a59b4 提交 2025-11-11 06:23:59 +00:00
1
a1107b57eb fix(fight): 修复空变更提交问题 2025-11-11 06:23:55 +00:00
1
65758c799e fix(fight): 战斗修改 2025-11-11 05:54:24 +00:00
c6e0d84c1d fix(fight): 修复战斗池提交逻辑并调整初始配置
调整了 Fightpool 的初始化参数以减少资源占用,并优化了战斗循环的提交逻辑,
避免在池满时出现未处理的错误。同时添加了上下文日志记录以便调试。
2025-11-11 01:25:20 +08:00
da9286d3d8 ```
feat(fight): 调整技能效果命中逻辑与回合开始处理

- 修改了技能效果命中的判定顺序,确保暴击计算在效果添加之前执行
- 修复了回合开始时敌我双方状态结算的上下文错误
- 优化了效果缓存初始化逻辑,避免重复添加相同效果
- 增加了效果去重判断,防止完全相同的效果被重复添加
- 调整了战斗循环中结束逻辑的位置,确保广播和通道关闭正确执行
- 更新了部分日志提示信息,使其更符合实际业务含义
- 移除了部分无用代码和注释,提高
2025-11-11 01:10:26 +08:00
1
6aeb61afa1 fix(fight): 修复空变更提交问题 2025-11-10 09:42:50 +00:00
1
7aff17033e fix(fight): 修复空变更提交问题 2025-11-10 09:29:13 +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
1
9a434d55d7 fix(fight): 登录直接断开,战斗复制错误 2025-11-10 01:53:28 +00:00
6da7f0b3f0 ```
refactor(fight): 修改技能拷贝逻辑并优化战斗循环结构

- 将 `copyskill` 方法的参数类型从 `*info.SkillEntity` 改为 `*action.SelectSkillAction`
- 在 `copyskill` 中增加对 nil 的判断,避免空指针 panic
- 调整 `battleLoop` 中 defer 逻辑,确保资源正确释放和战斗结束信息发送
- 移动 `SendFightEndInfo` 到 defer 中执行,简化主循环逻辑
- 将 `Fightpool` 类型由 `*ants.Pool` 改为 `*
2025-11-10 03:23:32 +08:00
bfe4310caa ```
fix(fightc): 修复技能拷贝时随机数丢失的问题

将 copyskill 函数改为 FightC 的方法,并在拷贝后恢复随机数字段。
同时移除了调试用的 fmt.Println 日志输出。
```
2025-11-10 02:36:49 +08: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
de3fb29407 fix(fight): 修复空变更提交问题 2025-11-09 04:37:15 +00:00
1
f3c5a5106c fix(fight): 修复空变更提交问题 2025-11-09 02:48:32 +00:00
1
2d010e10af fix(fight): 修复睡眠,修改战斗伤害叠加逻辑 2025-11-09 02:29:21 +00: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
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
3aff7f7ad6 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-05 17:19:09 +00:00
1
e398c31834 refactor(fight): 修正技能攻击处理逻辑,优化暴击破防条件判断 2025-11-04 16:55:14 +00:00
1
f7b1e6ce08 refactor(fight): 优化状态效果获取逻辑,增加存活状态检查 2025-11-04 14:16:52 +00:00
1
603c33c832 refactor(logic): 优化战斗状态效果持续时间计算及清理冗余代码 2025-11-04 14:01:17 +00:00
1
35935549bd refactor(effect): 重构效果节点生命周期管理及属主控制逻辑
- 将Alive()方法改为Alive(bool)可设置方法,替代NotALive()
- 将GetOwner()改为Owner(bool)可设置方法
- 修复效果初始化时默认激活状态
- 优化效果叠层和取消逻辑
- 修正超时处理日志输出
2025-11-03 14:46:33 +00:00
e8776d9884 feat(fight): 重构状态效果处理器并激活睡眠状态清除逻辑
- 重构 Effect10 结构体及初始化逻辑,简化状态效果的注册方式
- 更新技能触发函数 OnSkill 实现,优化命中判定与持续回合计算
- 激活睡眠状态下受击清除效果的处理逻辑
- 移除未使用的 math/rand 包引用及冗余代码注释
2025-11-03 19:31:17 +08:00
9b73de4faf ```
feat(rpc): 更新客户端映射变量命名以符合导出规则

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

fix
2025-11-03 19:14:34 +08:00
f9279e75fa fix(fightc): 修复睡眠状态清除逻辑
在处理技能攻击时,只有当技能类型不是状态类技能时,
才会清除目标的睡眠状态效果。这样避免了状态类技能
误清除睡眠效果的问题。
2025-11-03 04:17:41 +08:00
09612067d8 ```
refactor(socket): 优化消息处理逻辑,避免顺序执行问题

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

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

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

refactor(fight): 重构状态类技能效果注册与触发逻辑

- 使用 map 统一管理技能 ID 与状态类型映射关系,简化注册流程
- 重命名工厂函数 newp 为 newEffectStatus,提升可读性
- 增加命中判断和持续回合数随机逻辑,提高技能触发的灵活性
- 支持通过 SideEffectArgs 配置持续时间,默认 1~3 回合

refactor(fight): 重构能力操作类效果(Effect3)

- 重命名字段 Rev、Etype 为 Reverse、OpType 提高语义清晰度
- 优化结构体初始化方式,使用匿名结构体数组进行批量注册
- 明确能力变化作用对象(自身/对手)逻辑,增强可维护性

refactor(fight): 重构能力值变化效果(Effect4/5)

- 重命名构造函数 NewEffectStat 为 newEffectStat,符合 Go 命名规范
- 优化参数解析逻辑,防止 SideEffectArgs 越界访问
- 统一处理加减类型判断和属性变更逻辑,减少重复代码

refactor(fight): 重构技能威力翻倍条件判断逻辑

- 引入全局函数注册表 statusFuncRegistry 管理所有状态判断逻辑
- Effect96 改为通过 StatusID 查找对应函数,提升扩展性
- 合并多个相似效果注册逻辑,统一初始化入口

refactor(fight): 优化状态效果获取逻辑

- 修改 GetEffect 方法返回单个 Effect 而非数组,简化调用逻辑
- 在 fightc.go 中更新状态持续时间获取方式
- 修复部分未使用的代码注释,提高代码整洁度

fix(fight): 限制治疗后血量不超过最大值

在 Heal 方法中增加血量上限判断,防止因治疗导致当前血量超出最大值。

refactor(fight): 移除调试日志打印

删除 loop.go 中多余的 fmt.Println 日志输出语句,避免影响性能和日志干扰。

refactor(fight): 优化精灵切换相关逻辑

- 移除未实现的 panic 抛出,避免运行时异常
- 注释掉不必要的下场清除 effect 逻辑,待后续确认是否需要恢复

feat(nono): 移除 PetCureInboundInfo 中的 Type 字段

该字段原用于控制飞行模式开关,现已移除,后续功能将通过其他方式实现。

feat(player): 新增 SaveDone channel 支持保存完成通知

在 ClientData 结构体中添加 SaveDone channel,用于异步通知保存操作完成状态。

fix(user): 设置推荐服务器在线人数默认值

当 ServerInfo.OnlineID == 2 时,强制设置 UserCnt = 300 并使用测试 IP,
便于客户端识别测试服节点。
```
2025-11-03 04:16:30 +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
2b3c4b6ccd ```
refactor(nono): 优化非诺相关结构体字段命名与初始化方式

将 nono 包中多个结构体的字段初始化方式改为键值对形式,提升可读性。
同时统一字段命名风格,增强代码一致性。

feat(fight): 移除冗余战斗循环逻辑并调整部分依赖引用

删除 fightc.go 中的 battleLoop 方法及相关逻辑,简化战斗流程控制。
移除未使用的包引用,并调整结构体成员顺序以提高清晰度。

refactor(player): 修改数据库字段类型为 jsonb 提升灵活性

将 Player 结构体中的 Data 字段由 text 类型修改为 jsonb 类型,
便于后续进行更灵活的数据存储与查询操作。
```
2025-11-01 18:36:21 +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
1
7bc7776074 `` refactor(fight): 重构战斗初始化逻辑,移除MAXPET字段并优化宠物列表处理方式`` 2025-10-31 02:24:49 +00:00
cccf26788e fix(socket): 玩家断开连接时增加保存锁,避免重复保存
在玩家断开连接时,使用 sync.Once 确保只保存一次玩家数据,
防止因并发或多次触发导致的数据异常。

feat(fight): 增加战斗资格判断与邀请取消功能

- 新增 Player.CanFight() 方法用于统一判断是否可以参与战斗
- 在多个战斗相关接口中加入 CanFight 检查
- 添加“取消战斗邀请”指令及处理逻辑(cmd: 2402)
- 修复部分错误码不准确的问题,提升提示一致性

refactor(login): 优化登录流程并增强健壮性

- 提前校验 session 合法性
- 增强获取玩家信息后的空指针检查
- 调整挖矿数据重置方式为 defer 执行
- 优化日志输出内容,便于调试追踪

docs(model): 更新部门、菜单等模型字段命名规范

将 orderNum 字段改为 ordernum,保持数据库列名风格一致,
同时更新了 base_sys_role 中 userId 为 userid。

perf(rate-limit): 提高登录接口的限流 Burst 容量

调整限流器配置,将请求 burst 容量从 2 提升至 5,
以应对短时间高频访问场景,改善用户体验。

chore(build): 忽略新增编译产物和临时文件

在 .gitignore 中添加 logic/logic2、login/login 等新生成文件路径,
避免误提交二进制文件到版本控制。
2025-10-31 00:53:22 +08:00
1
8376068bb6 fix(socket): 移除debug.Stack并统一使用cool.Loger记录panic错误 2025-10-29 15:50:48 +00:00
32d60e8d91 fix(socket): 移除未使用的包导入和调试日志
移除了 `blazing/cool` 和 `context` 包的导入,以及不再需要的调试日志输出。

feat(fight): 增强玩家初始化检查并返回结果

修改 `initplayer` 方法以在没有宠物时返回 false,并在 `NewFight` 中增加对初始化结果的检查,若失败则返回 nil。
2025-10-28 22:08:27 +08: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
3a43e78aab 战斗修改 2025-10-22 00:25:38 +08:00
a69e9882d9 feat(fight): 调整战斗逻辑与初始化流程
- 移除 initplayer 中重复的 InitAttackValue 调用
- 启用 battleLoop 的超时时间为 60 秒
- 优化切换宠物时的出手顺序逻辑
- 修复 processSkillAttack 中缺少的 else 分支
- 在 enterturn 中重新初始化双方攻击值
- 清理无用的日志打印和冗余代码
- 修复 SendPack 中连接判断逻辑,确保类型安全
2025-10-21 22:14:30 +08:00
ee119a0f0f fix(fight): 修复对战中行动处理逻辑
优化了战斗循环中不同行动类型的处理流程,确保在非技能行动时能正确回退到空技能,
避免因类型断言失败导致的 panic。同时完善了注释与代码可读性。

fix(player): 增加发送数据包前连接有效性检查

在玩家发送数据包之前增加 MainConn 是否为 nil 的判断,防止因连接未建立或已断开
造成的空指针异常
2025-10-21 00:41:59 +08:00
1
cb1abe69b3 `` refactor(fight): 重构状态效果处理逻辑,统一使用Skill_Hit_Pre方法并修复回合开始触发时机``
待实现寄生种子
2025-10-15 14:24:46 +00:00
e84d55aec0 ```
feat(player): 优化玩家连接与消息发送逻辑

- 为 `Conn` 结构体新增 `Close()` 方法,并在多处替换原有的 `GetConn().Close()` 调用,
  统一通过 `MainConn` 操作以提高代码一致性。
- 在 `SendPack` 和 `GetPlayer` 等方法中增加互斥锁保护,确保对 `MainConn` 的访问是线程安全的。
- 移除冗余的 `GetConn()` 方法,直接使用 `MainConn` 提升性能并简化结构。

refactor(rpc): 临时将 RPC 客户端地址硬编码为本地地址

- 将 rpcaddr 临时设置为 "127.0.0.1",便于调试和开发环境测试。

refactor(handler): 扩展 JSON-RPC 方法过滤条件

- 增加了对 "Kick" 和 "RegisterLogic" 方法的排除,防止其被注册到 RPC 处理器中。

refactor(fight): 精简战斗服务中的判断逻辑

- 简化 `IsFirst` 函数返回表达式。
- 移除了多余的 defer 语句,提前设置 `closefight` 标志位。

refactor(pet): 改进宠物经验添加机制

- `AddPetExp` 方法新增布尔参数 `bro` 控制是否广播更新。
- 修改调用点以适配新参数,修复潜在的数据同步问题。
- 初始化宠物时禁止触发经验变更广播。

chore(build): 删除旧版二进制文件 logic1

- 清理无用的编译产物,避免混淆项目结构。
```
2025-10-14 01:26:59 +08:00
aae7074902 fix(fightc): 调整控制台输出角色标识为房主与挑战者
将原先“先手”、“后手”的输出信息修改为“房主”和“挑战者”,使日志更清晰地反映玩家身份。

重构技能解析逻辑,确保在不同攻击行为下正确解析并执行技能效果。
优化了技能优先级比较的执行顺序,提升代码可读性与逻辑准确性。
2025-10-10 00:44:45 +08:00
d4781bf4a4 feat(socket): 添加全局 panic 恢复机制
refactor(socket): 调整 defer recover 位置以优化错误捕获逻辑

feat(logic): 为服务器启动函数添加 defer recover
2025-10-10 00:40:32 +08:00