7b73a59f31
fix(logic/service/fight/effect): 修复技能实体为空时的空指针异常
...
在 effect_32.go 的 Action_start 方法中添加了对 SkillEntity 是否为 nil 的检查,
避免在技能实体不存在的情况下访问其属性导致程序崩溃。
2025-12-11 13:39:19 +08:00
98a3d8e036
feat(fight): 优化战斗中技能信息传递方式
...
将 SkillInfo 结构体改为指针传递,确保每回合技能效果可独立变化。
同时调整了战斗逻辑中关于宠物切换次数的控制逻辑,支持死亡后切换再执行额外动作的流程处理。
2025-12-11 13:31:20 +08:00
5b804d07db
```
...
feat(fight): 实现主动切换宠物逻辑并优化相关结构体字段
- 在 `ActiveSwitchAction` 中新增 `Cid` 字段用于标识要切换的宠物 ID
- 调整 `ChangePet` 方法逻辑,移除旧有输入处理,改为在 loop 中统一处理
- 更新 `collectPlayerActions` 方法以正确设置当前宠物及发送指令
- 优化 `PetInfo` 结构体字段标签,去除冗余描述,并重命名部分字段提升可读性
- 增加 `ExtSkin` 字段支持记录可用皮肤信息
- 移除玩家信息中的 `LastResetTime` 注释字段
```
2025-12-11 12:16:32 +08:00
49b9e938f5
```
...
refactor(controller): 优化控制器初始化与命令解析逻辑
- 重构 getCmd 和 ParseCmdTag
2025-12-11 10:32:39 +08:00
6b534adc07
``` feat(fight): 新增战斗回合Hook机制,实现特定条件下强制结束战斗和随机出手逻辑
2025-12-10 18:37:32 +00:00
f6043fd9b9
``` fix(fight): 重构切换动作逻辑,将CanChange改为状态值并优化切换条件检查
2025-12-10 16:42:23 +00:00
e30f0b7860
``` fix(fight): 修复精灵切换逻辑,移除HP检查仅保留CanChange条件
2025-12-10 16:07:35 +00:00
2187d84663
``` refactor(fight): 重构精灵切换逻辑,将切换效果处理移至回合收集阶段并优化闪光字段结构
2025-12-10 16:03:45 +00:00
fa9ed83279
```
...
fix(space): 修复天气系统与Boss信息广播逻辑
- 调整 `fight/loop.go` 中被动切换逻辑的判断顺序,确保 `CanChange` 状态正确重置
- 优化 `space/fixboos.go` 中 Boss 信息结构体的初始化方式,避免空值问题
- 重构 `space/in_out.go` 中天气变化逻辑,使用更合理的随机策略并调整时间单位
- 简化 `space/space.go` 中地图实例创建流程,移除不必要的原子操作和冗余字段
```
2025-12-10 11:59:32 +08:00
69d9f9249b
"``` refactor(fight): 移除玩家动作重复提交检查逻辑"
2025-12-09 15:22:50 +00:00
a000d78625
fix(map): 修复玩家离开地图时 Canmon 状态重置问题
...
修复了在玩家调用 MapList 接口时错误地将 Canmon 设置为 0 的逻辑
问题导致玩家状态异常,现已修正为正确的行为
---
fix(fight): 修复战斗中宠物死亡判断逻辑
在 NewSeIdx_9 战斗脚本中增加对当前宠物血量是否为 0 的检查
避免在宠物已死亡的情况下继续执行后续战斗逻辑,防止异常行为
---
refactor(pet): 优化宠物技能效果添加逻辑
移除冗余的 Effect 查找过程,简化为通过 HaveAN 判断是否存在技能
2025-12-09 18:49:36 +08:00
1ea4b756f6
```
...
feat(service): 更新地图与战斗信息服务结构及逻辑
- 移除 MapLeave 中对 player.Canmon 的重复设置
- 在 MapList 中增加对 TimeBoss 状态的处理并
2025-12-09 16:52:53 +08:00
2633402b52
fix(fight_boss): 修复 boss 战斗中索引为 0 的异常处理逻辑
...
当 effect 索引为 0 时,跳过无效处理以避免潜在错误。
feat(task): 更新任务奖励与注册参数配置
- 移除任务 37 中的注释项并保留有效奖励
- 修改任务 91 注册参数为 246
- 清空任务 300 的物品奖励列表,并设置类型为 30
refactor(fight_input): 优化 meetpet 初始化条件判断
将多个判断条件拆分为独立 if 判断语句,提高代码可读性。
refactor(effect_service): 移除 Scan 错误检查冗余逻辑
简化数据库查询后的错误处理流程,提升
2025-12-09 11:19:15 +08:00
8983222dcb
```
...
refactor(logic): 重构服务器启动逻辑与任务状态管理
- 移除了 `gcmd` 包在 controller 中的直接使用,改为通过参数传递端口和服务器类型
- 统一使用 `GetTask` 和 `SetTask` 方法替代直接访问 `TaskList` 数组,提升代码可维护性
- 修改了战斗逻辑中部分调试打印语句,并优化战斗循环结束日志输出
- 调整了新手玩家初始化流程,默认完成新手任务4
- 更新了数据库模型字段及结构定义,如增加 `max_ts` 字段、扩展 `TaskList` 长度等
- 改进了宠物添加逻辑,采用 SQL 方式确保捕捉时间唯一递增
- 清理了无用或注释掉的旧代码块
2025-12-08 17:03:43 +08:00
7005c1047f
```
...
feat(fight_boss): 更新BOSS战斗效果逻辑以使用新的服务接口
将原来直接访问xmlres.EffectMAP获取效果信息的方式,
替换为通过service.NewEffectService().Args方法获取EID与参数,
提高代码解耦性与可维护性。
refactor(item_buy): 调整金币商品购买时的价格计算逻辑
修复购买金币商品时价格未正确乘以100的问题,
确保消耗金币数量准确无
2025-12-08 00:17:04 +08:00
294cb2e3fd
feat(login): 重构登录逻辑并迁移每日重置功能到 Personself 方法
...
将原本在 Controller.Login 中处理的每日重置逻辑(如电池、任务等)迁移到
service.Info.Personself 方法中,并移除对 gtime.Now().Time 的旧引用。同时更新了
相关的时间判断函数 IsToday,使其支持 *gtime.Time 类型。
此外,清理无用导入包,优化日志打印方式,并修复部分结构体字段定义与使用问题。
2025-12-07 19:23:44 +08:00
35c89215f7
```
...
feat(player): 重构玩家金币系统,使用BaseSysUserService管理金币
将玩家金币逻辑从PlayerInfo中移除,改为通过BaseSysUserService进行统一管理。
新增了金币的获取与设置方法,支持以分为单位的精确计算。
调整了登录时用户服务的初始化逻辑,确保User字段正确赋值。
fix(pet): 修复宠物性格道具使用逻辑错误
更新了多个性格相关道具的处理方式,包括新增的性格转换道具范围。
修正了性格随机与指定逻辑,避免越界问题并增强可维护性。
feat(fight): 战斗初始化时恢复宠物状态
在战斗初始化阶段调用宠物治愈方法,确保战斗开始前宠物处于健康状态。
feat(admin): 调整管理员会话获取接口参数类型
修改GetPerson方法传入参数为uint32类型,提高数据一致性与安全性。
refactor(model): 移除PlayerInfo中的GoldBean字段
金币字段不再存储于PlayerInfo结构体中,转而由BaseSysUser模块统一管理。
```
2025-12-06 23:59:00 +08:00
91690658b5
feat(boss-effect): 统一处理参数类型转换,提升数值比较与运算准确性
...
对多个 boss 技能效果文件中的参数调用进行了统一调整,将原先直接使用 `e.Args()[index]` 的地方,
改为通过 `e.Args()[index].IntPart()` 或 `e.Args()[index]` 进行类型转换后再参与逻辑判断或数值计算。
同时修正了部分 HP 比较方式,由整型比较转为 decimal
2025-12-06 15:11:42 +08:00
852ba53350
```
...
fix(pet): 修复宠物融合与删除逻辑中的数据访问问题
- 在 PET_FUSION 控制器中注释掉调试代码并修正融合时使用的捕获时间参数
- 优化 player 模块中 Pet_del 方法的切片删除逻辑,避免潜在的数据竞争
- 修复 fight loop 中对手宠物列表的错误引用
- 调整数据库查询条件,将 id 字段从关键字搜索移至精确匹配字段
- 宠物服务中添加插入失败时的重试机制,并默认 free 状态为 1
```
2025-12-06 01:41:38 +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
022dc12461
refactor(decimal): 替换shopspring/decimal为govalues/decimal库
2025-12-04 14:28:42 +00:00
b1748d1428
fix(pet): 修复空变更导致的潜在逻辑问题
2025-12-04 03:55:38 +00:00
f8ba7988d0
```
...
feat(pet): 优化宠物融合错误码并记录原始捕获时间
- 将宠物融合过程中的错误码从 ErrSystemBusy 细分为多个更具体的错误码,
如 ErrPokemonNotFusionReady、ErrPokemonNotFusionReady2 等,便于问题定位。
- 在融合成功后,新增记录主宠的旧捕捉时间(OldCatchTime)字段。
- 调整战斗捕捉逻辑,使用对手玩家的第一个宠物信息进行添加,并重置战斗结束原因。
refactor(service): 移除未使用的管理员会话结构体字段和清理部分冗余代码
- 注释掉 base_sys_user.go
2025-12-04 00:26:49 +08:00
8d7d9da0bf
feat(item): 新增性格道具支持与相关逻辑调整
...
新增对特定性格道具的支持,包括 Nature 和 NatureSet 属性解析,
并优化精灵融合、任务奖励、战斗捕捉等流程中的宠物添加方式。
同时修复部分战斗逻辑及数据结构引用问题。
2025-12-03 22:05:28 +08:00
aad1e2f44c
feat(fight): 添加战斗前状态检查与经验获取限制判断
...
- 在挑战BOSS和野外怪物战斗前,增加 CanFight 状态检查,防止非法战斗
- 修复战斗胜利后经验与物品发放逻辑,增加 CanGetExp 判断避免重复获取
- 优化战斗中精灵切换逻辑与相关伤害效果处理,确保死亡标记正确设置
- 修正战斗轮次中被动切换行为及技能执行顺序问题
- 移除无用的管理员会话控制器和宠物融合模型代码
- 调整战斗输入结构体中的 Switch 类型为 Map 以提高查找效率
- 修复战斗中精灵存活判定条件,
2025-12-01 23:31:48 +08:00
6d54efbbf6
```
...
fix(fight): 修复NPC战斗逻辑和玩家宠物初始化问题
修复了在与NPC战斗时AI玩家技能释放的逻辑错误,确保AI能够正确获取行动。
同时修正了玩家参战宠物的CatchTime生成方式,避免数据冲突。
此外,移除了大乱斗模式中不必要的延迟逻辑,并添加了战斗开始与结束的调试日志输出。
```
2025-12-01 01:45:19 +08:00
e4fd9c2e38
fix(fight): 修正空变更导致的潜在逻辑问题
2025-11-30 10:21:57 +00:00
1938346e89
fix(fight): 修正空变更导致的潜在逻辑问题
2025-11-30 04:57:48 +00:00
d8718e8eac
```
...
feat(fight): 添加战斗准备完成广播消息
在 ReadyFight 方法中增加对所有玩家的广播,发送玩家准备完成的消息。
新增 S2C_2404 结构体用于通知客户端指定用户已准备完成,
若为野怪则 userID 设置为 0。
```
2025-11-30 01:54:46 +08:00
bdfff799dd
```
...
feat(boss): 更新NewSeIdx_6.go中技能触发条件判断逻辑
将原本基于元素类型的判断改为基于技能分类的判断,
并修改了函数名Damage_Lock_ex为Action_end_ex以更准确反映其用途。
注释中也将“普通属性”修正为“物理攻击”,使描述更加清晰明确。
```
2025-11-29 23:31:37 +08:00
11f6817d62
feat(fight): 优化战斗逻辑与精灵切换流程
...
- 在多个战斗控制器方法中添加 defer 调用,确保战斗操作正确延迟执行
- 修改 ChangePet 方法返回值类型,增强接口一致性
- 修复战斗准备阶段逻辑,重构战斗开始信息构建过程
- 移除冗余广播调用,调整 PVE 战斗初始化流程
- 更新 README 中的 pprof 命令地址并完善项目介绍部分
fix(effect): 修复效果叠加逻辑与ID解析问题
- 效果叠加时默认增加一层,而非直接相加参数
- 修正 EffectIDCombiner 类型、CatchTime 的掩码偏移计算错误
- 添加重复效果日志输出,便于调试追踪
feat(boss): 完善BOSS特性实现逻辑
- 修正 NewSel17 特性
2025-11-29 19:26:56 +08:00
f1c75abde6
Merge branch 'main' of github.com:72wo/blazing
2025-11-28 00:16:57 +08:00
f90581e0f6
```
...
feat(fight): 优化擂台战斗逻辑与状态管理
- 修改了擂台主人设置逻辑,引入 `Set` 方法统一处理玩家信息更新
- 增加对擂主是否可战斗的判断,防止无效挑战
- 调整连胜计算和广播机制,确保数据一致性
- 修复擂台挑战失败时的状态回滚问题
- 引入错误码替代硬编码返回值,提高代码可读性与维护性
- 统一访问擂台玩家的方式,移除冗余字段
2025-11-28 00:16:51 +08:00
cb58c312bc
fix(fight): 修正空变更导致的潜在逻辑问题
2025-11-27 12:05:21 +00:00
279f5d9d39
fix(fight): 修正空变更导致的潜在逻辑问题
2025-11-27 11:11:13 +00:00
aa87e1c55a
fix(fight): 修正空变更导致的潜在逻辑问题
2025-11-27 10:58:30 +00:00
914e203d8b
fix(fight): 修正Boss战捕捉逻辑执行顺序问题
2025-11-27 06:54:35 +00:00
5a9c37e852
feat(effect): 实现多个新技能效果逻辑
...
- 新增 NewSel12 效果:实现特定条件下增加属性的功能
- 新增 NewSel36 效果:实现按回合轮换属性顺序出招的去血逻辑
- 修改 NewSel37 效果:限制仅对红伤生效
- 修改 NewSel39 和 NewSel40 效果:方法名从 Damage_Floor 改为 Damage_DIV_ex
- 新增 NewSel44 效果:实现重生逻辑,恢复
2025-11-26 23:09:20 +08:00
f15f08189f
feat(effect): 实现多个新技能效果逻辑
...
新增了多个宠物战斗中的技能效果实现,包括伤害反弹、必杀技增强、先手权调整、
回复机制以及特殊条件触发逻辑。同时修复了部分技能判断条件与执行顺序问题,
优化了 AI 在 NPC 战斗中的行为表现,并完善了相关配置文件内容。
2025-11-26 18:39:23 +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
f76587f952
feat(pet): 实现精灵融合功能并优化相关逻辑
...
新增精灵融合接口及处理逻辑,支持主副精灵融合生成新精灵,并消耗金币与材料。
同时调整了战斗技能选择流程、修复地图热度统计安全问题以及完善宠物删除机制。
- 添加 `PetFusion` 控制器方法实现融合核心逻辑
- 新增 `C2S_PetFusion` 和 `PetFusionInfo` 结构体用于通信
- 修正战斗中技能随机选取后立即返回的问题
- 修复太空站进入/离开时对地图热度的并发访问风险
-
2025-11-26 01:33:48 +08: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
3e1887c7b8
```
...
feat(broadcast): 添加全服广播功能并完善相关逻辑
新增 Broadcast 结构体及 Server 的 Broadcast 方法,用于实现全服广播消息,
并在 RPC 客户端中增加对应接口。同时在 fight 模块中添加聊天信息结构体和处理逻辑。
refactor(pet_skill): 优化宠物技能设置逻辑
修复宠物技能替换判断条件错误的问题,并调整相关逻辑顺序以提高代码可读性与健壮性。
feat(chat): 实现战斗内聊天功能
新增战斗中的聊天指令结构体 ChatInfo 和对应的控制器方法 FightChat,
支持玩家在战斗中发送聊天消息。
refactor(item_buy): 调整金币购买道具的扣费方式
将原直接比较金币数量改为调用
2025-11-25 16:36:55 +08:00
40d72790ff
feat(xmlres): 实装性格重塑,实装性格指定
...
fix(fight): 使用模型层方法生成精灵信息
refactor(controller): 移除冗余变量与内联XML读取逻辑
refactor(pet): 重构经验更新与进化逻辑
refactor(item): 校验并扣减使用道具数量
feat(item): 新增金豆购买商品协议结构体
feat(user): 迁移角色服装变更逻辑至user控制器
feat(pet): 增加技能排序协议定义
refactor(utils): 移除未使用的工具函数引用
chore(config): 更新地图怪物配置信息
详细变更内容包括:
- 在`xmlres/file.go`中初始化`GoldProductMap`并加载相关配置。
- 将`GenPetInfo`方法从玩家服务迁移至`model`包以统一管理。
- 合并部分不必要的局部变量声明,并优化XML资源加载方式。
- 拆分精灵升级与进化方法,明确调用职责。
- 在战斗和治疗等操作前增加货币校验及扣除逻辑。
- 补充金豆购买相关的客户端/服务端通信结构体。
- 调整技能选择逻辑避免潜在索引越界问题。
- 更新部分注释说明和代码结构以提升可维护性。
2025-11-25 12:29:50 +08:00
28e0addda0
```
...
feat(pet): 添加学习力分配功能并优化相关逻辑
- 新增 PetEVdiy 接口用于自定义宠物学习力分配
- 限制单次学习力分配不超过510,单项不超过255
- 学习力池 EVPool 字段添加到 PlayerInfo 结构体
- 使用 github.com/samber/lo 简化数组求和操作
- 更新 fight_boss 逻辑以正确处理 BOSS 战斗后经验与学习力奖励发放
- 调整任务列表中部分
2025-11-25 00:55:10 +08:00
50232339d9
```
...
refactor(rpc): 更新结构体标签以跳过特定字段序列化
将多个结构体中的 `struc:"[0]pad"` 标签更改为 `struc:"skip"`,
以避免在序列化过程中处理不必要的填充字段。同时新增放生与领回相关逻辑,
并完善部分控制器函数和消息结构定义。
```
2025-11-24 11:56:20 +08:00
2723b1871d
fix: 修复空提交问题
2025-11-23 23:42:16 +00:00
240c349b8a
fix: 修复空提交问题
2025-11-23 23:38:03 +00:00
5c5e5c06ab
```
...
feat(fight): 优化Boss战奖励发放与经验通知逻辑
- 重构 Boss 怪物掉落物品发放代码,提高可读性与扩展性
- 注释掉宠物经验变化的通知指令(2509),暂不发送给客户端
- 修复战斗模式判断条件,从 Mode 改为 Status 判断 PVE 战斗
- 调整战斗超时逻辑,修改超时原因并增加调试日志输出
- 优化战斗结束回调执行顺序,确保广播前完成状态更新
- 重写 PetInfo.AddEV 方法,支持更安全
2025-11-23 00:06:14 +08:00
1dbd4169e9
feat(xmlres): 更新 BOSS 配置结构并优化字段注释
...
新增多个 BOSS 相关配置字段,包括任务关联、奖励机制与挑战限制等,
增强 BOSS 精灵的可配置性与业务表达能力。同时完善字段注释以对齐 XML
实际使用情况,并保留原有部分字段用于兼容历史配置。
fix(fight): 调整战斗胜利回调执行顺序以确保数据一致性
将战斗结束回调移至广播之前执行,保证在发送战斗结果前已完成所有状态
更新,尤其是针对胜利宠物的信息同步
2025-11-22 22:57:32 +08:00