//休息精灵 public ErrorCodes DisBattleElf(CharacterController character, int index) { var nowFightCount = character.GetElfFightCount(); if (index < 0 && index >= 3) { return(ErrorCodes.Error_ElfNotBattle); } var item = character.GetItemByBagByIndex((int)eBagType.Elf, index); if (item == null || item.GetId() < 0) { return(ErrorCodes.Error_ElfNotFind); } var freeindex = character.mBag.mBags[(int)eBagType.Elf].GetFirstFreeIndex(MaxElfFightCount); if (freeindex != -1) { character.mBag.MoveItem((int)eBagType.Elf, index, (int)eBagType.Elf, freeindex, 1); character.mBag.RefreshElfAttr(); character.BooksChange(); return(ErrorCodes.OK); } return(ErrorCodes.Error_ItemNoInBag_All); }
//脱勋章 public ErrorCodes RemoveMedal(CharacterController character, int bagId, int bagIndex, ref int putIndex) { var medal = character.GetItemByBagByIndex(bagId, bagIndex) as MedalItem; if (medal == null) { return(ErrorCodes.Error_ItemNotFind); } var bag = character.mBag.GetBag((int)eBagType.MedalBag); var freeIndex = bag.GetFirstFreeIndex(); if (freeIndex == -1) { return(ErrorCodes.Error_BagIndexOverflow); } var result = character.mBag.MoveItem(bagId, bagIndex, (int)eBagType.MedalBag, freeIndex, 1); if (result != ErrorCodes.OK) { Logger.Error("DropMedal MoveItem Faild! result={0}", result); return(result); } character.mBag.RefreshMedal(); character.BooksChange(); putIndex = freeIndex; return(ErrorCodes.OK); }
public void CheckBattleElf(CharacterController character) { var nowFightCount = character.GetElfFightCount(); bool bRefresh = false; for (int i = 0; i < 3; i++) { if (i >= nowFightCount) { var item = character.GetItemByBagByIndex((int)eBagType.Elf, i); if (item == null || item.GetId() < 0) { continue; } var freeindex = character.mBag.mBags[(int)eBagType.Elf].GetFirstFreeIndex(MaxElfFightCount); if (freeindex != -1) { bRefresh = true; character.mBag.MoveItem((int)eBagType.Elf, i, (int)eBagType.Elf, freeindex, 1); } } } if (bRefresh) { character.mBag.RefreshElfAttr(); character.BooksChange(); } }
//展示精灵 public ErrorCodes BattleMainElf(CharacterController character, int index) { if (index <= 0) { return(ErrorCodes.Error_ElfNotBattle); } var item = character.GetItemByBagByIndex((int)eBagType.Elf, index); if (item == null || item.GetId() < 0) { return(ErrorCodes.Error_ElfNotFind); } var tbElf = Table.GetElf(item.GetId()); if (tbElf == null) { return(ErrorCodes.Error_ElfNotFind); } if (item.GetIndex() >= MaxElfFightCount) { if (character.CheckElfType(tbElf, 0) != -1) { return(ErrorCodes.Error_ElfTypeSame); } } var nowFightCount = character.GetElfFightCount(); if (item.GetIndex() >= MaxElfFightCount) //如果原来是休息的,需要重新为老的尝试找位置 { var tempItem = character.GetItemByBagByIndex((int)eBagType.Elf, 0); if (tempItem != null && tempItem.GetId() != -1) { var tbtempElf = Table.GetElf(tempItem.GetId()); if (tbtempElf != null && tbtempElf.ElfType != tbElf.ElfType) //类型冲突就不找了 直接休息吧 { for (var i = 1; i != nowFightCount; ++i) { var tempbatItem = character.GetItemByBagByIndex((int)eBagType.Elf, i); if (tempbatItem == null || tempbatItem.GetId() == -1) { character.mBag.MoveItem((int)eBagType.Elf, 0, (int)eBagType.Elf, i, 1); character.SetRankFlag(RankType.PetFight); break; } } } } } character.mBag.MoveItem((int)eBagType.Elf, index, (int)eBagType.Elf, 0, 1); //出战 //item.MarkDbDirty(); character.mBag.RefreshElfAttr(); character.BooksChange(); character.SetRankFlag(RankType.PetFight); return(ErrorCodes.OK); }
//出战精灵 public ErrorCodes BattleElf(CharacterController character, int index, int targetIndex) { var nowFightCount = character.GetElfFightCount(); if (targetIndex < 1 || targetIndex >= nowFightCount) { return(ErrorCodes.Error_DataOverflow); } if (index == 0 && targetIndex > 3) { return(ErrorCodes.Error_ElfAlreadyBattle); } if (index == targetIndex) { return(ErrorCodes.Error_ElfAlreadyBattle); } if (index > 0 && index < nowFightCount) { character.mBag.MoveItem((int)eBagType.Elf, index, (int)eBagType.Elf, targetIndex, 1); return(ErrorCodes.OK); } var elfBag = character.GetBag((int)eBagType.Elf); var item = elfBag.GetItemByIndex(index); if (item == null || item.GetId() < 0) { return(ErrorCodes.Error_ElfNotFind); } var tbElf = Table.GetElf(item.GetId()); if (tbElf == null) { return(ErrorCodes.Error_ElfNotFind); } if (item.GetIndex() >= MaxElfFightCount) { if (character.CheckElfType(tbElf, targetIndex) != -1) { return(ErrorCodes.Error_ElfTypeSame); } } character.mBag.MoveItem((int)eBagType.Elf, index, (int)eBagType.Elf, targetIndex, 1); character.mBag.RefreshElfAttr(); character.BooksChange(); return(ErrorCodes.OK); }
//阵法强化 public ErrorCodes EnchanceFormation(CharacterController character, ref int Nextlevel) { var oldLevel = character.GetExData(82); var tbLevel = Table.GetLevelData(oldLevel); if (tbLevel.FightingWayExp <= 0) { return(ErrorCodes.Error_FormationLevelMax); } var res = character.mBag.GetRes(eResourcesType.ElfPiece); if (res < tbLevel.FightingWayExp) { return(ErrorCodes.Error_FormationExpNotEnough); } //character.mBag.SetRes(eResourcesType.ElfPiece, res - tbLevel.FightingWayExp); character.mBag.DelRes(eResourcesType.ElfPiece, tbLevel.FightingWayExp, eDeleteItemType.EnchanceFormation); Nextlevel = oldLevel + 1; character.SetExData(82, Nextlevel); character.mBag.RefreshElfAttr(); character.BooksChange(); return(ErrorCodes.OK); }
public ErrorCodes AstrologyEquipOff(CharacterController character, int astrologyId, int Index) { if (astrologyId < 0 || astrologyId > 11) { return(ErrorCodes.Error_DataOverflow); } if (Index < 0 || Index > 2) { return(ErrorCodes.Error_DataOverflow); } //物品是否存在 var equipIndex = Index * 12 + astrologyId; var equipItem = character.GetItemByBagByIndex((int)eBagType.GemEquip, equipIndex); if (equipItem == null || equipItem.GetId() == -1) { return(ErrorCodes.Error_ItemNotFind); } //包裹是否有空格脱下 var freeIndex = character.mBag.GetBag((int)eBagType.GemBag).GetFirstFreeIndex(); if (freeIndex == -1) { return(ErrorCodes.Error_ItemNoInBag_All); } //移动物品 var result = character.mBag.MoveItem((int)eBagType.GemEquip, equipIndex, (int)eBagType.GemBag, freeIndex, 1); if (result == ErrorCodes.OK) { character.mBag.RefreshGemAttr(); character.BooksChange(); } return(result); }
//精灵强化 public ErrorCodes EnchanceElf(CharacterController character, int bagIndex, ref int Nextlevel) { var item = character.GetItemByBagByIndex((int)eBagType.Elf, bagIndex) as ElfItem; if (item == null) { return(ErrorCodes.Error_ItemNotFind); } var tbElf = Table.GetElf(item.GetId()); if (tbElf == null) { return(ErrorCodes.Error_ElfNotFind); } var oldLevel = item.GetExdata(0); if ((oldLevel >= tbElf.MaxLevel && tbElf.MaxLevel > 0) || (tbElf.MaxLevel == -1 && oldLevel >= character.GetLevel())) { return(ErrorCodes.Error_ElfLevelMax); } var tbLevel = Table.GetLevelData(oldLevel); var needExp = tbLevel.ElfExp * tbElf.ResolveCoef[0] / 100; var oldExp = character.mBag.GetRes(eResourcesType.ElfPiece); if (needExp > oldExp) { return(ErrorCodes.Error_FormationExpNotEnough); } //character.mBag.SetRes(eResourcesType.ElfPiece, oldExp - needExp); character.mBag.DelRes(eResourcesType.ElfPiece, needExp, eDeleteItemType.EnchanceElf); Nextlevel = oldLevel + 1; item.SetExdata(0, Nextlevel); var oldmaxLevel = character.GetExData((int)eExdataDefine.e328); if (Nextlevel > oldmaxLevel) { character.SetExData((int)eExdataDefine.e328, Nextlevel, true); character.Proxy.SyncExdata((int)eExdataDefine.e328, Nextlevel);//同步客户端扩展数据 } //item.MarkDbDirty();//客户端自行增加等级 if (bagIndex < 3) { if (bagIndex == 0) { character.SetRankFlag(RankType.PetFight); } character.mBag.RefreshElfAttr(); character.BooksChange(); } //删除灵兽公告 //if (Nextlevel >= 10 && Nextlevel%5 == 0) //{ // //添加公告,恭喜玩家{0}将精灵{1}升至{2}级!实力大增! // var args = new List<string> // { // Utils.AddCharacter(character.mGuid, character.GetName()), // Utils.AddItemId(item.GetId()), // Nextlevel.ToString() // }; // var exData = new List<int>(); // item.CopyTo(exData); // character.SendSystemNoticeInfo(215002, args, exData); //} try { var klog = string.Format("jinglingshengji#{0}|{1}|{2}|{3}|{4}|{5}", character.mGuid, character.GetLevel(), character.serverId, item.GetId(), oldLevel, // 升级前等级 DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); PlayerLog.Kafka(klog, 2); } catch (Exception e) { Logger.Error(e.Message); } return(ErrorCodes.OK); }
// 精灵升星 public ErrorCodes EnchanceElfStar(CharacterController character, int bagIndex, ref int nextStar) { var item = character.GetItemByBagByIndex((int)eBagType.Elf, bagIndex) as ElfItem; if (item == null) { return(ErrorCodes.Error_ItemNotFind); } var tbElf = Table.GetElf(item.GetId()); if (tbElf == null) { return(ErrorCodes.Error_ElfNotFind); } var starLevel = item.GetStarLevel(); if (starLevel >= tbElf.ElfStarUp.Count) { return(ErrorCodes.Error_ElfStarMax); } if (starLevel < 0) { starLevel = 0; } // 检查物品 var tbConsume = Table.GetConsumArray(tbElf.ElfStarUp[starLevel]); if (tbConsume == null) { return(ErrorCodes.Error_ElfConsumeArrayNotFound); } var elfBag = character.mBag.GetBag((int)eBagType.Elf); if (elfBag == null) { return(ErrorCodes.Unknow); } // 排除出战的宠物跟自己 var elfCount = new Dictionary <int, int>(); for (var i = 3; i < elfBag.mLogics.Count; ++i) { var itemBase = elfBag.mLogics[i]; if (itemBase.GetId() < 0) { continue; } if (itemBase.GetIndex() == bagIndex) { continue; } elfCount.modifyValue(itemBase.GetId(), itemBase.GetCount()); } for (var i = 0; i < tbConsume.ItemId.Length; i++) { var itemId = tbConsume.ItemId[i]; var needCount = tbConsume.ItemCount[i]; if (itemId == -1) { continue; } var tbItem = Table.GetItemBase(itemId); if (tbItem == null) { return(ErrorCodes.Error_ItemNotFind); } if (itemId < (int)eResourcesType.CountRes) { var res = character.mBag.GetRes((eResourcesType)itemId); if (res < needCount) { return(ErrorCodes.ItemNotEnough); } } else if (tbItem.InitInBag == (int)eBagType.Elf) { // 消耗灵兽 int haveCount; if (elfCount.TryGetValue(itemId, out haveCount)) { if (haveCount < needCount) { return(ErrorCodes.ItemNotEnough); } } else { return(ErrorCodes.ItemNotEnough); } } else { // 消耗物品 if (character.mBag.GetItemCount(itemId) < needCount) { return(ErrorCodes.ItemNotEnough); } } } // 删除物品 for (var i = 0; i < tbConsume.ItemId.Length; i++) { var itemId = tbConsume.ItemId[i]; if (itemId == -1) { continue; } var deleteItemType = eDeleteItemType.ElfStar; var needCount = tbConsume.ItemCount[i]; if (itemId < (int)eResourcesType.CountRes) { // 资源型数据 character.mBag.DelRes((eResourcesType)itemId, needCount, deleteItemType); continue; } var tbItem = Table.GetItemBase(itemId); if (tbItem.InitInBag != (int)eBagType.Elf) { character.mBag.DeleteItem(itemId, needCount, deleteItemType); continue; } var delList = new List <ItemBase>(); // 不考虑叠加 for (var ii = elfBag.mLogics.Count - 1; ii >= 3; ii--) { var bagItem = elfBag.mLogics[ii]; if (bagItem.GetId() != itemId) { continue; } if (bagIndex == ii) { continue; } delList.Add(bagItem); } delList.Sort((l, r) => { var lstar = l.GetExdata((int)ElfExdataDefine.StarLevel); var rstar = r.GetExdata((int)ElfExdataDefine.StarLevel); return(lstar < rstar ? -1 : 1); }); for (var j = 0; j < needCount; ++j) { var delItem = delList[j]; PlayerLog.DataLog(character.mGuid, "elf star levelup id,{0},{1},{2},{3}", item.GetId(), item.GetStarLevel(), delItem.GetId(), delItem.GetExdata((int)ElfExdataDefine.StarLevel)); elfBag.CleanItemByIndex(delItem.GetIndex()); } } // 升星 nextStar = starLevel + 1; item.SetStarLevel(nextStar); var itemba = Table.GetItemBase(item.GetId()); if (nextStar == 5) { var args = new List <string> { Utils.AddCharacter(character.mGuid, character.GetName()), string.Format("[{0}]{1}[-]", Utils.GetTableColorString(itemba.Quality), itemba.Name), }; var exExdata = new List <int>(); character.SendSystemNoticeInfo(291008, args, exExdata); } if (bagIndex < 3) { if (bagIndex == 0) { character.SetRankFlag(RankType.PetFight); } character.mBag.RefreshElfAttr(); character.BooksChange(); } try { var klog = string.Format("jinglingshengxing#{0}|{1}|{2}|{3}|{4}|{5}", character.mGuid, character.GetLevel(), character.serverId, item.GetId(), starLevel, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); PlayerLog.Kafka(klog, 2); } catch (Exception e) { Logger.Error(e.Message); } return(ErrorCodes.OK); }
public ErrorCodes AstrologyLevelUp(CharacterController character, int bagId, int bagIndex, List <int> needList) { var bag = character.mBag.GetBag(bagId); if (bag == null) { return(ErrorCodes.Error_BagID); } var item = bag.GetItemByIndex(bagIndex); if (item == null || item.GetId() == -1) { return(ErrorCodes.Error_ItemNotFind); } var tbGem = Table.GetGem(item.GetId()); if (tbGem == null) { return(ErrorCodes.Error_GemID); } //升级操作 var oldLevel = item.GetExdata(0); var oldExp = item.GetExdata(1); var tbLevel = Table.GetLevelData(oldLevel); var color = tbGem.Quality; var needExp = tbLevel.Exp[color]; if (needExp == -1) { return(ErrorCodes.Error_GemLevelMax); } var totleExp = 0; //材料检查 var needBag = bag; if (bagId == (int)eBagType.GemBag) { if (needList.Contains(bagIndex)) { return(ErrorCodes.Error_NotSelectUpgrade); } } else { needBag = character.mBag.GetBag((int)eBagType.GemBag); } foreach (var i in needList) { var needItem = needBag.GetItemByIndex(i); if (needItem == null || needItem.GetId() == -1) { return(ErrorCodes.Error_ItemNotFind); } var tbGemNeed = Table.GetGem(needItem.GetId()); if (tbGemNeed == null) { continue; } var needLevel = needItem.GetExdata(0); var Exp = needItem.GetExdata(1) + tbGemNeed.InitExp; for (var l = 1; l < needLevel; ++l) { Exp += Table.GetLevelData(l).Exp[tbGemNeed.Quality]; } totleExp += Exp; } //升级操作 oldExp = oldExp + totleExp; var newLevel = oldLevel; var newExp = oldExp; while (newExp >= needExp) { newLevel++; newExp -= needExp; tbLevel = Table.GetLevelData(newLevel); needExp = tbLevel.Exp[color]; if (needExp == -1) { break; } } //消耗材料 foreach (var i in needList) { needBag.ReduceCountByIndex(i, 1, eDeleteItemType.AstrologyLevelUp); //needBag.CleanItemByIndex(i); } item.SetExdata(0, newLevel); item.SetExdata(1, newExp); item.MarkDirty(); if (bagId == (int)eBagType.GemEquip && newLevel > oldLevel) { character.mBag.RefreshGemAttr(); character.BooksChange(); } return(ErrorCodes.OK); }
public ErrorCodes AstrologyEquipOn(CharacterController character, int bagIndex, int astrologyId, int Index) { if (astrologyId < 0 || astrologyId > 11) { return(ErrorCodes.Error_DataOverflow); } if (Index < 0 || Index > 2) { return(ErrorCodes.Error_DataOverflow); } var bag = character.mBag.GetBag((int)eBagType.GemBag); if (bag == null) { return(ErrorCodes.Error_BagID); } var equipItem = bag.GetItemByIndex(bagIndex); if (equipItem == null || equipItem.GetId() == -1) { return(ErrorCodes.Error_ItemNotFind); } var tbGem = Table.GetGem(equipItem.GetId()); if (tbGem == null) { return(ErrorCodes.Error_GemID); } if (tbGem.Type == 50000 && Index == 0) { } else if (tbGem.Type == 51000 && Index == 1) { } else if (tbGem.Type == 52000 && Index == 2) { } else { return(ErrorCodes.Error_GemID); } //oldItem for (var i = 0; i < 3; ++i) { if (Index == i) { continue; } var tempItem = character.GetItemByBagByIndex((int)eBagType.GemEquip, i * 12 + astrologyId); if (tempItem == null || tempItem.GetId() == -1) { continue; } var tbTempGem = Table.GetGem(tempItem.GetId()); if (tbTempGem.Type == tbGem.Type) { return(ErrorCodes.Error_GemTypeSame); } } var equipIndex = Index * 12 + astrologyId; //var oldItem = character.GetItemByBagByIndex((int) eBagType.GemEquip, equipIndex); var result = character.mBag.MoveItem((int)eBagType.GemBag, bagIndex, (int)eBagType.GemEquip, equipIndex, 1); if (result == ErrorCodes.OK) { character.mBag.RefreshGemAttr(); character.BooksChange(); } return(result); }
//勋章升级 public ErrorCodes EnchanceMedal(CharacterController character, int bagId, int bagIndex) { var medal = character.GetItemByBagByIndex(bagId, bagIndex) as MedalItem; if (medal == null) { return(ErrorCodes.Error_ItemNotFind); } var expTotle = character.mBag.GetRes(eResourcesType.HomeExp); var tb = Table.GetMedal(medal.GetId()); if (tb == null) { return(ErrorCodes.Error_ItemNotFind); } int lv = medal.GetExdata(0); if (lv >= tb.MaxLevel) { return(ErrorCodes.Error_EquipLevelMax); } int curL = character.GetExData((int)eExdataDefine.e621);//无尽幻境历史最高等级 if (lv >= curL) { return(ErrorCodes.Error_EquipRuneLevelMax); } var needExp = Table.GetSkillUpgrading(tb.LevelUpExp).GetSkillUpgradingValue(medal.GetExdata(0)); var exp = medal.GetExdata(1); if (expTotle + exp < needExp) { return(ErrorCodes.Error_ExpNotEnough); } medal.AddExp(needExp - exp); character.mBag.DelRes(eResourcesType.HomeExp, needExp - exp, eDeleteItemType.EnchanceMedal); if (bagId == (int)eBagType.MedalUsed) { character.mBag.RefreshMedal(); character.BooksChange(); } var CurrentLevel = medal.GetExdata(0); var MaxLevel = character.GetExData((int)eExdataDefine.e346); if (MaxLevel < CurrentLevel) { character.SetExData((int)eExdataDefine.e346, CurrentLevel); } if (lv < CurrentLevel) { try { string v = string.Format("FuWenLevelUp_info#{0}|{1}|{2}|{3}|{4}", character.serverId, character.mGuid, character.GetLevel(), CurrentLevel, DateTime.Now.ToString("yyyy/MM/dd HH:mm:ss")); // 时间 PlayerLog.Kafka(v); } catch (Exception) { } } return(ErrorCodes.OK); }
//装备勋章 public ErrorCodes UseMedal(CharacterController character, int bagId, int bagIndex, ref int putIndex) { if (bagId == (int)eBagType.MedalUsed) { return(character.RemoveMedal(bagId, bagIndex, ref putIndex)); } if (bagId != (int)eBagType.MedalBag) { return(ErrorCodes.Error_BagIndexNoItem); } var medal = character.GetItemByBagByIndex(bagId, bagIndex) as MedalItem; if (medal == null) { return(ErrorCodes.Error_ItemNotFind); } var bag = character.mBag.GetBag((int)eBagType.MedalUsed); //if (useIndex < 0 || useIndex >= bag.GetNowCount()) //{ // return ErrorCodes.Error_DataOverflow; //} var tbMedal = Table.GetMedal(medal.GetId()); if (tbMedal == null) { return(ErrorCodes.Error_MedalID); } if (tbMedal.CanEquipment != 1) { return(ErrorCodes.Error_MedalNotEquip); } var level = character.mBag.GetRes(eResourcesType.LevelRes); //类型检查 var SameIndex = -1; var FreeIndex = -1; for (var i = 0; i < bag.GetNowCount(); i++) { var limit = Table.GetServerConfig(1006 + i).ToInt(); if (level < limit) { break; } var item = bag.GetItemByIndex(i); if (item == null) { if (FreeIndex == -1) { FreeIndex = i; } continue; } if (item.GetId() == -1) { if (FreeIndex == -1) { FreeIndex = i; } continue; } var medalTemp = Table.GetMedal(item.GetId()); if (medalTemp == null) { return(ErrorCodes.Error_MedalMaterialNotFind); } if (medalTemp.MedalType == tbMedal.MedalType) { SameIndex = i; } } //移动包裹 var moveIndex = -1; if (SameIndex != -1) { moveIndex = SameIndex; } else if (FreeIndex != -1) { moveIndex = FreeIndex; } else { return(ErrorCodes.Error_MedalEquipFull); } //执行 var result = character.mBag.MoveItem(bagId, bagIndex, (int)eBagType.MedalUsed, moveIndex, 1); if (result != ErrorCodes.OK) { return(result); } character.mBag.RefreshMedal(); character.BooksChange(); putIndex = moveIndex; return(ErrorCodes.OK); }
public ErrorCodes SplitMedal(CharacterController character, int bagId, int bagIndex, int flag) { bool isHave = false; var bag = character.mBag.GetBag(bagId); int sumExp = 0; if (bagIndex >= 0) { var item = bag.GetItemByIndex(bagIndex); if (item == null) { return(ErrorCodes.Error_MedalMaterialNotFind); } if (item.GetId() == -1) { return(ErrorCodes.Error_MedalMaterialNotFind); } var medalTemp = item as MedalItem; if (medalTemp == null) { return(ErrorCodes.Error_MedalMaterialNotFind); } var tbItem = Table.GetMedal(item.GetId()); if (tbItem == null) { return(ErrorCodes.Error_MedalID); } sumExp += medalTemp.GetGiveExp(); bag.ReduceCountByIndex(medalTemp.GetIndex(), 1, eDeleteItemType.SplitMedal); if (bagId == (int)eBagType.MedalUsed) { character.mBag.RefreshMedal(); character.BooksChange(); } } else { foreach (var itemBase in bag.mLogics) { if (itemBase.GetId() == -1) { continue; } var medalTemp = itemBase as MedalItem; if (medalTemp == null) { return(ErrorCodes.Error_MedalMaterialNotFind); } var tbItem = Table.GetMedal(itemBase.GetId()); if (tbItem == null) { return(ErrorCodes.Error_MedalID); } //int paixu = 100000 ; // 0(是否可装备)00(品质)00(等级)00(经验)00(索引) if (0 == (flag & (1 << tbItem.Quality))) { continue; } isHave = true; sumExp += medalTemp.GetGiveExp() * itemBase.GetCount(); bag.ReduceCountByIndex(medalTemp.GetIndex(), itemBase.GetCount(), eDeleteItemType.SplitMedal); } if (!isHave) { // to show tips ... return(ErrorCodes.Error_Runr_Not_Resolve); } } character.mBag.AddRes(eResourcesType.HomeExp, sumExp, eCreateItemType.SplitMedal); return(ErrorCodes.OK); }