private static void ProcessPartyService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 1: reply = new RMCPacketResponsePartyService_GetInviteeList(); SendReply(udp, p, rmc, client, reply); break; case 4: reply = new RMCPacketResponsePartyService_GetInviteList(); SendReply(udp, p, rmc, client, reply); break; case 7: case 8: case 9: case 0xB: case 0xC: case 0xD: reply = new RMCPacketResponseEmpty(); SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X")); break; } }
private static void ProcessChatService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 0x5: reply = new RMCPacketResponseChatService_Method5(); SendReply(udp, p, rmc, client, reply); break; case 0x9: case 0xA: reply = new RMCPacketResponseEmpty(); SendReply(udp, p, rmc, client, reply); break; case 0xE: reply = new RMCPacketResponseChatService_GetPlayerStatuses(); SendReply(udp, p, rmc, client, reply); break; case 0x10: reply = new RMCPacketResponseChatService_Method10(); SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X")); break; } }
private static void ProcessPlayerProfileService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 0xF: reply = new RMCPacketResponsePlayerProfileService_MethodF(); SendReply(udp, p, rmc, client, reply); break; case 0x10: reply = new RMCPacketResponseEmpty(); SendReply(udp, p, rmc, client, reply); break; case 0x11: reply = new RMCPacketResponsePlayerProfileService_Method11(); SendReply(udp, p, rmc, client, reply); break; case 0x12: reply = new RMCPacketResponsePlayerProfileService_LoadCharacterProfiles(); List <GR5_Character> list = DBHelper.GetUserCharacters(client.PID); ((RMCPacketResponsePlayerProfileService_LoadCharacterProfiles)reply).Characters.AddRange(list); ((RMCPacketResponsePlayerProfileService_LoadCharacterProfiles)reply).PersonaID = client.PID; ((RMCPacketResponsePlayerProfileService_LoadCharacterProfiles)reply).Name = client.name; SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X")); break; } }
private static void ProcessAuthentication(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 2: RMCPacketRequestLoginCustomData h = (RMCPacketRequestLoginCustomData)rmc.header; switch (h.className) { case "UbiAuthenticationLoginCustomData": reply = new RMCPacketResponseEmpty(); ClientInfo user = DBHelper.GetUserByName(h.username); if (user != null) { if (user.pass == h.password) { reply = new RMCPacketResponseLoginCustomData(client.PID); client.name = h.username; client.pass = h.password; client.sessionKey = ((RMCPacketResponseLoginCustomData)reply).ticket.sessionKey; SendReply(udp, p, rmc, client, reply); } else { SendReply(udp, p, rmc, client, reply, true, 0x80030065); } } else { SendReply(udp, p, rmc, client, reply, true, 0x80030064); } break; default: WriteLog(1, "Error: Unknown RMC Packet Authentication Custom Data class " + h.className); break; } break; case 3: reply = new RMCPacketResponseRequestTicket(client.PID); SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown RMC Packet Authentication Method 0x" + rmc.methodID.ToString("X")); break; } }
private static void ProcessSkillsService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 1: reply = new RMCPacketResponseSkillsService_GetGameClass(); SendReply(udp, p, rmc, client, reply); break; case 2: reply = new RMCPacketResponseSkillsService_GetSkills(); SendReply(udp, p, rmc, client, reply); break; case 3: reply = new RMCPacketResponseSkillsService_Method3(); SendReply(udp, p, rmc, client, reply); break; case 4: reply = new RMCPacketResponseSkillsService_Method4(); SendReply(udp, p, rmc, client, reply); break; case 5: reply = new RMCPacketResponseSkillsService_GetModifiers(); SendReply(udp, p, rmc, client, reply); break; case 7: reply = new RMCPacketResponseEmpty(); SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X")); break; } }
private static void ProcessAchievementsService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client) { RMCPacketReply reply; switch (rmc.methodID) { case 2: reply = new RMCPacketResponseAchievementsService_Method2(); SendReply(udp, p, rmc, client, reply); break; case 4: reply = new RMCPacketResponseAchievementsService_Method4(); SendReply(udp, p, rmc, client, reply); break; case 9: reply = new RMCPacketResponseAchievementsService_Method9(); SendReply(udp, p, rmc, client, reply); break; case 0xC: reply = new RMCPacketResponseEmpty(); SendReply(udp, p, rmc, client, reply); break; case 0xD: reply = new RMCPacketResponseAchievementsService_MethodD(); SendReply(udp, p, rmc, client, reply); break; default: WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X")); break; } }