// 请求锻造装备 public void RequestCombineEquip(int destCfgID, List <ItemInfo> itemList, bool isLuck, SmithyCost cost) { List <long> list = new List <long>(); foreach (var item in itemList) { list.Add(item.EntityID); } PCombineEquip data = new PCombineEquip(); data.destId = destCfgID; data.modelId.AddRange(list); data.type = isLuck ? eCombineType.COMBINE_LUCK : eCombineType.COMBINE_GOLD; Net.Send(eCommand.COMBINE_EQUIP, data, (buffer) => { PComItem ret = Net.Deserialize <PComItem>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.COMBINE_EQUIP)) { return; } ItemInfo info = new ItemInfo(); info.Deserialize(ret); UserManager.Instance.AddItem(info, true); // 刷新锻造铺 UIManager.Instance.RefreshWindow <UISmithyView>(); UIManager.Instance.OpenWindow <UISmithyGetArmsView>(info); UserManager.Instance.Money -= cost.Money; UserManager.Instance.Gold -= cost.Gold; foreach (var item in cost.Mold) { ItemInfo old = UserManager.Instance.GetItem(item.EntityID); if (old != null) { UserManager.Instance.RemoveItem(old); } } foreach (var item in cost.Material) { if (item.CfgID == GameConfig.ITEM_CONFIG_ID_WOOD) { UserManager.Instance.Wood -= item.Count; } else if (item.CfgID == GameConfig.ITEM_CONFIG_ID_STONE) { UserManager.Instance.Stone -= item.Count; } else { UserManager.Instance.UseItemByConfigID(item.CfgID, item.Count); } } EventDispatcher.TriggerEvent(EventID.EVENT_UI_MAIN_REFRESH_VALUE); }); }
public float Cooldown; // 冷却缩减 public void Deserialize(PComItem data) { EntityID = data.id; Number = data.num; ConfigID = data.cfgId; Quality = data.quality; // 一级属性 if (data.basicAttr != null) { Strength = data.basicAttr.strength; Intelligence = data.basicAttr.Intelligence; LeaderShip = data.basicAttr.LeaderShip; } // 二级属性 if (data.battleAttr != null) { Attack = data.battleAttr.physAtk; MagicAttack = data.battleAttr.magicAtk; Hp = data.battleAttr.hp; Def = data.battleAttr.damReduce; Critical = data.battleAttr.criticStrike; HpSorb = data.battleAttr.suckBlood; Stum = data.battleAttr.damDeepen; AttackSpeed = data.battleAttr.atkSpeed; Cooldown = data.battleAttr.coolDown; } }
// 卸下装备 public bool RequestTakeOffEquip(long heroID, long itemID) { HeroInfo heroInfo = GetHeroInfo(heroID); if (heroInfo == null) { return(false); } PUseCommonItem builder = new PUseCommonItem(); builder.heroId = heroID; ItemInfo itemInfo = heroInfo.GetItem(itemID); if (itemInfo == null) { return(false); } PComItem ibuilder = new PComItem(); ibuilder.id = itemID; builder.comItem.Add(ibuilder); NetworkManager.Instance.Send(eCommand.FIT_DOWN_EQUIP, builder, (buffer) => { PHeroAttr ret = Net.Deserialize <PHeroAttr>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.FIT_DOWN_EQUIP)) { return; } // 把装备放到背包里 AddItem(itemInfo, false); heroInfo.Deserialize(ret, true); UIManager.Instance.RefreshWindow <UINewHeroView>(); UIManager.Instance.RefreshWindow <UINewHeroListView>(); }); return(true); }
// 请求穿戴装备 public bool RequestEquipItem(long heroID, long itemID) { HeroInfo heroInfo = GetHeroInfo(heroID); if (heroInfo == null) { return(false); } if (heroInfo.GetItem(itemID) != null) { // 已经装备 return(false); } ItemInfo itemInfo = GetItem(itemID); if (itemInfo == null) { // 没有物品 return(false); } if (itemInfo.Cfg.Level > heroInfo.Level) { // 等级不足 UIUtil.ShowMsgFormat("MSG_HERO_LEVEL_LIMIT"); return(false); } PUseCommonItem builder = new PUseCommonItem(); builder.heroId = heroID; PComItem ibuilder = new PComItem(); ibuilder.id = itemInfo.EntityID; builder.comItem.Add(ibuilder); NetworkManager.Instance.Send(eCommand.FIT_UP_EQUIP, builder, (buffer) => { PHeroAttr ret = Net.Deserialize <PHeroAttr>(buffer); if (!Net.CheckErrorCode(ret.errorCode, eCommand.FIT_UP_EQUIP)) { return; } // 把旧装备放在背包里面 ItemInfo oldItemInfo = heroInfo.GetItemByType((ItemType)itemInfo.Cfg.Type); if (oldItemInfo != null) { AddItem(oldItemInfo, false); heroInfo.EquipedItem.Remove(oldItemInfo); } // 同步英雄属性 heroInfo.Deserialize(ret, true); // 移除背包内的装备 UseItem(itemID, 1); UIManager.Instance.RefreshWindow <UINewHeroView>(); UIManager.Instance.RefreshWindow <UINewHeroListView>(); }); return(true); }