Exemple #1
0
 private void SampleFrameSyncData()
 {
     if ((Singleton <FrameSynchr> .instance.bActive && ((Singleton <FrameSynchr> .instance.CurFrameNum % 500) == 0)) && Singleton <BattleLogic> .instance.isFighting)
     {
         List <PoolObjHandle <ActorRoot> > heroActors = Singleton <GameObjMgr> .instance.HeroActors;
         int   num  = 1 + (heroActors.Count * 5);
         int[] src  = new int[num];
         int   num2 = 0;
         src[num2++] = (int)Singleton <FrameSynchr> .instance.CurFrameNum;
         for (int i = 0; i < heroActors.Count; i++)
         {
             PoolObjHandle <ActorRoot> handle = heroActors[i];
             ActorRoot root = handle.handle;
             src[num2++] = (int)root.ObjID;
             src[num2++] = root.location.x;
             src[num2++] = root.location.y;
             src[num2++] = root.location.z;
             src[num2++] = (int)root.ActorControl.myBehavior;
         }
         byte[] dst = new byte[num * 4];
         Buffer.BlockCopy(src, 0, dst, 0, dst.Length);
         MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
         provider.Initialize();
         provider.TransformFinalBlock(dst, 0, dst.Length);
         ulong num4 = (ulong)BitConverter.ToInt64(provider.get_Hash(), 0);
         ulong num5 = (ulong)BitConverter.ToInt64(provider.get_Hash(), 8);
         ulong num6 = num4 ^ num5;
         CSPkg msg  = NetworkModule.CreateDefaultCSPKG(0x500);
         msg.stPkgData.stRelayHashChk.dwKFrapsNo   = Singleton <FrameSynchr> .instance.CurFrameNum;
         msg.stPkgData.stRelayHashChk.ullHashToChk = num6;
         Singleton <NetworkModule> .instance.SendGameMsg(ref msg, 0);
     }
 }
Exemple #2
0
        private void SampleFrameSyncData()
        {
            if (Singleton <FrameSynchr> .get_instance().bActive&& Singleton <FrameSynchr> .get_instance().CurFrameNum % this.HashCheckFreq == 0u && Singleton <BattleLogic> .get_instance().isFighting&& !Singleton <WatchController> .GetInstance().IsWatching)
            {
                List <PoolObjHandle <ActorRoot> > heroActors = Singleton <GameObjMgr> .get_instance().HeroActors;

                int   num   = 1 + heroActors.get_Count() * 7 + 1;
                int[] array = new int[num];
                int   num2  = 0;
                array[num2++] = (int)Singleton <FrameSynchr> .get_instance().CurFrameNum;

                for (int i = 0; i < heroActors.get_Count(); i++)
                {
                    ActorRoot handle = heroActors.get_Item(i).get_handle();
                    array[num2++] = (int)handle.ObjID;
                    array[num2++] = handle.location.x;
                    array[num2++] = handle.location.y;
                    array[num2++] = handle.location.z;
                    array[num2++] = handle.ValueComponent.actorHp;
                    array[num2++] = handle.ValueComponent.actorHpTotal;
                    array[num2++] = (int)(handle.ActorControl.myBehavior | (ObjBehaviMode)(((!handle.HorizonMarker.IsVisibleFor(1)) ? 0 : 1) << 5) | (ObjBehaviMode)(((!handle.HorizonMarker.IsVisibleFor(2)) ? 0 : 1) << 6));
                }
                array[num2++] = Singleton <GameObjMgr> .GetInstance().GameActors.get_Count();

                byte[] array2 = new byte[num * 4];
                Buffer.BlockCopy(array, 0, array2, 0, array2.Length);
                MD5CryptoServiceProvider mD5CryptoServiceProvider = new MD5CryptoServiceProvider();
                mD5CryptoServiceProvider.Initialize();
                mD5CryptoServiceProvider.TransformFinalBlock(array2, 0, array2.Length);
                ulong num3         = (ulong)BitConverter.ToInt64(mD5CryptoServiceProvider.get_Hash(), 0);
                ulong num4         = (ulong)BitConverter.ToInt64(mD5CryptoServiceProvider.get_Hash(), 8);
                ulong ullHashToChk = num3 ^ num4;
                CSPkg cSPkg        = NetworkModule.CreateDefaultCSPKG(1280u);
                cSPkg.stPkgData.get_stRelayHashChk().dwKFrapsNo = Singleton <FrameSynchr> .get_instance().CurFrameNum;

                cSPkg.stPkgData.get_stRelayHashChk().ullHashToChk = ullHashToChk;
                if (Singleton <GamePlayerCenter> .get_instance().GetHostPlayer() != null)
                {
                    CampInfo campInfoByCamp = Singleton <BattleStatistic> .GetInstance().GetCampInfoByCamp(Singleton <GamePlayerCenter> .get_instance().GetHostPlayer().PlayerCamp);

                    int            headPoints = campInfoByCamp.HeadPoints;
                    COM_PLAYERCAMP campType;
                    if (campInfoByCamp.campType == 1)
                    {
                        campType = 2;
                    }
                    else
                    {
                        campType = 1;
                    }
                    CampInfo campInfoByCamp2 = Singleton <BattleStatistic> .GetInstance().GetCampInfoByCamp(campType);

                    int headPoints2      = campInfoByCamp2.HeadPoints;
                    int iCampKillCntDiff = headPoints - headPoints2;
                    cSPkg.stPkgData.get_stRelayHashChk().iCampKillCntDiff = iCampKillCntDiff;
                }
                Singleton <NetworkModule> .get_instance().SendGameMsg(ref cSPkg, 0u);
            }
        }
Exemple #3
0
 public void ConnectLobby()
 {
     if (this.m_connectIndex < 0)
     {
         int    num   = 1;
         object param = null;
         if (this.ParseNodeAppAttr(this.SelectedTdir.attr, TdirNodeAttrType.UseDeviceIDChooseSvr, ref param))
         {
             num = (int)param;
         }
         if ((num == 1) && !string.IsNullOrEmpty(SystemInfo.deviceUniqueIdentifier))
         {
             byte[] bytes = Encoding.ASCII.GetBytes(SystemInfo.deviceUniqueIdentifier);
             MD5CryptoServiceProvider provider = new MD5CryptoServiceProvider();
             provider.Initialize();
             provider.TransformFinalBlock(bytes, 0, bytes.Length);
             ulong num2 = (ulong)BitConverter.ToInt64(provider.get_Hash(), 0);
             ulong num3 = (ulong)BitConverter.ToInt64(provider.get_Hash(), 8);
             this.m_connectIndex = (int)(num2 ^ num3);
             if (this.m_connectIndex < 0)
             {
                 this.m_connectIndex *= -1;
             }
         }
         else
         {
             this.m_connectIndex = UnityEngine.Random.Range(0, 0x2710);
         }
         this.m_connectIndex = this.m_connectIndex % MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs.Count;
     }
     else
     {
         this.m_connectIndex++;
         this.m_connectIndex = this.m_connectIndex % MonoSingleton <TdirMgr> .GetInstance().SelectedTdir.addrs.Count;
     }
     Singleton <LobbySvrMgr> .GetInstance().ConnectServerWithTdirDefault(this.m_connectIndex);
 }