private void handleRecvChat(PR2Packet m_Pkt) { if (m_Pkt.opCode.Equals("chat")) { String m_User = m_Pkt.data[0]; String m_Chat = m_Pkt.data[2]; Console.WriteLine("Chat message from " + m_User + ":" + m_Chat); } }
private void handlePacket(PR2Packet m_Pkt) { m_Event(m_Pkt); /* Console.Write("Packet opCode: " + m_Pkt.opCode + " Data:"); * for(int i = 0; i < m_Pkt.data.Length; i++) * Console.Write(m_Pkt.data[i] + ","); * Console.Write("\n");*/ }
private void handleRecvLoginID(PR2Packet m_Pkt) { if (m_Pkt.opCode.Equals("setLoginID")) { String m_Result = HttpHandler.Send(user, pass, Int32.Parse(m_Pkt.data[0]), server_id); pass = ""; dynamic m_Exp = new ExpandoObject(); m_Exp = JsonConvert.DeserializeObject(m_Result); token = m_Exp.token; m_Level = new LevelHandler(HttpHandler.getCampaign(token)); Send("get_customize_info`", null); Send("set_chat_room`", new String[] { "main" }); Send("set_right_room`", new String[] { "campaign" }); m_Level.WriteLevels(true); } }
private void ReceiveCallback(IAsyncResult result) { StateObject m_Result = (StateObject)result.AsyncState; int byteToRead = EndReceive(result); if (byteToRead > 0) { using (MemoryStream stream = new MemoryStream(m_Result.buffer)) { using (BinaryReader read = new BinaryReader(stream)) { while (true) { byte[] buf = new byte[4096]; int i = 0; while (read.PeekChar() != '\u0004' && i < buf.Length) { buf[i++] = read.ReadByte(); } String m_Pkt = Encoding.UTF8.GetString(buf, 0, i); String[] m_Vars = m_Pkt.Split('`'); String m_Hash = m_Vars[0]; int m_Write = Int32.Parse(m_Vars[1]); PR2Packet pack = new PR2Packet(); pack.opCode = m_Vars[2]; pack.data = new String[m_Vars.Length - 2]; for (int k = 3; k < m_Vars.Length; k++) { pack.data[k - 3] = m_Vars[k]; } handlePacket(pack); read.ReadByte(); var a = Int32.Parse(read.PeekChar().ToString()); if (a == 0 || i >= buf.Length) { break; } } } } m_Result.buffer = new byte[StateObject.BufferSize]; } BeginReceive(m_Result.buffer, 0, StateObject.BufferSize, 0, new AsyncCallback(ReceiveCallback), m_Result); }
private void handleRecvSlot(PR2Packet m_Pkt) { if (m_Pkt.opCode.Contains("fillSlot")) { String m_LevelData = m_Pkt.opCode.Substring(8); String[] m_Data = m_LevelData.Split("_"); int m_LevelID = Int32.Parse(m_Data[0]); short slot = short.Parse(m_Pkt.data[0]); string name = m_Pkt.data[1]; int rank = Int32.Parse(m_Pkt.data[2]); m_Level.updateLevelSlot(slot, name, rank, m_LevelID); } else if (m_Pkt.opCode.Contains("clearSlot")) { String m_LevelData = m_Pkt.opCode.Substring(9); String[] m_Data = m_LevelData.Split("_"); short slot = short.Parse(m_Pkt.data[0]); int m_LevelID = Int32.Parse(m_Data[0]); m_Level.updateLevelSlot(slot, "", -1, m_LevelID); } }