public static SMsgPropCreateEntity_SC_OtherPlayer ParsePackage(Package package, int offset) { var structLength = Marshal.SizeOf(typeof(SMsgPropCreateEntity_SC_OtherPlayer)); var headLength = Marshal.SizeOf(typeof(SMsgPropCreateEntity_SC_Header)); var offsetBuffer = package.Data.Skip(offset).Take(structLength).ToArray(); SMsgPropCreateEntity_SC_OtherPlayer sMsgPropCreateEntity_SC_OtherPlayer = new SMsgPropCreateEntity_SC_OtherPlayer(); sMsgPropCreateEntity_SC_OtherPlayer.m_sMsg_Header = SMsgPropCreateEntity_SC_Header.ParsePackage(package, offset); int of = headLength; of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.ActorID); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.UID); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.MapID); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.m_playerX); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.m_playerY); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out sMsgPropCreateEntity_SC_OtherPlayer.m_name, 19); byte[] baseValues, playerUnitValues, playerValues; int baseValueSize = CommonTools.GetStructSize <SMsgPropCreateEntity_SC_BaseValue>(); int unitValueSize = CommonTools.GetStructSize <SMsgPropCreateEntity_SC_Player_UnitValue>(); int playValueSize = CommonTools.GetStructSize <SMsgPropCreateEntity_SC_OtherPlayer_PlayerValue>(); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out baseValues, baseValueSize); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out playerUnitValues, unitValueSize); of += PackageHelper.ReadData(offsetBuffer.Skip(of).ToArray(), out playerValues, playValueSize); sMsgPropCreateEntity_SC_OtherPlayer.BaseObjectValues = PackageHelper.BytesToStuct <SMsgPropCreateEntity_SC_BaseValue>(baseValues); sMsgPropCreateEntity_SC_OtherPlayer.UnitValues = PackageHelper.BytesToStuct <SMsgPropCreateEntity_SC_Player_UnitValue>(playerUnitValues); sMsgPropCreateEntity_SC_OtherPlayer.PlayerValues = PackageHelper.BytesToStuct <SMsgPropCreateEntity_SC_OtherPlayer_PlayerValue>(playerValues); //TraceUtil.Log("其他玩家收到:" + sMsgPropCreateEntity_SC_OtherPlayer.UnitValues.sMsgPropCreateEntity_SC_UnitVisibleValue.UNIT_FIELD_CURMP + " " + sMsgPropCreateEntity_SC_OtherPlayer.UnitValues.sMsgPropCreateEntity_SC_UnitVisibleValue.UNIT_FIELD_MAXMP); return(sMsgPropCreateEntity_SC_OtherPlayer); }
/// <summary> /// 暂时无法实现,好友信息里没有好友UID /// </summary> /// <param name="uid"></param> void UpdateRoleIcon(int uid) { TypeID typeID; var playerData = EntityController.Instance.GetEntityModel(uid, out typeID); SMsgPropCreateEntity_SC_OtherPlayer otherPlayerData = (SMsgPropCreateEntity_SC_OtherPlayer)playerData.EntityDataStruct; int vocationID = otherPlayerData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_VOCATION; int fashionID = otherPlayerData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_FASHION; var resData = CommonDefineManager.Instance.CommonDefineFile._dataTable.HeroIcon_BattleReward.FirstOrDefault(P => P.VocationID == vocationID && P.FashionID == fashionID); if (resData == null) { TraceUtil.Log(SystemModel.Common, TraceLevel.Error, "找不到角色头像,fashionID:" + fashionID); } //AvatarIcon.spriteName = resData.ResName; }
void UpdateHeroIcon(long uid) { bool isHero = uid == PlayerManager.Instance.FindHeroDataModel().UID; TypeID typeID; int fashionID = 0; int vocationID = 0; if (isHero) { var heroData = PlayerManager.Instance.FindHeroDataModel(); vocationID = heroData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_VOCATION; fashionID = heroData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_FASHION; } else { var playerData = EntityController.Instance.GetEntityModel(uid, out typeID); SMsgPropCreateEntity_SC_OtherPlayer otherPlayerData = (SMsgPropCreateEntity_SC_OtherPlayer)playerData.EntityDataStruct; vocationID = otherPlayerData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_VOCATION; fashionID = otherPlayerData.PlayerValues.PlayerCommonValue.PLAYER_FIELD_VISIBLE_FASHION; } //var resData = CommonDefineManager.Instance.CommonDefineFile._dataTable.HeroIcon_BattleReward.FirstOrDefault(P => P.VocationID == vocationID && P.FashionID == fashionID); //if (resData == null) { TraceUtil.Log(SystemModel.Common,TraceLevel.Error,"找不到角色头像,fashionID:" + fashionID); } //VocationIcon.spriteName = resData.ResName; }