feat: 添加战斗效果800-814及优化道具逻辑
Some checks failed
ci/woodpecker/push/my-first-workflow Pipeline failed

This commit is contained in:
xinian
2026-03-31 06:51:40 +08:00
committed by cnb
parent 8552eb61a8
commit b4a8048b85
7 changed files with 841 additions and 99 deletions

View File

@@ -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
}