public static void LobbyError(this GameSession client, string message, bool isNow = true) { using (GameServerPacket join = new GameServerPacket(StocMessage.JoinGame)){ join.Write(0U); join.Write((byte)0); join.Write((byte)0); join.Write(0); join.Write(0); join.Write(0); // C++ padding: 5 bytes + 3 bytes = 8 bytes for (int i = 0; i < 3; i++) { join.Write((byte)0); } join.Write(0); join.Write((byte)0); join.Write((byte)0); join.Write((short)0); client.Send(join, false); } using (GameServerPacket enter = new GameServerPacket(StocMessage.HsPlayerEnter)){ enter.WriteUnicode("[err]" + message, 20); enter.Write((byte)0); client.Send(enter, isNow); } }
public static void ServerMessage(this GameSession client, string msg, PlayerType type = PlayerType.Yellow, bool isNow = true) { string finalmsg = "[Server] " + msg; using (GameServerPacket packet = new GameServerPacket(StocMessage.Chat)){ packet.Write((short)type); packet.WriteUnicode(finalmsg, finalmsg.Length + 1); client.Send(packet, isNow); } }
public static void OnChat(GameSession client, GameClientPacket packet) { if (!client.IsAuthentified) { return; } string msg = packet.ReadUnicode(256); if (client.Game == null) { return; } if (!client.OnChatCommand(msg)) { using (GameServerPacket chat = new GameServerPacket(StocMessage.Chat)){ chat.Write((short)client.Type); chat.WriteUnicode(msg, msg.Length + 1); client.Game.SendToAllBut(chat, client); } } }