コード例 #1
0
ファイル: Protocol.cs プロジェクト: RaidAndFade/Banshee
        public static void initTCP()
        {
            packets[0x01] = new x01PINGFROMHOST();
            packets[0x04] = new x04SLOTINFOJOIN();
            packets[0x05] = new x05REJECTJOIN();
            packets[0x06] = new x06PLAYERINFO();
            packets[0x07] = new x07PLAYERLEAVE();
            packets[0x08] = new x08OTHERGAMELOADED();
            packets[0x09] = new x09SLOTINFO();
            packets[0x0A] = new x0aCOUNTDOWNSTART();
            packets[0x0B] = new x0bCOUNTDOWNEND();
            packets[0x0c] = new x0cACTIONBROADCAST();
            packets[0x0F] = new x0fCHATFROMHOST();

            packets[0x1E] = new x1eJOINREQUEST();

            packets[0x21] = new x21PLAYERLEAVEREQ();
            packets[0x23] = new x23OWNGAMELOADED();
            packets[0x26] = new x26CLIENTACTION();
            packets[0x27] = new x27CLIENTKEEPALIVE();
            packets[0x28] = new x28CHATTOHOST();
            packets[0x3d] = new x3dMAPCHECK();

            packets[0x42] = new x42MAPSIZEVERIFY();
            packets[0x46] = new x46PONGTOHOST();
            packets[0x48] = new x48EXTRAACTIONBROADCAST();
        }
コード例 #2
0
        public void ProcessGameActions()
        {
            gameSyncCount++;

            if (actionList.Count == 0)
            {
                x0cACTIONBROADCAST nullab = new x0cACTIONBROADCAST();
                nullab.actions      = new GameAction[0];
                nullab.sendInterval = (short)tickrate; //meme?
                SendAll(nullab);
                return;
            }

            List <GameAction> subactions = new List <GameAction>();
            int subactionlen             = 0;

            GameAction ac = actionList.First();

            actionList.RemoveAt(0);
            subactions.Add(ac);
            subactionlen += ac.GetLength();

            while (actionList.Count > 0)
            {
                ac = actionList.First();
                actionList.RemoveAt(0);
                if (subactionlen + ac.GetLength() > 1452) //1460-8(header)
                {
                    x48EXTRAACTIONBROADCAST eab = new x48EXTRAACTIONBROADCAST();
                    eab.actions = subactions.ToList();
                    SendAll(eab);
                    subactions.Clear();
                    subactionlen = 0;
                }
                subactions.Add(ac);
                subactionlen += ac.GetLength();
            }
            x0cACTIONBROADCAST ab = new x0cACTIONBROADCAST();

            ab.actions      = subactions.ToArray();
            ab.sendInterval = (short)tickrate; //meme?
            SendAll(ab);

            subactions.Clear();
        }