using System; using System.Collections.Generic; using ET; namespace GFGGame { public class ItemProxy { public static async ETTask GetItemInfos() { GameGlobal.PreDataInited = false; GameGlobal.AfterDataInited = false; M2C_GetItemInfos response = null; response = (M2C_GetItemInfos)await MessageHelper.SendToServer(new C2M_GetItemInfos()); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { //物品兑换 for (int i = 0; i < response.KsItemExchange.Count; i++) { ItemDataManager.InitItemExchange(response.KsItemExchange[i], response.VsItemExchange[i]); } //服装数据与物品通步 DressUpMenuSuitDataManager.InitData(); DressUpMenuItemDataManager.InitData(); //初始化物品 ItemDataManager.InitServerData(response.Items); //自定义套装 CustomSuitDataManager.InitServerData(response.CustomSuits); CustomSuitDataManager.currentIndex = response.CustomSuitPos; if (!RoleDataManager.CheckIsMonthCardOpenByType(CustomSuitDataManager.GetPosType(CustomSuitDataManager.currentIndex))) { CustomSuitDataManager.currentIndex = 0; } for (int i = 0; i < response.NewItems.Count; i++) { var itemId = response.NewItems[i]; if (ItemDataManager.GetItemNum(itemId) <= 0) continue; var itemType = ItemDataManager.GetItemType(itemId); if (itemType == ConstItemType.DRESS_UP) { DressUpMenuItemDataManager.AddNewDressItem(response.NewItems[i]); } else if (itemType == ConstItemType.HEAD) { RoleInfoManager.Instance.AddNew(response.NewItems[i]); } } //!!!必须放在最后,标记数据初始化完成 GameGlobal.PreDataInited = true; return true; } } return false; } public static async ETTask GetItemAttributeInfos() { M2C_GetItemAttributeInfos m2C_GetItemAttributeInfos = null; Session session = null; try { session = GameGlobal.zoneScene.GetComponent().GateSession; m2C_GetItemAttributeInfos = (M2C_GetItemAttributeInfos)await session.Call(new C2M_GetItemAttributeInfos()); } catch (Exception e) { Log.Debug(e.ToString()); return ErrorCode.ERR_NetWorkError; } if (m2C_GetItemAttributeInfos.Error != ErrorCode.ERR_Success) { return m2C_GetItemAttributeInfos.Error; } ItemDataManager.InitServerDataItemAttribute(m2C_GetItemAttributeInfos.ItemAtrributes); return ErrorCode.ERR_Success; } //设置物品已读 public static async ETTask ReqSetItemRead(int itemID) { S2C_SetItemRead response = null; response = (S2C_SetItemRead)await MessageHelper.SendToServer(new C2S_SetItemRead() { ItemId = itemID }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { ItemCfg cfg = ItemCfgArray.Instance.GetCfg(response.ItemId); if (cfg.itemType == ConstItemType.DRESS_UP) { DressUpMenuItemDataManager.RemoveNewDressItem(response.ItemId); } else if (cfg.itemType == ConstItemType.HEAD) { RoleInfoManager.Instance.RemoveNew(response.ItemId); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); } return true; } } return false; } //使用背包物品 public static async ETTask ReqUseItem(int itemID, long count) { S2C_UseItem response = null; response = (S2C_UseItem)await MessageHelper.SendToServer(new C2S_UseItem() { ItemId = itemID, itemNum = count }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List items = ItemUtil.CreateItemDataList(response.GotItemList); BonusController.TryShowBonusList(items); return true; } } return false; } //使用背包物品-自选礼包 public static async ETTask ReqUseGiftBoxSelItem(int itemID, List giftBoxSelChildItems) { M2C_GiftBoxSelConsumption response = null; response = (M2C_GiftBoxSelConsumption)await MessageHelper.SendToServer(new C2M_GiftBoxSelConsumption() { ItemId = itemID, GiftBoxSelChildItems = giftBoxSelChildItems }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List items = ItemUtil.CreateItemDataList(response.GotItemList); BonusController.TryShowBonusList(items); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return true; } } return false; } //使用背包物品-随机礼包 public static async ETTask ReqUseRandomItem(int itemID, long count) { S2C_UseRandomItem response = null; response = (S2C_UseRandomItem)await MessageHelper.SendToServer(new C2S_UseRandomItem() { ItemId = itemID, itemNum = count }); if (response != null) { if (response.Error == ErrorCode.ERR_Success) { List items = ItemUtil.CreateItemDataList(response.GotItemList); BonusController.TryShowBonusList(items); EventAgent.DispatchEvent(ConstMessage.RED_CHANGE); return true; } } return false; } } }