//masterserver inform gameserver to start challenge void Packet47(NetIncomingMessage inmsg) { bool officiallyStarted; int fixtureID; bool botsEnabled; byte maxPlayers; int[] tID = new int[2]; string[] teamnames = new string[2]; bool[] isOfficialLeagueBotTeam = new bool[2]; byte[] selectedKit = new byte[2]; //0-1 (home or away colors) byte[] shirtstyle = new byte[2]; //0-9 (which mask is used) byte[,] shirtRgb = new byte[2, 24]; byte[,] shirtColorsH = new byte[4, 3]; byte[,] shirtColorsA = new byte[4, 3]; try { officiallyStarted = inmsg.ReadBoolean(); } catch { return; } try { fixtureID = inmsg.ReadInt32(); } catch { return; } //**** try { botsEnabled = inmsg.ReadBoolean(); } catch { return; } try { maxPlayers = inmsg.ReadByte(); } catch { return; } //**** for (int i = 0; i < 2; i++) { try { isOfficialLeagueBotTeam[i] = inmsg.ReadBoolean(); } catch { return; } try { tID[i] = inmsg.ReadInt32(); } catch { return; } try { teamnames[i] = inmsg.ReadString(); } catch { return; } try { selectedKit[i] = inmsg.ReadByte(); } catch { return; } try { shirtstyle[i] = inmsg.ReadByte(); } catch { return; } for (int j = 0; j < 24; j++) { try { shirtRgb[i, j] = inmsg.ReadByte(); } catch { return; } } } //data readed //"convert" shirtRgb->shirtColors //home int startID; int nextID = 0; if (selectedKit[0] == 0) { startID = 0; } else { startID = 12; } for (int j = 0; j < 4; j++) { for (int k = 0; k < 3; k++) { shirtColorsH[j, k] = shirtRgb[0, nextID + startID]; nextID++; } } //away nextID = 0; if (selectedKit[1] == 0) { startID = 0; } else { startID = 12; } for (int j = 0; j < 4; j++) { for (int k = 0; k < 3; k++) { shirtColorsA[j, k] = shirtRgb[1, nextID + startID]; nextID++; } } TeamData[] teams = new TeamData[2]; teams[0] = new TeamData(isOfficialLeagueBotTeam[0], tID[0], teamnames[0], "", shirtstyle[0], shirtColorsH); teams[1] = new TeamData(isOfficialLeagueBotTeam[1], tID[1], teamnames[1], "", shirtstyle[1], shirtColorsA); roomHandler.CreateChallengeRoom(officiallyStarted, fixtureID, teams[0], teams[1], botsEnabled, maxPlayers); //inform masterserver, that match created NetOutgoingMessage outmsg = client.CreateMessage(); outmsg.Write((byte)52); for (int i = 0; i < 2; i++) { outmsg.Write(tID[i]); outmsg.Write(teamnames[i]); } client.SendMessage(outmsg, NetDeliveryMethod.ReliableOrdered, 0); }
public void CreateChallengeRoom(bool officiallyStarted, int fixtureID, TeamData teams0, TeamData teams1, bool botsEnabled, byte maxPlayers) { lock (rooms) { rooms.Add(new RoomData(officiallyStarted, fixtureID, server, clientToMS, RoomType.Challenge, GetUniqueID(), teams0, teams1, botsEnabled, maxPlayers)); } }