Commit Graph

278 Commits

Author SHA1 Message Date
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
6c32a5d7ac 修改广播逻辑 2025-11-18 20:52:04 +00:00
1
27de997f92 fix: 修复空提交问题 2025-11-17 17:36:24 +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
1
8ee5508974 fix: 修复空提交问题 2025-11-16 21:54:18 +00:00
1
0bc7db4177 fix: 修复空提交问题 2025-11-16 21:27:48 +00:00
1
f01068930b fix: 修复空提交问题 2025-11-16 21:11:44 +00:00
1
5dbff2411c 重构 2025-11-16 20:30:17 +00:00
a6c11e0837 ```
fix(service): 修复玩家离开地图时的逻辑判断

移除重复的 MapID 检查逻辑,避免在 controller 和 service 中
同时进行相同判断。原 controller 中的 MapID 重置逻辑已被注释,
确保 leave map 流程的一致性和正确性。
```
2025-11-16 12:23:30 +08:00
4c21c4ac78 ```
feat(maps): 重构移动广播逻辑并优化数据结构

将 WalkOutInfo 结构体迁移至 maps/info 包,并调整相关引用。
移除旧广播逻辑,改用 Space.Walk 方法进行统一广播处理。
新增 PlayerI 接口方法 SendWalkMapInfo 以支持行走信息发送。
在 Player 和 AI_player 中实现 SendWalkMapInfo 方法。
引入限流器到 space 包,用于控制广播频率。
```
2025-11-16 12:10:27 +08:00
0a8ef3d555 feat(fight_boss): 新增怪物ID处理逻辑,支持随机选择与过滤空值
新增 `processMonID` 函数用于处理 BOSS 战斗中怪物 ID 的字符串分割、
过滤空值,并在多个 ID 中随机选取一个。优化新手任务 BOSS 战逻辑,
使其更灵活地适配不同的配置输入。

---

refactor(map): 使用 ants 协程池优化地图进出逻辑并移除无用导入

将原本通过
2025-11-16 11:56:57 +08:00
1
7cbd3bb801 修改战斗拷贝 2025-11-15 23:02:46 +00:00
1
88cd1affe4 修复战斗 2025-11-15 22:17:43 +00:00
135419a99e ```
feat(fight): 添加擂台系统相关功能与协议支持

新增了擂台系统相关的消息结构体和处理逻辑,包括:
- 添加了多个与擂台交互的命令结构体(如 ARENA_SET_OWENR、ARENA_FIGHT_OWENR 等)
- 实现了玩家发送擂台信息的方法 Send_ARENA_GET_INFO
- 在 Space 结构中增加了擂台相关信息及操作方法 Can_ARENA 和 UP_ARENA
- 修复了一个伤害计算公式错误,将乘法修正为除法
- 当
2025-11-15 19:11:23 +08:00
6979b7018d ```
feat(space): 替换并发安全map实现以提升性能

将原来基于`utils.ConcurrentMap`的玩家存储结构替换为
`github.com/mhmtszr/concurrent-swiss-map`提供的`CsMap`,
以获得更高效的并发读写能力。

同时修改了相关API调用方式:
- `Set` 改为 `Store`
- `Remove` 改为 `Delete`
- `IterCb` 改为 `Range`,并支持提前终止迭代
- `Items()` 不再使用

此外,调整了部分业务逻辑中对玩家列表遍历的方式,
确保在发送网络包后及时跳出循环,避免不必要的操作。

新增战斗类型处理函数`PET_King`用于处理宠物王相关的
战斗请求,并修复了`PET_MELEE`方法中的逻辑问题。

更新了go.mod和go.sum引入新的依赖库。
```
2025-11-15 15:22:58 +08:00
f919047ff6 ```
fix(login): 修正用户登录时间字段命名及逻辑

将 `Onlinetime` 字段更名为 `Logintime`,以更准确反映其含义,并确保在登录时正确记录时间戳。

refactor(player): 移除冗余的 Save 方法及相关逻辑

删除 Player 结构体中的 Save、CanGetExp、CompleteLogin 和 IsNewPlayer 方法,
相关功能已迁移或不再使用。

feat(pprof): 更新 pprof 监听地址

修改 README 中的 pprof 示例命令,将监听地址从远程 IP 改为本地回环地址 `127.0.0.1
2025-11-15 13:20:42 +08:00
0e1860bdf4 ```
feat(fight): 实现精灵大乱斗模式并优化对战逻辑

新增大乱斗模式(PET_MELEE)支持,重构原有精灵王之战相关逻辑。
更新战斗初始化流程,添加随机精灵选择机制。
调整玩家匹配与取消邀请接口实现方式。
完善战斗结束处理函数,移除未实现异常抛出。
```
2025-11-15 01:53:51 +08:00
a86782b1ea ```text
refactor(fight): 重构战斗准备逻辑并优化战斗启动流程

将 ReadyFight 方法拆分为多个职责清晰的子方法:
- buildFightStartInfo: 构建战斗初始信息
- checkBothPlayersReady: 检查PVP双方是否就绪
- handleNPCFightSpecial: 处理NPC战斗特殊逻辑(如可捕捉标记)
- startBattle: 统一启动战斗流程

同时修复部分逻辑顺序问题,增强代码可读性和扩展性。

feat(fight): 新增精灵王挑战协议支持

增加 StartPetWarInboundInfo 结构体用于接收精灵王挑战请求,
为后续实现相关功能提供基础。

fix(effect): 修正多个技能效果数值引用错误

- effect_37: 技能威力计算使用正确参数索引
- effect_50: 固定减伤比例调整为除以2
- effect_65: 正确比较技能分类类型
- effect_68: 致死保护改为锁定剩余1点生命值
- effect_77: 回复目标由敌方改为己方
- effect_93: 固定伤害值直接取参数

refactor(effect): 移除冗余效果类文件

删除 effect_133.go 和 effect_90.go 文件,其功能已被统一条件伤害和倍率系统取代;
移除 effect_74.go、effect_75.go 中重复的状态随机施加逻辑。

refactor(effect): 更新能力操作枚举命名一致性

重命名 AbilityOpType 枚举项名称,去除前缀,提升语义清晰度:
- AbilityOpStealStrengthen → StealStrengthen
- AbilityOpReverse → Reverse
- AbilityOpBounceWeaken → BounceWeaken

chore(fight): 完善 BattlePetEntity 属性初始化逻辑

在创建 BattlePetEntity 时即设置 PType,避免后续多次查询 PetMAP;
移除 Type() 方法中的冗余配置查找逻辑。

fix(skill): 确保必中技能不参与命中率计算

在 AttackTimeC 方法中添加 return 防止必中技能继续执行命中率公式计算。

refactor(fight): 调整战斗回合结束逻辑

进入新回合时允许玩家更换精灵,并提前跳出循环防止多余处理。

style(effect): 更正拼写及变量命名风格

修改 BaseSataus.Switch 方法签名中的参数命名;
更正 Effect58 中 can 字段首字母大写;
2025-11-14 23:09:16 +08:00
5e3d558d30 ```
feat(player): 添加 UseCoins 方法统一处理玩家金币消耗逻辑

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

此外,调整部分战斗系统接口参数传递方式,将 DamageZone 指
2025-11-13 21:36:18 +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
27b408eeec fix(fight): 修复空变更提交问题 2025-11-11 11:45:09 +00:00
da9286d3d8 ```
feat(fight): 调整技能效果命中逻辑与回合开始处理

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

- 在Controller中新增UsePetItemInboundInfo方法,用于处理宠物物品使用请求
- 在FightI接口中添加UseItem方法定义,支持传入捕获时间和物品ID
- 修改UseItemAction结构体,增加CacthTime字段以记录宠物捕获时间
- 新增UsePetItemInboundInfo结构体,定义宠物物品使用的消息格式
- 在FightC中实现UseItem方法,将使用物品的动作发送到actionChan
```
2025-11-08 01:30:53 +08:00
cad3ad6913 ```
feat(pet): 新增宠物驳船列表功能并调整数据类型

新增 Controller 方法 PetBargeList 用于处理宠物驳船列表请求,
并修改 PetBargeListInboundInfo 和 PetBargeListInfo 中部分字段的数据类型
从 uint64 调整为 uint32。同时新增 PetBargeListOutboundInfo 结构体
用于响应数据的封装。
```
2025-11-08 01:12:53 +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
b4e1129c56 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-06 18:24:51 +00:00
1
52921e36f0 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-06 14:43:26 +00:00
1
b8a6aacaa9 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-06 14:28:04 +00:00
1
3aff7f7ad6 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-05 17:19:09 +00:00
1
4d7064e59f refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-05 17:06:08 +00:00
1
ed08006786 refactor(fight): 增加战斗控制器空指针检查,优化逃跑和切换精灵逻辑 2025-11-05 13:37:01 +00:00
1
603c33c832 refactor(logic): 优化战斗状态效果持续时间计算及清理冗余代码 2025-11-04 14:01:17 +00:00
1
e86e138d94 refactor(rpc): 重构服务器信息获取逻辑,移除冗余锁机制并优化踢人逻辑 2025-11-03 15:30:41 +00: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
7a8be1c23a feat(element): 优化元素计算器并发安全与缓存机制
- 使用 sync.Map 替代 map+锁,提升并发读写性能
- 预加载所有元素组合,避免运行时重复创建
- 攻击系数计算结果加入缓存,提高查询效率
- 完善缓存键命名与错误处理机制
- 调整元素组合字符串展示格式,增强可读性

fix(item): 修复购买物品时价格为0仍扣除金币的问题

- 在购买逻辑中增加对物品价格是否为0的判断
- 防止免费物品被误扣金币
2025-11-02 23:52:06 +08:00
038bd0ce0c ```text
build(go): 升级 gf/v2 框架至 v2.7.0

统一将 common、login 和 mysql driver 中的 github.com/gogf/gf/v2 依赖版本从 v2.6.3 更新到 v2.7.0。

feat(logic): 优化道具服务逻辑与数据结构

- 修改 Item 结构体,去除 Data 字段,新增 ItemId 和 ItemCnt 字段以提高可读性和查询效率。
- 调整 Item 相关方法实现,包括 Item(), AddItem(), SubItem() 和 CheakItem() 方法,支持直接按范围获取及增减物品
2025-11-02 18:56:16 +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
eac1d41043 fix(rpc): 修复日志输出格式并修正logic服务器注册逻辑
修复了rpc模块中日志输出时参数拼接错误的问题,同时修正了RegisterLogic函数中端口映射的逻辑错误。

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

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

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

在LoadPercent函数中增加对FightC非
2025-11-01 00:40:19 +08:00