Commit Graph

59 Commits

Author SHA1 Message Date
1
0a0e1bf8c0 1 2026-01-21 20:46:05 +00:00
昔念
026689f3ed ```
feat(cache): 添加复合键缓存操作支持

添加了基于 uint32+string 组合键的缓存操作方法,包括
GetByCompoundKey、SetByCompoundKey、DelByCompoundKey 和
ContainsByCompoundKey 方法,用于处理用户ID和会话ID的组合缓存场景

fix(vscode): 添加 cSpell 配置支持 struc 词汇

refactor(session): 移除过时的会话管理方法

移除了基于单一字符串键的会话管理方法,因为已迁移到使用
复合键的缓存操作方式
```
2026-01-19 18:51:56 +08:00
0f524aab85 ```
fix(fight): 修复战斗命中判断逻辑并移除冗余命中检查

- 修复 NewSel32 中的命中判断,将 Side 字段改为 Hit 字段
- 移除 EffectAttackMiss 中的冗余命中判断逻辑
- 移除 EffectDefeatTrigger 中的重复命中检查
- 移除 EffectPhysicalAttackAddStatus 中的冗余命中判断
- 移除多个效果文件中的重复命中检查逻辑
- 修正 Effect136 中的命中处理逻辑,确保在技能命中时正确触发
- 移除其他多个效果中的重复命中检查代码
```
2026-01-04 21:41:10 +08:00
1
4c69e578dd ``` feat(fight): 新增多种技能效果实现(110/125/128/131/145/151),优化状态判断逻辑并重构随机数生成方式 2025-12-11 20:05:00 +00:00
98a3d8e036 feat(fight): 优化战斗中技能信息传递方式
将 SkillInfo 结构体改为指针传递,确保每回合技能效果可独立变化。
同时调整了战斗逻辑中关于宠物切换次数的控制逻辑,支持死亡后切换再执行额外动作的流程处理。
2025-12-11 13:31:20 +08:00
43813932c9 ```
build(go): 升级 Go 版本至 1.20 并更新依赖包

将项目 Go 版本从 1.18 升级至 1.20,并同步更新了相关模块依赖。
同时替换 decimal 库为 alpacadecimal,以提升数值计算精度和性能。

- 升级 Go 模块版本
- 替换 github.com/govalues/decimal 为 github.com/alpacahq/alpacadecimal
- 更新多个间接依赖包版本
- 调整相关代码中 decimal
2025-12-05 00:24:02 +08:00
1
022dc12461 refactor(decimal): 替换shopspring/decimal为govalues/decimal库 2025-12-04 14:28:42 +00:00
8d7d9da0bf feat(item): 新增性格道具支持与相关逻辑调整
新增对特定性格道具的支持,包括 Nature 和 NatureSet 属性解析,
并优化精灵融合、任务奖励、战斗捕捉等流程中的宠物添加方式。
同时修复部分战斗逻辑及数据结构引用问题。
2025-12-03 22:05:28 +08:00
1
e4fd9c2e38 fix(fight): 修正空变更导致的潜在逻辑问题 2025-11-30 10:21:57 +00:00
6455455992 feat(fight): 增加Boss精灵特效索引解析与空列表校验
在挑战Boss逻辑中,新增对Boss怪物NewSeIdxs字段的解析,将其分割并转换为EffectInfo添加到宠物信息中。同时增加对PetList为空时的错误处理,返回精灵不存在错误码。

refactor(effect): 调整技能属性判断方式及方法命名

将部分战斗效果和技能实体中的Type()方法重命名为GetType(),统一接口调用方式,并修改属性类型比较逻辑,直接通过整型值进行判断,提升代码一致性与可维护性。

fix(xml): 补充地图Boss配置项Id字段

更新地图配置文件中Boss节点缺失的Id属性,确保Boss数据结构完整性和唯一标识正确加载。

chore(input): 增加技能实体非空检查防止panic

在输入处理模块中加入对SelectSkillAction.SkillEntity的空指针检查,避免因未初始化技能导致运行时异常。
2025-11-25 18:25:52 +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
1
65758c799e fix(fight): 战斗修改 2025-11-11 05:54:24 +00:00
da9286d3d8 ```
feat(fight): 调整技能效果命中逻辑与回合开始处理

- 修改了技能效果命中的判定顺序,确保暴击计算在效果添加之前执行
- 修复了回合开始时敌我双方状态结算的上下文错误
- 优化了效果缓存初始化逻辑,避免重复添加相同效果
- 增加了效果去重判断,防止完全相同的效果被重复添加
- 调整了战斗循环中结束逻辑的位置,确保广播和通道关闭正确执行
- 更新了部分日志提示信息,使其更符合实际业务含义
- 移除了部分无用代码和注释,提高
2025-11-11 01:10:26 +08:00
c916440033 ```
feat(fight): 完善战斗系统中道具使用逻辑与血量恢复机制

- 修改 item.go 中 Item 结构体,将 Bonus 字段类型由 string
2025-11-08 16:38:41 +08:00
1
ce770e6cf1 refactor(fight): 优化战斗逻辑代码结构,清理冗余代码 2025-11-06 17:25:16 +00:00
7a8be1c23a feat(element): 优化元素计算器并发安全与缓存机制
- 使用 sync.Map 替代 map+锁,提升并发读写性能
- 预加载所有元素组合,避免运行时重复创建
- 攻击系数计算结果加入缓存,提高查询效率
- 完善缓存键命名与错误处理机制
- 调整元素组合字符串展示格式,增强可读性

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

- 在购买逻辑中增加对物品价格是否为0的判断
- 防止免费物品被误扣金币
2025-11-02 23:52:06 +08:00
1
a37b459793 ``` feat(socket): 优化panic处理逻辑并添加详细堆栈打印,完善服务器退出条件检查 2025-10-28 07:39:11 +00:00
e75ecd413d feat(fight): 重构战斗系统技能逻辑与精灵切换功能
- 优化技能执行流程,统一使用 SelectSkillAction 作为技能载体
- 移除冗余的技能 ID 字段,简化数据结构
- 调整命中判断和技能效果触发机制,提升准确性
- 修改精灵切换与捕获相关方法参数格式
- 更新技能列表结构为动态数组以支持灵活长度
- 完善睡眠等异常状态的处理逻辑
- 修复战斗中技能 PP 扣减及副本还原问题
- 清理无用代码,如多余的 FindWithIndex 函数定义
- 强化验证码缓存键命名规则,增强安全性
2025-10-26 20:56:03 +08:00
1
66b2f4d748 fix(fight): 移除技能准确率计算中的基础参数校验,保留强化等级处理 2025-10-23 04:26:40 +00:00
1
4011305865 fix(fight): 修正技能准确率计算条件,移除强化等级限制 2025-10-23 04:26:01 +00:00
d4781bf4a4 feat(socket): 添加全局 panic 恢复机制
refactor(socket): 调整 defer recover 位置以优化错误捕获逻辑

feat(logic): 为服务器启动函数添加 defer recover
2025-10-10 00:40:32 +08:00
864078f577 ```
feat(fight): 优化回合技能处理逻辑并修复技能备份问题

重构 enterturn 函数中技能备份与恢复逻辑,确保每个攻击动作的技能
状态能正确还原。同时调整战斗技能创建流程,移除无效技能ID判断,
增强日志记录,提升代码可维护性与健壮性。

fix(socket): 移除 syslog 前缀,统一服务器启动日志格式
```
2025-10-05 23:51:37 +08:00
91d0d29ec9 战斗修改 2025-09-29 02:40:35 +08:00
6eb244b73f ```
feat(rpc): 优化 RPC 客户端地址配置逻辑

- 将 RPC 地址从硬编码改为通过 service 动态获取
- 修改端口常量名称 rpcaddr 为 rpcport,提升语义清晰度
- 调整客户端连接逻辑以支持动态 IP 和端口拼接

fix(fight): 修复技能命中与闪避逻辑执行顺序

- 调整战斗中技能攻击流程,确保命中率和闪避计算正确应用
- 更新 effect 接口定义,增强技能使用前后的控制节点
- 增加伤害计算过程中的多阶段触发机制(加法、乘法、减法等)

feat(config): 更新数据库及 Redis 配置信息

- 修改 PostgreSQL 用户名、密码和数据库名
- 更新 Redis 访问密码
- 调整服务器 IP 获取方式,区分测试环境与生产环境

chore(vscode): 优化调试配置 console 输出设置

- 在 launch.json 中为调试配置增加 integratedTerminal 控制台选项
- 统一逻辑服务启动参数格式

chore(gitignore): 忽略特定平台编译产物

- 添加针对 Linux 平台的 logic 和 login 模块编译文件忽略规则
```
2025-09-28 01:58:42 +08:00
c52c409ffc feat(player): 新增玩家累计经验查询接口
新增 PlayerExp 控制器方法,用于返回玩家的累计经验值。同时调整了经验池字段类型为 uint32 并修复相关使用逻辑。

feat(pet): 实现宠物经验增加与升级逻辑

在 Player 结构体中新增 AddPetExp 方法,支持宠物经验增长、自动升级及进化判断。升级后会重新计算面板属性并推送更新包。

feat(fight): 重构战斗伤害计算与效果系统

引入 DamageZone 和 EnumDamageType 类型,统一红伤处理流程;移除旧有的 Pet/Skill/Prop 属性获取临时修改机制,改为直接访问真实属性。更新多个技能效果实现以适配新结构。

refactor(effect): 优化技能效果初始化和生命周期方法

统一技能效果初始化方式,明确各阶段回调函数职责,如 PreActionStart、PreAttacked 等。删除已废弃的属性修改钩子函数,并更新状态类效果实现。

refactor(input): 移除 deepcopy 依赖并替换为 go-deepcopy

将原先使用的 mohae/deepcopy 替换为 barkimedes/go-deepcopy,用于战斗节点中的 effect 拷贝逻辑,提升性能和安全性。

refactor(model): 调整玩家信息字段类型

将 PlayerInfo 中的 GoldBean 字段由 int32 改为 uint32,ExpPool 字段由 int64 改为 uint32,确保数据类型一致性与合理性。

feat(nono): 增加 Nono 跟随/收回协议结构定义

新增 NonoFollowOrHomeInInfo 和 NonoFollowOutInfo 结构体,用于处理 Nono 宠物的跟随与收回操作指令。

chore(deps): 添加 go-deepcopy 依赖

在 go.mod 中引入 github.com/barkimedes/go-deepcopy 依赖库,用于替代原有的 deepcopy 工具。
2025-09-26 13:33:55 +08:00
1
6e9dc7d0a9 refactor(fight/input): 将CalculatePower方法从SkillEntity移至Input并优化参数传递 2025-09-23 23:33:15 +00:00
1
4fc959a295 refactor(fight/info): 简化技能威力计算逻辑,移除无用变量并优化伤害公式 2025-09-23 22:25:11 +00:00
1
9296f47605 refactor(fight/effect): 重构Effect62技能结束逻辑,修复隐藏状态判断并新增死亡处理 2025-09-23 19:38:08 +00:00
60a8be8b48 feat(fight): 优化战斗属性计算和技能命中逻辑
- 更新了战斗中属性比较和技能命中的计算方式
- 调整了属性提升和状态效果的处理逻辑
- 优化了属性值的计算方法,确保结果至少为1
- 修改了技能准确性的计算公式
2025-09-17 00:50:37 +08:00
29ac99c860 refactor(fight): 重构战斗系统属性计算逻辑
- 移除 BattlePetEntity 中的冗余方法
- 优化属性计算逻辑,使用统一的 CalculateRealValue 方法
- 调整 SkillEntity 中的攻击命中计算
- 重构 AttackValue 结构,使用数组替代字典
- 优化 Input 结构,添加 GetProp 和 GetStatusEffect 方法
- 更新 PetInfo 结构,使用数组存储属性值
2025-09-17 00:38:15 +08:00
d9f09aa96a refactor(fight): 重构战斗系统
- 重构了 BattleSkillEntity 结构,改名为 SkillEntity
- 优化了 Input 结构,移除了冗余的 Effect 容器
- 调整了 Effect 接口,增加了 SetInput 和 Alive 方法
- 重构了战斗逻辑中的技能使用和效果处理流程
- 优化了代码结构,提高了可读性和可维护性
2025-09-15 00:40:19 +08:00
929b0c9006 refactor(fight): 重构战斗系统效果和技能逻辑
- 移除了未使用的 Effect0 基类效果
- 优化了技能施放和效果执行的逻辑
- 调整了命中和闪避的计算方式
-
2025-09-14 16:56:31 +08:00
93ae004683 refactor(fight): 重构战斗逻辑和数据结构
- 重构了 Input 结构体和相关方法,新增 NewInput 函数
- 优化了 NodeManager 结构体和 Exec 方法的实现
- 调整了 FightC 结构体和 enterturn 方法的逻辑
- 修改了 BattleSkillEntity 结构体,移除了冗余字段
- 更新了 EffectNode 中的相关方法,使其适应新的逻辑
2025-09-14 04:48:38 +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
4ab4f04a97 feat(fight): 优化战斗系统命中率计算和捕捉逻辑
- 新增 AI_player 结构体的 CanCapture 字段,用于判断是否可捕捉
- 优化 BattlePetEntity 的 Accuracy 方法,增加对负强化等级的处理
- 修改 BattleSkillEntity 的 AttackTime 方法,增加必中判断
- 更新 FightC 中的捕捉逻辑,支持 AI 玩家的捕捉判断
- 重构战斗流程中的技能攻击逻辑,优化命中率计算和效果执行
2025-09-12 00:27:49 +08:00
e0ec9ee1ec fix(logic): 修复登录逻辑和战斗系统的问题
- 修正登录时地图 ID 的处理逻辑
- 优化战斗宠物实体和技能实体的创建及使用
- 改进战斗伤害计算和处理方式
- 修复战斗结束后宠物信息更新问题
2025-09-10 22:59:10 +08:00
1
a0441700e5 refactor(fight): 重构暴击判断逻辑并优化伤害计算,添加泛型Max函数到utils包 2025-09-10 08:05:45 +00: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
7d48e9ab64 refactor(fight): 重构战斗系统
- 优化了技能解析和存储逻辑
- 重构了战斗流程和回合结算机制
- 调整了数据结构以提高性能
- 移除了未使用的代码和注释
2025-09-04 23:57:22 +08:00
5c6f35b1da refactor(common): 重构宠物相关数据结构和命名
- 将 PetMM 结构体重命名为 PetInfo,更准确地反映其用途
- 更新了相关文件中的结构体引用和变量命名
- 优化了部分代码的格式和注释
2025-09-03 02:09:43 +08:00
75e428f62e refactor(blazing): 重构任务系统并优化相关功能
- 重构了任务系统的数据结构和执行逻辑
- 优化了地图加载和怪物刷新机制
- 改进了宠物系统的基础架构
- 调整了玩家信息和背包的处理方式
- 统一了数据访问层的接口和实现
2025-08-30 21:59:52 +08:00
7b5ec208fc refactor(socket): 重构 ClientData 结构体并优化相关逻辑
- 简化 ClientData 结构体,移除不必要的方法
- 优化 Player 结构体,调整 Conn 类型
- 更新 wscodec.go 中的 Conn 结构体
- 删除未使用的 XML 相关文件和代码
- 调整 ServerEvent 和 controller 中的相关逻辑
2025-08-30 00:36:08 +08:00
1
7481182371 修改技能效果 2025-08-28 02:44:10 +00:00
1
7dddc0400d 提交战斗系统 2025-08-28 02:27:14 +00:00
1
5cc9daadbc 修改各buff实现 2025-08-27 15:29:34 +00:00
1
79cff5d85b refactor(fight): 重构战斗流程实现并完善效果处理机制 2025-08-27 03:59:46 +00:00
1
e129e82a8d refactor(fight): 重构效果管理模块并迁移Effect接口至info包 2025-08-26 23:18:55 +00:00