Commit Graph

325 Commits

Author SHA1 Message Date
f06638d6b6 ```
feat(socket): 优化TCP连接处理逻辑并引入批量读取机制

- 在 `ServerEvent.go` 中调整了 `OnTraffic` 方法的处理逻辑,
  避免不必要的循环,确保跨域请求优先处理。
- 新增 `batchRead` 配置项,用于控制单次处理的最大数据包数量,
 默认值设为 10。
- 修复 `OnClose` 方法中可能存在的执行顺序问题,并显式关闭 Lockfree 资源。
- 在 `ClientData` 初始化时,将 Lockfree 的阻塞策略从 Sleep 策略
  替换为 ConditionBlock 策略,提升并发处理性能。
- 微调玩家登录完成时的地图ID判断条件,由 1000
2025-10-29 03:19:32 +08:00
c0f22cb208 修改 2025-10-29 02:05:34 +08:00
32d60e8d91 fix(socket): 移除未使用的包导入和调试日志
移除了 `blazing/cool` 和 `context` 包的导入,以及不再需要的调试日志输出。

feat(fight): 增强玩家初始化检查并返回结果

修改 `initplayer` 方法以在没有宠物时返回 false,并在 `NewFight` 中增加对初始化结果的检查,若失败则返回 nil。
2025-10-28 22:08:27 +08:00
1
a37b459793 ``` feat(socket): 优化panic处理逻辑并添加详细堆栈打印,完善服务器退出条件检查 2025-10-28 07:39:11 +00:00
ec082db71d ```
feat(socket): 优化服务器事件处理逻辑并修复数据解码问题

- 移除重复的 `gnet.WithTicker(true)` 配置项
- 调整 `OnTick` 的执行间隔从 10 秒延长至 30 秒
- 更新 `NewClientData` 方法以传入连接对象,用于后续消息处理
- 将 `c.Read` 替换为 `c.Discard` 以正确丢弃已读数据
- 改进数据包处理逻辑,增强对不完整包的处理能力
- 修正 `TomeeHeader.Version` 类型由 string 转为 byte,并更新相关读写操作
- 在消息处理中增加错误日志打印
2025-10-28 02:28:15 +08:00
1
448943ca75 修改底层 2025-10-27 09:36:49 +00:00
248a326bb5 ```
fix(BattlePetEntity): 移除调试打印语句

移除了战斗宠物实体创建过程中用于调试的 fmt.Printf 语句,
这些语句在生产环境中没有必要且会影响性能。
```
2025-10-27 01:23:42 +08:00
5542718a2b feat(fight): 优化睡眠状态效果逻辑,确保对方攻击后解除睡眠
睡眠状态现在会正确挂载到对手身上,以实现在对方攻击后自动解除睡眠效果。

fix(fight): 修复技能PP减少逻辑,确保使用技能时正确扣减PP

在技能执行过程中,通过查找当前宠物的技能列表来正确地减少对应技能的PP值,避免了错误的PP扣减。

fix(fight): 修复回合开始时技能列表初始化问题

修正了战斗中角色和对手的技能列表初始化逻辑,确保双方技能数据正确加载。

feat(pet): 限制宠物技能数量为4个并修复技能学习逻辑

更新宠物技能学习逻辑,确保只保留最后四个技能,并在学习新技能时正确添加至技能列表。

fix(p
2025-10-27 01:11:31 +08:00
e75ecd413d feat(fight): 重构战斗系统技能逻辑与精灵切换功能
- 优化技能执行流程,统一使用 SelectSkillAction 作为技能载体
- 移除冗余的技能 ID 字段,简化数据结构
- 调整命中判断和技能效果触发机制,提升准确性
- 修改精灵切换与捕获相关方法参数格式
- 更新技能列表结构为动态数组以支持灵活长度
- 完善睡眠等异常状态的处理逻辑
- 修复战斗中技能 PP 扣减及副本还原问题
- 清理无用代码,如多余的 FindWithIndex 函数定义
- 强化验证码缓存键命名规则,增强安全性
2025-10-26 20:56:03 +08:00
03aea8ae6c ```
feat(player): 实现玩家主动退出并优化踢出逻辑

将原有的踢出玩家逻辑提取到 Player 结构体的 Kick 方法中,统一处理登录状态判断、
发送错误码、关闭连接等操作。同时在 QuitSelf 方法中调用该逻辑,确保所有玩家被正确踢出。
移除了 server.go 中重复的踢出实现,并调整了相关包导入路径。
```
2025-10-26 14:56:29 +08:00
4306e2db53 ```
feat(item): 实现批量购买物品功能并优化物品添加逻辑

新增 BuyMItem 方法支持批量购买多个物品,并在 Controller 中完善错误处理流程。
修改 ItemAdd 方法以返回添加结果,增强对物品数量限制和异常情况的控制。
调整任务完成时的物品发放逻辑,确保只有成功添加的物品才会被返回给客户端。
修复新手任务中初级体力药剂的数量从 3 改为 5。
将 defer 调用提前执行以避免潜在的数据不一致问题。
```
2025-10-25 15:06:05 +08:00
18378a3ab6 feat(logic): 添加玩家外观与聊天功能并优化宠物生成逻辑
- 在 `logic/controller/item.go` 中添加了更换玩家服装后广播结果的逻辑
- 在 `logic/controller/user.go` 中新增多个控制器方法:
  - `Aimat`:瞄准操作处理
  - `Chat`:支持消息发送及过滤
  - `ChangePlayerColor`:修改玩家颜色并扣除金币
  - `ChangePlayerDoodle`:更改玩家涂鸦并扣费
  - `ChangeNONOColor`:改变 NONO 颜色
- 移动宠物信息生成函数 `GenPetInfo` 至 `modules/blazing/model/pet.go` 并重构其实现
- 更新 `logic/service/player/pet.go` 和相关引用以适应新结构
-
2025-10-24 00:31:38 +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
9739598df2 ```
feat(xml): 更新任务配置结构以支持新能量节点解析

将原先的 TalkCount 和 TalkEntry 结构替换为 TalkRoot 和 Energy,
以适配新的 XML 配置格式。同时更新了相关引用代码以确保类型一致性。

refactor(item): 优化物品添加方法支持可变参数传入

调整 ItemAdd 方法签名,从接收数组改为接收可变参数,
提升调用灵活性,并同步修改控制器中对物品添加逻辑的处理方式。

feat(login): 修复每日重置逻辑并引入 gtime 时间管理

修正登录时每日任务重置区间错误(400~100 改为 400~500),
并改用 gtime.Now().Time 提供更准确的时间戳记录与比较,
同时增强挖矿次数等
2025-10-23 01:02:19 +08:00
83fb06a229 feat(utils): 重构 OrderedMap 为 OrderMap,支持排序和非阻塞遍历
- 将原有的 `OrderedMap` 替换为 `OrderMap`,基于 `map` 和 `slice` 实现,提升性能并简化逻辑
- 支持自定义 key 排序规则,若未提供则按插入顺序维护
- 提供 `Set`、`Get`、`Delete`、`Keys`、`Values` 等基本操作,均并发安全
- 引入非阻塞遍历机制(`Iter`、`Iter
2025-10-22 21:30:05 +08:00
20f9af7dca fix(logic/service/fight): 修复战斗效果添加逻辑并优化调试信息输出
- 在 effect_10-16_94_99_114.go 中正确设置 Effect 字段的自我引用
- 修复 OnHit 方法中效果添加的逻辑问题
- 在 node.go 的 AddEffect 方法中增加调试信息,输出效果 ID 和持续回合数
- 优化调试日志格式,便于追踪效果的持续时间变化
2025-10-22 00:41:58 +08:00
3a43e78aab 战斗修改 2025-10-22 00:25:38 +08:00
3270ed8c67 ```
feat(nono): 添加玩家宠物治疗功能

新增 PlayerPetCure 控制器方法和对应的入参、出参结构体,
用于处理宠物治疗逻辑。同时为 SwitchFlyingInboundInfo 结构体
补充了缺失的注释说明。
```
2025-10-21 23:00:00 +08:00
a69e9882d9 feat(fight): 调整战斗逻辑与初始化流程
- 移除 initplayer 中重复的 InitAttackValue 调用
- 启用 battleLoop 的超时时间为 60 秒
- 优化切换宠物时的出手顺序逻辑
- 修复 processSkillAttack 中缺少的 else 分支
- 在 enterturn 中重新初始化双方攻击值
- 清理无用的日志打印和冗余代码
- 修复 SendPack 中连接判断逻辑,确保类型安全
2025-10-21 22:14:30 +08:00
ee119a0f0f fix(fight): 修复对战中行动处理逻辑
优化了战斗循环中不同行动类型的处理流程,确保在非技能行动时能正确回退到空技能,
避免因类型断言失败导致的 panic。同时完善了注释与代码可读性。

fix(player): 增加发送数据包前连接有效性检查

在玩家发送数据包之前增加 MainConn 是否为 nil 的判断,防止因连接未建立或已断开
造成的空指针异常
2025-10-21 00:41:59 +08:00
b90bceafd9 ```
feat(xmlres): 添加任务数据加载与初始化逻辑

在 xmlres 包中新增 TaskMap 用于存储任务数据,并在 initfile 函数中
加载 task.xml 文件内容。同时调整 login 控制器中的任务重置逻辑,根据
任务类型每日重置任务状态。修复 pet 控制器释放宠物时的数据更新问题。
战斗系统中增加 Effect 的 OnMiss 回调处理,并修正状态效果映射关系。
修复 PVP 邀
2025-10-20 23:59:49 +08:00
f53028d1fc ```
feat(chat): 删除无用的包声明

移除了 chat.go 文件中多余的 package controller 声明,该文件目前不包含任何逻辑实现。

feat(user): 新增瞄准功能接口及数据结构

在用户控制器中增加了 Aimat 方法,用于处理玩家的瞄准操作,并广播给同地图其他玩家。
同时在 user 包中添加了与瞄准相关的入参和出参结构体定义,包括 ItemId、ShootType 和 Point 等字段。
```
2025-10-20 01:39:07 +08:00
d673ee4776 feat(login): 初始化玩家登录信息中的 Nonono 2025-10-20 00:23:16 +08:00
2ca0898b15 ```
refactor(socket): 优化TCP数据包处理逻辑并增加调试日志

- 修复 handleTcp 中条件判断的空格格式问题
- 在解码失败时增加详细 Debug 日志输出
- 完善不完整数据包时手动唤醒连接的处理流程

refactor(pet): 重构宠物经验系统与升级逻辑

- 将经验计算函数移至 model 层统一管理
- 优化 AddPetExp 方法逻辑,避免直接修改原字段
- 升级过程中正确扣减经验池并防止溢出
- 抽离 Update 方法用于处理宠物进化和经验更新

refactor(model): 调整 PlayerInfo 结构体引用方式及相关初始化逻辑

- 修改
2025-10-18 23:58:19 +08:00
1
be32e4dba7 ``refactor(pet): 重构宠物经验添加逻辑,简化升级流程并修复经验池计算`` 2025-10-17 23:09:26 +00:00
1
3597f22667 ``refactor(pet): 优化宠物经验计算逻辑,使用NextLvExp替代临时计算`` 2025-10-17 21:40:51 +00:00
1
31c7687036 ``refactor(pet): 提取宠物基础属性计算逻辑到GetBasic方法,优化经验计算流程`` 2025-10-17 21:38:24 +00:00
1
eb3d5f05a1 ``feat(chat): 新增聊天模块基础结构,定义ChatInboundInfo消息结构体`` 2025-10-17 20:33:02 +00:00
1
08fcc72b6d ``feat(socket): 完善踢人流程日志记录,添加CloseChan确保数据保存完成`` 2025-10-16 18:59:38 +00:00
1
d32be53e70 1 2025-10-16 15:26:16 +00:00
42bb66f677 ```
feat(socket): 调整踢人逻辑以支持错误返回

将 KickPlayer 方法的返回值从 void 改为 error,
并在 KickPerson 中正确处理该错误返回。

fix(controller): 登录时增加延迟以确保踢人操作完成

在登录流程中添加 3 秒延迟,避免用户尚未被踢出就重新上线的问题。

feat(task): 完善任务缓冲获取逻辑

初始化 GetTaskBufOutboundInfo 时直接赋值 TaskId,
并移除后续重复赋值操作,提升代码可读性。

refactor(player): 优化玩家踢出方法结构

清理
2025-10-16 12:16:03 +08:00
1
ebe50f18a9 ``fix(user): 修复会话检查逻辑,添加会话删除操作`` 2025-10-15 16:24:52 +00:00
1
241cef544c `` refactor(fight): 优化效果添加逻辑,区分主动方和被动方处理并添加注释说明`` 2025-10-15 14:54:59 +00:00
1
cb1abe69b3 `` refactor(fight): 重构状态效果处理逻辑,统一使用Skill_Hit_Pre方法并修复回合开始触发时机``
待实现寄生种子
2025-10-15 14:24:46 +00:00
1
fccdda3c9d ``` fix(player): 优化战斗结束处理逻辑,避免线程阻塞并修复格式问题 2025-10-14 15:12:08 +00:00
1
fead9ed6b5 ``` refactor(player): 移除登录等待机制,前端是登录后才进入地图的,及相关同步逻辑 2025-10-14 14:36:39 +00:00
68d1a1355e ```
fix(controller): 优化数据发送逻辑,避免并发写冲突

将原先直接操作连接上下文并加锁的写法,
改为通过 player 实例封装的 SendPack 方法发送数据,
提高代码可维护性和安全性。

同时调整了 service 层踢出玩家时锁的获取顺序,
确保在关闭连接前
2025-10-14 14:25:57 +08:00
600fc29cbd ```
refactor(socket): 统一使用 gnet.Conn 替代自定义 Conn 结构体

- 将 logic/controller 和 logic/service/player 中的 *player.Conn 替换为 gnet.Conn
- 移除 player.Conn 结构体及相关封装逻辑
- 调整 SendPack 方法至 Player 实体,直接操作 gnet.Conn 发送数据
- 增加 Mu 锁保护并发写入,确保 WebSocket 和 TCP 连接安全性
- 更新 ServerEvent.go 中跨域标记设置位置
```
2025-10-14 03:07:55 +08:00
1cbdb8f22a 1 2025-10-14 02:23:00 +08:00
e84d55aec0 ```
feat(player): 优化玩家连接与消息发送逻辑

- 为 `Conn` 结构体新增 `Close()` 方法,并在多处替换原有的 `GetConn().Close()` 调用,
  统一通过 `MainConn` 操作以提高代码一致性。
- 在 `SendPack` 和 `GetPlayer` 等方法中增加互斥锁保护,确保对 `MainConn` 的访问是线程安全的。
- 移除冗余的 `GetConn()` 方法,直接使用 `MainConn` 提升性能并简化结构。

refactor(rpc): 临时将 RPC 客户端地址硬编码为本地地址

- 将 rpcaddr 临时设置为 "127.0.0.1",便于调试和开发环境测试。

refactor(handler): 扩展 JSON-RPC 方法过滤条件

- 增加了对 "Kick" 和 "RegisterLogic" 方法的排除,防止其被注册到 RPC 处理器中。

refactor(fight): 精简战斗服务中的判断逻辑

- 简化 `IsFirst` 函数返回表达式。
- 移除了多余的 defer 语句,提前设置 `closefight` 标志位。

refactor(pet): 改进宠物经验添加机制

- `AddPetExp` 方法新增布尔参数 `bro` 控制是否广播更新。
- 修改调用点以适配新参数,修复潜在的数据同步问题。
- 初始化宠物时禁止触发经验变更广播。

chore(build): 删除旧版二进制文件 logic1

- 清理无用的编译产物,避免混淆项目结构。
```
2025-10-14 01:26:59 +08:00
eff23d5bd0 fix(login): 深拷贝用户信息以避免数据竞争
在登录逻辑中,使用 `copier.CopyWithOption` 进行深拷贝,确保发送给其他玩家的
玩家信息不会因为引用同一对象而导致数据异常。同时修正了部分字段注释和默认值说明。

feat(maps): 更新地图角色信息结构体字段描述

更新 `OutInfo` 结构体中的 `Action`、`Direction` 和 `ChangeShape` 字段的注释,
使其更准确地反映其用途和含义,便于后续维护与开发理解。

fix(player): 完善登录位置判断条件

在玩家完成登录时,除了判断 `MapID > 10000` 外,增加对 `MapID == 0` 的处理,
确保角色能正确被传送到默认地图。

refactor(walk): 移除无用上下文导入并优化日志记录

移除了未使用的 `context` 包导入,并调整了行走逻辑中的赋值顺序,使代码更清晰。
同时注释掉不再需要的调试日志输出语句。
2025-10-13 23:38:48 +08:00
5e53b9caaa ```
feat(pet): 宠物治疗逻辑重构并新增治愈方法

将原有的宠物治疗逻辑提取为 PetInfo.Cure() 方法,统一处理血量和技能PP恢复。
同时优化经验分配逻辑,确保升级后正确扣除经验池并处理满级情况。

```
2025-10-13 19:46:19 +08:00
79213c67d6 ```
fix(socket): 修复TCP连接处理中逻辑取反错误

修复了`handleTcp`函数中对`s.discorse`的判断条件错误,导致CORS配置未正确应用的问题。

feat(player): 增加地图切换标记支持

在`Player`结构体中新增`Changemap`字段,用于标识玩家是否切换过地图,并在相关业务逻辑中进行设置和判断。

feat(pet): 重构精灵生成与经验处理逻辑

将`GenPetInfo`方法从model包迁移至player包,增加个体值、性格、特性等随机生成逻辑,优化技能学习处理方式。

refactor(service): 优化定时任务与连接管理

使用`cool.Cron`替代原生ticker实现刷怪定时任务,优化连接获取方式,确保并发安全。

refactor(model): 移除冗余代码并优化结构

从`pet.go`中移除已迁移至`player`包的函数定义,精简模型结构,提升模块清晰度。

refactor(config): 更新部门及字典名称配置

将`base_sys_department.json`和
2025-10-13 18:51:41 +08:00
b258a81bb8 1 2025-10-11 01:01:36 +08:00
6c9ee0c73a fix(player): 移除GetAction方法中的冗余return语句
移除了Player结构体中GetAction方法内不必要的return语句,
该语句在方法末尾没有实际作用,清理后使代码更加简洁。
2025-10-10 23:38:43 +08:00
646eeeaa2b fix(space): 修复地图ID判断逻辑并优化空间初始化流程
移除未使用的地图ID字段,调整GetSpace函数中关于玩家地图的判断条件,
确保能正确加载星球配置并初始化Space实例。同时清理冗余代码,
提升逻辑可读性与执行效率。
2025-10-10 23:16:45 +08:00
a1f6ce956e ```
feat(build): 添加 linux amd64 平台的逻辑编译脚本

在 build.bat 中新增 gox 编译命令,用于构建 linux amd64
2025-10-10 23:00:07 +08:00
13b37b432a ```
refactor(controller): 替换用户遍历逻辑为迭代回调方式

将多个控制器中使用的 `Items()` 方法遍历用户列表的方式,
统一修改为通过 `IterCb()` 回调函数方式进行处理,
提升代码一致性与可维护性。

同时引入 `blazing/logic/service/common` 包以支持 PlayerI 接口调用。
此外,移除了未使用的 `model.Pos` 类型及相关注释,精简结构体定义。
```
2025-10-10 20:46:16 +08:00
ed02b35142 111 2025-10-10 20:33:57 +08:00