package controller import ( "blazing/common/socket/errorcode" "blazing/logic/service/player" "blazing/logic/service/user" "blazing/modules/config/service" "blazing/modules/player/model" "time" ) func (h Controller) CDK(data *user.C2S_GET_GIFT_COMPLETE, player *player.Player) (result *user.S2C_GET_GIFT_COMPLETE, err errorcode.ErrorCode) { result = &user.S2C_GET_GIFT_COMPLETE{} r := service.NewCdkService().Get(data.PassText) if r == nil { return nil, errorcode.ErrorCodes.ErrMolecularCodeNotExists } if r.BindUserId != 0 && r.BindUserId != data.Head.UserID { return nil, errorcode.ErrorCodes.ErrMolecularCodeFrozen } if r.ValidEndTime.Compare(time.Now()) == -1 { return nil, errorcode.ErrorCodes.ErrMolecularCodeExpired } if !player.Service.Cdk.CanGet(uint32(r.ID)) { return } if !service.NewCdkService().Set(data.PassText) { return nil, errorcode.ErrorCodes.ErrMolecularCodeGiftsGone } result.Flag = 1 for _, v := range r.ElfRewardIds { pet := service.NewPetRewardService().Get(v) if pet != nil { peti := model.GenPetInfo(int(pet.MonID), int(pet.DV), int(pet.Nature), int(pet.Effect), int(pet.Lv), nil, 0) player.Service.Pet.PetAdd(peti) result.PetGift = append(result.PetGift, user.PetGiftInfo{PetID: peti.ID, CacthTime: peti.CatchTime}) } } for _, itemID := range r.ItemRewardIds { iteminfo := service.NewItemService().GetItemCount(itemID) player.ItemAdd(iteminfo.ItemId, iteminfo.ItemCnt) result.GiftList = append(result.GiftList, user.GiftInfo{GiftID: iteminfo.ItemId, Count: iteminfo.ItemCnt}) } if r.TitleRewardIds != 0 { player.Service.Title.Give(r.TitleRewardIds) result.Tile = r.TitleRewardIds } player.Service.Cdk.Log(uint32(r.ID)) return }