using System; using System.Collections.Generic; using System.Linq; using System.Text; using Ion.Storage; using Holo.Virtual.Users; using Holo.Source.GameConnectionSystem; using Holo.Managers; namespace Holo.Virtual.Users { public partial class virtualUser { private string LastReceivedPacket; private delegate void PacketFunction(); private PacketFunction[] mPacketRegistry; internal void Clear() { LastReceivedPacket = null; mPacketRegistry = null; } internal void ProcessPacket(string Packet) //Then the packet appears here { if (mPacketRegistry[Encoding.decodeB64(Packet.Substring(0, 2))] == null) //Unknown packet { // Out.WriteLine("Unknown packet: [" + Packet + "]"); } else { //Out.WriteLine("Packet received: [" + Packet + "]"); currentPacket = Packet; LastReceivedPacket = Packet; mPacketRegistry[Encoding.decodeB64(Packet.Substring(0, 2))].Invoke(); } } private string currentPacket { get { return LastReceivedPacket; } set { LastReceivedPacket = value; } } #region Login Packet Registry internal void RegisterStandardPackets() { mPacketRegistry[Encoding.decodeB64("CD")] = new PacketFunction(ProcessPacketCD21); mPacketRegistry[Encoding.decodeB64("CN")] = new PacketFunction(ProcessPacketCN); mPacketRegistry[Encoding.decodeB64("_R")] = new PacketFunction(ProcessPacket_R); mPacketRegistry[Encoding.decodeB64("CL")] = new PacketFunction(ProcessPacketCL); } private void DestroyStandardPackets() { mPacketRegistry[Encoding.decodeB64("CN")] = null; mPacketRegistry[Encoding.decodeB64("_R")] = null; mPacketRegistry[Encoding.decodeB64("CL")] = null; } #endregion #region Packet registry internal void RegisterLoggedInPackets() { DestroyStandardPackets(); mPacketRegistry[Encoding.decodeB64("@q")] = new PacketFunction(ProcessPacketAGq); mPacketRegistry[Encoding.decodeB64("BA")] = new PacketFunction(ProcessPacketBA); mPacketRegistry[Encoding.decodeB64("@L")] = new PacketFunction(ProcessPacketAGL); mPacketRegistry[Encoding.decodeB64("@Z")] = new PacketFunction(ProcessPacketAGZ); mPacketRegistry[Encoding.decodeB64("@G")] = new PacketFunction(ProcessPacketAGG); mPacketRegistry[Encoding.decodeB64("@H")] = new PacketFunction(ProcessPacketAGH); mPacketRegistry[Encoding.decodeB64("B]")] = new PacketFunction(ProcessPacketBS9); mPacketRegistry[Encoding.decodeB64("Cd")] = new PacketFunction(ProcessPacketCd); //mPacketRegistry[Encoding.decodeB64("C^")] = new PacketFunction(ProcessPacketC78); mPacketRegistry[Encoding.decodeB64("C_")] = new PacketFunction(ProcessPacketC_); mPacketRegistry[Encoding.decodeB64("@g")] = new PacketFunction(ProcessPacketAGg); mPacketRegistry[Encoding.decodeB64("@i")] = new PacketFunction(ProcessPacketAGi); mPacketRegistry[Encoding.decodeB64("@e")] = new PacketFunction(ProcessPacketAGe); mPacketRegistry[Encoding.decodeB64("@f")] = new PacketFunction(ProcessPacketAGf); mPacketRegistry[Encoding.decodeB64("@h")] = new PacketFunction(ProcessPacketAGh); mPacketRegistry[Encoding.decodeB64("@a")] = new PacketFunction(ProcessPacketAGa); mPacketRegistry[Encoding.decodeB64("@O")] = new PacketFunction(ProcessPacketAGO); mPacketRegistry[Encoding.decodeB64("DF")] = new PacketFunction(ProcessPacketDF); mPacketRegistry[Encoding.decodeB64("@b")] = new PacketFunction(ProcessPacketAGb); mPacketRegistry[Encoding.decodeB64("BV")] = new PacketFunction(ProcessPacketBV); mPacketRegistry[Encoding.decodeB64("BW")] = new PacketFunction(ProcessPacketBW); mPacketRegistry[Encoding.decodeB64("DH")] = new PacketFunction(ProcessPacketDH); mPacketRegistry[Encoding.decodeB64("@P")] = new PacketFunction(ProcessPacketAGP); mPacketRegistry[Encoding.decodeB64("@Q")] = new PacketFunction(ProcessPacketAGQ); mPacketRegistry[Encoding.decodeB64("@U")] = new PacketFunction(ProcessPacketAGU); mPacketRegistry[Encoding.decodeB64("@R")] = new PacketFunction(ProcessPacketAGR); mPacketRegistry[Encoding.decodeB64("@S")] = new PacketFunction(ProcessPacketAGS); mPacketRegistry[Encoding.decodeB64("@T")] = new PacketFunction(ProcessPacketAGT); mPacketRegistry[Encoding.decodeB64("EA")] = new PacketFunction(ProcessPacketEA); mPacketRegistry[Encoding.decodeB64("EY")] = new PacketFunction(ProcessPacketEY); mPacketRegistry[Encoding.decodeB64("D}")] = new PacketFunction(ProcessPacketDBL21); mPacketRegistry[Encoding.decodeB64("E^")] = new PacketFunction(ProcessPacketEUT); mPacketRegistry[Encoding.decodeB64("EZ")] = new PacketFunction(ProcessPacketEZ); //mPacketRegistry[Encoding.decodeB64(@"E/")] = new PacketFunction(ProcessPacketESL); mPacketRegistry[Encoding.decodeB64("E[")] = new PacketFunction(ProcessPacketEPAR); mPacketRegistry[Encoding.decodeB64("@]")] = new PacketFunction(ProcessPacketAGPAR); mPacketRegistry[Encoding.decodeB64("@Y")] = new PacketFunction(ProcessPacketAGY); mPacketRegistry[Encoding.decodeB64("@X")] = new PacketFunction(ProcessPacketAGX); mPacketRegistry[Encoding.decodeB64("BX")] = new PacketFunction(ProcessPacketBX); mPacketRegistry[Encoding.decodeB64("BY")] = new PacketFunction(ProcessPacketBY); mPacketRegistry[Encoding.decodeB64("@W")] = new PacketFunction(ProcessPacketAGW); mPacketRegistry[Encoding.decodeB64("BZ")] = new PacketFunction(ProcessPacketBZ); mPacketRegistry[Encoding.decodeB64("@u")] = new PacketFunction(ProcessPacketAGu); mPacketRegistry[Encoding.decodeB64("Bv")] = new PacketFunction(ProcessPacketBv); mPacketRegistry[Encoding.decodeB64("@B")] = new PacketFunction(ProcessPacketAGB); mPacketRegistry[Encoding.decodeB64("@v")] = new PacketFunction(ProcessPacketAGv); mPacketRegistry[Encoding.decodeB64("@y")] = new PacketFunction(ProcessPacketAGy); mPacketRegistry[Encoding.decodeB64("Ab")] = new PacketFunction(ProcessPacketAb); mPacketRegistry[Encoding.decodeB64("@{")] = new PacketFunction(ProcessPacketAGBL); mPacketRegistry[Encoding.decodeB64("A~")] = new PacketFunction(ProcessPacketACA); mPacketRegistry[Encoding.decodeB64("@|")] = new PacketFunction(ProcessPacketAG0); mPacketRegistry[Encoding.decodeB64("@}")] = new PacketFunction(ProcessPacketAGBL2); mPacketRegistry[Encoding.decodeB64("@~")] = new PacketFunction(ProcessPacketAGCA); mPacketRegistry[Encoding.decodeB64("@")] = new PacketFunction(ProcessPacketAGWTF); mPacketRegistry[Encoding.decodeB64("A@")] = new PacketFunction(ProcessPacketAAG); mPacketRegistry[Encoding.decodeB64("CH")] = new PacketFunction(ProcessPacketCH); mPacketRegistry[Encoding.decodeB64("Cm")] = new PacketFunction(ProcessPacketCm); mPacketRegistry[Encoding.decodeB64("Cn")] = new PacketFunction(ProcessPacketCn); mPacketRegistry[Encoding.decodeB64("AV")] = new PacketFunction(ProcessPacketAV); mPacketRegistry[Encoding.decodeB64("CG")] = new PacketFunction(ProcessPacketCG); mPacketRegistry[Encoding.decodeB64("CF")] = new PacketFunction(ProcessPacketCF); mPacketRegistry[Encoding.decodeB64("@p")] = new PacketFunction(ProcessPacketAGp); mPacketRegistry[Encoding.decodeB64("EC")] = new PacketFunction(ProcessPacketEC); mPacketRegistry[Encoding.decodeB64("AO")] = new PacketFunction(ProcessPacketAO); mPacketRegistry[Encoding.decodeB64("AK")] = new PacketFunction(ProcessPacketAK); mPacketRegistry[Encoding.decodeB64("As")] = new PacketFunction(ProcessPacketAs); mPacketRegistry[Encoding.decodeB64("At")] = new PacketFunction(ProcessPacketAt); mPacketRegistry[Encoding.decodeB64("B^")] = new PacketFunction(ProcessPacketBUL); mPacketRegistry[Encoding.decodeB64("DG")] = new PacketFunction(ProcessPacketDG); mPacketRegistry[Encoding.decodeB64("Cg")] = new PacketFunction(ProcessPacketCg); mPacketRegistry[Encoding.decodeB64("AX")] = new PacketFunction(ProcessPacketAX); mPacketRegistry[Encoding.decodeB64("A^")] = new PacketFunction(ProcessPacketAUL); mPacketRegistry[Encoding.decodeB64("BAG")] = new PacketFunction(ProcessPacketBAG); mPacketRegistry[Encoding.decodeB64("A]")] = new PacketFunction(ProcessPacketAPAR); mPacketRegistry[Encoding.decodeB64("AP")] = new PacketFunction(ProcessPacketAP); mPacketRegistry[Encoding.decodeB64("Ah")] = new PacketFunction(ProcessPacketAh); //mPacketRegistry[Encoding.decodeB64("Cl")] = new PacketFunction(ProcessPacketCl); mPacketRegistry[Encoding.decodeB64("@t")] = new PacketFunction(ProcessPacketAGw); mPacketRegistry[Encoding.decodeB64("@w")] = new PacketFunction(ProcessPacketAGw); mPacketRegistry[Encoding.decodeB64("@x")] = new PacketFunction(ProcessPacketAGx); mPacketRegistry[Encoding.decodeB64("D{")] = new PacketFunction(ProcessPacketDBL); mPacketRegistry[Encoding.decodeB64("D~")] = new PacketFunction(ProcessPacketDCA); mPacketRegistry[Encoding.decodeB64("A`")] = new PacketFunction(ProcessPacketATNG); mPacketRegistry[Encoding.decodeB64("Aa")] = new PacketFunction(ProcessPacketAa); mPacketRegistry[Encoding.decodeB64("A_")] = new PacketFunction(ProcessPacketA_); //mPacketRegistry[Encoding.decodeB64("E@")] = new PacketFunction(ProcessPacketEAT); mPacketRegistry[Encoding.decodeB64("DE")] = new PacketFunction(ProcessPacketDE); mPacketRegistry[Encoding.decodeB64("Ae")] = new PacketFunction(ProcessPacketAe); mPacketRegistry[Encoding.decodeB64("Af")] = new PacketFunction(ProcessPacketAf); mPacketRegistry[Encoding.decodeB64("Ad")] = new PacketFunction(ProcessPacketAd); mPacketRegistry[Encoding.decodeB64("Ai")] = new PacketFunction(ProcessPacketAi); mPacketRegistry[Encoding.decodeB64("Ca")] = new PacketFunction(ProcessPacketCa); mPacketRegistry[Encoding.decodeB64("Cb")] = new PacketFunction(ProcessPacketCb); mPacketRegistry[Encoding.decodeB64("AA")] = new PacketFunction(ProcessPacketAA); mPacketRegistry[Encoding.decodeB64("LB")] = new PacketFunction(ProcessPacketLB); mPacketRegistry[Encoding.decodeB64("AB")] = new PacketFunction(ProcessPacketAB); mPacketRegistry[Encoding.decodeB64("AZ")] = new PacketFunction(ProcessPacketAZ); mPacketRegistry[Encoding.decodeB64("AC")] = new PacketFunction(ProcessPacketAC); mPacketRegistry[Encoding.decodeB64("AI")] = new PacketFunction(ProcessPacketAI); mPacketRegistry[Encoding.decodeB64("CV")] = new PacketFunction(ProcessPacketCV); mPacketRegistry[Encoding.decodeB64("AJ")] = new PacketFunction(ProcessPacketAJ); mPacketRegistry[Encoding.decodeB64("AN")] = new PacketFunction(ProcessPacketAN); mPacketRegistry[Encoding.decodeB64("Bw")] = new PacketFunction(ProcessPacketBw); mPacketRegistry[Encoding.decodeB64("AQ")] = new PacketFunction(ProcessPacketAQ); mPacketRegistry[Encoding.decodeB64(@"@\")] = new PacketFunction(ProcessPacketAGSL); mPacketRegistry[Encoding.decodeB64("AM")] = new PacketFunction(ProcessPacketAM); mPacketRegistry[Encoding.decodeB64("AL")] = new PacketFunction(ProcessPacketAL); mPacketRegistry[Encoding.decodeB64("Cw")] = new PacketFunction(ProcessPacketCw); mPacketRegistry[Encoding.decodeB64("Dz")] = new PacketFunction(ProcessPacketDz); mPacketRegistry[Encoding.decodeB64("AS")] = new PacketFunction(ProcessPacketAS); mPacketRegistry[Encoding.decodeB64("AT")] = new PacketFunction(ProcessPacketAT); mPacketRegistry[Encoding.decodeB64("AU")] = new PacketFunction(ProcessPacketAU); mPacketRegistry[Encoding.decodeB64("Ct")] = new PacketFunction(ProcessPacketCt); mPacketRegistry[Encoding.decodeB64("Cu")] = new PacketFunction(ProcessPacketCu); mPacketRegistry[Encoding.decodeB64("C]")] = new PacketFunction(ProcessPacketCPAR); mPacketRegistry[Encoding.decodeB64("Cs")] = new PacketFunction(ProcessPacketCs); mPacketRegistry[Encoding.decodeB64("C~")] = new PacketFunction(ProcessPacketCCA); mPacketRegistry[Encoding.decodeB64("Cx")] = new PacketFunction(ProcessPacketCx); mPacketRegistry[Encoding.decodeB64("Co")] = new PacketFunction(ProcessPacketCo); mPacketRegistry[Encoding.decodeB64("C[")] = new PacketFunction(ProcessPacketCPAR21); mPacketRegistry[Encoding.decodeB64(@"C\")] = new PacketFunction(ProcessPacketCSL); mPacketRegistry[Encoding.decodeB64("Cp")] = new PacketFunction(ProcessPacketCp); mPacketRegistry[Encoding.decodeB64("Cq")] = new PacketFunction(ProcessPacketCq); mPacketRegistry[Encoding.decodeB64("Cr")] = new PacketFunction(ProcessPacketCr); mPacketRegistry[Encoding.decodeB64("AG")] = new PacketFunction(ProcessPacketAG); mPacketRegistry[Encoding.decodeB64("AH")] = new PacketFunction(ProcessPacketAH); mPacketRegistry[Encoding.decodeB64("AD")] = new PacketFunction(ProcessPacketAD); mPacketRegistry[Encoding.decodeB64("AE")] = new PacketFunction(ProcessPacketAE); mPacketRegistry[Encoding.decodeB64("AF")] = new PacketFunction(ProcessPacketAF); mPacketRegistry[Encoding.decodeB64("B_")] = new PacketFunction(ProcessPacketB_); mPacketRegistry[Encoding.decodeB64("B`")] = new PacketFunction(ProcessPacketBUT); mPacketRegistry[Encoding.decodeB64("Bb")] = new PacketFunction(ProcessPacketBb); mPacketRegistry[Encoding.decodeB64("Bc")] = new PacketFunction(ProcessPacketBc); mPacketRegistry[Encoding.decodeB64("Be")] = new PacketFunction(ProcessPacketBe); mPacketRegistry[Encoding.decodeB64("Bg")] = new PacketFunction(ProcessPacketBg); mPacketRegistry[Encoding.decodeB64("Bh")] = new PacketFunction(ProcessPacketBh); mPacketRegistry[Encoding.decodeB64("Bj")] = new PacketFunction(ProcessPacketBj); mPacketRegistry[Encoding.decodeB64("Bk")] = new PacketFunction(ProcessPacketBk); mPacketRegistry[Encoding.decodeB64("Bl")] = new PacketFunction(ProcessPacketBl); mPacketRegistry[Encoding.decodeB64("Ej")] = new PacketFunction(ProcessPacketEj); mPacketRegistry[Encoding.decodeB64("Ek")] = new PacketFunction(ProcessPacketEk); //mPacketRegistry[Encoding.decodeB64("CF")] = new PacketFunction(ProcessPacketFC); mPacketRegistry[Encoding.decodeB64("EW")] = new PacketFunction(ProcessPacketEW); mPacketRegistry[Encoding.decodeB64("EU")] = new PacketFunction(ProcessPacketEU); mPacketRegistry[Encoding.decodeB64("EV")] = new PacketFunction(ProcessPacketEV); mPacketRegistry[Encoding.decodeB64("AW")] = new PacketFunction(ProcessPacketAW); // mPacketRegistry[Encoding.decodeB64("Ej")] = new PacketFunction(ProcessPacketEj); // mPacketRegistry[Encoding.decodeB64("Ek")] = new PacketFunction(ProcessPacketEk); mPacketRegistry[Encoding.decodeB64("Aj")] = new PacketFunction(ProcessPacketAj); mPacketRegistry[Encoding.decodeB64("Ak")] = new PacketFunction(ProcessPacketAk); mPacketRegistry[Encoding.decodeB64("@j")] = new PacketFunction(ProcessPacketAGj); mPacketRegistry[Encoding.decodeB64("Cl")] = new PacketFunction(ProcessPacketCl); mPacketRegistry[Encoding.decodeB64("Cj")] = new PacketFunction(ProcessPacketCj); mPacketRegistry[Encoding.decodeB64("Ap")] = new PacketFunction(ProcessPacketAp); mPacketRegistry[Encoding.decodeB64("Dm")] = new PacketFunction(ProcessPacketDm); mPacketRegistry[Encoding.decodeB64("Dn")] = new PacketFunction(ProcessPacketDn); mPacketRegistry[Encoding.decodeB64("Dc")] = new PacketFunction(ProcessPacketDc); mPacketRegistry[Encoding.decodeB64("Da")] = new PacketFunction(ProcessPacketDa); mPacketRegistry[Encoding.decodeB64("Dl")] = new PacketFunction(ProcessPacketDl); mPacketRegistry[Encoding.decodeB64("Dw")] = new PacketFunction(ProcessPacketDw); mPacketRegistry[Encoding.decodeB64("Dr")] = new PacketFunction(ProcessPacketDr); //mPacketRegistry[Encoding.decodeB64("Du")] = new PacketFunction(ProcessPacketDu); mPacketRegistry[Encoding.decodeB64("Dv")] = new PacketFunction(ProcessPacketDv); mPacketRegistry[Encoding.decodeB64("Dx")] = new PacketFunction(ProcessPacketDx); mPacketRegistry[Encoding.decodeB64("Ds")] = new PacketFunction(ProcessPacketDs); mPacketRegistry[Encoding.decodeB64("E@")] = new PacketFunction(ProcessPacketEAG); } #endregion #region Disiabled Packets //mPacket[Encoding.decodeB64("Er")] = new Packet(ProcessPacketEr); //mPacket[Encoding.decodeB64("Dm")] = new Packet(ProcessPacketDm); //mPacket[Encoding.decodeB64("F^")] = new Packet(ProcessPacketF893); //mPacket[Encoding.decodeB64("F]")] = new Packet(ProcessPacketF464); //mPacket[Encoding.decodeB64(@"F\")] = new Packet(ProcessPacketF873); //mPacket[Encoding.decodeB64("E/")] = new Packet(ProcessPacketESL); //mPacket[Encoding.decodeB64("E@")] = new Packet(ProcessPacketEAT); //mPacket[Encoding.decodeB64("FH")] = new Packet(ProcessPacketFH); //mPacket[Encoding.decodeB64("Ed")] = new Packet(ProcessPacketEd); //mPacket[Encoding.decodeB64("Eg")] = new Packet(ProcessPacketEg); //mPacket[Encoding.decodeB64("Ee")] = new Packet(ProcessPacketEe); //mPacket[Encoding.decodeB64("Dy")] = new Packet(ProcessPacketDy); //mPacket[Encoding.decodeB64("Aq")] = new Packet(ProcessPacketAq); //mPacket[Encoding.decodeB64("Ao")] = new Packet(ProcessPacketAo); //Packet[Encoding.decodeB64("Ch")] = new Packet(ProcessPacketCh); //mPacket[Encoding.decodeB64("@j")] = new Packet(ProcessPacketApeJ); //mPacket[Encoding.decodeB64("Eu")] = new Packet(ProcessPacketEu); //mPacket[Encoding.decodeB64("Ev")] = new Packet(ProcessPacketEv); //mPacket[Encoding.decodeB64("Et")] = new Packet(ProcessPacketEt); //mPacket[Encoding.decodeB64("_B")] = new Packet(ProcessPacket_B); //mPacket[Encoding.decodeB64("_`")] = new Packet(ProcessPacket_TH); //mPacket[Encoding.decodeB64("_b")] = new Packet(ProcessPacket_b); //mPacket[Encoding.decodeB64("_c")] = new Packet(ProcessPacket_c); //mPacket[Encoding.decodeB64("_e")] = new Packet(ProcessPacket_e); //mPacket[Encoding.decodeB64("_g")] = new Packet(ProcessPacket_g); //mPacket[Encoding.decodeB64("_h")] = new Packet(ProcessPacket_h); //mPacket[Encoding.decodeB64("_j")] = new Packet(ProcessPacket_j); //mPacket[Encoding.decodeB64("_k")] = new Packet(ProcessPacket_k); //mPacket[Encoding.decodeB64("_l")] = new Packet(ProcessPacket_l); //mPacket[Encoding.decodeB64("_V")] = new Packet(ProcessPacket_V); //mPacket[Encoding.decodeB64("Dn")] = new Packet(ProcessPacketDn); //mPacket[Encoding.decodeB64("Dc")] = new Packet(ProcessPacketDc); //mPacket[Encoding.decodeB64("Da")] = new Packet(ProcessPacketDa); //mPacket[Encoding.decodeB64("Dl")] = new Packet(ProcessPacketDl); //mPacket[Encoding.decodeB64("Dw")] = new Packet(ProcessPacketDw); //mPacket[Encoding.decodeB64("Dr")] = new Packet(ProcessPacketDr); //mPacket[Encoding.decodeB64("Du")] = new Packet(ProcessPacketDu); //mPacket[Encoding.decodeB64("Dv")] = new Packet(ProcessPacketDv); //mPacket[Encoding.decodeB64("Dx")] = new Packet(ProcessPacketDx); //mPacket[Encoding.decodeB64("@o")] = new Packet(ProcessPacketApeo); //mPacket[Encoding.decodeB64("D")] = new Packet(ProcessPacketDThingy); //mPacket[Encoding.decodeB64("EB")] = new Packet(ProcessPacketEB); //mPacket[Encoding.decodeB64("FI")] = new Packet(ProcessPacketFI); //mPacket[Encoding.decodeB64("Ch")] = new Packet(ProcessPacketFI); //mPacket[Encoding.decodeB64("FS")] = new Packet(ProcessPacketFS); //mPacket[Encoding.decodeB64("FR")] = new Packet(ProcessPacketFR); //mPacket[Encoding.decodeB64("Es")] = new Packet(ProcessPacketEs); #endregion } }