Exemple #1
0
    /// <summary>
    /// 读取字节流(完整版)
    /// </summary>
    protected override void toReadBytesFull(BytesReadStream stream)
    {
        base.toReadBytesFull(stream);

        stream.startReadObj();

        BaseData dataT = stream.readDataFullNotNull();

        if (dataT != null)
        {
            if (dataT is PlayerRoleGroupExData)
            {
                this.data = (PlayerRoleGroupExData)dataT;
            }
            else
            {
                this.data = new PlayerRoleGroupExData();
                if (!(dataT.GetType().IsAssignableFrom(typeof(PlayerRoleGroupExData))))
                {
                    stream.throwTypeReadError(typeof(PlayerRoleGroupExData), dataT.GetType());
                }
                this.data.shadowCopy(dataT);
            }
        }
        else
        {
            this.data = null;
        }

        stream.endReadObj();
    }
Exemple #2
0
    /** 玩家群额外 */
    public void onGetRoleGroupEx(PlayerRoleGroupExData data)
    {
        readFromExData(data);

        evt.groupID = groupID;
        me.dispatch(GameEventType.RefreshRoleGroupEx, evt);
    }
    /// <summary>
    /// 复制(深拷贝)
    /// </summary>
    protected override void toCopy(BaseData data)
    {
        if (!(data is PlayerRoleGroupExData))
        {
            return;
        }

        PlayerRoleGroupExData mData = (PlayerRoleGroupExData)data;

        this.groupID = mData.groupID;

        this.exp = mData.exp;

        if (mData.members != null)
        {
            if (this.members != null)
            {
                this.members.clear();
                this.members.ensureCapacity(mData.members.size());
            }
            else
            {
                this.members = new LongObjectMap <PlayerRoleGroupMemberData>(mData.members.size());
            }

            LongObjectMap <PlayerRoleGroupMemberData> membersT = this.members;
            if (!mData.members.isEmpty())
            {
                PlayerRoleGroupMemberData[] membersVValues = mData.members.getValues();
                for (int membersVI = membersVValues.Length - 1; membersVI >= 0; --membersVI)
                {
                    PlayerRoleGroupMemberData membersV = membersVValues[membersVI];
                    if (membersV != null)
                    {
                        PlayerRoleGroupMemberData membersU;
                        if (membersV != null)
                        {
                            membersU = (PlayerRoleGroupMemberData)membersV.clone();
                        }
                        else
                        {
                            membersU = null;
                            nullObjError("membersU");
                        }

                        membersT.put(membersU.playerID, membersU);
                    }
                }
            }
        }
        else
        {
            this.members = null;
            nullObjError("members");
        }
    }
    /// <summary>
    /// 复制(潜拷贝)
    /// </summary>
    protected override void toShadowCopy(BaseData data)
    {
        if (!(data is PlayerRoleGroupExData))
        {
            return;
        }

        PlayerRoleGroupExData mData = (PlayerRoleGroupExData)data;

        this.groupID = mData.groupID;
        this.exp     = mData.exp;
        this.members = mData.members;
    }
Exemple #5
0
    /** 从附加数据读取 */
    protected void readFromExData(PlayerRoleGroupExData data)
    {
        _d.exp     = data.exp;
        _d.members = data.members;

        _selfData = _d.members.get(me.role.playerID);

        PlayerRoleGroupMemberData[] values;
        PlayerRoleGroupMemberData   v;

        for (int i = (values = _d.members.getValues()).Length - 1; i >= 0; --i)
        {
            if ((v = values[i]) != null)
            {
                if (v.title == RoleGroupTitleType.Leader)
                {
                    _leader = v;
                }
            }
        }
    }
    /// <summary>
    /// 是否数据一致
    /// </summary>
    protected override bool toDataEquals(BaseData data)
    {
        PlayerRoleGroupExData mData = (PlayerRoleGroupExData)data;

        if (this.groupID != mData.groupID)
        {
            return(false);
        }

        if (this.exp != mData.exp)
        {
            return(false);
        }

        if (mData.members != null)
        {
            if (this.members == null)
            {
                return(false);
            }
            if (this.members.size() != mData.members.size())
            {
                return(false);
            }
            LongObjectMap <PlayerRoleGroupMemberData> membersR = mData.members;
            if (!this.members.isEmpty())
            {
                long   membersKFreeValue = this.members.getFreeValue();
                long[] membersKKeys      = this.members.getKeys();
                PlayerRoleGroupMemberData[] membersVValues = this.members.getValues();
                for (int membersKI = membersKKeys.Length - 1; membersKI >= 0; --membersKI)
                {
                    long membersK = membersKKeys[membersKI];
                    if (membersK != membersKFreeValue)
                    {
                        PlayerRoleGroupMemberData membersV = membersVValues[membersKI];
                        PlayerRoleGroupMemberData membersU = membersR.get(membersK);
                        if (membersU != null)
                        {
                            if (membersV == null)
                            {
                                return(false);
                            }
                            if (!membersV.dataEquals(membersU))
                            {
                                return(false);
                            }
                        }
                        else
                        {
                            if (membersV != null)
                            {
                                return(false);
                            }
                        }
                    }
                }
            }
        }
        else
        {
            if (this.members != null)
            {
                return(false);
            }
        }

        return(true);
    }
Exemple #7
0
    /// <summary>
    /// 读取字节流(简版)
    /// </summary>
    protected override void toReadBytesSimple(BytesReadStream stream)
    {
        base.toReadBytesSimple(stream);

        this.data = (PlayerRoleGroupExData)stream.readDataSimpleNotNull();
    }
Exemple #8
0
    /// <summary>
    /// 回池
    /// </summary>
    protected override void toRelease(DataPool pool)
    {
        base.toRelease(pool);

        this.data = null;
    }