private static EPetSkillState PetSkillInherit(GameClient client, int srcPetID, int tarPetID, int userMoney, out string outProps)
        {
            outProps = "";
            EPetSkillState result;

            if (GameFuncControlManager.IsGameFuncDisabled(GameFuncType.System2Dot6))
            {
                result = EPetSkillState.EnoOpen;
            }
            else if (!PetSkillManager.IsGongNengOpened(client))
            {
                result = EPetSkillState.EnoOpen;
            }
            else
            {
                GoodsData srcGoodsData = DamonMgr.GetDamonGoodsDataByDbID(client, srcPetID);
                GoodsData tarGoodsData = DamonMgr.GetDamonGoodsDataByDbID(client, tarPetID);
                if (null == srcGoodsData)
                {
                    srcGoodsData = Global.GetGoodsByDbID(client, srcPetID);
                }
                else if (srcGoodsData.Site != 5000)
                {
                    return(EPetSkillState.EnoUsing);
                }
                if (null == tarGoodsData)
                {
                    tarGoodsData = Global.GetGoodsByDbID(client, tarPetID);
                }
                else if (tarGoodsData.Site != 5000)
                {
                    return(EPetSkillState.EnoUsing);
                }
                if (srcGoodsData == null || srcGoodsData.GCount <= 0 || tarGoodsData == null || tarGoodsData.GCount <= 0)
                {
                    result = EPetSkillState.EnoPet;
                }
                else
                {
                    if (1 == userMoney)
                    {
                        if (client.ClientData.UserMoney < PetSkillManager.JingLingChuanChengXiaoHaoZhuanShi && !HuanLeDaiBiManager.GetInstance().HuanledaibiEnough(client, PetSkillManager.JingLingChuanChengXiaoHaoZhuanShi))
                        {
                            return(EPetSkillState.EnoDiamond);
                        }
                    }
                    else if (Global.GetTotalBindTongQianAndTongQianVal(client) < PetSkillManager.JingLingChuanChengXiaoHaoJinBi)
                    {
                        return(EPetSkillState.EnoGold);
                    }
                    List <PetSkillInfo> srcSkillList = PetSkillManager.GetPetSkillInfo(srcGoodsData);
                    List <PetSkillInfo> tarSkillList = PetSkillManager.GetPetSkillInfo(tarGoodsData);
                    int pitLoop;
                    for (pitLoop = 1; pitLoop < 4; pitLoop++)
                    {
                        PetSkillInfo srcSkill = srcSkillList.Find((PetSkillInfo _g) => _g.Pit == pitLoop);
                        PetSkillInfo tarSkill = tarSkillList.Find((PetSkillInfo _g) => _g.Pit == pitLoop);
                        if (srcSkill == null || null == tarSkill)
                        {
                            return(EPetSkillState.EpitWrong);
                        }
                        if (srcSkill.PitIsOpen && !tarSkill.PitIsOpen)
                        {
                            return(EPetSkillState.EpitWrong);
                        }
                    }
                    if (1 == userMoney)
                    {
                        if (!GameManager.ClientMgr.SubUserMoney(Global._TCPManager.MySocketListener, Global._TCPManager.tcpClientPool, Global._TCPManager.TcpOutPacketPool, client, PetSkillManager.JingLingChuanChengXiaoHaoZhuanShi, "精灵技能传承", true, true, false, DaiBiSySType.JingLingJiNengChuanCheng))
                        {
                            return(EPetSkillState.EnoDiamond);
                        }
                    }
                    else if (!Global.SubBindTongQianAndTongQian(client, PetSkillManager.JingLingChuanChengXiaoHaoJinBi, "精灵技能传承"))
                    {
                        return(EPetSkillState.EnoGold);
                    }
                    int random = Global.GetRandomNumber(1, 101);
                    if (random > PetSkillManager.JingLingChuanChengGoodsRate)
                    {
                        result = EPetSkillState.EnoInheritFail;
                    }
                    else
                    {
                        long            returnMoHe   = PetSkillManager.DelGoodsReturnLingJing(tarGoodsData);
                        UpdateGoodsArgs tarGoodsArgs = new UpdateGoodsArgs
                        {
                            RoleID    = client.ClientData.RoleID,
                            DbID      = tarPetID,
                            WashProps = null
                        };
                        tarGoodsArgs.ElementhrtsProps = new List <int>();
                        for (int loop = 0; loop < tarSkillList.Count; loop++)
                        {
                            PetSkillInfo info = (loop < srcSkillList.Count) ? srcSkillList[loop] : tarSkillList[loop];
                            tarGoodsArgs.ElementhrtsProps.Add(info.PitIsOpen ? 1 : 0);
                            tarGoodsArgs.ElementhrtsProps.Add(info.Level);
                            tarGoodsArgs.ElementhrtsProps.Add((loop < srcSkillList.Count) ? info.SkillID : 0);
                        }
                        Global.UpdateGoodsProp(client, tarGoodsData, tarGoodsArgs, true);
                        UpdateGoodsArgs srcGoodsArgs = new UpdateGoodsArgs
                        {
                            RoleID    = client.ClientData.RoleID,
                            DbID      = srcPetID,
                            WashProps = null
                        };
                        srcGoodsArgs.ElementhrtsProps = new List <int>();
                        foreach (PetSkillInfo info in srcSkillList)
                        {
                            srcGoodsArgs.ElementhrtsProps.Add(info.PitIsOpen ? 1 : 0);
                            srcGoodsArgs.ElementhrtsProps.Add(1);
                            srcGoodsArgs.ElementhrtsProps.Add(0);
                        }
                        Global.UpdateGoodsProp(client, srcGoodsData, srcGoodsArgs, true);
                        GameManager.ClientMgr.ModifyMUMoHeValue(client, (int)returnMoHe, "精灵技能传承", true, true, false);
                        if (srcGoodsData.Using > 0 || tarGoodsData.Using > 0)
                        {
                            PetSkillManager.UpdateRolePetSkill(client);
                        }
                        outProps = string.Format("{0}:{1}", string.Join <int>(",", srcGoodsArgs.ElementhrtsProps.ToArray()), string.Join <int>(",", tarGoodsArgs.ElementhrtsProps.ToArray()));
                        result   = EPetSkillState.Success;
                    }
                }
            }
            return(result);
        }