using System.Collections.Generic; using ET; using GFGGame; namespace ET { public class S2C_SyncRechargeItemGetHandler : AMHandler { protected override async ETTask Run(Session session, S2C_SyncRechargeItemGet message) { var dTime = TimeHelper.ServerNow() - message.OrderTime; if(dTime <= 5000) { ShopSProxy.OnBuySuccess(message.BuyId, message.Times, message.TotalTimes, false); } } } } namespace GFGGame { public class ShopSProxy { public static async ETTask ReqShopInfo() { S2C_RequestShopInfo response = null; response = (S2C_RequestShopInfo)await MessageHelper.SendToServer(new C2S_RequestShopInfo()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { for (int i = 0; i < response.ks.Count; i++) { ShopDataManager.Instance.UpdateGoodsData(response.ks[i], response.vs[i]); } return true; } } return false; } public static async ETTask ReqShopBuy(int buyId, long buyCount = 1) { S2C_ShopBuy response = null; response = (S2C_ShopBuy)await MessageHelper.SendToServer(new C2S_ShopBuy() { BuyId = buyId, Times = (int)buyCount }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(response.BuyId); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId); if (shopCfg.costType == CostType.RMB) { QDManager.Pay(response.BuyId, response.Times, response.OrderId); return false; } else { OnBuySuccess(response.BuyId, response.Times, response.TotalTimes, true); return true; } } } return false; } public static void OnBuySuccess(int buyId, int times, int totalTimes, bool showItems) { ShopDataManager.Instance.UpdateGoodsData(buyId, totalTimes); ShopCfg shopCfg = ShopCfgArray.Instance.GetCfg(buyId); ItemCfg itemCfg = ItemCfgArray.Instance.GetCfg(shopCfg.itemId); EventAgent.DispatchEvent(ConstMessage.CONTINUOUS_REBATE_GIFT_SHOP_BUY, shopCfg); if(showItems) { List itemDatas = ItemUtil.CreateItemDataList(itemCfg.id, times * shopCfg.itemNum); BonusController.TryShowBonusList(itemDatas); } EventAgent.DispatchEvent(ConstMessage.SHOP_BUY); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); } /**********************************************会员中心**********************************************/ //领取VIP等级礼包 public static async ETTask ReqGetVipGiftBag(int vipLv) { S2C_GetVipLevelGift response = null; response = (S2C_GetVipLevelGift)await MessageHelper.SendToServer(new C2S_GetVipLevelGift() { VipLevel = vipLv }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { int[][] bonus = VipCfgArray.Instance.GetCfg(vipLv - 1).bonusOnceArr; BonusController.TryShowBonusList(bonus); return true; } } return false; } //领取VIP周礼包 public static async ETTask ReqGetVipWeekGiftBag(int vipLv) { S2C_GetVipWeekGift response = null; response = (S2C_GetVipWeekGift)await MessageHelper.SendToServer(new C2S_GetVipWeekGift() { VipLevel = vipLv }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { int[][] bonus = VipCfgArray.Instance.GetCfg(vipLv).bonusWeekArr; BonusController.TryShowBonusList(bonus); return true; } } return false; } /*********************************************************月卡***************************************************/ //领取每日返还珍珠 public static async ETTask ReqGetMonthCardReward(int monthCardType) { S2C_GetMonthCardReward response = null; response = (S2C_GetMonthCardReward)await MessageHelper.SendToServer(new C2S_GetMonthCardReward() { MonthCardType = monthCardType }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return true; } } return false; } //领取专属单品 public static async ETTask ReqGetMonthCardItem(int month) { S2C_GetMonthCardItem response = null; response = (S2C_GetMonthCardItem)await MessageHelper.SendToServer(new C2S_GetMonthCardItem()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { MonthlyCardClothesCfg clothesCfg = MonthlyCardClothesCfgArray.Instance.GetCfgByyearAndmonth(TimeUtil.GetCurYear(), month); List itemDatas = ItemUtil.CreateItemDataList(clothesCfg.clothesArr[0], clothesCfg.clothesArr[1]); BonusController.TryShowBonusList(itemDatas); return true; } } return false; } } }