예제 #1
0
    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);
    }
예제 #2
0
    /// <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;
    }
예제 #3
0
        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;
        }