Esempio n. 1
0
    // ...wTeamNum个(SMsgTeamProp_SC+队伍的上下文)


    public static SMsgTeamNum_SC ParsePackage(byte[] dataBuffer)
    {
        SMsgTeamNum_SC sMsgTeamNum = new SMsgTeamNum_SC();

        sMsgTeamNum.wTeamNum      = BitConverter.ToUInt16(dataBuffer, 0);
        sMsgTeamNum.SMsgTeamProps = new SMsgTeamProp_SC[sMsgTeamNum.wTeamNum];

        int offset = 0;

        //sMsgTeamNum.SMsgTeamProps.ApplyAllItem(p =>
        //    {
        //        //p = p.ParsePackage(dataBuffer, 0 + 2 + offset);
        //        //offset += p.wContextLen;
        //        offset += Marshal.SizeOf(p);
        //    });
        for (int i = 0; i < sMsgTeamNum.wTeamNum; i++)
        {
            sMsgTeamNum.SMsgTeamProps[i] = SMsgTeamProp_SC.ParsePackage(dataBuffer, 0 + 2 + offset);
            int memberNum = sMsgTeamNum.SMsgTeamProps[i].TeamMemberNum_SC.SMsgTeamPropMembers.Length;
            for (int j = 0; j < memberNum; j++)
            {
                offset += sMsgTeamNum.SMsgTeamProps[i].TeamMemberNum_SC.SMsgTeamPropMembers[j].wContextLen + 1 + 2; //加上每个队员信息长度
            }
            //sMsgTeamNum.SMsgTeamProps[i].TeamMemberNum_SC.SMsgTeamPropMembers.ApplyAllItem(p =>
            //    {
            //        offset += p.wContextLen + 1 + 2;    //加上每个队员信息长度
            //    });
            offset += 2;                                                //队员数量数据长度
            offset += sMsgTeamNum.SMsgTeamProps[i].wContextLen + 1 + 2; //队伍信息长度
        }

        return(sMsgTeamNum);
    }
Esempio n. 2
0
        //public void InitInfo(SMsgTeamProp_SC sMsgTeamProp, Transform guidParent)
        //{
        //    transform.parent = guidParent;
        //    transform.localPosition = Vector3.zero;
        //    transform.localScale = Vector3.one;

        //    this.SMsgTeamProp = sMsgTeamProp;
        //}

        public void UpdateInfo(SMsgTeamProp_SC sMsgTeamProp)
        {
            this.SMsgTeamProp = sMsgTeamProp;

            if (!gameObject.activeInHierarchy)
            {
                gameObject.SetActive(true);
            }
            //\read world team info

            //\读取队员信息
            int memberNum = SMsgTeamProp.TeamMemberNum_SC.wMemberNum;

            int listLength = TeamMemberItemList.Count;

            if (memberNum > TeamMemberItemList.Count)
            {
                for (int i = listLength; i < memberNum; i++)
                {
                    TeamMemberItem item = ((GameObject)Instantiate(ATeamMemberItem.gameObject)).GetComponent <TeamMemberItem>();
                    item.InitInfo(MemberTrans[i]);
                    TeamMemberItemList.Add(item);
                }
            }
            int memberNo = 0;

            TeamMemberItemList.ApplyAllItem(p =>
            {
                if (memberNo < memberNum)
                {
                    //p.UpdateInfo(SMsgTeamProp.);
                    p.UpdateInfo(SMsgTeamProp.TeamMemberNum_SC.SMsgTeamPropMembers[memberNo]);
                }
                else
                {
                    p.Close();
                }
                memberNo++;
            });

            //var ectypeConfig = EctypeConfigManager.Instance.EctypeSelectConfigList.SingleOrDefault(p => p.Value._lEctypeID == SMsgTeamProp.TeamContext.dwEctypeId).Value;
            //if (ectypeConfig != null)
            //    TranscriptName.text = LanguageTextManager.GetString(ectypeConfig._szName);
            //\临时
            //string difficultyName = "简单";
            //switch (SMsgTeamProp.TeamContext.byEctypeDifficulty)
            //{
            //    case 1:
            //        difficultyName = "普通";
            //        break;
            //}
            //DifficultyName.text = difficultyName;


            transform.name = "Team" + (mTeamID + 100).ToString();
        }
Esempio n. 3
0
    //private List<LocalTeamPropMember> m_MyTeamPropMemberList = new List<LocalTeamPropMember>();
    //public void RegisteMember(SMsgTeamProp_SC sMsgTeamProp)
    //{
    //    sMsgTeamProp.TeamMemberNum_SC.SMsgTeamPropMembers.ApplyAllItem(p =>
    //        {
    //            if (m_MemberList.Any(k => k.dwActorID != p.TeamMemberContext.dwActorID))
    //            {
    //                //如果没有相同的队员信息
    //                m_MemberList.Add(new LocalTeamPropMember(p));
    //            }
    //        });
    //}

    //注册队伍信息
    public void RegisteTeam(SMsgTeamProp_SC sMsgTeamProp)
    {
        //if(m_TeamList.Any(p => p.dwTeamID != sMsgTeamProp.TeamContext.dwId))
        //{
        //    //如果没有相同的队伍信息
        //    m_TeamList.Add(new LocalTeamProp(sMsgTeamProp.TeamContext));
        //}
        this.m_myTeamProp = sMsgTeamProp;
        //m_myTeamProp.TeamMemberNum_SC.SMsgTeamPropMembers.ApplyAllItem(p =>
        //    {
        //        TraceUtil.Log("队员id="+p.TeamMemberContext.dwActorID+ " ,当前血量="+p.TeamMemberContext.nCurHP+ " ,最大血量="+p.TeamMemberContext.nMaxHP);
        //    });
    }
Esempio n. 4
0
    public SMsgTeamMemberNum_SC TeamMemberNum_SC; //队员信息

    public static SMsgTeamProp_SC ParsePackage(byte[] dataBuffer, int offset)
    {
        SMsgTeamProp_SC sMsgTeamProp = new SMsgTeamProp_SC();

        sMsgTeamProp.nIsHero     = dataBuffer[offset];
        sMsgTeamProp.wContextLen = BitConverter.ToUInt16(dataBuffer, offset + 1);

        byte[] teamContextBuffer = dataBuffer.Skip(offset + 1 + 2).Take(sMsgTeamProp.wContextLen).ToArray();
        sMsgTeamProp.TeamContext = STeamContext.ParsePackage(teamContextBuffer);

        sMsgTeamProp.TeamMemberNum_SC = SMsgTeamMemberNum_SC.ParsePackage(dataBuffer, offset + 1 + 2 + sMsgTeamProp.wContextLen);

        return(sMsgTeamProp);
    }
Esempio n. 5
0
        void SetTeammateStatus(object obj)
        {
            SMsgTeamProp_SC sMsgTeamProp_SC = TeamManager.Instance.MyTeamProp;

            if (!TeamManager.Instance.IsTeamExist())
            {
                TeamleaderIcon.ChangeSprite(0);
                return;
            }
            foreach (SMsgTeamPropMember_SC child in sMsgTeamProp_SC.TeamMemberNum_SC.SMsgTeamPropMembers)
            {
                if (child.TeamMemberContext.dwActorID == TeamManager.Instance.MyTeamProp.TeamContext.dwCaptainId)
                {
                    if (PlayerManager.Instance.FindHeroDataModel().ActorID == (int)child.TeamMemberContext.dwActorID)
                    {
                        TeamleaderIcon.ChangeSprite(1);
                        return;
                    }
                }
            }
            TeamleaderIcon.ChangeSprite(0);
        }
Esempio n. 6
0
 public void Clear()
 {
     //this.TeamContext.byCurNum = 0;
     this = new SMsgTeamProp_SC();
 }