package handler //func (this *PlayerHandler) StorePoolRefresh(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgStorePoolRefreshReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // var storePool = player.StorePool[req.Type] // if storePool == nil { // this.logger.Error("Parameter error, Player 'StorePool' was not found, Type: ", req.Type) // _ = player.TipNotice(proto.ErrStoreNotFound) // return // } // // var poolTable = this.tables.ShopPool.Get(int(storePool.Id)) // if poolTable == nil { // this.logger.Error("Data tables error, Table 'ShopPool' was not found, Id: ", storePool.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if !player.CheckAdFunction(proto.AdFunctionTypeShopPoolRefresh, 0, storePool.Type, 1) { // var counter = player.GetCounterDaily(proto.CounterTypeStorePoolRefresh, storePool.Type) // if poolTable.ManualRefreshLimit > 0 { // if counter >= uint32(poolTable.ManualRefreshLimit) { // this.logger.Errorf("Daily times over, CounterType: %d, Id: %d, counter: %d, times: %d", proto.CounterTypeStorePoolRefresh, storePool.Type, counter, poolTable.ManualRefreshLimit) // _ = player.TipNotice(proto.ErrTodayTimesOver) // return // } // } // // err = player.CheckMoney(proto.MoneyType(poolTable.RefreshPriceType), uint32(poolTable.ManualRefreshPrice)) // if err != nil { // this.logger.Errorf("Money not enough, moneyType: %d, moneyCost: %d", poolTable.RefreshPriceType, poolTable.ManualRefreshPrice) // _ = player.TipNotice(err) // return // } // // player.ReduceMoney(proto.MoneyType(poolTable.RefreshPriceType), uint32(poolTable.ManualRefreshPrice), logic.LogTypeItemConsumeByStorePoolRefresh) // } // // player.RefreshStorePool(storePool, true, util.Unix(), poolTable) //} // //func (this *PlayerHandler) StoreBuy(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgStoreBuyReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Id == 0 || req.Num == 0 { // this.logger.Errorf("Parameter error, req.Id == 0 || req.Num == 0, req.Id: %d, req.Num: %d", req.Id, req.Num) // _ = player.TipNotice(proto.ErrParameterError) // return // } // // var shopTable = this.tables.Shop.Get(int(req.Id)) // if shopTable == nil { // this.logger.Error("Parameter or data tables error, Table 'Shop' was not found, Id: ", req.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if shopTable.LimitNum > 0 { // var counter = player.GetCounterDaily(proto.CounterTypeStoreBuy, uint32(shopTable.Id)) // if req.Num+counter > uint32(shopTable.LimitNum) { // this.logger.Errorf("Store buy times over, CounterType: %d, Id: %d, counter: %d: req.Num: %d, LimitNum: %d", proto.CounterTypeStoreBuy, shopTable.Id, counter, req.Num, shopTable.LimitNum) // _ = player.TipNotice(proto.ErrStoreBuyTimesOver) // return // } // } // // var totalPrice = uint32(shopTable.Price) * req.Num // var totalItemNum = uint32(shopTable.ItemNum) * req.Num // err = player.CheckMoney(proto.MoneyType(shopTable.PriceType), totalPrice) // if err != nil { // this.logger.Errorf("Money not enough, moneyType: %d, moneyCost: %d", shopTable.PriceType, totalPrice) // _ = player.TipNotice(err) // return // } // // err = player.AddItem(uint32(shopTable.ItemId), totalItemNum, logic.LogTypeItemObtainByShop) // if err != nil { // this.logger.Errorf("Add item failed, itemId: %d, itemNum: %d, error: %v", uint32(shopTable.ItemId), totalItemNum, err) // _ = player.TipNotice(err) // return // } // // player.ReduceMoney(proto.MoneyType(shopTable.PriceType), totalPrice, logic.LogTypeItemConsumeByStoreBuy) // // player.AddCounter(proto.CounterTypeStoreBuy, uint32(shopTable.Id), req.Num) // // _ = player.Send(proto.ModIdStore, proto.MsgIdStoreBuy, &proto.MsgStoreBuyAck{ // MsgRewardListAck: &proto.MsgRewardListAck{RewardList: []*proto.ItemPair{{ItemId: uint32(shopTable.ItemId), ItemNum: totalItemNum}}}, // }) // // player.CheckTask(proto.TaskSection1BoughtInSpecificStore, shopTable.ShopType, int(totalItemNum)) // // this.eventManager.PlayerShopLog(player, logic.LogTypeStoreBuy, uint32(shopTable.ShopType), uint32(shopTable.ItemId), totalItemNum, int32(shopTable.PriceType), totalPrice) //} // //func (this *PlayerHandler) GiftPackBuy(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgGiftPackBuyReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Id == 0 { // this.logger.Error("Parameter error, req.Id == 0") // _ = player.TipNotice(proto.ErrPlatformError) // return // } // // var chargeTable = this.tables.Charge.Get(int(req.Id)) // if chargeTable == nil { // this.logger.Error("Parameter or data tables error, Table 'Charge' was not found in extend table, Id: ", req.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // var giftTable = this.tables.ChargeGift.Get(int(req.Id)) // if giftTable == nil { // this.logger.Error("Parameter or data tables error, Table 'ChargeGift' was not found in extend table, Id: ", req.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if giftTable.PriceType < 0 { // this.logger.Error("Parameter error, chargeGiftExtend.PriceType < 0") // _ = player.TipNotice(proto.ErrPlatformError) // return // } // // var now = util.Unix() // if now < giftTable.BeginTime || (giftTable.EndTime > 0 && now >= giftTable.EndTime) { // this.logger.Errorf("ChargeGift is not buying time, beginTime: %d, endTime: %d, now: %d", giftTable.BeginTime, giftTable.EndTime, now) // _ = player.TipNotice(proto.ErrStoreNotBuyingTime) // return // } // // if giftTable.BuyTimes > 0 { // if player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id)) >= uint32(giftTable.BuyTimes) { // this.logger.Errorf("Store buy times over, id: %d, count: %d", giftTable.Id, player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id))) // _ = player.TipNotice(proto.ErrStoreBuyTimesOver) // return // } // } // // if giftTable.PriceType > 0 && giftTable.Price > 0 { // err = player.CheckMoney(proto.MoneyType(giftTable.PriceType), uint32(giftTable.Price)) // if err != nil { // this.logger.Errorf("%s, moneyType: %d, moneyNum: %d", err.Error(), giftTable.PriceType, giftTable.Price) // _ = player.TipNotice(err) // return // } // // player.ReduceMoney(proto.MoneyType(giftTable.PriceType), uint32(giftTable.Price), logic.LogTypeItemConsumeByGiftPackBuy) // } // // var rewardList = player.OpenGiftPack(giftTable, logic.LogTypeItemObtainByGiftPack) // // player.AddCounter(proto.CounterTypeCharge, uint32(giftTable.Id), 1) // // _ = player.Send(proto.ModIdStore, proto.MsgIdGiftPackBuy, &proto.MsgGiftPackBuyAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}}) //} // //func (this *PlayerHandler) ChargeCreateOrder(player *logic.Player, msg *net.Message) { // if !player.CheckRequestTime(logic.RequestTimeTypeChargeCreateOrder) { // this.logger.Error("Repeated charge create order request") // _ = player.TipNotice(proto.ErrRepeatedRequest) // return // } // // var req = new(proto.MsgChargeCreateOrderReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.ChargeId == 0 { // this.logger.Error("Parameter error, req.ChargeId == 0") // _ = player.TipNotice(proto.ErrParameterError) // return // } // // if !proto.CheckPaymentType(req.PaymentType) { // this.logger.Error("Parameter error, check payment type failed, req.PaymentType: ", req.PaymentType) // _ = player.TipNotice(proto.ErrParameterError) // return // } // // var chargeTable = this.tables.Charge.Get(int(req.ChargeId)) // if chargeTable == nil { // this.logger.Error("Parameter or data error, Table 'Charge' was not found, req.ChargeId: ", req.ChargeId) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // switch proto.ChargeType(chargeTable.Type) { // case proto.ChargeTypeGeneral: // case proto.ChargeTypeMonthliCard: // var monthlyCardTable = this.tables.MonthlyCard.Get(chargeTable.Id) // if monthlyCardTable == nil { // this.logger.Error("Data error, Table 'MonthlyCard' was not found, chargeId: ", chargeTable.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // var monthlyCard = player.MonthlyCard[uint32(monthlyCardTable.Id)] // if monthlyCard != nil { // if monthlyCard.TotalDays+uint32(monthlyCardTable.EffectiveDay) > uint32(monthlyCardTable.MaxEffectiveDay) { // this.logger.Errorf("The monthly card already max days, chargeId: %d, totalDays: %d", chargeTable.Id, monthlyCard.TotalDays) // _ = player.TipNotice(proto.ErrMonthlyCardAlreadyMaxDays) // return // } // } // case proto.ChargeTypeGiftPack, proto.ChargeTypeStageGiftPack: // var giftTable = this.tables.ChargeGift.Get(chargeTable.Id) // if giftTable == nil { // this.logger.Error("Parameter or data tables error, Table 'ChargeGift' was not found in extend table, Id: ", chargeTable.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if giftTable.PriceType >= 0 { // this.logger.Error("Parameter error, chargeGiftExtend.PriceType >= 0") // _ = player.TipNotice(proto.ErrPlatformError) // return // } // // var now = util.Unix() // if now < giftTable.BeginTime || (giftTable.EndTime > 0 && now >= giftTable.EndTime) { // this.logger.Errorf("ChargeGift is not buying time, beginTime: %d, endTime: %d, now: %d", giftTable.BeginTime, giftTable.EndTime, now) // _ = player.TipNotice(proto.ErrStoreNotBuyingTime) // return // } // // if giftTable.BuyTimes > 0 { // if player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id)) >= uint32(giftTable.BuyTimes) { // this.logger.Error("Store buy times over, id: %d, count: %d", giftTable.Id, player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id))) // _ = player.TipNotice(proto.ErrStoreBuyTimesOver) // return // } // } // case proto.ChargeTypeLimitGiftPack: // var giftTable = this.tables.ChargeGift.Get(chargeTable.Id) // if giftTable == nil { // this.logger.Error("Parameter or data tables error, Table 'ChargeGift' was not found in extend table, Id: ", chargeTable.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // if giftTable.PriceType >= 0 { // this.logger.Error("Parameter error, chargeGiftExtend.PriceType >= 0") // _ = player.TipNotice(proto.ErrPlatformError) // return // } // // var now = util.Unix() // var giftPack = player.GiftPack[uint32(giftTable.Id)] // if giftPack == nil || now < giftPack.GetTime || now >= giftPack.EndTime { // _ = player.TipNotice(proto.ErrStoreNotBuyingTime) // return // } // // if giftTable.BuyTimes > 0 { // if player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id)) >= uint32(giftTable.BuyTimes) { // this.logger.Error("Store buy times over, id: %d, count: %d", giftTable.Id, player.GetCounterDaily(proto.CounterTypeCharge, uint32(giftTable.Id))) // _ = player.TipNotice(proto.ErrStoreBuyTimesOver) // return // } // } // case proto.ChargeTypeBattlePass: // var battlePass = player.BattlePass[player.Role.BattlePassSeason] // if battlePass == nil { // this.logger.Error("Not in battle pass season, battlePassSeason: ", player.Role.BattlePassSeason) // _ = player.TipNotice(proto.ErrNotInBattlePassSeason) // return // } // // if battlePass.Advanced { // this.logger.Error("The advanced battle pass already activited, battlePassSeason: ", player.Role.BattlePassSeason) // _ = player.TipNotice(proto.ErrBattlePassAdvancedActivated) // return // } // default: // this.logger.Error("Data error, Unknown charge type, chargeTable.Type: ", chargeTable.Type) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // order, err := this.playerManager.NewChargeOrder(req.PaymentType, player, chargeTable) // if err != nil { // this.logger.Error("New charge order failed, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // err = this.playerManager.SaveChargeOrder(order) // if err != nil { // this.logger.Error("Save charge order failed, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // extend, err := json.Marshal(&proto.OrderExtend{Sid: this.server.AppId(), Uid: player.PlayerId}) // if err != nil { // this.logger.Error("Marshal extend info failed, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // var ack = &proto.MsgChargeCreateOrderAck{ // ChargeId: req.ChargeId, // OrderId: order.Id, // PaymentType: order.PaymentType, // Quantity: order.Quantity, // Price: order.Price, // Sign: order.Sign, // Extend: base64.StdEncoding.EncodeToString(extend), // } // // switch proto.PaymentType(order.PaymentType) { // //case proto.PaymentTypeQuickGameAndroid: // //case proto.PaymentTypeQuickGameIOS: // //case proto.PaymentTypeWechatVirtual2: // case proto.PaymentTypeWechatIOSPayment1: // ack.CallBackUrl = "https://mnmxw.game.qmhd87.com:9201/callback/charge/wechat/ios" // } // // _ = player.Send(proto.ModIdStore, proto.MsgIdChargeCreateOrder, ack) //} // //func (this *PlayerHandler) wechatPay(charged bool, player *logic.Player, order *logic.PlayerChargeOrder) (string, error) { // reply, err := this.httpRpcClient.RandGet("center", "/wechat/accessToken/get", nil, new(proto.MsgGetWechatAccessTokenAck)) // if err != nil { // this.logger.Error("Get access token error, ", err) // return "", proto.ErrServerError // } // // if reply.Status != errors.StatusSuccessful { // this.logger.Error("Get access token failed, ", reply.Message) // return "", proto.ErrServerError // } // // var accessToken = reply.Data.(*proto.MsgGetWechatAccessTokenAck).AccessToken // if accessToken == "" { // this.logger.Error("Get access token failed, access token is empty") // return "", proto.ErrServerError // } // // var tries = 0 // var balanceAck *wechat.MsgGetBalanceAck // for { // tries += 1 // balanceAck, err = wechat.GetBalance(accessToken, player.Temp.WechatSessionKey, player.Username, util.IntegerToString(this.server.AppId())) // if err != nil { // this.logger.Error("Get wechat virtual payment balance error, ", err) // return "", proto.ErrServerError // } // // if balanceAck.ErrCode != 0 { // this.logger.Error("Get wechat virtual payment balance failed, ", balanceAck.ErrMsg) // return "", proto.ErrServerError // } // // if balanceAck.Balance < int32(order.Price) { // // 如果未充值过,返回余额不足, 如果充值过则可能是延时, 过10秒后再重新查询余额 // if !charged { // this.logger.Debugf("Wechat virtual payment insufficient balance but not charged, return result 3, orderId: %s, price: %d, balance: %d", order.Id, order.Price, balanceAck.Balance) // _ = player.Send(proto.ModIdStore, proto.MsgIdChargeWechatPay, &proto.MsgChargeWechatPayAck{OrderId: order.Id, Result: 3}) // return "", proto.ErrInsufficientBalance // } // // if tries >= 6 { // this.logger.Errorf("Wechat virtual payment insufficient balance, orderId: %s, price: %d, balance: %d", order.Id, order.Price, balanceAck.Balance) // return "", proto.ErrServerError // } // // this.logger.Debugf("Wechat virtual payment insufficient balance, will retry after 10 seconds, orderId: %s, price: %d, balance: %d", order.Id, order.Price, balanceAck.Balance) // time.Sleep(time.Second * 10) // continue // } // break // } // // payAck, err := wechat.Pay(accessToken, player.Temp.WechatSessionKey, player.Username, util.IntegerToString(this.server.AppId()), order.Price, order.Id) // if err != nil { // this.logger.Error("Wechat virtual payment pay error, ", err) // return "", proto.ErrServerError // } // // if balanceAck.ErrCode != 0 { // this.logger.Error("Wechat virtual payment pay failed, ", payAck.ErrMsg) // return "", proto.ErrServerError // } // return payAck.BillNo, nil //} // //func (this *PlayerHandler) ChargeWechatPay(player *logic.Player, msg *net.Message) { // if proto.Channel(player.Channel) != proto.ChannelWechatMiniGame { // this.logger.Error("The channel of player is not wechat, channel: ", player.Channel) // _ = player.TipNotice(proto.ErrChannelError) // return // } // // var req = new(proto.MsgChargeWechatPayReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // order, err := this.playerManager.QueryChargeOrder(req.OrderId) // if err != nil { // this.logger.Error("Query charge order error, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // if order == nil || order.PlayerId != player.PlayerId { // this.logger.Error("Charge order not found, ", req.OrderId) // _ = player.TipNotice(proto.ErrOrderNotFound) // return // } // // if proto.PaymentType(order.PaymentType) != proto.PaymentTypeWechatVirtual2 { // this.logger.Error("Charge order payment error, ", order.PaymentType) // _ = player.TipNotice(proto.ErrPaymentTypeError) // return // } // // if proto.OrderStatus(order.Status) != proto.OrderStatusNotPaid { // this.logger.Error("Charge order status error, ", order.Status) // _ = player.TipNotice(proto.ErrOrderStatusError) // return // } // // var chargeTable = this.tables.Charge.Get(int(order.ChargeId)) // if chargeTable == nil { // this.logger.Error("Data error, Table 'Charge' was not found, chargeId: ", order.ChargeId) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // billNo, err := this.wechatPay(req.Charged, player, order) // if err != nil { // if errors.Is(err, proto.ErrInsufficientBalance) { // return // } // // this.logger.Error("wechat pay error, ", err) // _ = player.TipNotice(proto.ErrServerError) // // err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusFailed, billNo) // if err != nil { // this.logger.Error("Change charge order status error, ", err) // return // } // return // } // // err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusHasPaid, billNo) // if err != nil { // this.logger.Error("Change charge order status error, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // err = player.Charge(chargeTable, logic.LogTypeStoreRecharge) // if err != nil { // this.logger.Error("Player do charge failed, ", err) // _ = player.TipNotice(err) // return // } // // err = this.playerManager.ChangeChargeOrder(order.Id, proto.OrderStatusHasOver, "") // if err != nil { // this.logger.Error("Charge charge order status error, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // this.eventManager.ChargeGravityEvent(player, order, chargeTable, this.tables.Language.Get(chargeTable.ItemName)) //} // //func (this *PlayerHandler) BattlePassRewardGet(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgBattlePassRewardGetReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Id == 0 { // this.logger.Error("Parameter error, req.Id == 0") // _ = player.TipNotice(proto.ErrPlatformError) // return // } // // var battlePassRewardTable = this.tables.BattlePassReward.Get(int(req.Id)) // if battlePassRewardTable == nil { // this.logger.Error("Parameter or data error, Table 'BattlePassReward' was not found, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrDataTablesError) // return // } // // var battlePass = player.BattlePass[player.Role.BattlePassSeason] // if battlePass == nil { // this.logger.Error("Not in battle pass season, player.Role.BattlePassSeason: ", player.Role.BattlePassSeason) // _ = player.TipNotice(proto.ErrNotInBattlePassSeason) // return // } // // if uint32(battlePassRewardTable.Level) > battlePass.Level { // this.logger.Errorf("Reward unable, battlePassRewardTable.Level: %d, battlePass.Level: %d", battlePassRewardTable.Level, battlePass.Level) // _ = player.TipNotice(proto.ErrRewardUnable) // return // } // // var rewardIndex = battlePassRewardTable.Level - 1 // var battlePassReward = player.BattlePassReward[rewardIndex] // if battlePassReward == nil { // this.logger.Error("Reward unable, BattlePassReward not exists, rewardIndex: ", rewardIndex) // _ = player.TipNotice(proto.ErrRewardUnable) // return // } // // if !req.Advanced { // if proto.RewardStatus(battlePassReward.Ordinary) == proto.RewardStatusUnable { // this.logger.Error("Reward unable, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrRewardUnable) // return // } // // if proto.RewardStatus(battlePassReward.Ordinary) == proto.RewardStatusHasGot { // this.logger.Error("Reward has got, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrRewardHasGot) // return // } // // var rewardList []*proto.ItemPair // for i := range battlePassRewardTable.OrdinaryItemList { // _ = player.AddItem(uint32(battlePassRewardTable.OrdinaryItemList[i]), uint32(battlePassRewardTable.OrdinaryNumList[i]), logic.LogTypeItemObtainByBattlePassReward) // rewardList = append(rewardList, &proto.ItemPair{ItemId: uint32(battlePassRewardTable.OrdinaryItemList[i]), ItemNum: uint32(battlePassRewardTable.OrdinaryNumList[i])}) // } // battlePassReward.Ordinary = uint32(proto.RewardStatusHasGot) // // player.SaveArray("battle_pass_reward", rewardIndex, battlePassReward) // // _ = player.Send(proto.ModIdStore, proto.MsgIdBattlePassRewardGet, &proto.MsgBattlePassRewardGetAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}}) // } else { // if !battlePass.Advanced { // this.logger.Error("Advanced battle pass not activated, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrNoBattlePassAdvanced) // return // } // // if proto.RewardStatus(battlePassReward.Advanced) == proto.RewardStatusUnable { // this.logger.Error("Reward unable, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrRewardUnable) // return // } // // if proto.RewardStatus(battlePassReward.Advanced) == proto.RewardStatusHasGot { // this.logger.Error("Reward has got, req.Id: ", req.Id) // _ = player.TipNotice(proto.ErrRewardHasGot) // return // } // // var rewardList []*proto.ItemPair // for i := range battlePassRewardTable.PrivilegeItemList { // _ = player.AddItem(uint32(battlePassRewardTable.PrivilegeItemList[i]), uint32(battlePassRewardTable.PrivilegeNumList[i]), logic.LogTypeItemObtainByBattlePassReward) // rewardList = append(rewardList, &proto.ItemPair{ItemId: uint32(battlePassRewardTable.PrivilegeItemList[i]), ItemNum: uint32(battlePassRewardTable.PrivilegeNumList[i])}) // } // battlePassReward.Advanced = uint32(proto.RewardStatusHasGot) // // player.SaveArray("battle_pass_reward", rewardIndex, battlePassReward) // // _ = player.Send(proto.ModIdStore, proto.MsgIdBattlePassRewardGet, &proto.MsgBattlePassRewardGetAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}}) // } // // _ = player.Send(proto.ModIdStore, proto.MsgIdBattlePassRewardStatusChange, &proto.MsgBattlePassRewardListAck{StatusList: []*proto.BattlePassRewardStatus{battlePassReward.BuildMsgBattlePassReward()}}) //} // //func (this *PlayerHandler) BattlePassRewardGetAll(player *logic.Player, msg *net.Message) { // var battlePass = player.BattlePass[player.Role.BattlePassSeason] // if battlePass == nil { // this.logger.Error("Not in battle pass season, player.Role.BattlePassSeason: ", player.Role.BattlePassSeason) // _ = player.TipNotice(proto.ErrNotInBattlePassSeason) // return // } // // var rewardList []*proto.ItemPair // var statusList []*proto.BattlePassRewardStatus // for rewardIndex, battlePassReward := range player.BattlePassReward { // if proto.RewardStatus(battlePassReward.Ordinary) != proto.RewardStatusCanGet && (!battlePass.Advanced || proto.RewardStatus(battlePassReward.Advanced) != proto.RewardStatusCanGet) { // continue // } // // var battlePassRewardTable = this.tables.BattlePassReward.Get(int(battlePassReward.Id)) // if battlePassRewardTable == nil { // continue // } // // if uint32(battlePassRewardTable.Level) > battlePass.Level { // break // } // // for i := range battlePassRewardTable.OrdinaryItemList { // _ = player.AddItem(uint32(battlePassRewardTable.OrdinaryItemList[i]), uint32(battlePassRewardTable.OrdinaryNumList[i]), logic.LogTypeItemObtainByBattlePassReward) // rewardList = append(rewardList, &proto.ItemPair{ItemId: uint32(battlePassRewardTable.OrdinaryItemList[i]), ItemNum: uint32(battlePassRewardTable.OrdinaryNumList[i])}) // } // battlePassReward.Ordinary = uint32(proto.RewardStatusHasGot) // // if battlePass.Advanced { // for i := range battlePassRewardTable.PrivilegeItemList { // _ = player.AddItem(uint32(battlePassRewardTable.PrivilegeItemList[i]), uint32(battlePassRewardTable.PrivilegeNumList[i]), logic.LogTypeItemObtainByBattlePassReward) // rewardList = append(rewardList, &proto.ItemPair{ItemId: uint32(battlePassRewardTable.PrivilegeItemList[i]), ItemNum: uint32(battlePassRewardTable.PrivilegeNumList[i])}) // } // battlePassReward.Advanced = uint32(proto.RewardStatusHasGot) // } // // player.SaveArray("battle_pass_reward", rewardIndex, battlePassReward) // // statusList = append(statusList, battlePassReward.BuildMsgBattlePassReward()) // } // // if len(rewardList) > 0 { // _ = player.Send(proto.ModIdStore, proto.MsgIdBattlePassRewardGetAll, &proto.MsgBattlePassRewardGetAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}}) // } // if len(statusList) > 0 { // _ = player.Send(proto.ModIdStore, proto.MsgIdBattlePassRewardStatusChange, &proto.MsgBattlePassRewardListAck{StatusList: statusList}) // } //} // //func (this *PlayerHandler) CdkeyExchange(player *logic.Player, msg *net.Message) { // var req = new(proto.MsgCdkeyExchangeReq) // var err = msg.Read(req) // if err != nil { // this.logger.Error("Read message failed, ", err) // _ = player.TipNotice(proto.ErrMessageError) // return // } // // if req.Key == "" { // this.logger.Error("Parameter error, req.Key == \"\"") // _ = player.TipNotice(proto.ErrParameterError) // return // } // // cdkey, ok := player.Cdkey[req.Key] // if ok { // this.logger.Error("Cdkey key has used, key: ", req.Key) // _ = player.TipNotice(proto.ErrUsedCdkey) // return // } // // var query = url.Values{} // query.Add("key", req.Key) // // var getAck = new(proto.MsgCdkeyGetAck) // reply, err := this.httpRpcClient.RandGet("gate", "/cdkey/get", query, getAck) // if err != nil { // this.logger.Error("Get cdkey error, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // if reply.Status != errors.StatusSuccessful { // this.logger.Error("Get cdkey failed, ", err) // _ = player.TipNotice(proto.ErrServerError) // return // } // // if getAck.Cdkey == nil { // _ = player.TipNotice(proto.ErrInvalidCdkey) // return // } // // if getAck.Cdkey.Channel != 0 && player.Channel != getAck.Cdkey.Channel { // _ = player.TipNotice(proto.ErrInvalidCdkey) // return // } // // cdkey = &logic.PlayerCdkey{ // Key: getAck.Cdkey.Key, // ExchangeTime: util.Unix(), // } // // player.Cdkey[cdkey.Key] = cdkey // player.SaveModel(cdkey) // // var rewardList []*proto.ItemPair // for i := range getAck.Cdkey.ItemId { // _ = player.AddItem(getAck.Cdkey.ItemId[i], getAck.Cdkey.ItemNum[i], logic.LogTypeItemObtainByCdkey) // rewardList = append(rewardList, &proto.ItemPair{ItemId: getAck.Cdkey.ItemId[i], ItemNum: getAck.Cdkey.ItemNum[i]}) // } // // _ = player.Send(proto.ModIdStore, proto.MsgIdCdkeyExchange, &proto.MsgCdkeyExchangeAck{MsgRewardListAck: &proto.MsgRewardListAck{RewardList: rewardList}}) //}