Commit Graph

135 Commits

Author SHA1 Message Date
41babda646 ```
feat(config): 新增固定异色功能并重构异色服务

- 新增 FixShiny 方法用于固定获取异色效果
- 重命名 Args 方法为 RandShiny 以明确功能
- 添加 utils 包依赖用于数据转换

feat(model): 扩展宠物异色相关方法

- 为 PetInfo 结构体添加 FixShiny 方法
- 修改 RandShiny 方法逻辑,确保异色信息正确添加

ref
2025-12-30 00:45:23 +08:00
9422f2df99 ```
feat(pet): 宠物系统新增异色功能

- 在蛋游戏中添加异色宠物生成逻辑
- 在 boss 战斗中加入捕获时异色概率判定
- 优化宠物融合系统,支持融合后异色继承
- 重构宠物删除方法命名,修复方法调用问题
2025-12-30 00:10:59 +08:00
c9bc4be244 ```
feat: 添加ItemInfo结构体并重构抽蛋和任务系统

- 在common/data/color.go中添加ItemInfo结构体用于表示发放物品的信息
- 在common/utils/tomap.go中添加RandomSlice泛型函数用于从切片中随机选取元素
- 重构action_egg.go中的EggGamePlay功能,实现抽蛋逻辑和物品发放
- 更新fight_boss.go中使用新的ItemInfo结构体替换旧的model.ItemInfo
- 修改user_talk.go中获取物品数量的逻辑
- 更新user_task.go中任务完成逻辑使用新的ItemInfo结构体
- 在egg.go中更新抽蛋结果结构体使用ItemInfo
- 更新战斗奖励结构体使用ItemInfo
- 在player.go中添加学习力道具处理逻辑
- 重构任务系统使用新的ItemInfo结构体
- 移除旧的model.ItemInfo定义
- 更新宠物奖励配置模型添加成长值等字段
- 实现GetEgg方法用于获取扭蛋奖励
- 修复宠物融合材料服务中的道具验证逻辑
```
2025-12-26 20:38:08 +08:00
143e02de77 ```
feat(fight): 实现精灵切换时的出战和下场触发机制

- 新增SwitchOut接口方法用于精灵下场时触发
- 重命名Switch为SwitchIn用于精灵出战时触发
- 在战斗流程中添加精灵下场时的广播调用
- 修改EffectDefeatTrigger等效果的切换逻辑

refactor(effects): 优化战斗效果的切换处理逻辑

- 修改Effect147和Effect148的触发条件判断逻辑
-
2025-12-25 20:49:54 +08:00
1
edee754a22 feat(model): 新增金豆消费、CDK配置、炫彩皮肤及双塔模型,优化物品奖励和BOSS配置 2025-12-21 18:13:54 +00:00
1
5965c8319a feat(data): 重构颜色矩阵处理逻辑,将GlowFilter和相关功能迁移到common/data包 2025-12-21 17:18:33 +00:00
1
09dad913fe refactor(player): 调整颜色矩阵数据类型为float32并优化NPC定时任务逻辑 2025-12-17 06:56:55 +00:00
1
a5502a76bb "refactor(melee): 修改BOSS颜色字段类型并优化JSON解析处理" 2025-12-16 07:06:53 +00:00
92125f5141 feat(blazing): 为MeleeConfig添加描述字段
新增Desc字段用于存储BOSS的描述信息,完善了模型结构。
2025-12-15 14:35:02 +08:00
937f97fe83 ```
feat(go): 升级 Go 版本至 1.20

统一将所有模块的 Go 版本从 1.18 或 1.19 升级到 1.20,以使用最新的语言特性和性能改进。

feat(service): 新增乱斗服务默认宠物生成逻辑

在 fight 模块中调用新的 MELEEService.Def() 方法来生成初始对战宠物,
并根据配置
2025-12-15 14:26:24 +08:00
af7cdddcb5 feat(blazing): 为MeleeConfig添加是否启用字段
在MeleeConfig结构体中新增IsEnable字段,用于控制BOSS配置的启用状态。
该字段默认值为0,表示不启用,注释说明了其用途。
同时调整了结构体字段的对齐格式以提升可读性。
2025-12-15 04:44:39 +08:00
d2467363e8 feat(effect): 新增回合结束计数逻辑并调整伤害处理流程
在 Effect46 中新增 `Turn_End` 方法用于回合结束时增加计数器,并移除了原有在
`Damage_DIV_ex` 方法中重复的自增操作,以确保逻辑清晰且统一。

---

fix(monster): 调整异色宠物生成规则及捕获概率

测试服环境下强制开启异色宠物生成,并将原捕获概率由 30% 调整为 1%,提升
稀有精灵
2025-12-15 04:02:03 +08:00
3f059c71fa feat(pet): 更新宠物生成逻辑以支持异色属性
- 修改 `GenPetInfo` 函数签名,将 `shinyid` 参数调整为 `[]GlowFilter` 类型,并移动其位置
- 在多个控制器中更新调用 `GenPetInfo` 的地方,适配新的参数顺序和类型
- 引入 `GlowFilter` 结构用于描述异色效果,并在 `OgrePetInfo` 中添加相关字段
- 新增 `GenerateNormalizedColorMatrix` 工具函数用于生成颜色矩阵
- 调整宠物生成时对异色信息的初始化
2025-12-14 19:23:26 +08:00
4b604669e4 feat(pet): 更新精灵闪光信息结构以支持更丰富的光晕效果
将 Shiny 字段从单一 uint32 值扩展为 GlowFilter 结构体数组及相关长度字段,
用于表示更复杂的闪光视觉效果。同时调整相关序列化标签及保留字段布局。

- 修改 PetInfo、PetShortInfo、ReadyFightPetInfo 等结构体中的 Shiny 表示方式
- 添加 ShinyLen 和 ShinyInfo 字段,并配置 json 与 struc 序列化选项
- 调整部分结构体中 Reserved 字段为数组形式以优化空间布局
- 更新 copier.Copy 为 copier.CopyWithOption 并启用深拷贝逻辑
- 微调经验升级顺序以确保数据一致性
- 修正地图BOSS信息判断条件并清理无用导入和注释代码
2025-12-14 05:34:39 +08:00
648e963562 ```
feat(room): 更新房间宠物展示逻辑并优化数据结构

- 修改 `OnGetRoomPetShowInfo` 方法,使用 `pet.PetShortInfo` 替代原有的 `room.PetShowInfo` 结构体
- 引入 `github.com/jinzhu/copier` 实现结构体字段自动复制
- 调整 `SET_Pet` 接口实现逻辑以支持批量设置展示中的宠物
- 更新 `PetRoomListOutboundInfo` 中 Pets 字段类型为 `[]pet.PetShortInfo`
- 将 `RoomService.Show` 方法参数由单个 uint32 改为切片 []uint32 以支持多宠物展示
- 修改数据库表名常量 `TableNameBaseHouse` 从 "base_house" 更名为 "room_house
2025-12-13 23:25:04 +08:00
d198e7446a feat(room): 移除旧版房间控制器逻辑并重构家具展示信息结构
移除了 logic/controller/room.go 中已废弃的房间相关控制器方法,包括获取基地物品、展示精灵及房间家具的方法。同时,在 logic/service/room/FitmentShowInfo.go 中对家具展示信息结构进行了重构,引入了 model.FitmentShowInfo 并新增 SET_FITMENT 和 NullInfo 结构体以支持新的数据协议。另外,在 pet.go 中增加 PetInfo_One_ohter 方法用于查询指定用户的宠物信息,并在 user.go 中为 UserService 添加 RoomService 支持。
2025-12-13 22:51:39 +08:00
fe89620efb ```
feat(item): 出售物品后减少背包中对应物品数量

在处理物品出售逻辑时,增加调用 SubItem 方法以正确扣减玩家背包中的物品数量。

feat(map): 玩家离开地图时重置 Canmon 标志位

通过 atomic.StoreUint32 将玩家的 Canmon 状态设置为 0,确保线程安全。

fix(pet): 调整宠物经验增加逻辑并修复技能学习问题

重构 AddPetExp 方法逻辑,优化升级流程、技能学习机制,并修正经验显示
2025-12-13 21:47:07 +08:00
1
f638113c1a ``feat(model): 添加装扮半价状态注释说明,包含个人/小屋/要塞/总部装扮半价标识`` 2025-12-12 19:16:02 +00:00
1
3242207f95 ``feat(model): 新增精灵奖励表(MonBonus)和物品奖励表(ItemBonus)模型,包含核心属性和通用配置字段`` 2025-12-12 17:26:20 +00:00
1
8eb0a1324b fix(pet): 优化宠物面板计算逻辑,限制非首次生成时等级不超过100并简化特性生成 2025-12-11 14:34:56 +00:00
5b804d07db ```
feat(fight): 实现主动切换宠物逻辑并优化相关结构体字段

- 在 `ActiveSwitchAction` 中新增 `Cid` 字段用于标识要切换的宠物 ID
- 调整 `ChangePet` 方法逻辑,移除旧有输入处理,改为在 loop 中统一处理
- 更新 `collectPlayerActions` 方法以正确设置当前宠物及发送指令
- 优化 `PetInfo` 结构体字段标签,去除冗余描述,并重命名部分字段提升可读性
- 增加 `ExtSkin` 字段支持记录可用皮肤信息
- 移除玩家信息中的 `LastResetTime` 注释字段
```
2025-12-11 12:16:32 +08:00
1
2187d84663 ``` refactor(fight): 重构精灵切换逻辑,将切换效果处理移至回合收集阶段并优化闪光字段结构 2025-12-10 16:03:45 +00:00
1
2d69eef283 ``` refactor(pet): 重构宠物效果检查逻辑,使用GetEffect替代HaveAN并优化效果复制 2025-12-10 14:04:06 +00:00
1
04905be3f9 ``` feat(fight): 添加尼尔尼奥变身逻辑并重构怪物生成模块 2025-12-10 13:54:51 +00:00
88c24627ca ```
refactor(blazing): 移除多余的 copier 依赖并优化赋值逻辑

移除了未使用的 github.com/jinzhu/copier 依赖包,并将原先使用 copier.Copy 的地方直接改为结构体指针解引用赋值,提升代码可读性和执行效率。
```
2025-12-09 19:16:15 +08: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
f6a305de77 ```
feat(fight): 添加 BOSS 战斗逻辑与地图交互功能

- 在 fight_boss.go 中增加对 BOSS 血量是否为 0 的判断,避免无效赋值
- 在 map.go 中移除旧的测试代码,并将 Canmon 状态设置移至 MapList 方法中
- 新增 Attack_Boss 接口方法用于处理玩家攻击 BOSS 请求
- 修改 MapBossInfo 结构体字段类型
2025-12-09 14:52:55 +08:00
cc5a2aaf46 feat(talk): 优化采集逻辑并移除冗余字典服务调用
- 移除了 talk.go 中对 dict 模块的依赖,直接使用配置中的 ItemID
- 修改了 talkconfig.go 中的 ItemID 类型为 uint32,提升一致性
- 调整 talk.go 和 talkconfig.go 的缓存获取方式,增强性能
- 更新了 pet_fusion_material_service.go 中字典服务调用方法
- 修复 talk 模型中 TalkID 字段的唯一索引问题
- 日志记录由 Error 改为 Info,避免误导性
2025-12-09 00:09:51 +08:00
36ca75aa03 ```
refactor(item): 优化物品添加逻辑并移除冗余代码

- 修改 ItemAdd 方法签名,从可变参数改为两个独立参数 itemId 和 itemCnt
- 移除了对 model.ItemInfo 的依赖,简化调用方式
- 更新所有调用 ItemAdd 的地方以适配新接口
- 删除未使用的 imports 和注释掉的旧配置加载逻辑
- 修复购买物品时金币扣除与物品发放的一致性问题
- 增加玩家操作消耗塞尔豆的扣费逻辑(如宠物治疗、技能设置等)

此变更提升了代码简洁性和一致性,并增强了业务逻辑的准确性。
```
2025-12-08 21:11:12 +08:00
1436cc0117 ```
refactor(service): 统一服务实例调用方式

将多个模块中手动创建服务实例的方式替换为全局单例模式,
包括 PetFusionService、PetFusionMaterialService 和 EffectService。
同时修改了相关调用代码以适配新的服务引用方式。

此外,重构了 talk 模块的数据结构与逻辑实现,
优化了挖矿次数检查及更新机制。
```
2025-12-08 19:50:54 +08:00
ec0552b59a feat(player): 重构任务状态管理逻辑
将任务状态相关的 GetTask 和 SetTask 方法从 player 包迁移至 model.PlayerInfo 结构体中,
统一通过 c.Info 调
2025-12-08 19:16:37 +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
3817fc1861 feat(item): 优化宠物道具使用逻辑与个体值处理
- 在获取用户物品列表时,过滤掉数量为0的物品
- 调整部分宠物道具ID判断条件,并修复神经元道具特殊处理逻辑
- 使用 DeepCopy 方式拷贝宠物数据,避免引用问题
- 移除冗余 copier 包引用,统一在需要处进行深拷贝操作
- 增加对宠物个体值(Dv)的操作边界检查,防止溢出
- 重构基因重组道具逻辑,调用封装
2025-12-07 02:50:35 +08:00
004eec219c feat(item): 添加 NatureProbs 字段并优化宠物道具使用逻辑
- 在 `Item` 结构体中新增 `NatureProbs` 字段,用于支持性格概率配置
- 重构 `ItemUsePet` 控制器方法,引入处理器注册机制统一管理道具效果
- 修复神经元相关道具的特殊处理逻辑,增强代码可维护性
- 调整 `S2C_USE_PET_ITEM_OUT_OF_FIGHT` 响应结构体,增加技能列表长度字段
- 修改 `ResetNature` 方法命名及判断条件,提升语义清晰度与健壮性
- 新增 `PetInfo_One_Unscoped` 查询方法以支持软删除数据访问
- 实
2025-12-07 01:43:12 +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
8d7d9da0bf feat(item): 新增性格道具支持与相关逻辑调整
新增对特定性格道具的支持,包括 Nature 和 NatureSet 属性解析,
并优化精灵融合、任务奖励、战斗捕捉等流程中的宠物添加方式。
同时修复部分战斗逻辑及数据结构引用问题。
2025-12-03 22:05:28 +08:00
f73c11e571 ```
feat(pet): 实现精灵融合功能并优化相关数据结构

- 新增精灵融合主服务和材料服务,支持根据主副精灵ID查询融合结果
- 调整融合接口参数结构,将物品字段统一为数组形式
- 修改融合材料模型字段类型,提升数据一致性
- 重构融合配置相关逻辑,移除旧融合配置模型及服务
- 增加特性随机选择逻辑,确保融合产物具备有效特性
- 添加材料合法性校验,防止非法材料参与融合
```
2025-12-02 03:59:28 +08:00
aad1e2f44c feat(fight): 添加战斗前状态检查与经验获取限制判断
- 在挑战BOSS和野外怪物战斗前,增加 CanFight 状态检查,防止非法战斗
- 修复战斗胜利后经验与物品发放逻辑,增加 CanGetExp 判断避免重复获取
- 优化战斗中精灵切换逻辑与相关伤害效果处理,确保死亡标记正确设置
- 修正战斗轮次中被动切换行为及技能执行顺序问题
- 移除无用的管理员会话控制器和宠物融合模型代码
- 调整战斗输入结构体中的 Switch 类型为 Map 以提高查找效率
- 修复战斗中精灵存活判定条件,
2025-12-01 23:31:48 +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
0ab1a85d17 ```
feat(blazing): 更新怪物刷新规则模型结构

重构 monster_refresh.go 中的 MonsterRefresh 模型,调整字段定义以支持更灵活的刷新配置。
新增 MapID、MinLevel、MaxLevel、FixPos 和 Script 字段,用于支持地图和等级相关的刷新逻辑。
保留部分异色相关字段并标记为待定,便于后续决定是否移除。
新增 MonsterRefreshEX 结构体扩展 MonsterRefresh 并支持数组形式的 MonsterID 和 ShinyID。
修改注释内容以准确反映当前字段含义与用途。
同时修正 dict_info.go 中查询条件错误,将 type in (?) 更正
2025-11-27 01:23:12 +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
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
1
240c349b8a fix: 修复空提交问题 2025-11-23 23:38:03 +00:00
1
aa4574b5eb fix: 修复空提交问题 2025-11-23 09:59:34 +00:00