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(); }
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(); }