Commit Graph

559 Commits

Author SHA1 Message Date
4ae06f5695 fix(socket): 调整批量读取数量以优化性能
将 ServerOption 中的 batchRead 值从 30 调整为 8,以减少单次批量读取的数据量,提高处理效率和响应速度。
2025-10-31 01:58:16 +08:00
eefd368a2b Merge branch 'main' of github.com:72wo/blazing 2025-10-31 01:46:58 +08:00
f5fbfca593 ```
feat(common/socket): 增加批量读取数量以提升性能

将ServerOption中的batchRead值从10调整为30,以提高网络I/O处理效率。
```
2025-10-31 01:46:50 +08:00
1
566c5cc3ce `` refactor(socket): 优化客户端数据校验逻辑,增加保存锁并完善日志记录`` 2025-10-30 16:56:07 +00:00
1
44d3756cda Merge branch 'main' of https://github.com/72wo/blazing 2025-10-30 16:54:50 +00:00
1
260e86e2cf `` refactor(socket): 将ClientData结构及相关方法从wscodec.go移至SocketHandler_Tomee.go,优化代码组织结构`` 2025-10-30 16:54:20 +00:00
cccf26788e fix(socket): 玩家断开连接时增加保存锁,避免重复保存
在玩家断开连接时,使用 sync.Once 确保只保存一次玩家数据,
防止因并发或多次触发导致的数据异常。

feat(fight): 增加战斗资格判断与邀请取消功能

- 新增 Player.CanFight() 方法用于统一判断是否可以参与战斗
- 在多个战斗相关接口中加入 CanFight 检查
- 添加“取消战斗邀请”指令及处理逻辑(cmd: 2402)
- 修复部分错误码不准确的问题,提升提示一致性

refactor(login): 优化登录流程并增强健壮性

- 提前校验 session 合法性
- 增强获取玩家信息后的空指针检查
- 调整挖矿数据重置方式为 defer 执行
- 优化日志输出内容,便于调试追踪

docs(model): 更新部门、菜单等模型字段命名规范

将 orderNum 字段改为 ordernum,保持数据库列名风格一致,
同时更新了 base_sys_role 中 userId 为 userid。

perf(rate-limit): 提高登录接口的限流 Burst 容量

调整限流器配置,将请求 burst 容量从 2 提升至 5,
以应对短时间高频访问场景,改善用户体验。

chore(build): 忽略新增编译产物和临时文件

在 .gitignore 中添加 logic/logic2、login/login 等新生成文件路径,
避免误提交二进制文件到版本控制。
2025-10-31 00:53:22 +08:00
1
94e28e2601 ``` fix(model): 限制宠物技能列表长度为4 2025-10-30 02:55:15 +00:00
1
ac75275dff ``` refactor(socket): 重构客户端数据处理逻辑,优化玩家信息校验和包处理流程 2025-10-30 01:37:53 +00:00
bb48f01e94 Merge branch 'main' of github.com:72wo/blazing 2025-10-29 23:51:52 +08:00
fdd55ed99b ```
refactor(socket): 移除 Lockfree 依赖并优化事件处理逻辑

将原有的基于 Lockfree 的消息队列机制移除,改为直接在协程池中调用客户端数据处理器。
同时调整了 `ClientData` 结构体和相关方法实现,使代码更简洁、易于维护。
此外,注释掉了一处调试日志输出,并修正了获取玩家对象的方式。
```
2025-10-29 23:51:03 +08:00
1
802f552903 Merge branch 'main' of https://github.com/72wo/blazing 2025-10-29 15:51:02 +00:00
1
8376068bb6 fix(socket): 移除debug.Stack并统一使用cool.Loger记录panic错误 2025-10-29 15:50:48 +00:00
95b2a3cd41 ```
feat(logic): 实现角色行走位置更新与账号加载功能

- 在 walk.go 中优化 Walk 方法,手动赋值替换 copier.Copy 提高可控性
- 在 main.go 中新增 loadAccounts 函数用于从 csv 文件加载账号并注册
- 新增 strings 包引用以支持文件内容按行分割
- 注释掉调试用的 fmt 打印语句,保留逻辑结构便于后续启用
- 在 base_sys_user.go 中增加 GetEamil 方法
2025-10-29 20:33:43 +08:00
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
c41646eac8 ```
fix(socket): 异步处理连接关闭逻辑

将连接关闭时的数据保存和资源清理操作提交到工作池中异步执行,
避免阻塞主线程。但需要注意可能存在执行顺序问题,需要进一步修复。
```
2025-10-28 23:56:15 +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
d1b2f8844a Merge branch 'main' of github.com:72wo/blazing 2025-10-27 20:18:38 +08:00
96a40b559b ```
docs(readme): 更新pprof配置文件中的IP地址

将README.md中pprof配置的IP地址从本地地址更新为实际可访问的服务器地址,
确保开发者能够正确访问性能分析数据。
```
2025-10-27 20:18:23 +08:00
f977a59736 修改 2025-10-27 20:14:24 +08:00
1
448943ca75 修改底层 2025-10-27 09:36:49 +00:00
1
225aff42c5 Merge branch 'main' of https://github.com/72wo/blazing 2025-10-27 03:07:38 +00:00
1
75fc0660b5 增加机器人功能 2025-10-27 03:04:16 +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
2678cd9685 fix(session): 调整会话保存时长为1小时
将会话保存时长从24小时调整为1小时,以提高会话安全性。

feat(socket): 添加强制踢出功能

在QuitSelf方法中增加强制踢出参数,当参数不为0时强制踢出所有玩家。
2025-10-26 15:12:29 +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
ade9003a11 ```
feat(blazing): 宠物更新逻辑支持可选升级参数

修改 PetInfo 的 Update 方法,增加可变参数 t 用于控制是否执行升级逻辑。
当调用 Update(true) 时跳过进化检查,仅更新经验与面板属性。
默认情况下仍会进行进化判断与处理。

修复 GenPetInfo 中宠物初始生成时不应触发进化的逻辑问题。
```
2025-10-24 23:33:28 +08:00
db3a21dd91 feat(login): 引入基于 IP 的限流中间件
新增 github.com/xiaoqidun/limit 依赖,替换原有的全局速率限制器,
实现针对客户端 IP 的细粒度限流控制。在服务启动时初始化限流器,
并在程序退出前确保后台任务正确停止。同时更新 go.work 和 login/go.sum
文件以包含新的依赖项。此外,在 logic/main.go 中添加了主玩家数据
保存逻辑以确保服务关闭时数据持久化。
2025-10-24 23:14:36 +08:00
1
749b380d82 feat(login): 添加请求速率限制中间件并启用pprof锁和阻塞跟踪 2025-10-24 06:04:28 +00: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
f9dc10e954 fix(task): 修正删除任务返回逻辑,未完成任务时返回空结构体 2025-10-23 06:11:27 +00:00
1
9b6f18010d fix(task): 完善删除任务逻辑,添加任务状态检查并返回任务ID 2025-10-23 06:10:59 +00:00
1
0ccde910e5 fix(controller): 移除重复的昵称空字符过滤,仅在控制器层处理 2025-10-23 06:06:28 +00:00
1
3df38d5626 fix(task): 将新手任务和超NO奖励从任务完成移至注册时初始化 2025-10-23 06:04:05 +00:00
1
8db95adefe 修复 2025-10-23 06:00:33 +00:00
1
be9649664c 送超NO 2025-10-23 06:00:18 +00:00
1
ab5907de15 fix(task): 移除新手任务奖励中的分子转化仪 2025-10-23 06:00:05 +00:00
1
5100b9e9a6 fix(login): 移除登录时的新手任务硬编码,改由任务完成时设置 2025-10-23 05:56:08 +00:00
1
48f2e1457d fix(login): 将挖矿任务处理改为异步执行 2025-10-23 05:55:05 +00: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
1
a71d7ee9ad fix(item): 添加购买物品时的金币检查并调整对话奖励逻辑 2025-10-23 04:20:10 +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