Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- //GR5_Persona.cs
- public class GR5_Persona
- {
- public uint PersonaID;
- public string Name;
- public uint PortraitID;
- public uint DecoratorID;
- public uint AvatarBackgroundColor;
- public uint GRCash;
- public uint IGC;
- public uint AchievementPoints;
- public byte LastUsedCharacterID;
- public uint MaxInventorySlot;
- public uint MaxScrapYardSlot;
- public uint GhostRank;
- public uint Flag;
- public List<GR5_Character> Characters = new List<GR5_Character>();
- public void ToBuffer()
- {
- MemoryStream m = new MemoryStream();
- Helper.WriteU32(m, PersonaID);
- Helper.WriteString(m, Name);
- Helper.WriteU32(m, PortraitID);
- Helper.WriteU32(m, DecoratorID);
- Helper.WriteU32(m, AvatarBackgroundColor);
- Helper.WriteU32(m, GRCash);
- Helper.WriteU32(m, IGC);
- Helper.WriteU32(m, AchievementPoints);
- Helper.WriteU8(m, LastUsedCharacterID);
- Helper.WriteU32(m, MaxInventorySlot);
- Helper.WriteU32(m, MaxScrapYardSlot);
- Helper.WriteU32(m, GhostRank);
- Helper.WriteU32(m, Flag);
- Helper.WriteU32(m, (uint)Characters.Count);
- foreach (GR5_Character c in Characters)
- c.toBuffer(m);
- }
- }
- //DBHelper.cs - changed name from GetCharacterProfiles to GetPersonas
- public static List<GR5_Persona> GetPersonas(uint pid)
- {
- List<GR5_Persona> result = new List<GR5_Persona>();
- List<List<string>> results = GetQueryResults("SELECT * FROM characterprofiles WHERE pid=" + pid);
- foreach (List<string> entry in results)
- {
- GR5_Persona p = new GR5_Persona();
- p.PortraitID = Convert.ToUInt32(entry[3]);
- p.DecoratorID = Convert.ToUInt32(entry[4]);
- p.AvatarBackgroundColor = Convert.ToUInt32(entry[5]);
- p.GRCash = Convert.ToUInt32(entry[6]);
- p.IGC = Convert.ToUInt32(entry[7]);
- p.AchievementPoints = Convert.ToUInt32(entry[8]);
- p.LastUsedCharacterID = Convert.ToByte(entry[9]);
- p.MaxInventorySlot = Convert.ToUInt32(entry[10]);
- p.MaxScrapYardSlot = Convert.ToUInt32(entry[11]);
- p.GhostRank = Convert.ToUInt32(entry[12]);
- p.Flag = Convert.ToUInt32(entry[13]);
- p.Characters = GetCharacters(pid, Convert.ToUInt32(entry[0]));
- result.Add(p);
- }
- return result;
- }
- //RMCPacketResponsePlayerProfileService_LoadCharacterProfiles.cs
- public class RMCPacketResponsePlayerProfileService_LoadCharacterProfiles : RMCPacketReply
- {
- public List<GR5_Persona> personas = new List<GR5_Persona>();
- public RMCPacketResponsePlayerProfileService_LoadCharacterProfiles(ClientInfo client)
- {
- personas = DBHelper.GetPersonas(client.PID);
- }
- public override byte[] ToBuffer()
- {
- MemoryStream m = new MemoryStream();
- GR5_Persona p = personas[0];
- p.ToBuffer();
- return m.ToArray();
- }
- public override string ToString()
- {
- return "[RMCPacketResponsePlayerProfileService_LoadCharacterProfiles]";
- }
- public override string PayloadToString()
- {
- return "";
- }
- }
- //RMC.cs
- private static void ProcessPlayerProfileService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client)
- {
- RMCPacketReply reply;
- switch (rmc.methodID)
- {
- case 2:
- reply = new RMCPacketResponseEmpty();
- break;
- 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(client);
- SendReply(udp, p, rmc, client, reply);
- break;
- default:
- WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X"));
- break;
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement