Files
bl/logic/controller/user_action.go
昔念 99b1e9495c ```
refactor(controller): 优化战斗和道具购买控制器的代码结构

- 为函数添加详细的参数和返回值注释说明
- 将参数名从通用的 'c' 重命名为更具描述性的 'player'
- 重命名局部变量以提高代码可读性,如 mo -> monster, moinfo -> monsterInfo
- 修复变量命名不一致问题,如 taskid -> taskID, cancpet -> canCapture
- 统一变量命名规范,使用驼峰命名法
- 为 processMonID 函数添加功能说明注释
- 重命名 handleNPCFightSpecial 函数参数 petid -> petID
```
2025-12-25 12:26:18 +08:00

162 lines
5.0 KiB
Go
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

package controller
import (
"blazing/common/socket/errorcode"
"blazing/common/utils"
"blazing/cool"
"blazing/logic/service/item"
"blazing/logic/service/player"
"blazing/logic/service/user"
"blazing/modules/blazing/model"
)
// PlayerAim 玩家射击操作
// data: 包含射击信息的输入数据
// player: 当前玩家对象
// 返回: 射击结果和错误码
func (h Controller) PlayerAim(data *user.AimatInboundInfo, player *player.Player) (result *user.AimatOutboundInfo, err errorcode.ErrorCode) {
result = &user.AimatOutboundInfo{
ItemId: data.ItemId,
Point: data.Point,
ShootType: data.ShootType,
UserId: player.Info.UserID,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// PlayerChat 玩家聊天功能
// data: 包含聊天消息的输入数据
// player: 当前玩家对象
// 返回: 聊天结果和错误码
func (h Controller) PlayerChat(data *user.ChatInboundInfo, player *player.Player) (result *user.ChatOutboundInfo, err errorcode.ErrorCode) {
result = &user.ChatOutboundInfo{
Message: utils.RemoveLast(data.Message),
SenderNickname: player.Info.Nick,
SenderId: player.Info.UserID,
}
result.Message = cool.Filter.Replace(result.Message, '*')
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// ChangePlayerColor 修改玩家颜色消耗50赛尔豆
// data: 包含颜色信息的输入数据
// player: 当前玩家对象
// 返回: 颜色更改结果和错误码
func (h Controller) ChangePlayerColor(data *user.ChangeColorInboundInfo, player *player.Player) (result *user.ChangeColorOutboundInfo, err errorcode.ErrorCode) {
const changeColorCost = 50
if !player.UseCoins(changeColorCost) {
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
}
player.Info.Coins -= changeColorCost
player.Info.Color = data.Color
player.Info.Texture = 0
result = &user.ChangeColorOutboundInfo{
UserId: player.Info.UserID,
Color: data.Color,
Coins: player.Info.Coins,
Texture: player.Info.Texture,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// ChangePlayerDoodle 修改玩家涂鸦消耗50赛尔豆
// data: 包含涂鸦信息的输入数据
// player: 当前玩家对象
// 返回: 涂鸦更改结果和错误码
func (h Controller) ChangePlayerDoodle(data *user.ChangeDoodleInboundInfo, player *player.Player) (result *user.ChangeDoodleOutboundInfo, err errorcode.ErrorCode) {
const changeDoodleCost = 50
if !player.UseCoins(changeDoodleCost) {
return nil, errorcode.ErrorCodes.ErrSunDouInsufficient10016
}
player.Info.Coins -= changeDoodleCost
player.Info.Texture = data.Id
player.Info.Color = data.Color
result = &user.ChangeDoodleOutboundInfo{
UserId: player.Info.UserID,
Color: player.Info.Color,
Coins: player.Info.Coins,
Texture: player.Info.Texture,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// ChangeNONOColor 修改NONO颜色
// data: 包含NONO颜色信息的输入数据
// player: 当前玩家对象
// 返回: NONO颜色更改结果和错误码
func (h Controller) ChangeNONOColor(data *user.ChangeNONOColorInboundInfo, player *player.Player) (result *user.ChangeNONOColorOutboundInfo, err errorcode.ErrorCode) {
//player.Info.Coins -= 200
player.Info.NONO.NonoColor = data.Color
result = &user.ChangeNONOColorOutboundInfo{
Sataus: player.Info.UserID,
Color: player.Info.Color,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// DanceAction 跳舞动作
// data: 包含跳舞类型信息的输入数据
// player: 当前玩家对象
// 返回: 跳舞动作结果和错误码
func (h Controller) DanceAction(data *user.C2SDanceAction, player *player.Player) (result *user.S2CDanceAction, err errorcode.ErrorCode) {
result = &user.S2CDanceAction{
Type: data.Type,
UserID: player.Info.UserID,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// PeopleTransform 人物变形
// data: 包含变形信息的输入数据
// player: 当前玩家对象
// 返回: 变形结果和错误码
func (h Controller) PeopleTransform(data *user.C2SPEOPLE_TRANSFROM, player *player.Player) (result *user.S2CPEOPLE_TRANSFROM, err errorcode.ErrorCode) {
result = &user.S2CPEOPLE_TRANSFROM{
SuitID: data.SuitID,
UserID: player.Info.UserID,
}
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}
// ChangePlayerCloth 更换玩家服装
// data: 包含服装信息的输入数据
// player: 当前玩家对象
// 返回: 服装更改结果和错误码
func (h Controller) ChangePlayerCloth(data *item.ChangePlayerClothInboundInfo, player *player.Player) (result *item.ChangePlayerClothOutboundInfo, err errorcode.ErrorCode) {
result = &item.ChangePlayerClothOutboundInfo{
UserID: player.Info.UserID,
ClothList: make([]model.PeopleItemInfo, 0),
}
for _, clothID := range data.ClothList {
result.ClothList = append(result.ClothList, model.PeopleItemInfo{ID: clothID, Level: 1})
}
player.Info.Clothes = result.ClothList
player.GetSpace().Broadcast(player, data.Head.CMD, result)
return
}