private static EPetSkillState PetSkillUp(GameClient client, int petID, int pit) { EPetSkillState result; if (!PetSkillManager.IsGongNengOpened(client)) { result = EPetSkillState.EnoOpen; } else { GoodsData goodsData = DamonMgr.GetDamonGoodsDataByDbID(client, petID); if (goodsData == null || goodsData.GCount <= 0) { result = EPetSkillState.EnoPet; } else if (goodsData.Site != 5000) { result = EPetSkillState.EnoUsing; } else if (pit < 1 || pit > 4) { result = EPetSkillState.EpitWrong; } else { List <PetSkillInfo> petSkillList = PetSkillManager.GetPetSkillInfo(goodsData); PetSkillInfo skillInfo = petSkillList.Find((PetSkillInfo _g) => _g.Pit == pit); if (!skillInfo.PitIsOpen) { result = EPetSkillState.EpitNoOpen; } else if (skillInfo.SkillID <= 0) { result = EPetSkillState.EpitSkillNull; } else { int maxLevel = PetSkillManager.GetPsUpMaxLevel(); if (skillInfo.Level >= maxLevel) { result = EPetSkillState.ElevelMax; } else { int oldLevel = skillInfo.Level; int nextLevel = skillInfo.Level + 1; int lingJingNeed = (int)PetSkillManager.GetPsUpCost(nextLevel); long lingjingHave = (long)GameManager.ClientMgr.GetMUMoHeValue(client); if (lingjingHave < (long)lingJingNeed) { result = EPetSkillState.EnoLingJing; } else { GameManager.ClientMgr.ModifyMUMoHeValue(client, -lingJingNeed, "精灵技能升级", true, true, false); skillInfo.Level = nextLevel; UpdateGoodsArgs updateGoodsArgs = new UpdateGoodsArgs { RoleID = client.ClientData.RoleID, DbID = petID, WashProps = null }; updateGoodsArgs.ElementhrtsProps = new List <int>(); foreach (PetSkillInfo info in petSkillList) { updateGoodsArgs.ElementhrtsProps.Add(info.PitIsOpen ? 1 : 0); updateGoodsArgs.ElementhrtsProps.Add(info.Level); updateGoodsArgs.ElementhrtsProps.Add(info.SkillID); } Global.UpdateGoodsProp(client, goodsData, updateGoodsArgs, true); PetSkillManager.UpdateRolePetSkill(client); EventLogManager.AddPetSkillEvent(client, LogRecordType.PetSkill, EPetSkillLog.Up, new object[] { petID, goodsData.GoodsID, pit, oldLevel, nextLevel }); result = EPetSkillState.Success; } } } } } return(result); }