2025-12-12 19:10:09 +00:00
|
|
|
package controller
|
|
|
|
|
|
|
|
|
|
import (
|
|
|
|
|
"blazing/common/data/xmlres"
|
|
|
|
|
"blazing/common/socket/errorcode"
|
|
|
|
|
"blazing/logic/service/fight"
|
|
|
|
|
"blazing/logic/service/player"
|
2025-12-16 06:54:27 +00:00
|
|
|
|
|
|
|
|
"github.com/gogf/gf/v2/util/gconv"
|
2025-12-12 19:10:09 +00:00
|
|
|
)
|
|
|
|
|
|
2025-12-24 19:03:11 +08:00
|
|
|
// ItemSale 出售道具
|
|
|
|
|
// data: 包含道具ID和数量的输入信息
|
|
|
|
|
// c: 当前玩家对象
|
|
|
|
|
// 返回: 空结果和错误码
|
2026-04-05 07:24:36 +08:00
|
|
|
func (h Controller) ItemSale(data *C2S_ITEM_SALE, c *player.Player) (result *fight.NullOutboundInfo, err errorcode.ErrorCode) {
|
2026-02-12 04:28:20 +08:00
|
|
|
if c.Service.Item.CheakItem(data.ItemId) < int64(data.Amount) {
|
2025-12-12 19:10:09 +00:00
|
|
|
return nil, errorcode.ErrorCodes.ErrSystemError
|
|
|
|
|
}
|
|
|
|
|
|
2026-04-14 13:06:28 +08:00
|
|
|
if err := c.Service.Item.UPDATE(data.ItemId, -gconv.Int(data.Amount)); err != nil {
|
|
|
|
|
return nil, errorcode.ErrorCodes.ErrInsufficientItems
|
|
|
|
|
}
|
|
|
|
|
|
2025-12-24 19:03:11 +08:00
|
|
|
itemConfig := xmlres.ItemsMAP[int(data.ItemId)]
|
|
|
|
|
if itemConfig.SellPrice != 0 {
|
2026-02-12 04:28:20 +08:00
|
|
|
c.Info.Coins += int64(int64(data.Amount) * int64(itemConfig.SellPrice))
|
2025-12-12 19:10:09 +00:00
|
|
|
}
|
|
|
|
|
return result, 0
|
|
|
|
|
}
|