bool CheckNeedSaveTip()
    {
        bool needTip = false;

        CustomCharactor.CustomData _data = CreateCustomData();

        List <CustomCharactor.CustomData> DList = CustomDataMgr.Instance.CustomDataList;

        if (DList.Count != 0)
        {
            foreach (CustomCharactor.CustomData item in DList)
            {
                if (CompareCustomData(_data, item))
                {
                    needTip = true;
                    break;
                }
            }
        }
        else
        {
            needTip = true;
        }
        return(needTip);
    }
 private CustomCharactor.CustomData CreateCustomData()
 {
     CustomCharactor.CustomData customData = new CustomCharactor.CustomData();
     customData.headIcon = PeViewStudio.TakePhoto(mCurrent.gameObject, 64, 64, PeViewStudio.s_HeadPhotoPos, PeViewStudio.s_HeadPhotoRot);
     byte[] buf = mCurrent.mAppearData.Serialize();
     customData.appearData = new AppearData();
     customData.appearData.Deserialize(buf);
     customData.sex            = (Sex == ESex.Male) ? CustomCharactor.ESex.Male : CustomCharactor.ESex.Female;
     customData.nudeAvatarData = new CustomCharactor.AvatarData(mCurrent.mNude);
     return(customData);
 }
    bool CompareCustomData(CustomCharactor.CustomData _new, CustomCharactor.CustomData _old)
    {
        bool difference = false;

        //lz-2016.10.16 【错误 #4473】空对象
        if (null != _new && null != _new.appearData && null != _old && null != _old.appearData)
        {
            AppearData newapp = _new.appearData;
            AppearData oldapp = _old.appearData;
            //color
            if (newapp.mEyeColor != oldapp.mEyeColor)
            {
                difference = true;
            }
            else if (newapp.mLipColor != oldapp.mLipColor)
            {
                difference = true;
            }
            else if (newapp.mSkinColor != oldapp.mSkinColor)
            {
                difference = true;
            }
            else if (newapp.mHairColor != oldapp.mHairColor)
            {
                difference = true;
            }

            //lz-2016.10.16 【错误 #4473】空对象
            if (null != mScrollItemList && mScrollItemList.Count > 0)
            {
                //weight
                for (int i = 0; i < mScrollItemList.Count; i++)
                {
                    float newweight = newapp.GetWeight(mScrollItemList[i].mType);
                    float oldweight = oldapp.GetWeight(mScrollItemList[i].mType);
                    if (!Mathf.Approximately(newweight, oldweight))
                    {
                        difference = true;
                        break;
                    }
                }
            }

            //sex
            if (_new.sex != _old.sex)
            {
                difference = true;
            }
        }

        return(difference);
    }
    void LoadAppearData(CustomCharactor.CustomData mCustomData)
    {
        if (mCustomData == null)
        {
            return;
        }

        Sex = (mCustomData.sex == CustomCharactor.ESex.Male) ? ESex.Male : ESex.Female;
        ChangeSex();

        mCurrent.mAppearData = mCustomData.appearData;
        mCurrent.mNude       = mCustomData.nudeAvatarData;

        ResetBuildUIValue();
        RebuildModel();
    }
Esempio n. 5
0
    protected void RPC_S2C_AvatarData(uLink.BitStream stream, uLink.NetworkMessageInfo info)
    {
        CreateAi();

        if (ExternId >= PeEntityCreator.HumanMonsterMask)
        {
            byte[] customData = stream.Read <byte[]>();

            CustomCharactor.CustomData charactorData = new CustomCharactor.CustomData();
            charactorData.Deserialize(customData);

            if (null != _entity)
            {
                PeEntityCreator.ApplyCustomCharactorData(_entity, charactorData);
            }
        }

        RPCServer(EPacketType.PT_AI_ExternData);
    }
 bool SaveAppearData()
 {
     CustomCharactor.CustomData customData = CreateCustomData();
     return(CustomDataMgr.Instance.SaveData(customData));
 }