// ...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); }
//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(); }
//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); // }); }
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); }
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); }
public void Clear() { //this.TeamContext.byCurNum = 0; this = new SMsgTeamProp_SC(); }