Exemple #1
0
        public override void Deserialize(System.IO.BinaryReader r)
        {
            m_Inited = true;

            m_EIdentity = (EIdentity)r.ReadInt32();

            InitData(m_EIdentity);

            int count = r.ReadInt32();

            for (int i = 0; i < count; i++)
            {
                int typeIndex = r.ReadInt32();
                int size      = r.ReadInt32();
                if (size > 0)
                {
                    if (null != m_AbnormalList[typeIndex])
                    {
                        m_AbnormalList[typeIndex].Deserialize(r.ReadBytes(size));
                    }
                    else
                    {
                        r.ReadBytes(size);
                    }
                }
            }
        }
        public override void Deserialize(System.IO.BinaryReader r)
        {
            base.Deserialize(r);
            invincible   = r.ReadBoolean();
            sex          = (PeSex)r.ReadInt32();
            m_OwnerID    = r.ReadInt32();
            m_Race       = (ERace)r.ReadInt32();
            m_Identity   = (EIdentity)r.ReadInt32();
            m_ItemDropId = r.ReadInt32();

            if (Entity.version < PeEntity.VERSION_0002)
            {
                int entityPrototype   = r.ReadInt32();
                int entityPrototypeId = r.ReadInt32();

                if (entityPrototype != -1)
                {
                    Entity.entityProto = new EntityProto()
                    {
                        proto   = (EEntityProto)entityPrototype,
                        protoId = entityPrototypeId
                    };
                }
            }
        }
Exemple #3
0
        public override void Start()
        {
            base.Start();

            if (!m_Inited)
            {
                m_Net = Entity.GetCmpt <NetCmpt>();
                if (null != Entity.commonCmpt)
                {
                    m_EIdentity = Entity.commonCmpt.Identity;
                }
                InitData(m_EIdentity);
            }
        }
Exemple #4
0
        void InitData(EIdentity eIdentity)
        {
            m_AbnormalList = new PEAbnormal_N[(int)PEAbnormalType.Max];
            if (PeGameMgr.IsBuild || PeGameMgr.playerType == PeGameMgr.EPlayerType.Tutorial)
            {
                return;
            }
            int mask = 0;

            switch (eIdentity)
            {
            case EIdentity.Player:
                mask = 1;
                break;

            case EIdentity.Npc:
                mask = 2;
                break;

            case EIdentity.Neutral:
                mask = 4;
                break;
            }

            for (int type = 1; type < (int)PEAbnormalType.Max; type++)
            {
                AbnormalData data = AbnormalData.GetData((PEAbnormalType)type);
                if (null != data && (data.target & mask) == mask)
                {
                    AddAbnormal((PEAbnormalType)type, data);
                }
            }

            if (null != Entity.aliveEntity)
            {
                Entity.aliveEntity.evtOnBuffAdd    += OnBuffAdd;
                Entity.aliveEntity.evtOnBuffRemove += OnBuffRemove;
            }

            PlayerPackageCmpt playercmpt = Entity.packageCmpt as PlayerPackageCmpt;

            if (null != playercmpt)
            {
                playercmpt.getItemEventor.Subscribe(OnItemAdd);
            }
        }
Exemple #5
0
        public override void Serialize(System.IO.BinaryWriter w)
        {
            if (!m_Inited)
            {
                m_Net = Entity.GetCmpt <NetCmpt>();
                if (null != Entity.commonCmpt)
                {
                    m_EIdentity = Entity.commonCmpt.Identity;
                }
                InitData(m_EIdentity);
            }

            // EIdentity
            w.Write((int)m_EIdentity);

            List <PEAbnormalType> saveType = GetActiveAbnormalList();

            // Abnormal count
            w.Write(saveType.Count);

            // Abnormal
            for (int i = 0; i < saveType.Count; i++)
            {
                //WriteType
                w.Write((int)m_AbnormalList[(int)saveType[i]].type);

                byte[] data = m_AbnormalList[(int)saveType[i]].Serialize();
                if (null == data)
                {
                    w.Write(0);
                }
                else
                {
                    w.Write(data.Length);
                    w.Write(data);
                }
            }
        }
Exemple #6
0
 public void SetId(EIdentity id)
 {
     this.id = id;
 }