This commit is contained in:
@@ -45,6 +45,8 @@ func (h Controller) GET_XUANCAI(data *C2s_GET_XUANCAI, c *player.Player) (result
|
||||
return nil, errorcode.ErrorCode(errorcode.ErrorCodes.ErrDailyGiftLimit)
|
||||
}
|
||||
c.Info.SetTask(13, model.Completed)
|
||||
selectedItems := make([]uint32, 0, 10)
|
||||
itemMask := make(map[uint32]uint32, 10)
|
||||
// 循环直到选中10个元素
|
||||
for selectedCount < 10 {
|
||||
// 随机生成0~14的位索引(对应1~15号元素)
|
||||
@@ -54,14 +56,20 @@ func (h Controller) GET_XUANCAI(data *C2s_GET_XUANCAI, c *player.Player) (result
|
||||
|
||||
// 检查该位是否未被选中(避免重复)
|
||||
if (result.Status & mask) == 0 {
|
||||
|
||||
if c.ItemAdd(400686+int64(randBitIdx)+1, 1) {
|
||||
result.Status |= mask // 标记该位为选中
|
||||
}
|
||||
|
||||
itemID := uint32(400686 + randBitIdx + 1)
|
||||
selectedItems = append(selectedItems, itemID)
|
||||
itemMask[itemID] = mask
|
||||
selectedCount++ // 选中数+1
|
||||
}
|
||||
}
|
||||
|
||||
successItems, addErr := c.Service.Item.AddUniqueItems(selectedItems)
|
||||
if addErr != nil {
|
||||
return nil, errorcode.ErrorCode(errorcode.ErrorCodes.ErrSystemError200007)
|
||||
}
|
||||
for _, itemID := range successItems {
|
||||
result.Status |= itemMask[itemID]
|
||||
}
|
||||
return
|
||||
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user