public static void DoPveBuy(ShopInfo shopInfo, Units unit, string targetItemID, List <ItemInfo> possessItemsP, int realPrice) { List <ItemInfo> list = new List <ItemInfo>(possessItemsP); List <string> composition = BattleEquipTools_Travers.GetComposition(targetItemID, list); if (composition != null || composition.Count > 0) { for (int i = 0; i < composition.Count; i++) { ItemInfo target; int index; if (BattleEquipTools_Travers.GetItem_last_least(list, composition[i], out target, out index)) { BattleEquipTools_op.RemoveItem(list, target, index); } } } BattleEquipTools_op.AddItem(list, targetItemID); BattleEquipTools_op.ChangeHeroMoney(unit.unique_id, -realPrice); BattleEquipTools_op.SetHeroItems(unit, list); byte[] msgParam = SerializeHelper.Serialize <P2CBuyItem>(new P2CBuyItem { itemoid = 0, retaCode = 0 }); MobaMessage message = MobaMessageManager.GetMessage(PvpCode.C2P_BuyItem, msgParam, 0f, null); MobaMessageManager.DispatchMsg(message); }