private void OnTavernBuyOK(PComItemList ret, int itemID, int itemCount, TavernBuyAction buyAction) { // ui显示 Debug.Log("OnTavernBuyOK"); List <ItemInfo> list = new List <ItemInfo>(); bool needRequestBagList = false; bool needRequestHeroList = false; foreach (var item in ret.item) { ItemInfo itemInfo = new ItemInfo(); itemInfo.Deserialize(item); if (itemInfo.Cfg.Type == (int)ItemType.CARD) { // 如果是英雄卡的话 HeroInfo heroInfo = UserManager.Instance.GetHeroInfoByUnitID(itemInfo.Cfg.MatchHero); if (heroInfo != null) { // 转换为灵魂石 // needRequestBagList = true; // ItemInfo souldInfo = new ItemInfo(); // souldInfo.ConfigID = heroInfo.Cfg.Cost; // souldInfo.Number = itemInfo.Cfg.SoulStoneNum; // list.Add(itemInfo); } else { list.Add(itemInfo); // 获得新英雄 needRequestHeroList = true; } } else { if (!item.isFixGet) { list.Add(itemInfo); } } } UIManager.Instance.OpenWindow <UITavernGetItemView>(list, itemID, itemCount, buyAction); // 添加物品 UserManager.Instance.AddItem(ret, true); if (needRequestHeroList) { UserManager.Instance.RequestUserInfo(); } }
// 请求自己的公会数据 public void RequestGuildInfo() { Net.Send(eCommand.ADJUST_PLAYER_LEVEL, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.ADJUST_PLAYER_LEVEL)) { return; } UIManager.Instance.RefreshWindow <UIGuildInfoView>(); }); }
private void OnMsgSysAddGood(byte[] buffer) { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.SYS_ADD_GOOD)) { return; } UserManager.Instance.AddItem(ret, false); // 刷新ui UIManager.Instance.RefreshWindow <UINewBagView>(); EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE); }
// 酒馆抽卡,元宝10次 public void RequestTavernGoldBuy10() { NetworkManager.Instance.Send(eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.TEN_CONTINUE_DIAMOND_LUCK_DRAW)) { return; } OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_GOLD_ITEM_ID, 10, TavernBuyAction.BUY_GOLD_10); UserManager.Instance.CostMoney(GameConfig.LUCK_DRAW_GOLD_10_COST, PriceType.GOLD); RefreshUI(); }); }
private void OnMsgGetKnapsackInfo(byte[] buffer) { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.GET_KNAPSACK_INFO)) { return; } // 添加物品 ItemList.Clear(); AddItem(ret, false); UIManager.Instance.RefreshWindow <UINewBagView>(); }
// 酒馆抽卡,银两1次 public void RequestTavernMoneyBuy1() { NetworkManager.Instance.Send(eCommand.SIGLE_GOLD_LUCK_DRAW, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.SIGLE_GOLD_LUCK_DRAW)) { return; } OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_MONEY_ITEM_ID, 1, TavernBuyAction.BUY_MONEY_1); UserManager.Instance.CostMoney(GameConfig.LUCK_DRAW_MONEY_1_COST, PriceType.MONEY); RefreshUI(); }); }
// 酒馆抽卡,元宝免费 public void RequestTavernGoldFreeBuy() { NetworkManager.Instance.Send(eCommand.FREE_DIAMOND_LUCK_DRAW, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.FREE_DIAMOND_LUCK_DRAW)) { return; } OnTavernBuyOK(ret, GameConfig.LUCK_DRAW_GOLD_ITEM_ID, 1, TavernBuyAction.BUY_GOLD_1); GoldLeftCount = Mathf.Max(0, GoldLeftCount - 1); GoldNextFreeTime = GameConfig.LUCK_DRAW_GOLD_FREE_CD; GoldNextFreeSyncTime = Time.realtimeSinceStartup; RefreshUI(); }); }
// 请求领取最高排名奖励 public void RequestGetHighAward(int highID) { PCMInt data = new PCMInt(); data.arg = highID; NetworkManager.Instance.Send(eCommand.ATHTECLIC_RANK_AWARD_OBTAIN, data, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.ATHTECLIC_RANK_AWARD_OBTAIN)) { return; } MyHighAwardList[highID] = true; UserManager.Instance.AddItemWithUI(ret); UIManager.Instance.RefreshWindow <UIPVPAwardView>(); }); }
// 有一个界面提示获得新物品 public void AddItemWithUI(PComItemList ret) { List <ItemInfo> list = new List <ItemInfo>(); foreach (var item in ret.item) { ItemInfo itemInfo = new ItemInfo(); itemInfo.Deserialize(item); if (!item.isFixGet) { list.Add(itemInfo); } } UIManager.Instance.OpenWindow <UIGetItemView>(list); // 添加物品 AddItem(ret, true); }
public void AddItem(PComItemList data, bool isNewItem) { // 添加物品 List <ItemInfo> list = new List <ItemInfo>(); foreach (var item in data.item) { if (item.type == (eItem)ItemType.MONEY) { // 货币类型 if (item.cfgId == GameConfig.ITEM_CONFIG_ID_MONEY) { Money += item.num; } else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_WOOD) { Wood += item.num; } else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_STONE) { Stone += item.num; } else if (item.cfgId == GameConfig.ITEM_CONFIG_ID_GOLD) { Gold += item.num; } continue; } else if (item.type == (eItem)ItemType.CARD) { continue; } ItemInfo itemInfo = new ItemInfo(); itemInfo.Deserialize(item); list.Add(itemInfo); } AddItem(list, isNewItem); }
// 购买物品 public void RequestBuyItem(ShopType shopType, int shopItemID, bool isFixGet) { ShopItemInfo info = ShopItemInfo(shopType, shopItemID, isFixGet); if (info == null) { return; } if (GetMoney(info.PriceType) < info.Price) { UIUtil.ShowMsgFormat("MSG_SHOP_MONEY_LIMIT"); return; } PBuyGood data = new PBuyGood(); data.shopType = (int)shopType; data.goodId = shopItemID; data.isFix = isFixGet; NetworkManager.Instance.Send(eCommand.BUY_SHOP_GOOD, data, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.BUY_SHOP_GOOD)) { return; } info.IsSoldOut = true; UserManager.Instance.AddItemWithUI(ret); CostMoney(info.Price, info.PriceType); UIManager.Instance.RefreshWindow <UINewBagView>(); UIManager.Instance.RefreshWindow <UIShopView>(); EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE); }); }
// 使用物品 public void ReqUseItem(long itemID) { PUseCommonItem data = new PUseCommonItem(); data.comItem.Add(new PComItem { id = itemID, num = 1, }); Net.Send(eCommand.USE_PROP_TO_GAINGOOD, data, (buffer) => { PComItemList ret = Net.Deserialize <PComItemList>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.USE_PROP_TO_GAINGOOD)) { return; } UseItem(itemID, 1); AddItem(ret, true); EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE); UIManager.Instance.RefreshWindow <UINewBagView>(); }); }