Commit Graph

41 Commits

Author SHA1 Message Date
1ea4b756f6 ```
feat(service): 更新地图与战斗信息服务结构及逻辑

- 移除 MapLeave 中对 player.Canmon 的重复设置
- 在 MapList 中增加对 TimeBoss 状态的处理并
2025-12-09 16:52:53 +08:00
d8718e8eac ```
feat(fight): 添加战斗准备完成广播消息

在 ReadyFight 方法中增加对所有玩家的广播,发送玩家准备完成的消息。
新增 S2C_2404 结构体用于通知客户端指定用户已准备完成,
若为野怪则 userID 设置为 0。
```
2025-11-30 01:54:46 +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
e54d4bacaa ```
feat(fight): 增加战斗模式枚举并重构战斗逻辑判断

- 引入完整的 BattleMode 枚举定义,替代原有的 BattleStatus,明确区分各类战斗场景
- 在多个控制器中替换对旧 Status 字段的依赖,统一使用 Mode 判断战斗状态
- 修复部分函数调用前未检查 FightC 是否为空的问题,增加 ErrBattleEnded 错误返回
- 调整
2025-11-21 02:40:27 +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
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
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
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
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
55ff5c6119 ```
refactor(effect): 更新状态枚举类型为 EnumPetStatus

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

此外,清理了部分注释格式,并补充了关于被动效果不能被免疫的说明。
```
2025-11-14 00:26:34 +08:00
5e3d558d30 ```
feat(player): 添加 UseCoins 方法统一处理玩家金币消耗逻辑

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

此外,调整部分战斗系统接口参数传递方式,将 DamageZone 指
2025-11-13 21:36:18 +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
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
1
7bc7776074 `` refactor(fight): 重构战斗初始化逻辑,移除MAXPET字段并优化宠物列表处理方式`` 2025-10-31 02:24:49 +00:00
e75ecd413d feat(fight): 重构战斗系统技能逻辑与精灵切换功能
- 优化技能执行流程,统一使用 SelectSkillAction 作为技能载体
- 移除冗余的技能 ID 字段,简化数据结构
- 调整命中判断和技能效果触发机制,提升准确性
- 修改精灵切换与捕获相关方法参数格式
- 更新技能列表结构为动态数组以支持灵活长度
- 完善睡眠等异常状态的处理逻辑
- 修复战斗中技能 PP 扣减及副本还原问题
- 清理无用代码,如多余的 FindWithIndex 函数定义
- 强化验证码缓存键命名规则,增强安全性
2025-10-26 20:56:03 +08:00
618b90af18 feat(task): 增加每日任务奖励经验值至20000
将每日任务中多个精灵任务(毛毛、比比鼠、幽浮、利牙鱼等)的完成奖励从
2000点经验调整为20000点经验,以提升玩家任务收益。

refactor(fight): 使用枚举类型优化战斗结束原因字段

将 FightOverInfo 结构体中的 Reason 字段由 uint32 类型改为
EnumBattleOverReason 枚举类型,提高代码可读性和类型安全性。

同时修复了战斗结束时逃跑原因未正确传递的问题。
2025-10-10 01:31:02 +08:00
1
3f37ce63de refactor(fight): 重构战斗模式与状态枚举,新增加载进度功能并优化战斗初始化逻辑 2025-09-25 14:51:11 +00:00
1
29d485fde5 refactor(fight/effect): 重构效果触发机制,统一OnHit接口并优化伤害结算流程 2025-09-24 18:53:54 +00:00
1
691cfc878b feat(capture): 重构捕捉系统,实现状态倍率计算和保底机制 2025-09-21 14:56:37 +00:00
1
bb9b0510ce refactor: 清理代码注释,移除Java相关注解和冗余描述 2025-09-21 08:07:17 +00:00
1
30453045c7 feat(fight): 重构PVP邀请系统,使用PVPinfo结构体替代原有map存储方式 2025-09-21 07:22:42 +00:00
9c25ccc214 ```
feat(fight): 实现玩家间战斗邀请与处理功能

新增战斗邀请与处理逻辑,包括邀请发送、邀请接受/拒绝流程。
添加战斗模式支持(1v1 和 6v6)及相关数据结构定义。
优化玩家战斗准备逻辑,完善战斗初始化流程。
修复玩家离线保存数据时的空指针问题。
调整战斗相关枚举类型,统一管理战斗模式。
完善邀请战斗消息结构体及通信协议。
```
2025-09-20 00:17:29 +08:00
29ac99c860 refactor(fight): 重构战斗系统属性计算逻辑
- 移除 BattlePetEntity 中的冗余方法
- 优化属性计算逻辑,使用统一的 CalculateRealValue 方法
- 调整 SkillEntity 中的攻击命中计算
- 重构 AttackValue 结构,使用数组替代字典
- 优化 Input 结构,添加 GetProp 和 GetStatusEffect 方法
- 更新 PetInfo 结构,使用数组存储属性值
2025-09-17 00:38:15 +08:00
9d87ce9e46 refactor(fight): 重构战斗系统
- 移除 NodeManager 相关代码,改为使用 input 包中的 Effect
- 重构 FightC 结构,添加 GetRand 方法
- 新增 BaseAction 结构和 NewBaseAction 函数
- 更新 effect 包中的 Effect 结构和相关方法
- 调整 BattleSkillEntity 中的 AttackTime 方法,增加 Hit 字段
- 更新 AttackValue 结构,保留原有的 AttackTime 字段
- 重构战斗逻辑,包括回合开始前的处理、技能使用、伤害计算等
2025-09-14 03:36:26 +08:00
5e01837f78 refactor(logic): 重构逻辑层代码
- 移除未使用的 SocketHandler_Tomee.go、ai.go、effect_1.go 文件
- 更新 player 包名引用,替换原 service 包
- 调整 TomeeHeader 和相关处理逻辑至 player 包
- 更新各控制器中的 Player 引用为 player 包中的类型
- 移除冗余的 GetPlayer 方法,使用新逻辑
2025-09-14 01:35:16 +08:00
4ab4f04a97 feat(fight): 优化战斗系统命中率计算和捕捉逻辑
- 新增 AI_player 结构体的 CanCapture 字段,用于判断是否可捕捉
- 优化 BattlePetEntity 的 Accuracy 方法,增加对负强化等级的处理
- 修改 BattleSkillEntity 的 AttackTime 方法,增加必中判断
- 更新 FightC 中的捕捉逻辑,支持 AI 玩家的捕捉判断
- 重构战斗流程中的技能攻击逻辑,优化命中率计算和效果执行
2025-09-12 00:27:49 +08:00
0ca743a592 feat(fight): 添加捕捉宠物功能并优化物品系统
- 新增 Capture 函数处理捕捉宠物逻辑
- 修改 ChangePet 函数返回值
- 优化物品添加和查询逻辑
- 增加新消息类型 CatchMonsterOutboundInfo
- 调整战斗循环处理捕捉逻辑
待修复技能丢失问题
2025-09-11 02:44:21 +08:00
1
f09b43fabd refactor(fight): 将伤害计算相关逻辑从 BattleSkillEntity 迁移到 BattlePetEntity 并优化状态结构 2025-09-10 04:17:06 +00:00
7ef001f1b9 refactor(fight): 重构战斗逻辑
- 新增 AI_player 结构体和相关方法,用于创建和管理 AI 玩家
- 重构 FightC 结构体,增加 Input 结构体用于封装玩家输入
- 优化战斗流程,包括回合处理、技能使用、伤害计算等
- 改进广播机制,使用函数回调替代直接调用方法
- 优化玩家和 AI 的动作处理逻辑
2025-09-08 01:23:12 +08:00
e111e08638 战斗切精灵失效bug待修复 2025-09-07 05:58:47 +08:00
9d2de92dd6 feat(fight): 实现精灵切换功能并优化战斗逻辑
- 新增 ChangePet 方法实现精灵切换
- 优化战斗循环逻辑,支持精灵切换
- 修复一些战斗相关的 bug
- 优化代码结构,提高可维护性
2025-09-07 00:23:28 +08:00
6376d94487 feat(fight): 实现技能结算和伤害计算功能
- 新增 AI_player 的 SendAttackValue 方法
- 修改 BattleAction 的 SelectSkillAction 结构,增加 Attack 字段
- 更新 FightC 的战斗循环逻辑,实现技能结算和伤害计算
- 增加 FightC 的 BroadcastSkill 方法,用于广播技能效果
- 更新 Player 的 SendAttackValue 方法,发送技能效果数据
- 调整 AttackValue 和 StatusDict 结构,优化数据存储
2025-09-06 01:47:08 +08:00
52d35119c8 feat(fight): 重构战斗模块并添加新功能
- 重构了战斗动作处理逻辑,增加了新的战斗动作类型
- 新增了逃跑、使用药剂、系统放弃等战斗动作
- 优化了战斗回合循环和动作执行顺序
- 增加了战斗结束处理逻辑
- 调整了玩家和AI的战斗行为
-增加精灵捕捉
2025-09-05 22:40:36 +08:00
7d48e9ab64 refactor(fight): 重构战斗系统
- 优化了技能解析和存储逻辑
- 重构了战斗流程和回合结算机制
- 调整了数据结构以提高性能
- 移除了未使用的代码和注释
2025-09-04 23:57:22 +08:00
51407864b7 refactor(fight): 重构战斗模块数据结构和逻辑
- 更新 FightPetInfo 和 AttackValue 结构体,优化精灵属性和状态表示
- 删除未使用的 start_test.go 文件
- 调整 FightC 结构体,整合战斗准备和状态管理
- 统一 SkillInfo 中 PP 字段命名
2025-09-04 19:37:28 +08:00
621a9d3858 refactor(socket): 重构 socket 模块
- 移除 common/data/socket 目录下的大部分文件
- 新增 service 目录,将 Player 和 Conn 结构体移至该目录
- 更新 LogicClient 中的方法签名,使用 service 包的类型
- 重构 Controller 中的方法,适应新的 service 包结构
2025-09-04 02:00:57 +08:00