Advertisement
Guest User

Untitled

a guest
Apr 4th, 2020
277
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
C# 4.80 KB | None | 0 0
  1. //GR5_Persona.cs
  2.     public class GR5_Persona
  3.     {
  4.         public uint PersonaID;
  5.         public string Name;
  6.         public uint PortraitID;
  7.         public uint DecoratorID;
  8.         public uint AvatarBackgroundColor;
  9.         public uint GRCash;
  10.         public uint IGC;
  11.         public uint AchievementPoints;
  12.         public byte LastUsedCharacterID;
  13.         public uint MaxInventorySlot;
  14.         public uint MaxScrapYardSlot;
  15.         public uint GhostRank;
  16.         public uint Flag;
  17.         public List<GR5_Character> Characters = new List<GR5_Character>();
  18.         public void ToBuffer()
  19.         {
  20.             MemoryStream m = new MemoryStream();
  21.             Helper.WriteU32(m, PersonaID);
  22.             Helper.WriteString(m, Name);
  23.             Helper.WriteU32(m, PortraitID);
  24.             Helper.WriteU32(m, DecoratorID);
  25.             Helper.WriteU32(m, AvatarBackgroundColor);
  26.             Helper.WriteU32(m, GRCash);
  27.             Helper.WriteU32(m, IGC);
  28.             Helper.WriteU32(m, AchievementPoints);
  29.             Helper.WriteU8(m, LastUsedCharacterID);
  30.             Helper.WriteU32(m, MaxInventorySlot);
  31.             Helper.WriteU32(m, MaxScrapYardSlot);
  32.             Helper.WriteU32(m, GhostRank);
  33.             Helper.WriteU32(m, Flag);
  34.             Helper.WriteU32(m, (uint)Characters.Count);
  35.             foreach (GR5_Character c in Characters)
  36.                 c.toBuffer(m);
  37.         }
  38.     }
  39.  
  40. //DBHelper.cs - changed name from GetCharacterProfiles to GetPersonas
  41.  
  42.         public static List<GR5_Persona> GetPersonas(uint pid)
  43.         {
  44.             List<GR5_Persona> result = new List<GR5_Persona>();
  45.             List<List<string>> results = GetQueryResults("SELECT * FROM characterprofiles WHERE pid=" + pid);
  46.             foreach (List<string> entry in results)
  47.             {
  48.                 GR5_Persona p = new GR5_Persona();
  49.                 p.PortraitID = Convert.ToUInt32(entry[3]);
  50.                 p.DecoratorID = Convert.ToUInt32(entry[4]);
  51.                 p.AvatarBackgroundColor = Convert.ToUInt32(entry[5]);
  52.                 p.GRCash = Convert.ToUInt32(entry[6]);
  53.                 p.IGC = Convert.ToUInt32(entry[7]);
  54.                 p.AchievementPoints = Convert.ToUInt32(entry[8]);
  55.                 p.LastUsedCharacterID = Convert.ToByte(entry[9]);
  56.                 p.MaxInventorySlot = Convert.ToUInt32(entry[10]);
  57.                 p.MaxScrapYardSlot = Convert.ToUInt32(entry[11]);
  58.                 p.GhostRank = Convert.ToUInt32(entry[12]);
  59.                 p.Flag = Convert.ToUInt32(entry[13]);
  60.                 p.Characters = GetCharacters(pid, Convert.ToUInt32(entry[0]));
  61.                 result.Add(p);
  62.             }
  63.             return result;
  64.         }
  65.  
  66. //RMCPacketResponsePlayerProfileService_LoadCharacterProfiles.cs
  67.  
  68.     public class RMCPacketResponsePlayerProfileService_LoadCharacterProfiles : RMCPacketReply
  69.     {
  70.         public List<GR5_Persona> personas = new List<GR5_Persona>();
  71.  
  72.         public RMCPacketResponsePlayerProfileService_LoadCharacterProfiles(ClientInfo client)
  73.         {
  74.            personas =  DBHelper.GetPersonas(client.PID);
  75.         }
  76.  
  77.         public override byte[] ToBuffer()
  78.         {
  79.             MemoryStream m = new MemoryStream();
  80.             GR5_Persona p = personas[0];
  81.             p.ToBuffer();
  82.             return m.ToArray();
  83.         }
  84.  
  85.         public override string ToString()
  86.         {
  87.             return "[RMCPacketResponsePlayerProfileService_LoadCharacterProfiles]";
  88.         }
  89.  
  90.         public override string PayloadToString()
  91.         {
  92.             return "";
  93.         }
  94.     }
  95.  
  96. //RMC.cs
  97.  
  98. private static void ProcessPlayerProfileService(UdpClient udp, QPacket p, RMCPacket rmc, ClientInfo client)
  99.         {
  100.             RMCPacketReply reply;
  101.             switch (rmc.methodID)
  102.             {
  103.                 case 2:
  104.                     reply = new RMCPacketResponseEmpty();
  105.                     break;
  106.                 case 0xF:
  107.                     reply = new RMCPacketResponsePlayerProfileService_MethodF();
  108.                     SendReply(udp, p, rmc, client, reply);
  109.                     break;
  110.                 case 0x10:
  111.                     reply = new RMCPacketResponseEmpty();
  112.                     SendReply(udp, p, rmc, client, reply);
  113.                     break;
  114.                 case 0x11:
  115.                     reply = new RMCPacketResponsePlayerProfileService_Method11();
  116.                     SendReply(udp, p, rmc, client, reply);
  117.                     break;
  118.                 case 0x12:
  119.                     reply = new RMCPacketResponsePlayerProfileService_LoadCharacterProfiles(client);
  120.                     SendReply(udp, p, rmc, client, reply);
  121.                     break;
  122.                 default:
  123.                     WriteLog(1, "Error: Unknown Method 0x" + rmc.methodID.ToString("X"));
  124.                     break;
  125.             }
  126.         }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement