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
684d79981a
11
2025-11-21 06:11:35 +00:00
315f720e49
fix: 修复空提交问题
2025-11-21 05:47:51 +00:00
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
31439b707c
fix: 修复空提交问题
2025-11-19 00:09:12 +00:00
24f2a6d7c8
fix: 修复空提交问题
2025-11-18 23:41:31 +00:00
6831861e0d
fix: 修复空提交问题
2025-11-18 22:16:55 +00:00
f164d3c358
fix: 修复空提交问题
2025-11-18 21:03:00 +00:00
6c32a5d7ac
修改广播逻辑
2025-11-18 20:52:04 +00:00
4ab6b726a7
fix: 修复空提交问题
2025-11-17 21:45:45 +00:00
c6d3b4788d
1
2025-11-17 19:31:51 +00:00
27de997f92
fix: 修复空提交问题
2025-11-17 17:36:24 +00:00
64e8b2c412
fix: 修复空提交问题
2025-11-17 16:04:20 +00:00
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
f286297ff3
fix: 修复空提交问题
2025-11-17 03:00:03 +00:00
8ee5508974
fix: 修复空提交问题
2025-11-16 21:54:18 +00:00
0bc7db4177
fix: 修复空提交问题
2025-11-16 21:27:48 +00:00
f01068930b
fix: 修复空提交问题
2025-11-16 21:11:44 +00:00
baaec283e6
fix: 修复空提交问题
2025-11-16 20:48:12 +00:00
82841491d0
`` fix: 修复空提交问题``
2025-11-16 20:31:42 +00:00
5dbff2411c
重构
2025-11-16 20:30:17 +00:00
2e3b52b3de
Merge branch 'main' of https://github.com/72wo/blazing
2025-11-16 13:10:39 +00:00
7dd732c1ec
t
2025-11-16 13:10:34 +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
7cbd3bb801
修改战斗拷贝
2025-11-15 23:02:46 +00:00
88cd1affe4
修复战斗
2025-11-15 22:17:43 +00:00
4a4806fd82
补全技能效果
2025-11-15 14:23:52 +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
79ca4ace98
```
...
feat(fight): 调整技能PP恢复逻辑与CD处理方式
- 修改 HealPP 方法,当传入值为 -1 时直接恢复至最大 PP 值
- 将 Move 结构体中的 CD 字段由 int 改为 *int,以支持可空值
- 在战斗回合解析中增加对 CD 指针的判空处理,避免空指针 panic
- 移除 effect_87.go 中未使用的 math 包引入
- 添加 SideEffect 和相关字段到 skill
2025-11-15 16:27:59 +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
d73eb9eb26
feat(fight): 实现属性变化还原机制并优化属性操作逻辑
...
- 为多个效果(effect_38、effect_45、effect_51、effect_55、effect_56)添加 `Alive` 方法,
用于在效果结束时还原精灵被修改的属性(如 MaxHp、Prop[0]、Prop[1]、PetInfo.Type)。
- 统一将对精灵属性类型的访问由 `PType` 修改为 `PetInfo.Type`,提升代码一致性与可维护性。
- 移除旧的回合开始/结束时手动保存和还原精灵信息的逻辑
2025-11-15 00:15:09 +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
efa7ad6f76
fix(fight): 修复技能效果命中判断逻辑错误
...
修复了技能攻击中效果命中的判断条件,使用更准确的 AttackTime 字段代替
AttackValue.AttackTime。同时优化了回合开始与结束时宠物状态的还原逻辑,确
保血量与技能列表能正确恢复。此外,修正了效果叠加判断条件的取反问题,避
免不可叠加效果被错误处理。
2025-11-14 09:35:21 +08:00
6920fb99ef
fix(fightc): 修复技能攻击中效果命中的判断逻辑
...
将技能攻击中效果命中的判断逻辑从 a.AttackTime != 0 修改为
attacker.AttackValue.AttackTime != 0,以确保效果命中判断的准确性。
2025-11-14 07:22:16 +08:00
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