feat(user-talk): 优化聊天功能中的物品奖励逻辑
重构 Talk 方法中物品奖励的获取方式,使用新的配置服务以支持多物品 ID 奖励机制。 移除了对 github.com/gogf/gf/v2/util/grand 包的依赖,改为通过服务获取实际物品数量。 同时更新了相关模型定义: - 修改 MineralCollectionConfig 中 ItemID 为数组形式以支持多个物品配置 - 调整 ItemGift 模型字段
This commit is contained in:
@@ -5,8 +5,6 @@ import (
|
||||
"blazing/logic/service/item"
|
||||
"blazing/logic/service/player"
|
||||
"blazing/modules/config/service"
|
||||
|
||||
"github.com/gogf/gf/v2/util/grand"
|
||||
)
|
||||
|
||||
func (h Controller) Talk(data *item.TalkCountInboundInfo, c *player.Player) (result *item.TalkCountOutboundInfo, err errorcode.ErrorCode) {
|
||||
@@ -31,16 +29,15 @@ func (h Controller) TalkCate(data *item.TalkCateInboundInfo, c *player.Player) (
|
||||
return result, errorcode.ErrorCodes.ErrResourceUnavailable
|
||||
}
|
||||
//更新次数
|
||||
config := service.TalkConfigServiceS.GetCache(int(data.ID))
|
||||
config := service.NewTalkConfigService().GetCache(int(data.ID))
|
||||
|
||||
for _, v := range config {
|
||||
count := grand.N(int(v.ItemMinCount), int(v.ItemMaxCount))
|
||||
//service.NewItemService().GetItemCount(config.ItemID)
|
||||
|
||||
// r := dict.DictInfoServiceS.DataID("fusion")
|
||||
// trueitemid := gconv.Uint32(r[gconv.Uint32(v.ItemID)].Remark)
|
||||
ret := c.ItemAdd(uint32(v.ItemID), uint32(count))
|
||||
for _, itemid := range config.ItemID {
|
||||
ritemcount := service.NewItemService().GetItemCount(itemid)
|
||||
ret := c.ItemAdd(uint32(itemid), uint32(ritemcount))
|
||||
if ret {
|
||||
result.OutList = append(result.OutList, item.CateInfo{ID: v.ItemID, Count: uint32(count)})
|
||||
result.OutList = append(result.OutList, item.CateInfo{ID: itemid, Count: uint32(ritemcount)})
|
||||
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user