ItemProxy.cs 8.4 KB

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