ItemProxy.cs 6.6 KB

123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120121122123124125126127128129130131132133134135136137138139140141142143144145146147148149150151152153154155156157158159160161162163164
  1. using System;
  2. using System.Collections.Generic;
  3. using ET;
  4. namespace GFGGame
  5. {
  6. public class ItemProxy
  7. {
  8. public static async ETTask<bool> GetItemInfos()
  9. {
  10. GameGlobal.PreDataInited = false;
  11. GameGlobal.AfterDataInited = false;
  12. M2C_GetItemInfos response = null;
  13. response = (M2C_GetItemInfos)await MessageHelper.SendToServer(new C2M_GetItemInfos());
  14. if (response != null)
  15. {
  16. if (response.Error == ErrorCode.ERR_Success)
  17. {
  18. //物品兑换
  19. for (int i = 0; i < response.KsItemExchange.Count; i++)
  20. {
  21. ItemDataManager.InitItemExchange(response.KsItemExchange[i], response.VsItemExchange[i]);
  22. }
  23. //服装数据与物品通步
  24. DressUpMenuSuitDataManager.InitData();
  25. DressUpMenuItemDataManager.InitData();
  26. //初始化物品
  27. ItemDataManager.InitServerData(response.Items);
  28. //自定义套装
  29. CustomSuitDataManager.InitServerData(response.CustomSuits);
  30. CustomSuitDataManager.currentIndex = response.CustomSuitPos;
  31. if (!RoleDataManager.CheckIsMonthCardOpenByType(CustomSuitDataManager.GetPosType(CustomSuitDataManager.currentIndex)))
  32. {
  33. CustomSuitDataManager.currentIndex = 0;
  34. }
  35. for (int i = 0; i < response.NewItems.Count; i++)
  36. {
  37. var itemId = response.NewItems[i];
  38. if (ItemDataManager.GetItemNum(itemId) <= 0) continue;
  39. var itemType = ItemDataManager.GetItemType(itemId);
  40. if (itemType == ConstItemType.DRESS_UP)
  41. {
  42. DressUpMenuItemDataManager.AddNewDressItem(response.NewItems[i]);
  43. }
  44. else if (itemType == ConstItemType.HEAD)
  45. {
  46. RoleInfoManager.Instance.AddNew(response.NewItems[i]);
  47. }
  48. }
  49. //!!!必须放在最后,标记数据初始化完成
  50. GameGlobal.PreDataInited = true;
  51. return true;
  52. }
  53. }
  54. return false;
  55. }
  56. public static async ETTask<int> GetItemAttributeInfos()
  57. {
  58. M2C_GetItemAttributeInfos m2C_GetItemAttributeInfos = null;
  59. Session session = null;
  60. try
  61. {
  62. session = GameGlobal.zoneScene.GetComponent<SessionComponent>().GateSession;
  63. m2C_GetItemAttributeInfos = (M2C_GetItemAttributeInfos)await session.Call(new C2M_GetItemAttributeInfos());
  64. }
  65. catch (Exception e)
  66. {
  67. Log.Debug(e.ToString());
  68. return ErrorCode.ERR_NetWorkError;
  69. }
  70. if (m2C_GetItemAttributeInfos.Error != ErrorCode.ERR_Success)
  71. {
  72. return m2C_GetItemAttributeInfos.Error;
  73. }
  74. ItemDataManager.InitServerDataItemAttribute(m2C_GetItemAttributeInfos.ItemAtrributes);
  75. return ErrorCode.ERR_Success;
  76. }
  77. //设置物品已读
  78. public static async ETTask<bool> ReqSetItemRead(int itemID)
  79. {
  80. S2C_SetItemRead response = null;
  81. response = (S2C_SetItemRead)await MessageHelper.SendToServer(new C2S_SetItemRead() { ItemId = itemID });
  82. if (response != null)
  83. {
  84. if (response.Error == ErrorCode.ERR_Success)
  85. {
  86. ItemCfg cfg = ItemCfgArray.Instance.GetCfg(response.ItemId);
  87. if (cfg.itemType == ConstItemType.DRESS_UP)
  88. {
  89. DressUpMenuItemDataManager.RemoveNewDressItem(response.ItemId);
  90. }
  91. else if (cfg.itemType == ConstItemType.HEAD)
  92. {
  93. RoleInfoManager.Instance.RemoveNew(response.ItemId);
  94. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  95. }
  96. return true;
  97. }
  98. }
  99. return false;
  100. }
  101. //使用背包物品
  102. public static async ETTask<bool> ReqUseItem(int itemID, long count)
  103. {
  104. S2C_UseItem response = null;
  105. response = (S2C_UseItem)await MessageHelper.SendToServer(new C2S_UseItem() { ItemId = itemID, itemNum = count });
  106. if (response != null)
  107. {
  108. if (response.Error == ErrorCode.ERR_Success)
  109. {
  110. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  111. BonusController.TryShowBonusList(items);
  112. return true;
  113. }
  114. }
  115. return false;
  116. }
  117. //使用背包物品-自选礼包
  118. public static async ETTask<bool> ReqUseGiftBoxSelItem(int itemID, List<GiftBoxSelChildItemProto> giftBoxSelChildItems)
  119. {
  120. M2C_GiftBoxSelConsumption response = null;
  121. response = (M2C_GiftBoxSelConsumption)await MessageHelper.SendToServer(new C2M_GiftBoxSelConsumption()
  122. { ItemId = itemID, GiftBoxSelChildItems = giftBoxSelChildItems });
  123. if (response != null)
  124. {
  125. if (response.Error == ErrorCode.ERR_Success)
  126. {
  127. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  128. BonusController.TryShowBonusList(items);
  129. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  130. return true;
  131. }
  132. }
  133. return false;
  134. }
  135. //使用背包物品-随机礼包
  136. public static async ETTask<bool> ReqUseRandomItem(int itemID, long count)
  137. {
  138. S2C_UseRandomItem response = null;
  139. response = (S2C_UseRandomItem)await MessageHelper.SendToServer(new C2S_UseRandomItem()
  140. { ItemId = itemID, itemNum = count });
  141. if (response != null)
  142. {
  143. if (response.Error == ErrorCode.ERR_Success)
  144. {
  145. List<ItemData> items = ItemUtil.CreateItemDataList(response.GotItemList);
  146. BonusController.TryShowBonusList(items);
  147. EventAgent.DispatchEvent(ConstMessage.RED_CHANGE);
  148. return true;
  149. }
  150. }
  151. return false;
  152. }
  153. }
  154. }