├── .travis.yml
├── PacketViewer
├── icon.ico
├── Libs
│ ├── SharpPcap.dll
│ ├── Tera.Core.dll
│ ├── PacketDotNet.dll
│ ├── NetworkSniffer.dll
│ ├── Tera.Sniffing.dll
│ └── serverlist.xml
├── App.config
├── Properties
│ ├── Settings.settings
│ ├── Settings.Designer.cs
│ ├── AssemblyInfo.cs
│ ├── Resources.Designer.cs
│ └── Resources.resx
├── Network
│ ├── Lists
│ │ ├── IPacketList.cs
│ │ ├── PacketStream.cs
│ │ ├── PacketQueue.cs
│ │ └── PacketList.cs
│ ├── Packet_old.cs
│ ├── PacketTranslator.cs
│ ├── Capture.cs
│ └── PacketProcessor.cs
├── Classes
│ ├── IPacketInput.cs
│ ├── Configuration.cs
│ ├── ServerInfo.cs
│ ├── PacketFilter.cs
│ ├── WireshackReader.cs
│ └── TeraLogReader.cs
├── App.xaml.cs
├── App.xaml
├── Forms
│ ├── Style.xaml
│ ├── MainWindow.xaml
│ └── MainWindow.xaml.cs
├── Program.cs
├── MiscFuncs.cs
└── PacketViewer.csproj
├── Opcode DLL
├── OpcodeDLL_3009.dll
├── Extreme Injector v3.exe
├── OpcodeDLL
│ ├── OpcodeDLL
│ │ ├── stdafx.h
│ │ ├── stdafx.cpp
│ │ ├── OpcodeDLL.cpp
│ │ ├── targetver.h
│ │ ├── OpcodeDLL.vcxproj.filters
│ │ ├── dllmain.cpp
│ │ ├── ReadMe.txt
│ │ └── OpcodeDLL.vcxproj
│ └── OpcodeDLL.sln
├── README.txt
├── settings.xml
└── 3009_OpCodes_Dec.txt
├── .gitmodules
├── .gitattributes
├── README.md
├── .gitignore
└── Tera.sln
/.travis.yml:
--------------------------------------------------------------------------------
1 | language: csharp
2 | solution: Tera.sln
--------------------------------------------------------------------------------
/PacketViewer/icon.ico:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/icon.ico
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL_3009.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/OpcodeDLL_3009.dll
--------------------------------------------------------------------------------
/PacketViewer/Libs/SharpPcap.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/Libs/SharpPcap.dll
--------------------------------------------------------------------------------
/PacketViewer/Libs/Tera.Core.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/Libs/Tera.Core.dll
--------------------------------------------------------------------------------
/.gitmodules:
--------------------------------------------------------------------------------
1 | [submodule "external/TDM"]
2 | path = external/TDM
3 | url = https://github.com/GoneUp/TeraDamageMeter.git
4 |
--------------------------------------------------------------------------------
/Opcode DLL/Extreme Injector v3.exe:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/Extreme Injector v3.exe
--------------------------------------------------------------------------------
/PacketViewer/Libs/PacketDotNet.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/Libs/PacketDotNet.dll
--------------------------------------------------------------------------------
/PacketViewer/Libs/NetworkSniffer.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/Libs/NetworkSniffer.dll
--------------------------------------------------------------------------------
/PacketViewer/Libs/Tera.Sniffing.dll:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/PacketViewer/Libs/Tera.Sniffing.dll
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/stdafx.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/OpcodeDLL/OpcodeDLL/stdafx.h
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/stdafx.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/OpcodeDLL/OpcodeDLL/stdafx.cpp
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/OpcodeDLL.cpp:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/OpcodeDLL/OpcodeDLL/OpcodeDLL.cpp
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/targetver.h:
--------------------------------------------------------------------------------
https://raw.githubusercontent.com/GoneUp/Tera_PacketViewer/HEAD/Opcode DLL/OpcodeDLL/OpcodeDLL/targetver.h
--------------------------------------------------------------------------------
/PacketViewer/App.config:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
--------------------------------------------------------------------------------
/PacketViewer/Properties/Settings.settings:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
--------------------------------------------------------------------------------
/PacketViewer/Network/Lists/IPacketList.cs:
--------------------------------------------------------------------------------
1 | namespace PacketViewer.Network.Lists
2 | {
3 | public interface IPacketList
4 | {
5 | void Clear();
6 | void Enqueue(byte[] data);
7 | byte[] GetBytes(int length);
8 | int GetLength();
9 | bool PacketAvailable();
10 | int NextPacketLength();
11 | }
12 |
13 | }
14 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/IPacketInput.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using PacketViewer.Network;
7 |
8 | namespace PacketViewer.Classes
9 | {
10 | interface IPacketInput
11 | {
12 | void SetProcessor(PacketProcessor pp);
13 | void Process();
14 | }
15 | }
16 |
--------------------------------------------------------------------------------
/PacketViewer/App.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Configuration;
4 | using System.Linq;
5 | using System.Threading.Tasks;
6 | using System.Windows;
7 |
8 | namespace PacketViewer
9 | {
10 | ///
11 | /// Interaction logic for App.xaml
12 | ///
13 | public partial class App : Application
14 | {
15 |
16 | }
17 | }
18 |
--------------------------------------------------------------------------------
/.gitattributes:
--------------------------------------------------------------------------------
1 | # Auto detect text files and perform LF normalization
2 | * text=auto
3 |
4 | # Custom for Visual Studio
5 | *.cs diff=csharp
6 |
7 | # Standard to msysgit
8 | *.doc diff=astextplain
9 | *.DOC diff=astextplain
10 | *.docx diff=astextplain
11 | *.DOCX diff=astextplain
12 | *.dot diff=astextplain
13 | *.DOT diff=astextplain
14 | *.pdf diff=astextplain
15 | *.PDF diff=astextplain
16 | *.rtf diff=astextplain
17 | *.RTF diff=astextplain
18 |
--------------------------------------------------------------------------------
/README.md:
--------------------------------------------------------------------------------
1 | # Tera_PacketViewer
2 |
3 | The purpose of this project is to sniff and show the network traffic of the MMO "Tera" directly in the program.
4 |
5 | ### Usage
6 | Instructions how to use this software are at my ragezone release thread: http://forum.ragezone.com/f797/release-tera-live-packet-sniffer-1052922/
7 |
8 | ### Notes
9 | * Get the full repo including the submodules via
10 | ```git clone --recursive https://github.com/GoneUp/Tera_PacketViewer.git ```
11 | * Use any Visual Studio 2012+
12 |
13 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/Configuration.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 |
7 | namespace PacketViewer.Classes
8 | {
9 | public class Configuration
10 | {
11 | private readonly List servers;
12 |
13 | public Configuration(List servers)
14 | {
15 | this.servers = servers;
16 | }
17 |
18 | public List getServers()
19 | {
20 | return servers;
21 | }
22 | }
23 | }
24 |
--------------------------------------------------------------------------------
/PacketViewer/App.xaml:
--------------------------------------------------------------------------------
1 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/ServerInfo.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using Tera.Game;
7 |
8 | namespace PacketViewer.Classes
9 | {
10 | public class ServerInfo : Server
11 | {
12 | public bool Focus;
13 | public bool AutoStart;
14 |
15 | public ServerInfo(string name, string ip, bool focus, bool autoStart) : base(name, "", ip)
16 | {
17 | Focus = focus;
18 | AutoStart = autoStart;
19 | }
20 |
21 | public override string ToString()
22 | {
23 | //Format: 79.110.94.217;EU Akasha
24 | return String.Format("{0};{1}", Ip, Name);
25 | }
26 | }
27 | }
28 |
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{8BC9CEB8-8B4A-11D0-8D11-00A0C91BC942}") = "OpcodeDLL", "OpcodeDLL\OpcodeDLL.vcxproj", "{E7E18D39-C539-4717-A2C7-1F21C12A0233}"
5 | EndProject
6 | Global
7 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
8 | Debug|Win32 = Debug|Win32
9 | Release|Win32 = Release|Win32
10 | EndGlobalSection
11 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
12 | {E7E18D39-C539-4717-A2C7-1F21C12A0233}.Debug|Win32.ActiveCfg = Debug|Win32
13 | {E7E18D39-C539-4717-A2C7-1F21C12A0233}.Debug|Win32.Build.0 = Debug|Win32
14 | {E7E18D39-C539-4717-A2C7-1F21C12A0233}.Release|Win32.ActiveCfg = Release|Win32
15 | {E7E18D39-C539-4717-A2C7-1F21C12A0233}.Release|Win32.Build.0 = Release|Win32
16 | EndGlobalSection
17 | GlobalSection(SolutionProperties) = preSolution
18 | HideSolutionNode = FALSE
19 | EndGlobalSection
20 | EndGlobal
21 |
--------------------------------------------------------------------------------
/PacketViewer/Forms/Style.xaml:
--------------------------------------------------------------------------------
1 |
3 |
4 |
15 |
19 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/PacketFilter.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Linq;
4 | using System.Text;
5 | using System.Threading.Tasks;
6 | using PacketViewer.Network;
7 |
8 | namespace PacketViewer.Classes
9 | {
10 | internal class PacketFilter
11 | {
12 | public List ignoreOpcodes = new List();
13 | public List showOnlyOpcodes = new List();
14 |
15 | public bool showCS = true;
16 | public bool showSC = true;
17 | public bool showAny = true;
18 |
19 | public bool ShowPacket(Packet_old packet)
20 | {
21 | if (!showAny) return false;
22 | if (packet.Dir == Direction.CS && !showCS) return false;
23 | if (packet.Dir == Direction.SC && !showSC) return false;
24 |
25 | if (showOnlyOpcodes.Count > 0)
26 | {
27 | return showOnlyOpcodes.Contains(packet.OpCode);
28 | }
29 | else
30 | {
31 | return !ignoreOpcodes.Contains(packet.OpCode);
32 | }
33 | }
34 | }
35 | }
36 |
37 |
--------------------------------------------------------------------------------
/Opcode DLL/README.txt:
--------------------------------------------------------------------------------
1 | Guide to the Opcode DLL:
2 |
3 | Code from tagyourit50, released at ragezone: http://forum.ragezone.com/f797/release-tera-live-packet-sniffer-1052922-post8369480/#post8369480
4 |
5 |
6 | #########
7 | Post Copy:
8 | For those wondering how to get the opcode names here's a little guide.
9 |
10 | 1. In cheat engine, find the function that references the string "I_TELEPORT". Look just above that and find the start of the function. (In this case 0x0191D0A0)
11 | --Use the view -> referenced strings function, search for I_TELEPORT there.
12 |
13 |
14 | 2. Make a c++ dll that looks like http://pastebin.com/qTGzrW8w with the address that you got in the previous step.
15 |
16 | 3. Now inject it into the Tera process, after which you should see some message boxes.
17 | Click OK on those, then in your TERA\Client\Binaries folder you should see a file called opcodes.txt full of opcodes.
18 | (You can just change the output directory if you want)
19 |
20 | #######
21 |
22 |
23 | If you want to use the file with the packet editor, use the decimal output file, copy it to the packetviewer directory and name it "opcodefile.txt"
24 |
25 | ######
26 | GoneUp
27 |
--------------------------------------------------------------------------------
/PacketViewer/Properties/Settings.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.17379
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace PacketViewer.Properties
12 | {
13 |
14 |
15 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
16 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("Microsoft.VisualStudio.Editors.SettingsDesigner.SettingsSingleFileGenerator", "11.0.0.0")]
17 | internal sealed partial class Settings : global::System.Configuration.ApplicationSettingsBase
18 | {
19 |
20 | private static Settings defaultInstance = ((Settings)(global::System.Configuration.ApplicationSettingsBase.Synchronized(new Settings())));
21 |
22 | public static Settings Default
23 | {
24 | get
25 | {
26 | return defaultInstance;
27 | }
28 | }
29 | }
30 | }
31 |
--------------------------------------------------------------------------------
/PacketViewer/Network/Packet_old.cs:
--------------------------------------------------------------------------------
1 | namespace PacketViewer.Network
2 | {
3 | public class Packet_old
4 | {
5 | public Direction Dir;
6 | public ushort OpCode;
7 | public string OpName;
8 |
9 | public byte[] Data;
10 | public string HexShortText;
11 | public string HexLongText;
12 |
13 | public Packet_old(Direction dir, ushort opCode, byte[] data, bool hexWithSpaces)
14 | {
15 | Dir = dir;
16 | OpCode = opCode;
17 | Data = data;
18 | OpName = PacketTranslator.GetOpcodeName(opCode); ;
19 |
20 | HexShortText = Data.ToHex();
21 | HexLongText = "0x" + string.Format("{0:X4}", opCode) + "\n\n" + Data.FormatHex();
22 |
23 | if (hexWithSpaces)
24 | {
25 | string newHex = "";
26 | for (int i = 0; i < HexShortText.Length; i += 2)
27 | {
28 | newHex += HexShortText.Substring(i, 2) + " ";
29 | }
30 | HexShortText = newHex;
31 | }
32 | }
33 |
34 | public override string ToString()
35 | {
36 | return string.Format("[{0}] {1} [{2}]", (Dir == Direction.SC) ? "S" : "C" , OpName, Data.Length);
37 | }
38 | }
39 |
40 | public enum Direction
41 | {
42 | CS,
43 | SC
44 | }
45 | }
46 |
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/OpcodeDLL.vcxproj.filters:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | {4FC737F1-C7A5-4376-A066-2A32D752A2FF}
6 | cpp;c;cc;cxx;def;odl;idl;hpj;bat;asm;asmx
7 |
8 |
9 | {93995380-89BD-4b04-88EB-625FBE52EBFB}
10 | h;hpp;hxx;hm;inl;inc;xsd
11 |
12 |
13 | {67DA6AB6-F800-4c08-8B7A-83BB121AAD01}
14 | rc;ico;cur;bmp;dlg;rc2;rct;bin;rgs;gif;jpg;jpeg;jpe;resx;tiff;tif;png;wav;mfcribbon-ms
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 | Headerdateien
23 |
24 |
25 | Headerdateien
26 |
27 |
28 |
29 |
30 | Quelldateien
31 |
32 |
33 | Quelldateien
34 |
35 |
36 |
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/dllmain.cpp:
--------------------------------------------------------------------------------
1 | #include "stdafx.h"
2 | #include
3 | #include
4 | #include
5 |
6 | //Usinng
7 | using namespace std;
8 |
9 | string OpCodeVersion = "3104";
10 | DWORD GetOpCodeNameAddress = 0x17E29B0;
11 |
12 |
13 | string GetOpCodeName(DWORD Opcode)
14 | {
15 | unsigned int pointer = 0;
16 |
17 | _asm
18 | {
19 | push Opcode
20 | call GetOpCodeNameAddress
21 | add esp, 4
22 | mov[pointer], eax
23 | }
24 |
25 | return string((LPCSTR)pointer);
26 | }
27 |
28 | DWORD WINAPI Thread(LPVOID nothing)
29 | {
30 | ofstream fileOut;
31 | ofstream fileOut2;
32 | fileOut.open("C:\\" + OpCodeVersion + "_OpCodes_Dec.txt", ios::out);
33 | fileOut2.open("C:\\" + OpCodeVersion + "_OpCodes_Hex.txt", ios::out);
34 |
35 | string name = "";
36 |
37 | for (int i = 0; i < 0x10000; i++)
38 | {
39 | name = GetOpCodeName(i);
40 | if (name != "")
41 | {
42 | //file dec output
43 | fileOut << name << " = " << i << endl;
44 |
45 | //file2 hex output
46 | fileOut2 << name << " = 0x" << std::hex << i << endl; //this will print the number in hexadecimal
47 | }
48 | }
49 |
50 | fileOut.close();
51 | fileOut2.close();
52 |
53 | return 1;
54 | }
55 |
56 |
57 | BOOL WINAPI DllMain(HINSTANCE Hinst, DWORD Reason, LPVOID nothing)
58 | {
59 | switch (Reason)
60 | {
61 |
62 | case DLL_PROCESS_ATTACH:
63 | MessageBoxA(0, "Injected", "Desu", 0);
64 | CreateThread(0, 0, Thread, 0, 0, 0);
65 | case DLL_PROCESS_DETACH:
66 | MessageBoxA(0, "Finished.", "Desu", 0);
67 | }
68 |
69 | return 1;
70 | }
--------------------------------------------------------------------------------
/PacketViewer/Libs/serverlist.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 |
6 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
19 |
20 |
21 |
22 |
23 |
24 |
25 |
26 |
27 |
28 |
29 |
30 |
31 |
32 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/WireshackReader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Text;
6 | using System.Threading.Tasks;
7 | using PacketViewer.Forms;
8 | using PacketViewer.Network;
9 |
10 | namespace PacketViewer.Classes
11 | {
12 | class WireshackReader : IPacketInput
13 | {
14 | private FileStream fs;
15 | private TextReader reader;
16 | private PacketProcessor processor;
17 |
18 | public WireshackReader(string file)
19 | {
20 | if (!File.Exists(file)) throw new Exception("File not found!");
21 |
22 | fs = new FileStream(file, FileMode.Open);
23 | reader = new StreamReader(fs);
24 | }
25 |
26 | public void SetProcessor(PacketProcessor pp)
27 | {
28 | processor = pp;
29 | }
30 |
31 | public void Process()
32 | {
33 |
34 | while (true)
35 | {
36 | string line = reader.ReadLine();
37 | if (line == null)
38 | break;
39 | if (line.Length == 0)
40 | continue;
41 |
42 | bool isServer = line[0] == ' ';
43 |
44 | string hex = line.Substring(isServer ? 14 : 10, 49).Replace(" ", "");
45 | byte[] data = hex.ToBytes();
46 |
47 | if (isServer)
48 | {
49 | processor.AppendServerData(data);
50 | }
51 | else
52 | {
53 | processor.AppendClientData(data);
54 | }
55 |
56 | if (!processor.Initialized) processor.TryInit();
57 | processor.ProcessAllClientData();
58 | processor.ProcessAllServerData();
59 | }
60 |
61 | reader.Close();
62 | }
63 |
64 | }
65 | }
66 |
--------------------------------------------------------------------------------
/PacketViewer/Program.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows;
10 |
11 | namespace PacketViewer
12 | {
13 | public class Program
14 | {
15 | [STAThreadAttribute]
16 | public static void Main()
17 | {
18 | try
19 | {
20 | AppDomain.CurrentDomain.AssemblyResolve += OnResolveAssembly;
21 | App.Main();
22 | }
23 | catch (Exception ex)
24 | {
25 | MessageBox.Show("Assembly Err: " + ex);
26 | }
27 |
28 | }
29 |
30 | private static Assembly OnResolveAssembly(object sender, ResolveEventArgs args)
31 | {
32 |
33 |
34 | Assembly executingAssembly = Assembly.GetExecutingAssembly();
35 | AssemblyName assemblyName = new AssemblyName(args.Name);
36 |
37 | string path = assemblyName.Name + ".dll";
38 | if (assemblyName.CultureInfo.Equals(CultureInfo.InvariantCulture) == false)
39 | {
40 | path = String.Format(@"{0}\{1}", assemblyName.CultureInfo, path);
41 | }
42 | else
43 | {
44 | //fix for our subfolder
45 | path = String.Format("PacketViewer.Libs.{0}.dll", assemblyName.Name);
46 | }
47 |
48 | using (Stream stream = executingAssembly.GetManifestResourceStream(path))
49 | {
50 | if (stream == null)
51 | return null;
52 |
53 | byte[] assemblyRawBytes = new byte[stream.Length];
54 | stream.Read(assemblyRawBytes, 0, assemblyRawBytes.Length);
55 | return Assembly.Load(assemblyRawBytes);
56 | }
57 | }
58 | }
59 | }
60 |
--------------------------------------------------------------------------------
/Opcode DLL/settings.xml:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | true
6 | I:\Henry\Projekte\Tera\Tera_PacketViewer\Opcode DLL\OpcodeDLL_3104.dll
7 |
8 |
9 |
10 |
11 | false
12 | false
13 | false
14 | false
15 |
16 | false
17 | DodgerBlue
18 | DeepSkyBlue
19 | false
20 | 0
21 | 0
22 | false
23 | false
24 | 0
25 |
26 | false
27 | false
28 | false
29 | false
30 | false
31 | false
32 | false
33 | false
34 | false
35 | false
36 | false
37 | false
38 | false
39 |
40 | false
41 | White
42 |
43 | TERA.exe
44 |
45 | false
46 | false
47 | false
48 |
49 |
--------------------------------------------------------------------------------
/PacketViewer/Network/PacketTranslator.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.IO;
4 | using System.Linq;
5 | using System.Windows;
6 | using PacketViewer.Forms;
7 |
8 | namespace PacketViewer.Network
9 | {
10 | class PacketTranslator
11 | {
12 | public static Dictionary PacketNames = new Dictionary();
13 |
14 | public static void Init()
15 | {
16 | string path = Directory.GetCurrentDirectory() + "\\opcodefile.txt";
17 | if (File.Exists(path))
18 | {
19 | TextReader reader = new StreamReader(path);
20 |
21 | string line = "";
22 | while ((line = reader.ReadLine()) != null)
23 | {
24 | //I_TELEPORT = 0
25 | string[] tmpString = line.Replace(" ", "").Split('=');
26 | PacketNames.Add(Convert.ToUInt16(tmpString[1]), tmpString[0]);
27 | }
28 |
29 | }
30 | else
31 | {
32 | MessageBox.Show("Opcodefile not found!");
33 | }
34 |
35 | }
36 |
37 | public static ushort GetOpcode(string name)
38 | {
39 | ushort opCode =
40 | (from val in PacketNames
41 | where val.Value.Equals(name)
42 | select val.Key).FirstOrDefault();
43 | return opCode;
44 | }
45 |
46 | public static string GetOpcodeName(ushort opCode)
47 | {
48 | string name;
49 |
50 | if (PacketNames.ContainsKey(opCode))
51 | {
52 | name = PacketNames[opCode];
53 | }
54 | else
55 | {
56 | string opCodeLittleEndianHex = BitConverter.GetBytes(opCode).ToHex();
57 | name = string.Format("0x{0}{1}", opCodeLittleEndianHex.Substring(2),
58 | opCodeLittleEndianHex.Substring(0, 2));
59 | }
60 |
61 | return name;
62 | }
63 | }
64 | }
65 |
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/ReadMe.txt:
--------------------------------------------------------------------------------
1 | ========================================================================
2 | DYNAMIC LINK LIBRARY: OpcodeDLL-Projektübersicht
3 | ========================================================================
4 |
5 | Diese OpcodeDLL-DLL wurde vom Anwendungs-Assistenten für Sie erstellt.
6 |
7 | Diese Datei bietet eine Übersicht über den Inhalt der einzelnen Dateien, aus
8 | denen Ihre OpcodeDLL-Anwendung besteht.
9 |
10 |
11 | OpcodeDLL.vcxproj
12 | Dies ist die Hauptprojektdatei für VC++-Projekte, die mit dem Anwendungs-Assistenten generiert werden. Sie enthält Informationen über die Version von Visual C++, mit der die Datei generiert wurde, sowie über die Plattformen, Konfigurationen und Projektfunktionen, die im Anwendungs-Assistenten ausgewählt wurden.
13 |
14 | OpcodeDLL.vcxproj.filters
15 | Dies ist die Filterdatei für VC++-Projekte, die mithilfe eines Anwendungs-Assistenten erstellt werden. Sie enthält Informationen über die Zuordnung zwischen den Dateien im Projekt und den Filtern. Diese Zuordnung wird in der IDE zur Darstellung der Gruppierung von Dateien mit ähnlichen Erweiterungen unter einem bestimmten Knoten verwendet (z. B. sind CPP-Dateien dem Filter "Quelldateien" zugeordnet).
16 |
17 | OpcodeDLL.cpp
18 | Dies ist die Hauptquelldatei der DLL.
19 |
20 | Diese DLL exportiert keine Symbole, Dies führt dazu, dass sie beim Buildvorgang keine LIB-Datei generiert. Wenn dieses Projekt eine Projektabhängigkeit eines anderen Projekts sein soll, müssen Sie entweder Code zum Exportieren einiger Symbole aus der DLL hinzufügen, damit eine Exportbibliothek erstellt wird, oder Sie können im Ordner "Linker" auf der Eigenschaftenseite "Allgemein" im Dialogfeld "Eigenschaftenseiten" des Projekts die Eigenschaft "Ignore Input Library" auf "Ja" festlegen.
21 |
22 | /////////////////////////////////////////////////////////////////////////////
23 | Andere Standarddateien:
24 |
25 | StdAfx.h, StdAfx.cpp
26 | Mit diesen Dateien werden eine vorkompilierte Headerdatei (PCH) mit dem Namen OpcodeDLL.pch und eine vorkompilierte Typendatei mit dem Namen StdAfx.obj erstellt.
27 |
28 | /////////////////////////////////////////////////////////////////////////////
29 | Weitere Hinweise:
30 |
31 | Der Anwendungs-Assistent weist Sie mit "TODO:"-Kommentaren auf Teile des
32 | Quellcodes hin, die Sie ergänzen oder anpassen sollten.
33 |
34 | /////////////////////////////////////////////////////////////////////////////
35 |
--------------------------------------------------------------------------------
/PacketViewer/Properties/AssemblyInfo.cs:
--------------------------------------------------------------------------------
1 | using System.Reflection;
2 | using System.Resources;
3 | using System.Runtime.CompilerServices;
4 | using System.Runtime.InteropServices;
5 | using System.Windows;
6 |
7 | // General Information about an assembly is controlled through the following
8 | // set of attributes. Change these attribute values to modify the information
9 | // associated with an assembly.
10 | [assembly: AssemblyTitle("PacketViewer")]
11 | [assembly: AssemblyDescription("")]
12 | [assembly: AssemblyConfiguration("")]
13 | [assembly: AssemblyCompany("GoneUp")]
14 | [assembly: AssemblyProduct("PacketViewer")]
15 | [assembly: AssemblyCopyright("")]
16 | [assembly: AssemblyTrademark("")]
17 | [assembly: AssemblyCulture("")]
18 |
19 | // Setting ComVisible to false makes the types in this assembly not visible
20 | // to COM components. If you need to access a type in this assembly from
21 | // COM, set the ComVisible attribute to true on that type.
22 | [assembly: ComVisible(false)]
23 |
24 | //In order to begin building localizable applications, set
25 | //CultureYouAreCodingWith in your .csproj file
26 | //inside a . For example, if you are using US english
27 | //in your source files, set the to en-US. Then uncomment
28 | //the NeutralResourceLanguage attribute below. Update the "en-US" in
29 | //the line below to match the UICulture setting in the project file.
30 |
31 | //[assembly: NeutralResourcesLanguage("en-US", UltimateResourceFallbackLocation.Satellite)]
32 |
33 |
34 | [assembly: ThemeInfo(
35 | ResourceDictionaryLocation.None, //where theme specific resource dictionaries are located
36 | //(used if a resource is not found in the page,
37 | // or application resource dictionaries)
38 | ResourceDictionaryLocation.SourceAssembly //where the generic resource dictionary is located
39 | //(used if a resource is not found in the page,
40 | // app, or any theme specific resource dictionaries)
41 | )]
42 |
43 |
44 | // Version information for an assembly consists of the following four values:
45 | //
46 | // Major Version
47 | // Minor Version
48 | // Build Number
49 | // Revision
50 | //
51 | // You can specify all the values or you can default the Build and Revision Numbers
52 | // by using the '*' as shown below:
53 | // [assembly: AssemblyVersion("1.0.*")]
54 | [assembly: AssemblyVersion("1.0.0.0")]
55 | [assembly: AssemblyFileVersion("1.0.0.0")]
56 |
--------------------------------------------------------------------------------
/PacketViewer/Properties/Resources.Designer.cs:
--------------------------------------------------------------------------------
1 | //------------------------------------------------------------------------------
2 | //
3 | // This code was generated by a tool.
4 | // Runtime Version:4.0.30319.17379
5 | //
6 | // Changes to this file may cause incorrect behavior and will be lost if
7 | // the code is regenerated.
8 | //
9 | //------------------------------------------------------------------------------
10 |
11 | namespace PacketViewer.Properties
12 | {
13 |
14 |
15 | ///
16 | /// A strongly-typed resource class, for looking up localized strings, etc.
17 | ///
18 | // This class was auto-generated by the StronglyTypedResourceBuilder
19 | // class via a tool like ResGen or Visual Studio.
20 | // To add or remove a member, edit your .ResX file then rerun ResGen
21 | // with the /str option, or rebuild your VS project.
22 | [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")]
23 | [global::System.Diagnostics.DebuggerNonUserCodeAttribute()]
24 | [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()]
25 | internal class Resources
26 | {
27 |
28 | private static global::System.Resources.ResourceManager resourceMan;
29 |
30 | private static global::System.Globalization.CultureInfo resourceCulture;
31 |
32 | [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")]
33 | internal Resources()
34 | {
35 | }
36 |
37 | ///
38 | /// Returns the cached ResourceManager instance used by this class.
39 | ///
40 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
41 | internal static global::System.Resources.ResourceManager ResourceManager
42 | {
43 | get
44 | {
45 | if ((resourceMan == null))
46 | {
47 | global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("PacketViewer.Properties.Resources", typeof(Resources).Assembly);
48 | resourceMan = temp;
49 | }
50 | return resourceMan;
51 | }
52 | }
53 |
54 | ///
55 | /// Overrides the current thread's CurrentUICulture property for all
56 | /// resource lookups using this strongly typed resource class.
57 | ///
58 | [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)]
59 | internal static global::System.Globalization.CultureInfo Culture
60 | {
61 | get
62 | {
63 | return resourceCulture;
64 | }
65 | set
66 | {
67 | resourceCulture = value;
68 | }
69 | }
70 | }
71 | }
72 |
--------------------------------------------------------------------------------
/PacketViewer/Classes/TeraLogReader.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Runtime;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows.Controls;
10 | using PacketViewer.Network;
11 | using Tera.PacketLog;
12 |
13 | namespace PacketViewer.Classes
14 | {
15 | class TeraLogReader : IPacketInput
16 | {
17 | private FileStream fs;
18 | private BinaryReader reader;
19 | private PacketProcessor processor;
20 |
21 | public TeraLogReader(string file)
22 | {
23 | if (!File.Exists(file)) throw new Exception("File not found!");
24 |
25 | fs = new FileStream(file, FileMode.Open);
26 | reader = new BinaryReader(fs);
27 | }
28 |
29 | public void SetProcessor(PacketProcessor pp)
30 | {
31 | processor = pp;
32 | }
33 |
34 | public void Process()
35 | {
36 | fs.Seek(0, SeekOrigin.Begin);
37 | while (fs.Position < fs.Length)
38 | {
39 | Packet_old tmpPacket;
40 | BlockType type = (BlockType)reader.ReadByte();
41 | ushort len = reader.ReadUInt16();
42 | fs.Seek(-2, SeekOrigin.Current); ; //turn it back, our packet_old class expects a length in the packet
43 | byte[] payload = reader.ReadBytes(len);
44 |
45 | switch (type)
46 | {
47 | case BlockType.MagicBytes:
48 | string magic = ASCIIEncoding.ASCII.GetString(payload, 2, payload.Length - 2);
49 | if (magic != "TeraConnectionLog") throw new Exception("Invalid Magic Block.");
50 | Debug.Print("found magic");
51 | break;
52 | case BlockType.Region:
53 | string region = ASCIIEncoding.ASCII.GetString(payload, 2, payload.Length - 2);
54 | Debug.Print("region " + region);
55 | break;
56 | case BlockType.Start:
57 | Debug.Print("start");
58 | break;
59 | case BlockType.Timestamp:
60 | //var date = LogHelper.BytesToTimeSpan(payload);
61 | //Debug.Print("time " + date.ToShortTimeString());
62 | break;
63 | case BlockType.Client:
64 | tmpPacket = new Packet_old(Direction.CS, BitConverter.ToUInt16(payload, 2), payload, false);
65 | processor.AppendPacket(tmpPacket);
66 | break;
67 | case BlockType.Server:
68 | tmpPacket = new Packet_old(Direction.SC, BitConverter.ToUInt16(payload, 2), payload, false);
69 | processor.AppendPacket(tmpPacket);
70 | break;
71 | }
72 | }
73 |
74 | reader.Close();
75 | }
76 | }
77 | }
78 |
--------------------------------------------------------------------------------
/PacketViewer/Network/Capture.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.Threading;
5 | using System.Windows.Documents;
6 | using PacketViewer.Classes;
7 | using PacketViewer.Forms;
8 | using SharpPcap;
9 | using Tera;
10 | using Tera.Game;
11 | using Tera.PacketLog;
12 | using Tera.Sniffing;
13 |
14 | namespace PacketViewer.Network
15 | {
16 | public class Capture
17 | {
18 | private TeraSniffer sniffer;
19 | private readonly MainWindow mainWindow;
20 | private PacketLogWriter logWriter;
21 |
22 | public Capture(MainWindow mainWindow)
23 | {
24 | this.mainWindow = mainWindow;
25 | }
26 |
27 | public void Start(ServerInfo server)
28 | {
29 | Stop();
30 |
31 | sniffer = new TeraSniffer(new List {server}); //dont want to change the external code ;)
32 | sniffer.MessageReceived += messageReceived;
33 | sniffer.NewConnection += newConnection;
34 |
35 | sniffer.Enabled = true;
36 | }
37 |
38 | public void Stop()
39 | {
40 | if (sniffer != null)
41 | {
42 | sniffer.Enabled = false;
43 | sniffer = null;
44 | }
45 | }
46 |
47 | private void newConnection(Server server)
48 | {
49 | mainWindow.SetText("New connection to " + server.Name);
50 | }
51 |
52 | private void messageReceived(Message message)
53 | {
54 | try
55 | {
56 | //Message does not contain our length, add it to see the full packet
57 | byte[] data = new byte[message.Data.Count];
58 | Array.Copy(message.Data.Array, 0, data, 2, message.Data.Count - 2);
59 | data[0] = (byte) (((short) message.Data.Count) & 255);
60 | data[1] = (byte)(((short)message.Data.Count) >> 8);
61 | if (message.Direction == MessageDirection.ClientToServer)
62 | {
63 | Packet_old tmpPacket = new Packet_old(Direction.CS, message.OpCode, data, false);
64 | mainWindow.pp.AppendPacket(tmpPacket);
65 | }
66 | else
67 | {
68 | Packet_old tmpPacket = new Packet_old(Direction.SC, message.OpCode, data, false);
69 | mainWindow.pp.AppendPacket(tmpPacket);
70 | }
71 |
72 | if (logWriter != null)
73 | {
74 | logWriter.Append(message);
75 | }
76 |
77 | }
78 | catch (Exception ex)
79 | {
80 |
81 | mainWindow.SetText("device_OnPacketArrival failure. \n Message:" + ex);
82 | }
83 | }
84 |
85 | public void EnableLogging()
86 | {
87 | var header = new LogHeader { Region = "EU" };
88 | logWriter = new PacketLogWriter(string.Format("{0}.TeraLog", DateTime.Now.ToString("yyyy-MM-dd HH-mm-ss", CultureInfo.InvariantCulture)), header);
89 | }
90 |
91 | public void DisableLogging()
92 | {
93 | logWriter.Dispose();
94 | logWriter = null;
95 |
96 | }
97 |
98 | public bool isRunning()
99 | {
100 | if (sniffer == null) return false;
101 | return sniffer.Enabled;
102 | }
103 | }
104 | }
--------------------------------------------------------------------------------
/PacketViewer/Network/Lists/PacketStream.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 |
8 | namespace PacketViewer.Network.Lists
9 | {
10 | class PacketStream : IPacketList
11 | {
12 | private MemoryStream ms;
13 | // private BinaryReader reader;
14 | private int pointer = 0;
15 | private string tag;
16 | private static bool dbg;
17 | private object dataLock;
18 |
19 | public PacketStream(string value)
20 | {
21 | dataLock = new object();
22 | tag = value;
23 | ms = new MemoryStream();
24 | //reader = new BinaryReader(ms);
25 | //if (tag == "S") dbg = true;
26 | }
27 |
28 | public void Clear()
29 | {
30 | lock (dataLock)
31 | {
32 | ms = new MemoryStream();
33 | pointer = 0;
34 | }
35 |
36 | if (dbg) Debug.Print("{0} Clear", tag);
37 | }
38 |
39 | public void Enqueue(byte[] data)
40 | {
41 | lock (dataLock)
42 | {
43 | ms.Seek(0, SeekOrigin.End);
44 | ms.Write(data, 0, data.Length);
45 | }
46 | if (dbg) Debug.Print("Enq {0} len {1}, ges {2}", tag, data.Length, ms.Length);
47 | }
48 |
49 | public byte[] GetBytes(int count)
50 | {
51 | byte[] buffer;
52 | if (count > 10000) Debug.Print("{3} Get_10k {0} count {1}, length_gesamt {2}", tag, count, ToString(), DateTime.Now.ToLongTimeString());
53 | if (dbg) Debug.Print("Get {0} count {1}, length_gesamt {2}, pointer {3}", tag, count, ms.Length, pointer);
54 |
55 |
56 | if (count > ms.Length)
57 | {
58 | throw new Exception("DATA MISSING " + string.Format("Get {0} count {1}, length_gesamt {2}", tag, count, ms.Length));
59 | }
60 |
61 | lock (dataLock)
62 | {
63 | buffer = new byte[count];
64 | ms.Seek(pointer, SeekOrigin.Begin);
65 | ms.Read(buffer, 0, count);
66 | pointer += count;
67 |
68 | if (pointer == ms.Length)
69 | {
70 | //fully read, cleanup
71 | ms = new MemoryStream();
72 | pointer = 0;
73 | }
74 |
75 | if (pointer > 0xFFFF) //64kb
76 | {
77 |
78 | }
79 | }
80 |
81 | return buffer;
82 | }
83 |
84 | public int GetLength()
85 | {
86 | return (int)ms.Length - pointer;
87 | }
88 |
89 | public bool PacketAvailable()
90 | {
91 | //peek length from buffer, check with buffer len
92 | int packetLen;
93 | lock (dataLock)
94 | {
95 | if (pointer + 2 > ms.Length) return false;
96 | packetLen = NextPacketLength();
97 | }
98 | return (GetLength() >= packetLen);
99 | }
100 |
101 | public int NextPacketLength()
102 | {
103 | int val = BitConverter.ToUInt16(ms.GetBuffer(), pointer);
104 | return val;
105 | }
106 |
107 | public override string ToString()
108 | {
109 | StringBuilder builder = new StringBuilder();
110 | builder.AppendLine("[PacketStream] ").AppendLine(tag);
111 | builder.AppendLine("MS Pos" + ms.Position);
112 | builder.AppendLine("MS Cap" + ms.Capacity);
113 | builder.AppendLine("GetLength " + GetLength());
114 | builder.AppendLine("PacketAvailable " + PacketAvailable());
115 | if (PacketAvailable()) builder.AppendLine("NextPacketLength " + NextPacketLength());
116 | return builder.ToString();
117 | }
118 | }
119 | }
120 |
--------------------------------------------------------------------------------
/PacketViewer/Network/Lists/PacketQueue.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 |
4 | namespace PacketViewer.Network.Lists
5 | {
6 | class PacketQueue : IPacketList
7 | {
8 | private Queue queue;
9 | private byte[] leftover;
10 | private int length;
11 |
12 | public PacketQueue()
13 | {
14 | queue = new Queue();
15 | }
16 |
17 | public void Clear()
18 | {
19 | queue.Clear();
20 | }
21 |
22 | public void Enqueue(byte[] data)
23 | {
24 | queue.Enqueue(data);
25 | length += data.Length;
26 | }
27 |
28 | public byte[] GetBytes(int count)
29 | {
30 | int read = 0;
31 | byte[] buffer = null;
32 |
33 | //Option A: Single complete packet in one buffer
34 | //Option B: Multiple packets in one buffer --> keep the leftover that is not requested
35 | //Option C: Packet that is in muliple Buffers --> keep leftover
36 | //Option D: Got a leftover, copy that before --> ABC
37 |
38 |
39 | if (leftover != null)
40 | {
41 | //D
42 | buffer = new byte[count];
43 |
44 | if (leftover.Length <= count) {
45 | Array.Copy(leftover, buffer, leftover.Length);
46 | read += leftover.Length;
47 | leftover = null;
48 | }
49 | else
50 | {
51 | Array.Copy(leftover, buffer, count);
52 | byte[] newleftover = new byte[leftover.Length - count];
53 | Array.Copy(leftover, count, newleftover, 0, leftover.Length - count);
54 | leftover = newleftover;
55 |
56 | read += count;
57 | }
58 | }
59 |
60 | while (read < count && queue.Count > 0)
61 | {
62 | byte[] dequeued = queue.Dequeue();
63 |
64 | if (dequeued.Length + read == count)
65 | {
66 | //A
67 | if (read == 0) //complete packet in one
68 | {
69 | buffer = dequeued;
70 | }
71 | else //alrdy smth in buffer
72 | {
73 | Array.Copy(dequeued, 0, buffer, read, count - read);
74 | }
75 | read = count;
76 | }
77 | else if (dequeued.Length + read < count)
78 | {
79 | //B
80 | if (buffer == null) buffer = new byte[count];
81 | Array.Copy(dequeued, 0, buffer, read, dequeued.Length);
82 | read += dequeued.Length;
83 | }
84 | else if (dequeued.Length + read > count)
85 | {
86 | //C
87 | if (buffer == null) buffer = new byte[count];
88 | Array.Copy(dequeued, 0, buffer, read, count - read);
89 |
90 | leftover = new byte[(dequeued.Length + read) - count];
91 | Array.Copy(dequeued, count - read, leftover, 0, leftover.Length);
92 |
93 | read = count;
94 | }
95 |
96 | }
97 |
98 | if (read < count)
99 | {
100 | throw new Exception("DATA MISSING");
101 | }
102 |
103 | length -= count;
104 | return buffer;
105 | }
106 |
107 | public int GetLength()
108 | {
109 | return length;
110 | }
111 |
112 | public bool PacketAvailable()
113 | {
114 | //peek length from buffer, check with buffer len
115 | if (queue.Count == 0 && leftover == null && length < 2) return false;
116 | int packetLen = NextPacketLength();
117 | return (GetLength() >= packetLen);
118 | }
119 |
120 | public int NextPacketLength()
121 | {
122 | if (leftover != null) return BitConverter.ToUInt16(leftover, 0);
123 | return BitConverter.ToUInt16(queue.Peek(), 0);
124 | }
125 | }
126 | }
127 |
--------------------------------------------------------------------------------
/.gitignore:
--------------------------------------------------------------------------------
1 | ## Ignore Visual Studio temporary files, build results, and
2 | ## files generated by popular Visual Studio add-ons.
3 |
4 | # User-specific files
5 | *.suo
6 | *.user
7 | *.userosscache
8 | *.sln.docstates
9 |
10 | # User-specific files (MonoDevelop/Xamarin Studio)
11 | *.userprefs
12 |
13 | # Build results
14 | [Dd]ebug/
15 | [Dd]ebugPublic/
16 | [Rr]elease/
17 | [Rr]eleases/
18 | x64/
19 | x86/
20 | build/
21 | bld/
22 | [Bb]in/
23 | [Oo]bj/
24 |
25 | # Visual Studio 2015 cache/options directory
26 | .vs/
27 | # Uncomment if you have tasks that create the project's static files in wwwroot
28 | #wwwroot/
29 |
30 | # MSTest test Results
31 | [Tt]est[Rr]esult*/
32 | [Bb]uild[Ll]og.*
33 |
34 | # NUNIT
35 | *.VisualState.xml
36 | TestResult.xml
37 |
38 | # Build Results of an ATL Project
39 | [Dd]ebugPS/
40 | [Rr]eleasePS/
41 | dlldata.c
42 |
43 | # DNX
44 | project.lock.json
45 | artifacts/
46 |
47 | *_i.c
48 | *_p.c
49 | *_i.h
50 | *.ilk
51 | *.meta
52 | *.obj
53 | *.pch
54 | *.pdb
55 | *.pgc
56 | *.pgd
57 | *.rsp
58 | *.sbr
59 | *.tlb
60 | *.tli
61 | *.tlh
62 | *.tmp
63 | *.tmp_proj
64 | *.log
65 | *.vspscc
66 | *.vssscc
67 | .builds
68 | *.pidb
69 | *.svclog
70 | *.scc
71 |
72 | # Chutzpah Test files
73 | _Chutzpah*
74 |
75 | # Visual C++ cache files
76 | ipch/
77 | *.aps
78 | *.ncb
79 | *.opendb
80 | *.opensdf
81 | *.sdf
82 | *.cachefile
83 |
84 | # Visual Studio profiler
85 | *.psess
86 | *.vsp
87 | *.vspx
88 | *.sap
89 |
90 | # TFS 2012 Local Workspace
91 | $tf/
92 |
93 | # Guidance Automation Toolkit
94 | *.gpState
95 |
96 | # ReSharper is a .NET coding add-in
97 | _ReSharper*/
98 | *.[Rr]e[Ss]harper
99 | *.DotSettings.user
100 |
101 | # JustCode is a .NET coding add-in
102 | .JustCode
103 |
104 | # TeamCity is a build add-in
105 | _TeamCity*
106 |
107 | # DotCover is a Code Coverage Tool
108 | *.dotCover
109 |
110 | # NCrunch
111 | _NCrunch_*
112 | .*crunch*.local.xml
113 | nCrunchTemp_*
114 |
115 | # MightyMoose
116 | *.mm.*
117 | AutoTest.Net/
118 |
119 | # Web workbench (sass)
120 | .sass-cache/
121 |
122 | # Installshield output folder
123 | [Ee]xpress/
124 |
125 | # DocProject is a documentation generator add-in
126 | DocProject/buildhelp/
127 | DocProject/Help/*.HxT
128 | DocProject/Help/*.HxC
129 | DocProject/Help/*.hhc
130 | DocProject/Help/*.hhk
131 | DocProject/Help/*.hhp
132 | DocProject/Help/Html2
133 | DocProject/Help/html
134 |
135 | # Click-Once directory
136 | publish/
137 |
138 | # Publish Web Output
139 | *.[Pp]ublish.xml
140 | *.azurePubxml
141 | # TODO: Comment the next line if you want to checkin your web deploy settings
142 | # but database connection strings (with potential passwords) will be unencrypted
143 | *.pubxml
144 | *.publishproj
145 |
146 | # NuGet Packages
147 | *.nupkg
148 | # The packages folder can be ignored because of Package Restore
149 | **/packages/*
150 | # except build/, which is used as an MSBuild target.
151 | !**/packages/build/
152 | # Uncomment if necessary however generally it will be regenerated when needed
153 | #!**/packages/repositories.config
154 |
155 | # Windows Azure Build Output
156 | csx/
157 | *.build.csdef
158 |
159 | # Windows Azure Emulator
160 | ecf/
161 | rcf/
162 |
163 | # Windows Store app package directory
164 | AppPackages/
165 | BundleArtifacts/
166 |
167 | # Visual Studio cache files
168 | # files ending in .cache can be ignored
169 | *.[Cc]ache
170 | # but keep track of directories ending in .cache
171 | !*.[Cc]ache/
172 |
173 | # Others
174 | ClientBin/
175 | [Ss]tyle[Cc]op.*
176 | ~$*
177 | *~
178 | *.dbmdl
179 | *.dbproj.schemaview
180 | *.pfx
181 | *.publishsettings
182 | node_modules/
183 | orleans.codegen.cs
184 |
185 | # RIA/Silverlight projects
186 | Generated_Code/
187 |
188 | # Backup & report files from converting an old project file
189 | # to a newer Visual Studio version. Backup files are not needed,
190 | # because we have git ;-)
191 | _UpgradeReport_Files/
192 | Backup*/
193 | UpgradeLog*.XML
194 | UpgradeLog*.htm
195 |
196 | # SQL Server files
197 | *.mdf
198 | *.ldf
199 |
200 | # Business Intelligence projects
201 | *.rdl.data
202 | *.bim.layout
203 | *.bim_*.settings
204 |
205 | # Microsoft Fakes
206 | FakesAssemblies/
207 |
208 | # GhostDoc plugin setting file
209 | *.GhostDoc.xml
210 |
211 | # Node.js Tools for Visual Studio
212 | .ntvs_analysis.dat
213 |
214 | # Visual Studio 6 build log
215 | *.plg
216 |
217 | # Visual Studio 6 workspace options file
218 | *.opt
219 |
220 | # Visual Studio LightSwitch build output
221 | **/*.HTMLClient/GeneratedArtifacts
222 | **/*.DesktopClient/GeneratedArtifacts
223 | **/*.DesktopClient/ModelManifest.xml
224 | **/*.Server/GeneratedArtifacts
225 | **/*.Server/ModelManifest.xml
226 | _Pvt_Extensions
227 |
228 | # Paket dependency manager
229 | .paket/paket.exe
230 |
231 | # FAKE - F# Make
232 | .fake/
--------------------------------------------------------------------------------
/Opcode DLL/OpcodeDLL/OpcodeDLL/OpcodeDLL.vcxproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | Win32
7 |
8 |
9 | Release
10 | Win32
11 |
12 |
13 |
14 | {E7E18D39-C539-4717-A2C7-1F21C12A0233}
15 | Win32Proj
16 | OpcodeDLL
17 |
18 |
19 |
20 | DynamicLibrary
21 | true
22 | v110
23 | Unicode
24 |
25 |
26 | DynamicLibrary
27 | false
28 | v110
29 | true
30 | Unicode
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 | true
44 |
45 |
46 | false
47 |
48 |
49 |
50 | Use
51 | Level3
52 | Disabled
53 | WIN32;_DEBUG;_WINDOWS;_USRDLL;OPCODEDLL_EXPORTS;%(PreprocessorDefinitions)
54 |
55 |
56 | Windows
57 | true
58 |
59 |
60 |
61 |
62 | Level3
63 | Use
64 | MaxSpeed
65 | true
66 | true
67 | WIN32;NDEBUG;_WINDOWS;_USRDLL;OPCODEDLL_EXPORTS;%(PreprocessorDefinitions)
68 |
69 |
70 | Windows
71 | true
72 | true
73 | true
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 | false
86 |
87 |
88 | false
89 |
90 |
91 |
92 |
93 | Create
94 | Create
95 |
96 |
97 |
98 |
99 |
100 |
--------------------------------------------------------------------------------
/PacketViewer/Properties/Resources.resx:
--------------------------------------------------------------------------------
1 |
2 |
3 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 |
102 |
103 |
104 |
105 |
106 | text/microsoft-resx
107 |
108 |
109 | 2.0
110 |
111 |
112 | System.Resources.ResXResourceReader, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
113 |
114 |
115 | System.Resources.ResXResourceWriter, System.Windows.Forms, Version=2.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089
116 |
117 |
--------------------------------------------------------------------------------
/PacketViewer/Network/PacketProcessor.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.Globalization;
5 | using System.Threading;
6 | using System.Threading.Tasks;
7 | using System.Windows.Media;
8 |
9 | using PacketViewer.Forms;
10 | using PacketViewer.Network.Lists;
11 | using Tera.PacketLog;
12 | using Tera.Sniffing.Crypt;
13 |
14 | namespace PacketViewer.Network
15 | {
16 | public class PacketProcessor
17 | {
18 | private readonly Object lockObject;
19 |
20 | public bool Initialized;
21 | public Session SecSession;
22 |
23 | public IPacketList ServerPackets;
24 | public IPacketList ClientPackets;
25 |
26 | public List Packets;
27 |
28 |
29 | private readonly MainWindow MainWindow;
30 |
31 | public PacketProcessor(MainWindow mainWindow)
32 | {
33 | lockObject = new object();
34 | MainWindow = mainWindow;
35 | }
36 |
37 |
38 | public void Init()
39 | {
40 | SecSession = new Session();
41 | Initialized = false;
42 |
43 | ServerPackets = new PacketStream("S");
44 | ClientPackets = new PacketList("C");
45 |
46 | Packets = new List();
47 | }
48 |
49 | public void AppendServerData(byte[] data)
50 | {
51 | if (Initialized)
52 | SecSession.Encrypt(data);
53 |
54 | ServerPackets.Enqueue(data);
55 |
56 | }
57 |
58 | public void AppendClientData(byte[] data)
59 | {
60 |
61 | if (Initialized)
62 | SecSession.Decrypt(data);
63 |
64 | ClientPackets.Enqueue(data);
65 |
66 | }
67 |
68 | public void ProcessAllServerData()
69 | {
70 | if (!Initialized) return;
71 | if (ServerPackets.GetLength() > (0xFFFF))
72 | Debug.Print("S BACKLOG " + ServerPackets.GetLength());
73 | while (ServerPackets.PacketAvailable())
74 | {
75 | ProcessServerData(); //aka one packet
76 | }
77 | }
78 |
79 | public void ProcessServerData()
80 | {
81 | int length = ServerPackets.NextPacketLength();
82 | if (length == 0) throw new Exception("Server data reader is broken....");
83 |
84 | byte[] data = ServerPackets.GetBytes(length);
85 | ushort opCode = BitConverter.ToUInt16(data, 2);
86 | Packet_old tmpPacket = new Packet_old(Direction.SC, opCode, data, false);
87 | //Debug.Print(DateTime.Now.ToLongTimeString() + " " + tmpPacket.OpName);
88 |
89 | AppendPacket(tmpPacket);
90 | }
91 |
92 | public void ProcessAllClientData()
93 | {
94 | if (!Initialized) return;
95 | if (ClientPackets.GetLength() > (0xFFFF)) Debug.Print("C BACKLOG " + ClientPackets.GetLength());
96 | while (ClientPackets.PacketAvailable())
97 | {
98 | ProcessClientData(); //aka one packet
99 | }
100 | }
101 |
102 | public void ProcessClientData()
103 | {
104 | int length = ClientPackets.NextPacketLength();
105 | if (length == 0) throw new Exception("Client data reader is broken....");
106 |
107 | byte[] data = ClientPackets.GetBytes(length);
108 | ushort opCode = BitConverter.ToUInt16(data, 2);
109 | Packet_old tmpPacket = new Packet_old(Direction.CS, opCode, data, false);
110 |
111 | AppendPacket(tmpPacket);
112 | }
113 |
114 | //Just needed a general function that also can be accessed from TeraLogReader
115 | public void AppendPacket(Packet_old tmpPacket)
116 | {
117 | //Task.Factory.StartNew(() => MainWindow.AppendPacket(Colors.WhiteSmoke, tmpPacket.ToString(), tmpPacket));
118 | MainWindow.AppendPacket(tmpPacket);
119 |
120 | }
121 |
122 | public void TryInit()
123 | {
124 | if (Initialized) return;
125 |
126 | if (ClientPackets.GetLength() >= 256 && ServerPackets.GetLength() >= (256 + 4))
127 | {
128 | Debug.Print("--------------Init");
129 | ServerPackets.GetBytes(4); //first dword
130 | SecSession.ServerKey1 = ServerPackets.GetBytes(128);
131 | SecSession.ServerKey2 = ServerPackets.GetBytes(128);
132 | SecSession.ClientKey1 = ClientPackets.GetBytes(128);
133 | SecSession.ClientKey2 = ClientPackets.GetBytes(128);
134 | SecSession.Init();
135 |
136 | Debug.Print("-----------Init2");
137 | lock (lockObject)
138 | {
139 | //Lock tcp sniffer, we dont want any new packets while we are processing the backlog
140 |
141 | Initialized = true;
142 | byte[] tmp;
143 | if (ServerPackets.GetLength() > 0)
144 | {
145 | tmp = ServerPackets.GetBytes(ServerPackets.GetLength());
146 | SecSession.Encrypt(tmp);
147 | ServerPackets.Enqueue(tmp);
148 | Debug.Print("#########NEXT S LEN " + ServerPackets.NextPacketLength());
149 | }
150 |
151 | if (ClientPackets.GetLength() > 0)
152 | {
153 | tmp = ClientPackets.GetBytes(ClientPackets.GetLength());
154 | SecSession.Decrypt(tmp);
155 | ClientPackets.Enqueue(tmp);
156 | Debug.Print("#########NEXT C LEN " + ServerPackets.NextPacketLength());
157 | }
158 | }
159 | Debug.Print("------------Init done");
160 | }
161 | }
162 | }
163 | }
164 |
--------------------------------------------------------------------------------
/PacketViewer/MiscFuncs.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Globalization;
4 | using System.IO;
5 | using System.Text;
6 | using System.Windows.Documents;
7 | using System.Xml;
8 | using PacketViewer.Classes;
9 |
10 | namespace PacketViewer
11 | {
12 | public static class MiscFuncs
13 | {
14 | private static readonly Random Randomizer = new Random((int)DateTime.Now.Ticks);
15 |
16 | public static Random Random()
17 | {
18 | return Randomizer;
19 | }
20 |
21 | public static int GetRoundedUtc()
22 | {
23 | // ReSharper disable PossibleLossOfFraction
24 | return (int)Math.Round((double)(GetCurrentMilliseconds() / 1000));
25 | // ReSharper restore PossibleLossOfFraction
26 | }
27 |
28 | private static readonly DateTime StaticDate = new DateTime(1970, 1, 1, 0, 0, 0, DateTimeKind.Utc);
29 |
30 | public static long GetCurrentMilliseconds()
31 | {
32 | return (long)(DateTime.UtcNow - StaticDate).TotalMilliseconds;
33 | }
34 |
35 | private static readonly string[] Baths;
36 |
37 | static MiscFuncs()
38 | {
39 | Baths = new string[256];
40 | for (int i = 0; i < 256; i++)
41 | Baths[i] = String.Format("{0:X2}", i);
42 | }
43 |
44 | public static string ToHex(this byte[] array)
45 | {
46 | StringBuilder builder = new StringBuilder(array.Length * 2);
47 |
48 | for (int i = 0; i < array.Length; i++)
49 | builder.Append(Baths[array[i]]);
50 |
51 | return builder.ToString();
52 | }
53 |
54 | public static string FormatHex(this byte[] data)
55 | {
56 | StringBuilder builder = new StringBuilder(data.Length * 4);
57 |
58 | int count = 0;
59 | int pass = 1;
60 | foreach (byte b in data)
61 | {
62 | if (count == 0)
63 | builder.AppendFormat("{0,-6}\t", "[" + (pass - 1) * 16 + "]");
64 |
65 | count++;
66 | builder.Append(b.ToString("X2"));
67 | if (count == 4 || count == 8 || count == 12)
68 | builder.Append(" ");
69 | if (count == 16)
70 | {
71 | builder.Append("\t");
72 | for (int i = (pass * count) - 16; i < (pass * count); i++)
73 | {
74 | char c = (char)data[i];
75 | if (c > 0x1f && c < 0x80)
76 | builder.Append(c);
77 | else
78 | builder.Append(".");
79 | }
80 | builder.Append("\r\n");
81 | count = 0;
82 | pass++;
83 | }
84 | }
85 |
86 | //Last line Hex text Adding
87 | while (count < 16)
88 | {
89 | builder.Append("\t");
90 | count += 3;
91 | }
92 |
93 | for (int i = (pass * 16) - 16; i < (data.Length - 1); i++)
94 | {
95 | char c = (char)data[i];
96 | if (c > 0x1f && c < 0x80)
97 | builder.Append(c);
98 | else
99 | builder.Append(".");
100 | }
101 | builder.Append("\r\n");
102 |
103 |
104 | return builder.ToString();
105 | }
106 |
107 | public static byte[] ToBytes(this String hexString)
108 | {
109 | try
110 | {
111 | byte[] result = new byte[hexString.Length / 2];
112 |
113 | for (int index = 0; index < result.Length; index++)
114 | {
115 | string byteValue = hexString.Substring(index * 2, 2);
116 | result[index] = byte.Parse(byteValue, NumberStyles.HexNumber, CultureInfo.InvariantCulture);
117 | }
118 |
119 | return result;
120 | }
121 | catch (Exception)
122 | {
123 | Console.WriteLine("Invalid hex string: {0}", hexString);
124 | throw;
125 | }
126 | }
127 |
128 | public static bool IsLuck(byte chance)
129 | {
130 | if (chance >= 100)
131 | return true;
132 |
133 | if (chance <= 0)
134 | return false;
135 |
136 | return new Random().Next(0, 100) <= chance;
137 | }
138 |
139 | public static Configuration LoadServerlistFile(string path)
140 | {
141 | /*
142 | *
143 |
144 |
145 |
146 | * */
147 |
148 | if (File.Exists(path))
149 | {
150 | List servers = new List();
151 |
152 | using (XmlReader reader = XmlReader.Create(new StreamReader(path)))
153 | {
154 | reader.MoveToContent();
155 | while (reader.Read())
156 | {
157 | if (reader.Name == "Server")
158 | {
159 |
160 | reader.MoveToAttribute("Title");
161 | String name = reader.Value;
162 | reader.MoveToAttribute("Ip");
163 | String ip = reader.Value;
164 | Boolean focus = false;
165 | Boolean start = false;
166 |
167 | if (reader.MoveToAttribute("DefaultFocus"))
168 | {
169 | focus = Convert.ToBoolean(reader.Value);
170 | }
171 | if (reader.MoveToAttribute("AutoStart"))
172 | {
173 | start = Convert.ToBoolean(reader.Value);
174 | }
175 |
176 | ServerInfo info = new ServerInfo(name, ip, focus, start);
177 |
178 | servers.Add(info);
179 | }
180 | }
181 | }
182 |
183 |
184 | return new Configuration(servers);
185 | }
186 |
187 | return null;
188 | }
189 | }
190 | }
--------------------------------------------------------------------------------
/PacketViewer/Network/Lists/PacketList.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Text;
7 |
8 | namespace PacketViewer.Network.Lists
9 | {
10 | class PacketList : IPacketList
11 | {
12 | private List list;
13 | private int length;
14 | private string tag;
15 | private static bool dbg;
16 | private object dataLock;
17 |
18 | public PacketList(string value)
19 | {
20 | dataLock = new object();
21 | tag = value;
22 | list = new List();
23 | if (tag == "S") dbg = true;
24 | }
25 |
26 | public void Clear()
27 | {
28 | lock (dataLock)
29 | {
30 | list.Clear();
31 | length = 0;
32 | }
33 |
34 | if (dbg) Debug.Print("{0} Clear", tag);
35 | }
36 |
37 | public void Enqueue(byte[] data)
38 | {
39 | lock (dataLock)
40 | {
41 | list.Add(data);
42 | length += data.Length;
43 | }
44 | if (dbg) Debug.Print("Enq {0} len {1}, ges {2}", tag, data.Length, length);
45 | }
46 |
47 | public byte[] GetBytes(int count)
48 | {
49 | int read = 0;
50 | byte[] buffer = null;
51 |
52 | //Option A: Single complete packet in one buffer
53 | //Option B: Multiple packets in one buffer
54 | //Option C: Packet that is in muliple Buffers --> keep leftover
55 | //Option D: Got a leftover, copy that before --> ABC
56 |
57 | if (count > 10000) Debug.Print("Get_10k {0} count {1}, length_gesamt {2}", tag, count, ToString());
58 | if (dbg) Debug.Print("Get {0} count {1}, length_gesamt {2}", tag, count, length);
59 |
60 | lock (dataLock)
61 | {
62 | while (read < count && list.Count > 0)
63 | {
64 | byte[] dequeued;
65 |
66 | dequeued = list[0];
67 | list.RemoveAt(0);
68 |
69 |
70 | if (dequeued == null) continue;
71 | if (dbg) Debug.Print("Get {0} deq count {1}, read {2}", tag, dequeued.Length, read);
72 |
73 | if (dequeued.Length + read == count)
74 | {
75 | //A
76 | if (read == 0) //complete packet in one
77 | {
78 | buffer = dequeued;
79 | }
80 | else //alrdy smth in buffer
81 | {
82 | Array.Copy(dequeued, 0, buffer, read, count - read);
83 | }
84 | read = count;
85 | if (dbg) Debug.Print(tag + "_A");
86 | }
87 | else if (dequeued.Length + read < count)
88 | {
89 | //B
90 | if (buffer == null) buffer = new byte[count];
91 | Array.Copy(dequeued, 0, buffer, read, dequeued.Length);
92 | read += dequeued.Length;
93 | if (dbg) Debug.Print(tag + "_B read now " + read);
94 | }
95 | else if (dequeued.Length + read > count)
96 | {
97 | //C
98 | if (buffer == null) buffer = new byte[count];
99 | Array.Copy(dequeued, 0, buffer, read, count - read);
100 |
101 | //copy leftover back into first postition, next run will just get is as a normal part
102 | byte[] leftover = new byte[(dequeued.Length + read) - count];
103 | Array.Copy(dequeued, count - read, leftover, 0, leftover.Length);
104 | list.Insert(0, leftover);
105 | read = count;
106 | if (dbg) Debug.Print(tag + "_C buffer size {0}, leftover size {1}, next packet len {2}", buffer.Length, leftover.Length, NextPacketLength());
107 | }
108 |
109 | }
110 |
111 | if (read < count)
112 | {
113 | throw new Exception("DATA MISSING " + string.Format("Get {0} count {1}, length_gesamt {2} read {3}", tag, count, length, read));
114 | }
115 |
116 | length -= count;
117 | }
118 | return buffer;
119 | }
120 |
121 | public int GetLength()
122 | {
123 | return length;
124 | }
125 |
126 | public bool PacketAvailable()
127 | {
128 | //peek length from buffer, check with buffer len
129 | int packetLen;
130 | lock (dataLock)
131 | {
132 | if (list.Count == 0 || length < 2) return false;
133 | packetLen = NextPacketLength();
134 | }
135 | return (GetLength() >= packetLen);
136 | }
137 |
138 | public int NextPacketLength()
139 | {
140 | var tmp = new MemoryStream();
141 | for (int i = 0; i < list.Count; i++)
142 | {
143 | if (list[i] == null) continue;
144 | if (tmp.Length >= 2)
145 | {
146 | /*
147 | if (BitConverter.ToUInt16(tmp.GetBuffer(), 0) == 0)
148 | {
149 | i = 0; //bugged packet, drop it and hope that the next is readable again
150 | tmp = new MemoryStream();
151 | list.RemoveAt(0);
152 | continue;
153 | }
154 | */
155 | break;
156 | }
157 | tmp.Write(list[i], 0, list[i].Count());
158 | }
159 | return BitConverter.ToUInt16(tmp.GetBuffer(), 0);
160 | }
161 |
162 | public override string ToString()
163 | {
164 | StringBuilder builder = new StringBuilder();
165 | builder.AppendLine("[PacketList] ").AppendLine(tag);
166 | builder.AppendLine("List.Count " + list.Count);
167 | builder.AppendLine("GetLength " + GetLength());
168 | builder.AppendLine("PacketAvailable " + PacketAvailable());
169 | if (PacketAvailable()) builder.AppendLine("NextPacketLength " + NextPacketLength());
170 | return builder.ToString();
171 | }
172 | }
173 | }
174 |
--------------------------------------------------------------------------------
/PacketViewer/PacketViewer.csproj:
--------------------------------------------------------------------------------
1 |
2 |
3 |
4 |
5 | Debug
6 | AnyCPU
7 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}
8 | WinExe
9 | Properties
10 | PacketViewer
11 | PacketViewer
12 | v4.5
13 | 512
14 | {60dc8134-eba5-43b8-bcc9-bb4bc16c2548};{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}
15 | 4
16 |
17 |
18 | AnyCPU
19 | true
20 | full
21 | false
22 | ..\build\
23 | DEBUG;TRACE
24 | prompt
25 | 4
26 |
27 |
28 | AnyCPU
29 | pdbonly
30 | true
31 | ..\build\
32 | TRACE
33 | prompt
34 | 4
35 |
36 |
37 | icon.ico
38 |
39 |
40 | PacketViewer.Program
41 |
42 |
43 |
44 | Libs\PacketDotNet.dll
45 | False
46 |
47 |
48 | Libs\SharpPcap.dll
49 | False
50 |
51 |
52 |
53 |
54 |
55 | 4.0
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 | MSBuild:Compile
64 | Designer
65 |
66 |
67 | MSBuild:Compile
68 | Designer
69 |
70 |
71 | App.xaml
72 | Code
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 | MainWindow.xaml
83 | Code
84 |
85 |
86 | MSBuild:Compile
87 | Designer
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
98 |
99 |
100 |
101 | Code
102 |
103 |
104 | True
105 | True
106 | Resources.resx
107 |
108 |
109 | True
110 | Settings.settings
111 | True
112 |
113 |
114 | ResXFileCodeGenerator
115 | Resources.Designer.cs
116 |
117 |
118 | SettingsSingleFileGenerator
119 | Settings.Designer.cs
120 |
121 |
122 |
123 |
124 |
125 |
126 |
127 |
128 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}
129 | Tera.Core
130 | False
131 |
132 |
133 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}
134 | Tera.Sniffing
135 | False
136 |
137 |
138 |
139 |
140 |
141 |
142 |
143 |
144 |
145 |
146 |
147 |
148 |
149 |
150 | Always
151 |
152 |
153 |
154 |
161 |
--------------------------------------------------------------------------------
/Tera.sln:
--------------------------------------------------------------------------------
1 |
2 | Microsoft Visual Studio Solution File, Format Version 12.00
3 | # Visual Studio 2012
4 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "PacketViewer", "PacketViewer\PacketViewer.csproj", "{C6B79B46-E598-416F-B56E-5DAE09B3EF06}"
5 | EndProject
6 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "TeraDamageMeter", "TeraDamageMeter", "{166AE990-21DE-4AE3-82B5-85052A7E2193}"
7 | EndProject
8 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.Sniffer", "external\TDM\Tera.Sniffer\Tera.Sniffer.csproj", "{AB53A885-EA95-4ABC-8D65-32E8E80485B5}"
9 | EndProject
10 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.Core", "external\TDM\Tera.Core\Tera.Core.csproj", "{EE476C7C-2942-4BA4-AB47-7ADBE65635FD}"
11 | EndProject
12 | Project("{2150E333-8FDC-42A3-9474-1A3956D46DE8}") = "Solution Items", "Solution Items", "{60571443-038A-4337-9ED2-D4164D35B0F3}"
13 | EndProject
14 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "NetworkSniffer", "external\TDM\NetworkSniffer\NetworkSniffer.csproj", "{5B431143-1A77-44FF-8BC3-926FEC8AD97C}"
15 | EndProject
16 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.DamageMeter", "external\TDM\Tera.DamageMeter\Tera.DamageMeter.csproj", "{9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}"
17 | EndProject
18 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.Data", "external\TDM\Tera.Data\Tera.Data.csproj", "{4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}"
19 | EndProject
20 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.Sniffing", "external\TDM\Tera.Sniffing\Tera.Sniffing.csproj", "{66BB1685-8FF5-4431-B77F-7F80C92A5DA4}"
21 | EndProject
22 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.DamageMeter.WPF", "external\TDM\Tera.DamageMeter.WPF\Tera.DamageMeter.WPF.csproj", "{C8FF7566-3037-4F08-BAB6-98D7388DC852}"
23 | EndProject
24 | Project("{FAE04EC0-301F-11D3-BF4B-00C04F79EFBC}") = "Tera.DamageMeter.Core", "external\TDM\Tera.DamageMeter.Core\Tera.DamageMeter.Core.csproj", "{D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}"
25 | EndProject
26 | Global
27 | GlobalSection(SolutionConfigurationPlatforms) = preSolution
28 | Debug|Any CPU = Debug|Any CPU
29 | Debug|x64 = Debug|x64
30 | Release|Any CPU = Release|Any CPU
31 | Release|x64 = Release|x64
32 | EndGlobalSection
33 | GlobalSection(ProjectConfigurationPlatforms) = postSolution
34 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
35 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Debug|Any CPU.Build.0 = Debug|Any CPU
36 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Debug|x64.ActiveCfg = Debug|Any CPU
37 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Release|Any CPU.ActiveCfg = Release|Any CPU
38 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Release|Any CPU.Build.0 = Release|Any CPU
39 | {C6B79B46-E598-416F-B56E-5DAE09B3EF06}.Release|x64.ActiveCfg = Release|Any CPU
40 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
41 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Debug|Any CPU.Build.0 = Debug|Any CPU
42 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Debug|x64.ActiveCfg = Debug|Any CPU
43 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Release|Any CPU.ActiveCfg = Release|Any CPU
44 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Release|Any CPU.Build.0 = Release|Any CPU
45 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5}.Release|x64.ActiveCfg = Release|Any CPU
46 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
47 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Debug|Any CPU.Build.0 = Debug|Any CPU
48 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Debug|x64.ActiveCfg = Debug|Any CPU
49 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Release|Any CPU.ActiveCfg = Release|Any CPU
50 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Release|Any CPU.Build.0 = Release|Any CPU
51 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD}.Release|x64.ActiveCfg = Release|Any CPU
52 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
53 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Debug|Any CPU.Build.0 = Debug|Any CPU
54 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Debug|x64.ActiveCfg = Debug|Any CPU
55 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Release|Any CPU.ActiveCfg = Release|Any CPU
56 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Release|Any CPU.Build.0 = Release|Any CPU
57 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C}.Release|x64.ActiveCfg = Release|Any CPU
58 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
59 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Debug|Any CPU.Build.0 = Debug|Any CPU
60 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Debug|x64.ActiveCfg = Debug|Any CPU
61 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Release|Any CPU.ActiveCfg = Release|Any CPU
62 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Release|Any CPU.Build.0 = Release|Any CPU
63 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC}.Release|x64.ActiveCfg = Release|Any CPU
64 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
65 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Debug|Any CPU.Build.0 = Debug|Any CPU
66 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Debug|x64.ActiveCfg = Debug|Any CPU
67 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Release|Any CPU.ActiveCfg = Release|Any CPU
68 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Release|Any CPU.Build.0 = Release|Any CPU
69 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B}.Release|x64.ActiveCfg = Release|Any CPU
70 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
71 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Debug|Any CPU.Build.0 = Debug|Any CPU
72 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Debug|x64.ActiveCfg = Debug|Any CPU
73 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Release|Any CPU.ActiveCfg = Release|Any CPU
74 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Release|Any CPU.Build.0 = Release|Any CPU
75 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4}.Release|x64.ActiveCfg = Release|Any CPU
76 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
77 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Debug|Any CPU.Build.0 = Debug|Any CPU
78 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Debug|x64.ActiveCfg = Debug|Any CPU
79 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Release|Any CPU.ActiveCfg = Release|Any CPU
80 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Release|Any CPU.Build.0 = Release|Any CPU
81 | {C8FF7566-3037-4F08-BAB6-98D7388DC852}.Release|x64.ActiveCfg = Release|Any CPU
82 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Debug|Any CPU.ActiveCfg = Debug|Any CPU
83 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Debug|Any CPU.Build.0 = Debug|Any CPU
84 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Debug|x64.ActiveCfg = Debug|Any CPU
85 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Release|Any CPU.ActiveCfg = Release|Any CPU
86 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Release|Any CPU.Build.0 = Release|Any CPU
87 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1}.Release|x64.ActiveCfg = Release|Any CPU
88 | EndGlobalSection
89 | GlobalSection(SolutionProperties) = preSolution
90 | HideSolutionNode = FALSE
91 | EndGlobalSection
92 | GlobalSection(NestedProjects) = preSolution
93 | {AB53A885-EA95-4ABC-8D65-32E8E80485B5} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
94 | {EE476C7C-2942-4BA4-AB47-7ADBE65635FD} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
95 | {60571443-038A-4337-9ED2-D4164D35B0F3} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
96 | {5B431143-1A77-44FF-8BC3-926FEC8AD97C} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
97 | {9F95A8E5-0D27-4F16-A3F3-A1EC130A85EC} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
98 | {4B6AA9BD-CEC2-4AA6-B35A-1ACB2FA7767B} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
99 | {66BB1685-8FF5-4431-B77F-7F80C92A5DA4} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
100 | {C8FF7566-3037-4F08-BAB6-98D7388DC852} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
101 | {D1ED4752-F2FC-44C3-97B2-580BC79F4AF1} = {166AE990-21DE-4AE3-82B5-85052A7E2193}
102 | EndGlobalSection
103 | EndGlobal
104 |
--------------------------------------------------------------------------------
/PacketViewer/Forms/MainWindow.xaml:
--------------------------------------------------------------------------------
1 |
7 |
8 |
9 |
10 |
11 |
12 |
13 |
14 |
15 |
16 |
17 |
18 |
23 |
24 |
25 |
26 |
30 |
31 |
32 |
33 |
34 |
35 |
36 |
37 |
38 |
39 |
40 |
41 |
42 |
43 |
44 |
45 |
46 |
47 |
48 |
49 |
50 |
51 |
52 |
53 |
55 |
56 |
57 |
58 |
59 |
60 |
61 |
62 |
63 |
64 |
65 |
66 |
67 |
68 |
69 |
70 |
71 |
72 |
73 |
74 |
75 |
76 |
77 |
78 |
79 |
80 |
81 |
82 |
83 |
84 |
85 |
86 |
87 |
88 |
89 |
90 |
91 |
92 |
93 |
94 |
95 |
96 |
97 |
--------------------------------------------------------------------------------
/PacketViewer/Forms/MainWindow.xaml.cs:
--------------------------------------------------------------------------------
1 | using System;
2 | using System.Collections.Generic;
3 | using System.Diagnostics;
4 | using System.IO;
5 | using System.Linq;
6 | using System.Reflection;
7 | using System.Text;
8 | using System.Threading.Tasks;
9 | using System.Windows;
10 | using System.Windows.Controls;
11 | using System.Windows.Data;
12 | using System.Windows.Documents;
13 | using System.Windows.Media;
14 | using System.Xml.Schema;
15 | using Microsoft.Win32;
16 | using PacketViewer.Classes;
17 | using PacketViewer.Network;
18 |
19 | //Base by Cerium Unity. Edit by GoneUp. 21.02.2014
20 | using PacketViewer.Network.Lists;
21 | using Tera.Game;
22 |
23 | namespace PacketViewer.Forms
24 | {
25 | public partial class MainWindow
26 | {
27 |
28 | public Capture cap;
29 | public PacketProcessor pp;
30 | private PacketFilter filter;
31 | private int maxPackets;
32 |
33 | #region main
34 | public MainWindow()
35 | {
36 | try
37 | {
38 | InitializeComponent();
39 |
40 | //Opcode Section
41 | PacketTranslator.Init();
42 | pp = new PacketProcessor(this);
43 | cap = new Capture(this);
44 | filter = new PacketFilter();
45 |
46 | pp.Init();
47 |
48 | //Serverlist
49 | Configuration conf = MiscFuncs.LoadServerlistFile(Directory.GetCurrentDirectory() + "\\serverlist.xml");
50 | if (conf != null && conf.getServers().Count > 0)
51 | {
52 | //We got a custom serverlist.xml loaded....
53 | boxServers.Items.Clear();
54 |
55 | foreach (var server in conf.getServers())
56 | {
57 | ComboBoxItem item = new ComboBoxItem {Tag = server, Content = server.ToString()};
58 | int index = boxServers.Items.Add(item);
59 | if (server.Focus) boxServers.SelectedIndex = index;
60 | if (server.AutoStart) btnStartStop_Click(null, null);
61 | }
62 | }
63 |
64 |
65 | //Print Info
66 | string info = String.Format("Loaded {0} Opcodes. \n" +
67 | "Loaded {1} servers.\n" +
68 | "Github of this Project: https://github.com/GoneUp/Tera_PacketViewer\n" +
69 | "Released at Ragezone: http://forum.ragezone.com/f797/release-tera-live-packet-sniffer-1052922/\n" +
70 | "Uses code of the TeraDamageMeter by gothos-folly: https://github.com/gothos-folly/TeraDamageMeter\n" +
71 | "Have Fun ;)", PacketTranslator.PacketNames.Count, boxServers.Items.Count);
72 | SetText(info);
73 |
74 | }
75 | catch (Exception ex)
76 | {
77 |
78 | string info = "Startup FAIL! Is WinPcap installed? \n " + ex;
79 | SetText(info);
80 | }
81 | }
82 | #endregion
83 |
84 | #region invokes
85 | public void ClearPackets()
86 | {
87 | Dispatcher.BeginInvoke(
88 | new Action(
89 | delegate
90 | {
91 | pp.Packets.Clear();
92 | boxPackets.Items.Clear();
93 | }));
94 | }
95 |
96 | public void AppendPacket(Packet_old tmpPacket)
97 | {
98 | string itemText = tmpPacket.ToString();
99 | Color col;
100 | if (tmpPacket.Dir == Direction.SC)
101 | {
102 | col = Colors.LightBlue;
103 | }
104 | else
105 | {
106 | col = Colors.WhiteSmoke;
107 | }
108 |
109 | Dispatcher.BeginInvoke(
110 | new Action(
111 | delegate
112 | {
113 | ListBoxItem item = new ListBoxItem
114 | {
115 | Content = itemText,
116 | Background = new SolidColorBrush(col)
117 | };
118 |
119 | while (boxPackets.Items.Count >= maxPackets)
120 | {
121 | boxPackets.Items.RemoveAt(0);
122 | pp.Packets.RemoveAt(0);
123 | }
124 |
125 | if (filter.ShowPacket(tmpPacket))
126 | {
127 | boxPackets.Items.Add(item);
128 |
129 | if (boxAutoScroll.IsChecked.Value)
130 | {
131 | boxPackets.ScrollIntoView(item);
132 | }
133 |
134 | pp.Packets.Add(tmpPacket);
135 | }
136 | }));
137 | }
138 |
139 | public void SetText(string text)
140 | {
141 | Dispatcher.BeginInvoke(
142 | new Action(
143 | delegate
144 | {
145 | boxPacketInfo.Document.Blocks.Clear();
146 | boxPacketInfo.Document.Blocks.Add(new Paragraph(new Run(text)));
147 | }));
148 | }
149 | #endregion
150 |
151 | #region formfuncs
152 | private void btnStartStop_Click(object sender, RoutedEventArgs e)
153 | {
154 | if (cap.isRunning())
155 | {
156 | cap.Stop();
157 |
158 | btnStartStop.Content = "Start";
159 | }
160 | else
161 | {
162 | ServerInfo info = (ServerInfo)((ComboBoxItem)boxServers.SelectedItem).Tag;
163 |
164 | pp.Init();
165 | cap.Start(info);
166 |
167 | //SetText(String.Format("Listening for packets of {0}.", (boxServers.Text).Split(';')[1]));
168 | btnStartStop.Content = "Stop";
169 | }
170 |
171 | }
172 |
173 | private void OnPacketSelect(object sender, SelectionChangedEventArgs e)
174 | {
175 | if (boxPackets.SelectedIndex == -1)
176 | return;
177 |
178 | Packet_old p = pp.Packets[boxPackets.SelectedIndex];
179 | SetText(p.HexLongText);
180 | boxShowOpcode.Text = String.Format("0x{0:x4}", p.OpCode);
181 | boxIgnoreOpcode.Text = String.Format("0x{0:x4}", p.OpCode);
182 | }
183 |
184 |
185 | private void btnClearCapture_Click(object sender, RoutedEventArgs e)
186 | {
187 | //Test();
188 | boxPackets.Items.Clear();
189 | if (pp != null)
190 | {
191 | pp.Packets.Clear();
192 | }
193 |
194 | }
195 |
196 | private void boxMaxPackets_TextChanged(object sender, TextChangedEventArgs e)
197 | {
198 | string input = boxMaxPackets.Text.Replace(" ", "");
199 | int tmpMax;
200 | if (input != "" && int.TryParse(input, out tmpMax))
201 | {
202 | if (tmpMax > 0)
203 | {
204 | maxPackets = tmpMax;
205 | }
206 | }
207 | }
208 |
209 | private void Window_Closed(object sender, EventArgs e)
210 | {
211 | Environment.Exit(0);
212 | }
213 | #endregion
214 |
215 | #region filter
216 | private void boxSC_Checked(object sender, RoutedEventArgs e)
217 | {
218 | if (filter != null && boxSC.IsChecked != null)
219 | filter.showSC = (bool)boxSC.IsChecked;
220 | }
221 |
222 | private void boxCS_Checked(object sender, RoutedEventArgs e)
223 | {
224 | if (filter != null && boxCS.IsChecked != null)
225 | filter.showCS = (bool)boxCS.IsChecked;
226 | }
227 |
228 | private void boxCapture_Checked(object sender, RoutedEventArgs e)
229 | {
230 | if (filter != null && boxCapture.IsChecked != null)
231 | filter.showAny = (bool)boxCapture.IsChecked;
232 | }
233 |
234 | private void btnShowAdd_Click(object sender, RoutedEventArgs e)
235 | {
236 | ushort opcode = 0;
237 | String input = boxShowOpcode.Text;
238 |
239 | if (input.StartsWith("0x")) input = input.Substring(2);
240 |
241 | try
242 | {
243 | opcode = Convert.ToUInt16(input, 16);
244 | if (!filter.showOnlyOpcodes.Contains(opcode))
245 | {
246 | filter.showOnlyOpcodes.Add(opcode);
247 | boxShowOpcodes.Items.Add(String.Format("{0:x4}", opcode));
248 | }
249 | }
250 | catch (Exception ex) { }//handle convert errors
251 | }
252 |
253 | private void btnShowRemove_Click(object sender, RoutedEventArgs e)
254 | {
255 | if (boxShowOpcodes.SelectedIndex != -1)
256 | {
257 | ushort opcode = Convert.ToUInt16((String)boxShowOpcodes.SelectedItem, 16);
258 |
259 | filter.showOnlyOpcodes.Remove(opcode);
260 | boxShowOpcodes.Items.RemoveAt(boxShowOpcodes.SelectedIndex);
261 | }
262 | }
263 |
264 | private void btnShowRemoveAll_Click(object sender, RoutedEventArgs e)
265 | {
266 | filter.showOnlyOpcodes.Clear();
267 | boxShowOpcodes.Items.Clear();
268 | }
269 |
270 | private void btnIgnoreAdd_Click(object sender, RoutedEventArgs e)
271 | {
272 | ushort opcode = 0;
273 | String input = boxIgnoreOpcode.Text;
274 |
275 | if (input.StartsWith("0x")) input = input.Substring(2);
276 |
277 | try
278 | {
279 | opcode = Convert.ToUInt16(input, 16);
280 | if (!filter.ignoreOpcodes.Contains(opcode))
281 | {
282 | filter.ignoreOpcodes.Add(opcode);
283 | boxIgnoreOpcodes.Items.Add(String.Format("{0:x4}", opcode));
284 | }
285 | }
286 | catch (Exception ex) { }//handle convert errors
287 | }
288 |
289 | private void btnIgnoreRemove_Click(object sender, RoutedEventArgs e)
290 | {
291 | if (boxIgnoreOpcodes.SelectedIndex != -1)
292 | {
293 | ushort opcode = Convert.ToUInt16((String)boxIgnoreOpcodes.SelectedItem, 16);
294 |
295 | filter.ignoreOpcodes.Remove(opcode);
296 | boxIgnoreOpcodes.Items.RemoveAt(boxShowOpcodes.SelectedIndex);
297 | }
298 | }
299 |
300 | private void btnIgnoreRemoveAll_Click(object sender, RoutedEventArgs e)
301 | {
302 | filter.ignoreOpcodes.Clear();
303 | boxIgnoreOpcodes.Items.Clear();
304 | }
305 |
306 | private void boxFileLog_Checked(object sender, RoutedEventArgs e)
307 | {
308 | if (boxFileLog.IsChecked != null)
309 | {
310 | if ((bool) boxFileLog.IsChecked)
311 | {
312 | cap.EnableLogging();
313 | } else {
314 | cap.DisableLogging();
315 | }
316 | }
317 | }
318 | #endregion
319 |
320 | #region perf_test
321 |
322 | public void Test()
323 | {
324 | /*
325 | * Conclusion: Both got a equal overall performance on these tests. Peronally I perfer the List. Less copys, cleander code.
326 | * Test for PacketViewer.Network.PacketList
327 | Enqueue for 10000! took 265 ms
328 | Dequeue for 10000! took 597 ms
329 | Test for PacketViewer.Network.PacketQueue
330 | Enqueue for 10000! took 598 ms
331 | Dequeue for 10000! took 301 ms
332 | */
333 |
334 | IPacketList[] lists = { new PacketStream(""), new PacketQueue() };
335 | StringBuilder builder = new StringBuilder();
336 | Stopwatch watch = new Stopwatch();
337 |
338 | for (int j = 0; j < 4; j++)
339 | {
340 |
341 |
342 | Random r = new Random();
343 | int n = 10000;
344 | int[] rnd = new int[n];
345 | byte[][] rndB = new byte[n][];
346 | for (int i = 0; i < n; i++)
347 | {
348 | rnd[i] = r.Next(1, 1000);
349 | rndB[i] = new byte[rnd[i]];
350 | r.NextBytes(rndB[i]);
351 | }
352 |
353 | foreach (IPacketList list in lists)
354 | {
355 | builder.AppendFormat("Test for {0} \n", list);
356 | watch.Start();
357 | list.Clear();
358 |
359 | for (int i = 0; i < n; i++)
360 | {
361 | list.Enqueue(rndB[i]);
362 | }
363 | watch.Stop();
364 | builder.AppendFormat("Enqueue for {0}! took {1} ms \n", n, watch.ElapsedMilliseconds);
365 |
366 | watch.Restart();
367 | for (int i = n - 1; i >= 0; i--)
368 | {
369 | list.GetBytes(rnd[i]);
370 | }
371 | watch.Stop();
372 | builder.AppendFormat("Dequeue for {0}! took {1} ms \n", n, watch.ElapsedMilliseconds);
373 | }
374 | }
375 | SetText(builder.ToString());
376 | }
377 | #endregion
378 |
379 | #region open log
380 | private void openTeraLog_Click(object sender, RoutedEventArgs e)
381 | {
382 | try
383 | {
384 | IPacketInput reader;
385 | OpenFileDialog openFileDialog = new OpenFileDialog { Filter = "Supported Formats (*.TeraLog,*.hex)|*.TeraLog;*.hex" };
386 |
387 | if (openFileDialog.ShowDialog() == false)
388 | return;
389 |
390 | pp.Init();
391 | ClearPackets();
392 | boxAutoScroll.IsChecked = false; //huge performance boost
393 | maxPackets = int.MaxValue; //???????????? give the user a choice? maybe a really big packet log makes problems
394 |
395 | string ext = Path.GetExtension(openFileDialog.FileName);
396 | if (ext == ".TeraLog")
397 | {
398 | reader = new TeraLogReader(openFileDialog.FileName);
399 | }
400 | else if (ext == ".hex")
401 | {
402 | reader = new WireshackReader(openFileDialog.FileName);
403 | }
404 | else
405 | {
406 | throw new Exception("Unknown File Format");
407 | }
408 |
409 | reader.SetProcessor(pp);
410 | Task.Factory.StartNew(reader.Process); //dont block ui thread
411 |
412 | SetText(String.Format("Loading the File {0}...", Path.GetFileName(openFileDialog.FileName)));
413 | }
414 | catch (Exception ex)
415 | {
416 | SetText("Open TeraLog failure. \n Message:" + ex);
417 | }
418 |
419 | }
420 | #endregion
421 |
422 |
423 |
424 |
425 |
426 |
427 |
428 |
429 |
430 | }
431 | }
432 |
--------------------------------------------------------------------------------
/Opcode DLL/3009_OpCodes_Dec.txt:
--------------------------------------------------------------------------------
1 | I_TELEPORT = 0
2 | I_SPAWN_BARRACK_CHARACTER = 1
3 | R_PLAYER_LOCATION = 2
4 | R_TELEPORT_REPLAY_LOCATION = 3
5 | R_CAMERA_ROTATE = 4
6 | I_GFX_COMMAND = 17
7 | I_GFX_ADMIN_COMMAND = 18
8 | I_INPUT_COMMAND = 19
9 | I_MOVE_KEY = 20
10 | I_SKILL_KEY = 21
11 | I_CLOSE_SERVER_CONNECTION = 22
12 | SA_PING = 5000
13 | AS_PING = 5001
14 | SA_REGISTER = 5002
15 | AS_REGISTER = 5003
16 | SA_ENTER_WORLD = 5004
17 | SA_ENTER_WORLD_FAIL = 5005
18 | AS_ENTER_WORLD = 5006
19 | AS_LOAD_TOPO_FIN = 5007
20 | SA_TRY_TO_LEAVE_WORLD = 5008
21 | AS_LEAVE_WORLD = 5009
22 | SA_LEAVE_WORLD = 5010
23 | SA_SEND_CHAR_LOC = 5011
24 | SA_JOIN_PARTY = 5012
25 | SA_LEAVE_PARTY = 5013
26 | SA_DISMISS_PARTY = 5014
27 | SA_KICK_PARTY = 5015
28 | SA_EXTEND_PARTY = 5016
29 | SA_SWAP_PARTY = 5017
30 | SA_CHANGE_PARTY_MANAGER = 5018
31 | SA_CHANGE_PARTY_MEMBER_AUTHORITY = 5019
32 | SA_CHANGE_LOOTING_METHOD = 5020
33 | AS_DO_CREATE_PARTY = 5021
34 | AS_DO_ADD_PARTY_MEMBER = 5022
35 | AS_DO_REMOVE_PARTY_MEMBER = 5023
36 | AS_DO_DISMISS_PARTY = 5024
37 | AS_DO_EXTEND_PARTY = 5025
38 | AS_DO_SWAP_PARTY = 5026
39 | AS_DO_SET_PARTY_MANAGER = 5027
40 | AS_DO_CHANGE_PARTY_MEMBER_AUTHORITY = 5028
41 | AS_DO_SET_LOOTING_METHOD = 5029
42 | AS_DO_SET_PARTY_OWNER = 5030
43 | AS_ON_DAILY_ATTENDACNE = 5031
44 | SA_ADD_TO_INTER_PARTY_MATCH_POOL = 5032
45 | SA_DEL_FROM_INTER_PARTY_MATCH_POOL = 5033
46 | SA_JOIN_PARTY_IN_ARBITER = 5034
47 | SA_MERGE_PARTY_TO_RAID = 5035
48 | AS_REQUEST_REFRESH_PARTY_INFO = 5036
49 | SA_SEND_PARTY_MEMBER_INTERVAL_POS = 5037
50 | SA_SEND_PARTY_MEMBER_UPDATE_INFO = 5038
51 | SA_QUERY_TO_ARBITER_FOR_BAN_PARTY_MEMBER = 5039
52 | AS_REQUEST_TELEPORT = 5040
53 | AS_QUERY_TO_ARBITER_FOR_BAN_PARTY_MEMBER = 5041
54 | AS_ADMIN_SET_DUNGEON_COOLTIME = 5042
55 | SA_UPDATE_DUNGEON_COOLTIME = 5043
56 | SA_UPDATE_DUNGEON_CLEAR_COUNT = 5044
57 | AS_RESET_ALL_DUNGEON = 5045
58 | AS_DISMISS_PARTY = 5046
59 | AS_PARTY_LOOTING_METHOD = 5047
60 | AS_BAN_PARTY_MEMBER = 5048
61 | SA_DELETE_DUNGEON_COOLTIME = 5049
62 | SA_REQUEST_ENTER_DUNGEON = 5050
63 | AS_REQUEST_ENTER_DUNGEON = 5051
64 | SA_RESPONSE_ENTER_DUNGEON = 5052
65 | AS_RESPONSE_ENTER_DUNGEON = 5053
66 | SA_REQUEST_LEAVE_DUNGEON = 5054
67 | AS_REQUEST_LEAVE_DUNGEON = 5055
68 | AS_ADMIN_RESET_DUNGEON_COOLTIME = 5056
69 | SA_ADD_DUNGEON_CHANNEL = 5057
70 | SA_REMOVE_DUNGEON_CHANNEL = 5058
71 | AS_INITIALIZE_DUNGEON_ID = 5059
72 | AS_SETTING_BATTLE_FIELD_MATCHING_STATE = 5060
73 | AS_ADMIN_BATTLE_FIELD_RESULT = 5061
74 | SA_GM_NOTIFY = 5062
75 | SA_ENTER_BATTLE_FIELD = 5063
76 | BSA_EXIT_BATTLE_FIELD = 5064
77 | SA_REQUEST_BATTLE_FIELD_USER_INFO = 5065
78 | ABS_REQUEST_BATTLE_FIELD_USER_INFO = 5066
79 | AS_ACK_BATTLE_FIELD_USER_INFO = 5067
80 | BSA_ACK_BATTLE_FIELD_USER_INFO = 5068
81 | BSA_BATTLE_FIELD_INVITE_USER = 5069
82 | BSA_REQUEST_BATTLE_FIELD_USER_INFO = 5070
83 | BSA_END_BATTLE_FIELD = 5071
84 | BSA_END_BATTLE_FIELD_WITHOUT_PLAY = 5072
85 | BSA_NOTIFY_JACKPOT_EVENT_END = 5073
86 | BSA_NOTIFY_ABOUT_BATTLE_FIELD_CLEAR = 5074
87 | BSA_REQUEST_ADD_SUPPLEMENTPOOL = 5075
88 | BSA_BATTLE_FIELD_OPEN_INFO = 5076
89 | BSA_CREATE_BATTLE_FIELD_LOG = 5077
90 | ABS_CREATE_BATTLE_FIELD_LOG = 5078
91 | ABS_ACK_BATTLE_FIELD_USER_INFO = 5079
92 | BSA_REQUEST_BATTLE_FIELD_RANKING_DATA = 5080
93 | ABS_ACK_BATTLE_FIELD_RANKING_DATA = 5081
94 | ABS_REQUEST_COMBINE_BATTLE_FIELD_RANKING = 5082
95 | ABS_REQUEST_COMBINE_BATTLE_FIELD_RANKING_SERVER_LIST = 5083
96 | BSA_ACK_COMBINE_BATTLE_FIELD_RANKING = 5084
97 | BSA_ACK_COMBINE_BATTLE_FIELD_RANKING_SERVER_LIST = 5085
98 | BSA_UPDATE_BATTLE_FIELD_LOG = 5086
99 | SA_MATCH_BATTLE_FIELD_GM_REQUEST = 5087
100 | SA_SET_BATTLE_FIELD_RANKER = 5088
101 | SA_CALC_BATTLE_FIELD_RANKING_NEXT_TIME = 5089
102 | SA_CALC_BATTLE_FIELD_SEASON_NEXT_TIME = 5090
103 | SA_CREATE_GROUP_DUEL_PARTY = 5091
104 | AS_CREATE_GROUP_DUEL_PARTY = 5092
105 | ADS_ADD_TO_PARTY_MATCH_POOL = 5093
106 | DSA_ADD_TO_PARTY_MATCH_POOL = 5094
107 | DSA_MODIFY_ABOUT_PARTY_MATCH_POOL = 5095
108 | ADS_DEL_FROM_PARTY_MATCH_POOL = 5096
109 | DSA_DEL_FROM_PARTY_MATCH_POOL = 5097
110 | DSA_MOVE_PARTY_MATCH_POOL = 5098
111 | DSA_DEL_FROM_ALL_POOL = 5099
112 | DSA_PRE_PARTY_MAKE = 5100
113 | ADS_PRE_PARTY_MAKE_RESULT = 5101
114 | ADS_DICONNECT_BATTLE_FIELD_SERVER = 5102
115 | DSA_PARTY_MAKE = 5103
116 | ADS_PARTY_MAKE_RESULT = 5104
117 | ADS_PARTY_MAKE_RESULT_FROM_INSTANCE_SERVER = 5105
118 | SA_PARTY_MAKE_RESULT_FROM_INSTANCE_SERVER = 5106
119 | DSA_FIN_PARTY_MAKE = 5107
120 | DSA_ASK_TO_JOIN_PARTY = 5108
121 | ADS_ASK_TO_JOIN_PARTY_RESULT = 5109
122 | DSA_START_BATTLEFIELD = 5110
123 | DSA_REQUEST_JOIN_BATTLE_FIELD = 5111
124 | DSA_NOTIFY_ABOUT_DUNGEON_CLEAR = 5112
125 | ADS_NOTIFY_ABOUT_DUNGEON_CLEAR = 5113
126 | DSA_SYSTEM_MESSAGE = 5114
127 | DSA_SYSTEM_MESSAGE_USING_INTER_PARTY_MATCH = 5115
128 | DSA_SYS_PARTY_INFO = 5116
129 | ADS_SYS_PARTY_INFO = 5117
130 | DSA_LOG_FIN_PARTY_MAKE = 5118
131 | AS_NOTIFY_ABOUT_SYS_PARTY_WITHDRAWAL = 5119
132 | AS_BYPASS_FROM_CLIENT = 5120
133 | SA_BYPASS_TO_CLIENT = 5121
134 | SA_BYPASS_TO_GROUP = 5122
135 | AS_LOAD_GUILD = 5123
136 | SA_LOAD_GUILD = 5124
137 | SA_CREATE_GUILD = 5125
138 | SA_DESTROY_GUILD = 5126
139 | AS_DESTROY_GUILD = 5127
140 | SA_LEAVE_GUILD = 5128
141 | AS_LEAVE_GUILD = 5129
142 | SA_BANISH_GUILD_MEMBER = 5130
143 | AS_BANISH_GUILD_MEMBER = 5131
144 | SA_CHANGE_GUILD_CHIEF = 5132
145 | AS_CHANGE_GUILD_CHIEF = 5133
146 | SA_SET_GUILDGROUP_AUTHORITY = 5134
147 | AS_SET_GUILDGROUP_AUTHORITY = 5135
148 | SA_CREATE_GUILD_GROUP = 5136
149 | AS_CREATE_GUILD_GROUP = 5137
150 | SA_REMOVE_GUILD_GROUP = 5138
151 | AS_REMOVE_GUILD_GROUP = 5139
152 | AS_ADD_GUILDMEMBER = 5140
153 | SA_CHANGE_GUILDGROUP = 5141
154 | AS_CHANGE_GUILDGROUP = 5142
155 | SA_UPDATE_GUILD_MEMBER = 5145
156 | AS_UPDATE_GUILD_MEMBER = 5146
157 | AS_SET_GUILD_RECOMMENDATION_POINT = 5147
158 | AS_UPDATE_GUILD_TITLE = 5148
159 | AS_UPDATE_GUILD_LOGO = 5149
160 | SA_PET_LOAD = 5150
161 | AS_PET_LOAD = 5151
162 | SA_PET_CALL = 5152
163 | AS_PET_CALL = 5153
164 | SA_PET_DISMISS = 5154
165 | AS_PET_DISMISS = 5155
166 | SA_PET_ITEM_EQUIP = 5156
167 | AS_PET_ITEM_EQUIP = 5157
168 | SA_PET_ITEM_UNEQUIP = 5158
169 | AS_PET_ITEM_UNEQUIP = 5159
170 | SA_PET_ORB_CHANGE = 5160
171 | AS_PET_ORB_CHANGE = 5161
172 | SA_PET_REPAIR = 5162
173 | AS_PET_REPAIR = 5163
174 | SA_PET_STOP = 5164
175 | AS_PET_STOP_TOPET = 5165
176 | AS_PET_STOP_TOUSER = 5166
177 | SA_PET_DUR = 5167
178 | AS_PET_DUR_TOPET = 5168
179 | AS_PET_DUR_TOUSER = 5169
180 | SA_PET_ALERT = 5170
181 | AS_PET_ALERT = 5171
182 | SA_PET_INCUBATOR_SLOT = 5172
183 | AS_PET_INCUBATOR_SLOT = 5173
184 | SA_PET_INCUBATOR_TAKEALL = 5174
185 | AS_PET_INCUBATOR_TAKEALL = 5175
186 | SA_PET_INCUBATOR_START = 5176
187 | AS_PET_INCUBATOR_START = 5177
188 | SA_PET_INCUBATOR_COMPLETE = 5178
189 | AS_PET_INCUBATOR_COMPLETE = 5179
190 | AS_ARBITER_USER_DELETE = 5180
191 | SA_SET_USERS_POS = 5181
192 | SA_BROADCAST_SYSTEM_MESSAGE_TO_WHOLE_WORLD = 5182
193 | SA_BROADCAST_SYSTEM_MESSAGE_TO_WHOLE_WORLD_FOR_UNION = 5183
194 | AS_UPDATE_VISITED_SECTION_LIST = 5184
195 | SA_CHANGE_CHARACTER = 5185
196 | SA_SEND_SYSTEM_MESSAGE_TO_ACCOUNT_USER = 5186
197 | SA_SEND_SYSTEM_MESSAGE_LOOT_ITEM_TO_ACCOUNT_USER = 5187
198 | SA_CHAR_LOC = 5188
199 | AS_CHAR_LOC = 5189
200 | SA_TELEPORT = 5190
201 | AS_REQUEST_PERF = 5191
202 | AS_PROFILE = 5192
203 | AS_RESET_PROFILE = 5193
204 | AS_REQUEST_NORMAL_CHAT = 5194
205 | AS_REQUEST_TEAM_CHAT = 5195
206 | AS_REQUEST_DICE_THROW = 5196
207 | SA_REGISTER_WORLD_COMMAND = 5197
208 | AS_LOAD_GUILD_DATA = 5198
209 | AS_UPDATE_GUILD_DATA = 5199
210 | SA_BUY_VILLAGER_BUFF = 5200
211 | AS_BUY_VILLAGER_BUFF = 5201
212 | SA_TRADE_BROKER_OPEN = 5202
213 | AS_TRADE_BROKER_CLOSE = 5203
214 | SA_TRADE_BROKER_DEAL_OPEN = 5204
215 | AS_TRADE_BROKER_DEAL_OPEN = 5205
216 | AS_TRADE_BROKER_DEAL_CLOSE = 5206
217 | SA_PUSH_GUILD_BUFF = 5207
218 | AS_PUSH_GUILD_BUFF = 5208
219 | AS_CANCEL_SKILL_STRICTLY = 5209
220 | SA_CREST_LEARN = 5210
221 | AS_CREST_LEARN = 5211
222 | SA_LEARN_ALL_CREST_ACQUIRABLE = 5212
223 | AS_LEARN_ALL_CREST_ACQUIRABLE = 5213
224 | SA_CREST_POINT = 5214
225 | AS_CREST_POINT = 5215
226 | SA_CREST_USE_LIST = 5216
227 | AS_CREST_USE_LIST = 5217
228 | SA_CREST_USE = 5218
229 | AS_CREST_USE = 5219
230 | SA_CREST_USE_CLEAR = 5220
231 | AS_CREST_USE_CLEAR = 5221
232 | SA_CREST_UPGRADE = 5222
233 | AS_CREST_UPGRADE = 5223
234 | SA_CREST_ALL_CLEAR = 5224
235 | AS_CREST_ALL_CLEAR = 5225
236 | SA_USER_NOCTAN = 5226
237 | AS_USER_NOCTAN = 5227
238 | AS_ADMIN = 5228
239 | AS_SET_BLOCKED_USER = 5229
240 | AS_ADD_BLOCKED_USER = 5230
241 | AS_REMOVE_BLOCKED_USER = 5231
242 | SA_REQUEST_LORD_REGISTER_WINDOW = 5232
243 | AS_SET_VISIBLE_RANGE = 5233
244 | SA_MAKE_SYS_PARCEL = 5234
245 | AS_MAKE_SYS_PARCEL = 5235
246 | SA_REQUEST_SHOW_POLICY_WINDOW = 5236
247 | SA_REQUEST_SHOW_TAX_WINDOW = 5237
248 | SA_LOAD_GUARD = 5238
249 | AS_LOAD_GUARD = 5239
250 | AS_CHANGE_LORD_GUILD = 5240
251 | AS_LOAD_GUARD_FINISH = 5241
252 | AS_SET_GUARD_POLICY = 5242
253 | AS_GUARD_TAX_RATE = 5243
254 | AS_GUARD_TAX_PROFIT = 5244
255 | AS_ELECTION_STATE = 5245
256 | AS_UPDATE_USER_DESCRIPTION = 5246
257 | AS_LORD_ACCESSION = 5247
258 | SA_UPDATE_LORD_ACHIEVEMENT_FAILED = 5248
259 | AS_START_LORD_GUILDWAR = 5249
260 | AS_END_LORD_GUILDWAR = 5250
261 | SA_ADD_ELECTION_POINT_LORD_GUILDWAR = 5251
262 | SA_SEND_MESSAGE_TO_WORLD_USER = 5252
263 | AS_SEND_MESSAGE_TO_WORLD_USER = 5253
264 | AS_CACHE_DUNGEON_COOL_TIME_TO_WORLD = 5254
265 | AS_REQUEST_SEND_PK_POLICY = 5255
266 | AS_UPDATE_GUILD_NAME = 5256
267 | AS_UPDATE_GUILD_UNION_ID = 5257
268 | SA_UPDATE_USER_STATUS = 5258
269 | AS_REQUEST_SPAWN_NPC = 5259
270 | AS_GUARD_LORD_CHANGED = 5260
271 | AS_RESET_LORD_LIST = 5261
272 | AS_LORD_LIST = 5262
273 | SA_START_CHANGE_APPEARANCE = 5263
274 | AS_START_EVENT = 5264
275 | AS_STOP_EVENT = 5265
276 | AS_SET_WORLD_EVENT_OBJECT_COUNT = 5266
277 | SA_INC_EVENT_ITEM_COUNT = 5267
278 | SA_RESET_EVENT_ITEM_COUNT = 5268
279 | SA_UPDATE_WORLD_EVENT_INFO = 5269
280 | AS_START_FESTIVAL = 5270
281 | AS_STOP_FESTIVAL = 5271
282 | AS_FESTIVAL_NPC_SPAWN = 5272
283 | AS_FESTIVAL_NPC_DESPAWN = 5273
284 | SA_REQUEST_START_FESTIVAL = 5274
285 | SA_REQUEST_STOP_FESTIVAL = 5275
286 | SA_DECLARE_GUILD_WAR = 5276
287 | AS_DECLARE_GUILD_WAR = 5277
288 | SA_RAISE_GUILD_WAR = 5278
289 | AS_RAISE_GUILD_WAR = 5279
290 | SA_START_GUILD_WAR = 5280
291 | AS_START_GUILD_WAR = 5281
292 | SA_GIVE_UP_GUILD_WAR = 5282
293 | SA_REQUEST_END_GUILD_WAR = 5283
294 | SA_REQUEST_START_GUILD_WAR = 5284
295 | AS_END_GUILD_WAR = 5285
296 | SA_GUILD_WAR_INFO = 5286
297 | AS_RESTART_GUILD_WAR = 5287
298 | AS_GUILD_WAR_TRACKING_INFO = 5288
299 | AS_NOTIFY_GUILD_WAR_INFO = 5289
300 | AS_SET_NEW_TERA_USER = 5290
301 | AS_SET_PC_BANG_USER = 5291
302 | AS_LOAD_EVENT_FINISH = 5292
303 | AS_ADMIN_REQUEST_VANISH_PET = 5293
304 | AS_LORD_ELECTION_DEFEATED = 5294
305 | SA_UPDATE_LORD_ELECTION_DEFEATED_ACHIEVEMENT_FAILED = 5295
306 | AS_USER_VOTED = 5296
307 | AS_ASK_PET_OWNER_INFO_FOR_VANISH = 5297
308 | SA_ANS_PET_OWNER_INFO_FOR_VANISH = 5298
309 | AS_SET_ACCOUNT_RESTRICTION_LEVEL = 5299
310 | AS_GATHER_USER_LIST_BY_DISTANCE = 5300
311 | SA_GATHER_USER_LIST_BY_DISTANCE = 5301
312 | SA_RELAY_LOG = 5302
313 | SA_REG_PERIOD_ITEM = 5303
314 | AS_PERIOD_ITEM_EXPIRED = 5304
315 | SA_PERIOD_ITEM_EXPIRED_RESULT = 5305
316 | AS_PERIOD_PASSIVE_EXPIRED = 5306
317 | SA_DARK_RIFT_PROGRESS_STEP_WORLD_NOTI = 5307
318 | SA_DARK_RIFT_CHANGE_AREA_WORLD_NOTI = 5308
319 | SA_DARK_RIFT_SPAWN_WORLD_NOTI = 5309
320 | SA_DARK_RIFT_DESPAWN_WORLD_NOTI = 5310
321 | SA_DARK_RIFT_RESERVE_MAP_MARKER_WORLD_NOTI = 5311
322 | SA_DARK_RIFT_CLEAR_MAP_MARKER_WORLD_NOTI = 5312
323 | SA_DARK_RIFT_AVAILABLE_QUEST_USER_COUNT = 5313
324 | AS_DARK_RIFT_SET_HUNTING_ZONE_ENABLED = 5314
325 | AS_CONTROL_DARK_RIFT_INSTANCE = 5315
326 | AS_GET_DARK_RIFT_INFO = 5316
327 | SA_GET_DARK_RIFT_INFO = 5317
328 | AS_ADMIN_DARK_RIFT_NPC_RESPAWN = 5318
329 | SA_ADMIN_DARK_RIFT_NPC_RESPAWN = 5319
330 | SA_DARK_RIFT_EVENT_OPEN = 5320
331 | SA_DARK_RIFT_EVENT_CLOSE = 5321
332 | AS_RESTORE_DARK_RIFT = 5322
333 | SA_DARK_RIFT_EVENT_UPDATE_SPAWNABLE_COUNT = 5323
334 | SA_DARK_RIFT_RESTORATION_FAILED_INSTANCE_LIST = 5324
335 | SA_DARK_RIFT_EVENT_GROUP_SPAWNED = 5325
336 | SA_DARK_RIFT_CLEAR_ALL_SPAWNED_EVENT_GROUP_INFO = 5326
337 | SA_DARK_RIFT_EVENT_UPDATE_CONCURRENT_SPAWN_COUNT = 5327
338 | SA_DARK_RIFT_EVENT_ZONE_EXTRA_INSTANCE_OPENED = 5328
339 | SA_ADMIN_CALL_DIFFERENT_WORLD_USER = 5329
340 | AS_EVENT_MAIL_RECEIVED = 5330
341 | DSA_DUNGEON_RANK_GET_CURRENT_TOP_SCORE = 5331
342 | ADS_DUNGEON_RANK_GET_CURRENT_TOP_SCORE = 5332
343 | AS_SET_ADMIN_NON_PK_SECTION = 5333
344 | AS_RESET_ADMIN_NON_PK_SECTION = 5334
345 | AS_SET_HUNTING_EVENT_VALUE_TABLE = 5335
346 | AS_SET_HUNTING_EVENT_VALUE = 5336
347 | AS_RESET_HUNTING_EVENT_VALUE = 5337
348 | AS_SET_DUNGEON_LOG_USE_OR_NOT = 5338
349 | AS_USER_REQUEST_EXIT = 5339
350 | AS_USER_CANCEL_REQUEST_EXIT = 5340
351 | AS_USER_CANCEL_PARTY_CONTRACT = 5341
352 | AS_QA_PUBLISHER_CHANGE = 5342
353 | AS_CHANGE_GUILDWAR_POINT_BYADMIN = 5343
354 | AS_DARK_RIFT_SET_RESERVATION_TIME_ENABLED = 5344
355 | AS_DARK_RIFT_REQUEST_RESERVATION_TIME_LIST = 5345
356 | SA_DARK_RIFT_RESERVATION_TIME_LIST = 5346
357 | AS_BATTLE_FIELD_VIEW_LIST = 5347
358 | SA_BATTLE_FIELD_VIEW_LIST = 5348
359 | BSA_CREATE_BATTLE_FIELD_RESULT = 5349
360 | BSA_NOTIFY_USER_BATTLE_FIELD_ENTERABLE = 5350
361 | BSA_LOAD_BATTLE_FIELD_UNIQUE_ID = 5351
362 | ABS_LOAD_BATTLE_FIELD_UNIQUE_ID = 5352
363 | ABS_ASK_ENTERABLE_BATTLE_FIELD_EXISTS = 5353
364 | BSA_CREATE_BATTLE_FIELD = 5354
365 | ABS_CREATE_BATTLE_FIELD = 5355
366 | ABS_REQUEST_JOIN_BATTLE_FIELD = 5356
367 | SA_BROADCAST_SHOW_NPC_MINI_MAP = 5357
368 | SA_BROADCAST_DELETE_NPC_MINI_MAP = 5358
369 | AS_REQUEST_OTHER_SERVER_ITEM_TOOLTIP = 5359
370 | SA_REPLY_OTHER_SERVER_ITEM_TOOLTIP = 5360
371 | SA_REQUEST_CHRONOSCROLL_USE = 5361
372 | AS_CHRONOSCROLL_REDEEMED = 5362
373 | SA_LOAD_BATTLE_FIELD_COOL_TIME = 5363
374 | AS_LOAD_BATTLE_FIELD_COOL_TIME = 5364
375 | SA_UPDATE_BATTLE_FIELD_COOL_TIME = 5365
376 | AS_UPDATE_BATTLE_FIELD_COOL_TIME = 5366
377 | AS_CLEAR_BATTLE_FIELD_COOL_TIME = 5367
378 | SA_UPDATE_VOTE_COOL_TIME = 5368
379 | AS_UPDATE_VOTE_COOL_TIME = 5369
380 | AS_CLEAR_VOTE_COOL_TIME = 5370
381 | SA_SET_GUILDWAR_ACCEPTABLE = 5371
382 | AS_SET_GUILDWAR_ACCEPTABLE = 5372
383 | AS_BOT_CONFIGURATION = 5373
384 | AS_BOT_ACCOUNT_CANDIDATE = 5374
385 | AS_BOT_LIST_ACCOUNT_CANDIDATE = 5375
386 | SA_TO_DETECT_BOT_HUNT = 5376
387 | SA_TO_DETECT_BOT_PLAYTICK = 5377
388 | SA_TO_DETECT_BOT_INVALIDSTARTPOS = 5378
389 | SA_LOAD_SERVANT_DATA = 5379
390 | AS_LOAD_SERVANT_DATA = 5380
391 | SA_ADD_SERVANT_DATA = 5381
392 | AS_ADD_SERVANT_DATA = 5382
393 | SA_UPDATE_SERVANT_NAME = 5383
394 | AS_UPDATE_SERVANT_NAME = 5384
395 | SA_UPDATE_SERVANT_DATA = 5385
396 | AS_UPDATE_SERVANT_DATA = 5386
397 | SA_UPDATE_UNION_TAX_RATE = 5387
398 | AS_UPDATE_UNION_TAX_RATE = 5388
399 | SA_UPDATE_UNION_DESC = 5389
400 | AS_UPDATE_UNION_DESC = 5390
401 | SA_UPDATE_UNION_NOTICE = 5391
402 | AS_UPDATE_UNION_NOTICE = 5392
403 | SA_JOIN_UNION = 5393
404 | AS_JOIN_UNION = 5394
405 | AS_JOIN_UNION_GUILD = 5395
406 | SA_LOAD_UNION_MEMBER = 5396
407 | AS_LOAD_UNION_MEMBER = 5397
408 | AS_CLEAR_GUILD_UNION_INFO = 5398
409 | SA_UPDATE_UNION_PLAY_POINT = 5399
410 | AS_UPDATE_UNION_PLAY_POINT = 5400
411 | SA_UPDATE_UNION_MEMBER_CP = 5401
412 | AS_UPDATE_UNION_MEMBER_CP = 5402
413 | SA_START_UNION_SKILL = 5403
414 | AS_PENDING_UNION_SKILL = 5404
415 | SA_QUEST_EVENT_MESSAGE_FOR_UNION = 5405
416 | SA_PLAY_EVENT_SOUND_FOR_UNION = 5406
417 | SA_UPDATE_UNION_NPC_COUNT = 5407
418 | SA_ADD_UNION_KILL_DEATH_POINT = 5408
419 | SA_ADD_UNION_KILL_ASSIST_POINT = 5409
420 | SA_BROADCAST_MESSAGE_EXTRACTOR_SPAWN = 5410
421 | SA_UNION_EXTRACTOR_NUM_SET = 5411
422 | SA_UNION_EXTRACTOR_NUM_DIFF = 5412
423 | AS_UNION_EXTRACTOR_NUM = 5413
424 | AS_START_UNION_SKILL = 5414
425 | SA_UNION_SHARE_POLICY_POINT_INFO = 5415
426 | SA_UNION_SHARE_POLICY_POINT = 5416
427 | AS_UNION_SHARE_POLICY_POINT = 5417
428 | SA_UNION_SHARE_ACTIVITY_COST_INFO = 5418
429 | AS_UNION_SHARE_ACTIVITY_COST_INFO = 5419
430 | SA_UNION_SHARE_ACTIVITY_COST = 5420
431 | AS_UNION_SHARE_ACTIVITY_COST = 5421
432 | SA_UNION_SHARE_ACTIVITY_COST_CONFIRM = 5422
433 | AS_UNION_SHARE_ACTIVITY_COST_CONFIRM = 5423
434 | AS_UPDATE_TO_USER_UNION_CLASS = 5424
435 | AS_UPDATE_TO_USER_UNION_ELITE = 5425
436 | AS_UPDATE_UNION_MEMBER_INFO = 5426
437 | SA_UPDATE_UNION_MEMBER_POLICY_POINT = 5427
438 | AS_UPDATE_UNION_MEMBER_POLICY_POINT = 5428
439 | SA_UPDATE_UNION_MEMBER_CLASS = 5429
440 | AS_UPDATE_UNION_MEMBER_CLASS = 5430
441 | SA_UPDATE_UNION_MEMBER_ELITE = 5431
442 | AS_UPDATE_UNION_MEMBER_ELITE = 5432
443 | SA_UNION_MEMBER_HISTORY = 5433
444 | SA_UNION_ADD_TAX_INFO = 5434
445 | AS_UNION_ADD_TAX_INFO = 5435
446 | SA_UNION_ADD_TAX = 5436
447 | AS_UNION_ADD_TAX = 5437
448 | SA_UNION_CHANGE_POLICY_INFO = 5438
449 | AS_UNION_CHANGE_POLICY_INFO = 5439
450 | AS_UNION_UPDATE_MEMBER_UNION_ID = 5440
451 | AS_UNION_ONOFF_REQUEST = 5441
452 | SA_UNION_STATE_INFO = 5442
453 | AS_UNION_ADMIN_CHANGE_POLICY = 5443
454 | SA_ROB_UNION_TAX = 5444
455 | AS_ROB_UNION_TAX = 5445
456 | AS_UNION_POST_BATTLE_INIT = 5446
457 | SA_UPDATE_UNION_POST_BATTLE_INFO = 5447
458 | SA_UPDATE_UNION_POST_BATTLE_RANK_INFO = 5448
459 | SA_UPDATE_UNION_LAST_SEASON_NUM = 5449
460 | SA_UPDATE_UNION_POST_BATTLE_TIME_QAC = 5450
461 | SA_UPDATE_UNION_POST_BATTLE_STATE = 5451
462 | SA_LOAD_POLITICS_UNIT = 5452
463 | AS_POLITICS_UNIT_INFO = 5453
464 | AS_END_LORD_REIGN_PERIOD = 5454
465 | AS_MARK_AS_QUEST_COMPLETED = 5455
466 | SA_WATCH_MOVIE = 5456
467 | SA_LOAD_BATTLE_FIELD_ENTER_COUNT = 5457
468 | AS_LOAD_BATTLE_FIELD_ENTER_COUNT = 5458
469 | SA_UPDATE_BATTLE_FIELD_ENTER_COUNT = 5459
470 | AS_UPDATE_BATTLE_FIELD_ENTER_COUNT = 5460
471 | AS_ADMIN_CLEAR_BATTLE_FIELD_ENTER_COUNT = 5461
472 | SA_CLEAR_BATTLE_FIELD_ENTER_COUNT = 5462
473 | AS_CLEAR_BATTLE_FIELD_ENTER_COUNT = 5463
474 | AS_ASK_SERVANT_SKILL_INFO = 5464
475 | SA_SERVANT_SKILL_INFO = 5465
476 | AS_ASK_CHANGE_MAX_PROF_LIMIT = 5466
477 | SA_ASK_CHANGE_MAX_PROF_LIMIT = 5467
478 | AS_UPDATE_DAILY_EVENT_DAY = 5468
479 | SA_REQEUST_RESET_DUNGEON = 5469
480 | AS_REQUEST_RESET_DUNGEON = 5470
481 | SA_UPDATE_CAPACITY_POINT = 5471
482 | SA_UPDATE_MAKRER_END = 5472
483 | SA_UPDATE_GAUGE_END = 5473
484 | SA_INSERT_LIMITED_DROP_GAUGE_INFO = 5474
485 | SA_REQUSET_TOKEN_EXCHANGE_DATASHEET_RELOAD = 5475
486 | AS_REQUSET_TOKEN_EXCHANGE_DATASHEET_RELOAD = 5476
487 | AS_CHANGE_TOKEN_POINT_BY_WA = 5477
488 | AS_NPC_ARENA_STATE_CHECK = 5478
489 | SA_NPC_ARENA_STATE_CHECK = 5479
490 | AS_NPC_ARENA_ACTIVATE = 5480
491 | AS_QA_SET_GAME_OPERATOR = 5481
492 | SA_RESET_AND_ENTER_DUNGEON = 5482
493 | AS_RESET_AND_ENTER_DUNGEON = 5483
494 | AS_RESET_DUNGEON = 5484
495 | AS_AM_I_WORLD_CONTROL_ARBITER = 5485
496 | SA_AM_I_WORLD_CONTROL_ARBITER = 5486
497 | AS_DUNGEON_DISABLED_LIST = 5487
498 | AS_DUNGEON_ON_OFF = 5488
499 | SA_ADMIN_HOLD_CHARACTER = 5489
500 | SA_ADMIN_CHAT_BAN = 5490
501 | AS_ADMIN_HOLD_CHARACTER = 5491
502 | AS_LOG_QUEST_END = 5492
503 | SA_LOG_QUEST_END = 5493
504 | SA_SPAWN_BUILD_OBJECT = 5494
505 | AS_SPAWN_BUILD_OBJECT = 5495
506 | AS_EVENT_MATCHING_INFO_LIST = 5496
507 | SA_LOAD_EVENT_MATCHING_INFO = 5497
508 | AS_EVENT_MATCHING_INFO = 5498
509 | AS_EVENT_MATCHING_CONTROL = 5499
510 | AS_REQUEST_ENTER_BATTLEFIELD = 5500
511 | SA_UPDATE_PLAYGUIDE_EXTRA_REWARD_RESETTIME = 5501
512 | AS_UPDATE_PLAYGUIDE_EXTRA_REWARD_RESETTIME = 5502
513 | SA_LEVEL_UP_EVENT = 5503
514 | AS_ADMIN_DEL_FLOATING_CASTLE_PARTS = 5504
515 | SA_LOAD_FLOATINGCASTLE = 5505
516 | AS_LOAD_FLOATINGCASTLE = 5506
517 | AS_ALL_COLLECT_FLOATING_CASTLE = 5507
518 | AS_ASSIGN_ALL_FLOATING_CASTLE = 5508
519 | AS_COLLECT_FLOATING_CASTLE = 5509
520 | AS_ASSIGN_FLOATING_CASTLE = 5510
521 | AS_UPDATE_GUILD_GENERAL_COIN = 5511
522 | AS_SET_GUILD_GENERAL_COIN = 5512
523 | SA_BROADCAST_FLOATING_CASTLE_INFO = 5513
524 | AS_UPDATE_SEASON_INDEX = 5514
525 | SA_UPDATE_FLOATING_CASTLE_PARTS = 5515
526 | SA_BROADCAST_FLOATING_CASTLE_NAMEPLATE = 5516
527 | AS_UPDATE_FLOATING_CASTLE_PARTS = 5517
528 | SA_UPDATE_FLOATING_CASTLE_COST_STATE = 5518
529 | AS_UPDATE_FLOATING_CASTLE_COST_STATE = 5519
530 | SA_UPDATE_FLOATING_CASTLE_AUTHORITY = 5520
531 | AS_UPDATE_FLOATING_CASTLE_AUTHORITY = 5521
532 | SA_USER_ON_SPAWN_COMPLETE = 5522
533 | AS_UPDATE_GUILD_EMBLEM = 5523
534 | AS_UPDATE_GUILD_SKILLS = 5524
535 | AS_UPDATE_ACHIEVEMENT_SEASON = 5525
536 | SDB_PING = 10000
537 | SDB_USER_ENTERWORLD = 10001
538 | SDB_USER_LEAVEWORLD = 10002
539 | DBS_USER_LEAVEWORLD = 10003
540 | SDB_VENDINGMACHINE_LOAD = 10004
541 | DBS_VENDINGMACHINE_LOAD = 10005
542 | SDB_VENDINGMACHINE_SELL_SETTING = 10006
543 | DBS_VENDINGMACHINE_SELL_SETTING = 10007
544 | SDB_VENDINGMACHINE_SELL = 10008
545 | DBS_VENDINGMACHINE_SELL = 10009
546 | SDB_VENDINGMACHINE_SELL_CLOSE = 10010
547 | DBS_VENDINGMACHINE_SELL_CLOSE = 10011
548 | SDB_VENDINGMACHINE_BUY_SETTING = 10012
549 | DBS_VENDINGMACHINE_BUY_SETTING = 10013
550 | SDB_VENDINGMACHINE_BUY = 10014
551 | DBS_VENDINGMACHINE_BUY = 10015
552 | SDB_VENDINGMACHINE_BUY_CLOSE = 10016
553 | DBS_VENDINGMACHINE_BUY_CLOSE = 10017
554 | SDB_VENDINGMACHINE_DESTROY = 10018
555 | DBS_VENDINGMACHINE_DESTROY = 10019
556 | SDB_VENDINGMACHINE_SELL_SETTLE_UP = 10020
557 | DBS_VENDINGMACHINE_SELL_SETTLE_UP = 10021
558 | SDB_VENDINGMACHINE_BUY_SETTLE_UP = 10022
559 | DBS_VENDINGMACHINE_BUY_SETTLE_UP = 10023
560 | SDB_VENDINGMACHINE_SELL_DIE = 10024
561 | DBS_VENDINGMACHINE_SELL_DIE = 10025
562 | SDB_VENDINGMACHINE_BUY_DIE = 10026
563 | DBS_VENDINGMACHINE_BUY_DIE = 10027
564 | SDB_LOAD_QUEST_LIST = 10028
565 | DBS_LOAD_QUEST_LIST = 10029
566 | SDB_SET_QUEST_INFO = 10030
567 | DBS_SET_QUEST_INFO = 10031
568 | SDB_SET_QUESTLIST_INFO = 10032
569 | DBS_SET_QUESTLIST_INFO = 10033
570 | SDB_SET_TASK_SHOW_TOGGLE = 10034
571 | DBS_SET_TASK_SHOW_TOGGLE = 10035
572 | DBS_USER_ENTERWORLD = 10037
573 | S_UPDATE_LICENSE = 10038
574 | D_UPDATE_LICENSE = 10039
575 | S_UPDATE_EXP_LEVEL = 10040
576 | D_UPDATE_EXP_LEVEL = 10041
577 | S_UPDATE_PROF_MINERAL = 10042
578 | S_UPDATE_PROF_BUG = 10043
579 | S_UPDATE_PROF_ENERGY = 10044
580 | S_UPDATE_PROF_HERB = 10045
581 | D_UPDATE_PROF_RESULT = 10046
582 | S_UPDATE_USER_PKDECLARECOUNT = 10047
583 | D_UPDATE_USER_PKDECLARECOUNT = 10048
584 | S_UPDATE_USER_PKPOINT = 10049
585 | D_UPDATE_USER_PKPOINT = 10050
586 | SDB_SET_MONEY = 10051
587 | SDB_GET_MONEY = 10052
588 | DBS_SET_MONEY = 10053
589 | DBS_GET_MONEY = 10054
590 | SDB_VIEW_WAREHOUSE = 10055
591 | DBS_VIEW_WAREHOUSE = 10056
592 | SDB_STORE_WAREHOUSE = 10057
593 | DBS_STORE_WAREHOUSE = 10058
594 | SDB_GET_WAREHOUSE = 10059
595 | DBS_GET_WAREHOUSE = 10060
596 | SDB_MOVE_WAREHOUSE_ITEM = 10061
597 | DBS_MOVE_WAREHOUSE_ITEM = 10062
598 | SDB_ITEM_PRODUCE_STEP1 = 10063
599 | DBS_ITEM_PRODUCE_STEP1 = 10064
600 | SDB_ITEM_PRODUCE_STEP2 = 10065
601 | DBS_ITEM_PRODUCE_STEP2 = 10066
602 | SDB_ITEM_EXTRACT = 10067
603 | DBS_ITEM_EXTRACT = 10068
604 | SDB_ITEM_DECOMPOSE = 10069
605 | DBS_ITEM_DECOMPOSE = 10070
606 | SDB_LEARN_ITEM_RECIPE = 10071
607 | DBS_LEARN_ITEM_RECIPE = 10072
608 | SDB_LOAD_ITEM_RECIPE = 10073
609 | DBS_LOAD_ITEM_RECIPE = 10074
610 | SDB_DELETE_ITEM_RECIPE_LIST = 10075
611 | DBS_DELETE_ITEM_RECIPE_LIST = 10076
612 | SDB_LOAD_SKILL_PROF = 10077
613 | DBS_LOAD_SKILL_PROF = 10078
614 | SDB_UPDATE_SKILL_PROF = 10079
615 | DBS_UPDATE_SKILL_PROF = 10080
616 | SDB_ITEM_SINGLE = 10081
617 | DBS_ITEM_SINGLE = 10082
618 | SDB_ITEM_TRADE = 10083
619 | DBS_ITEM_TRADE = 10084
620 | SDB_ITEM_DELIVER = 10085
621 | DBS_ITEM_DELIVER = 10086
622 | SDB_ITEM_ENCHANT = 10087
623 | DBS_ITEM_ENCHANT = 10088
624 | SDB_ITEM_CUSTOMIZING = 10089
625 | DBS_ITEM_CUSTOMIZING = 10090
626 | SDB_ITEM_MERGE = 10091
627 | DBS_ITEM_MERGE = 10092
628 | SDB_UPDATE_USERDATA = 10093
629 | SDB_LIST_PARCEL = 10094
630 | DBS_LIST_PARCEL = 10095
631 | SDB_MAKE_PARCEL = 10096
632 | DBS_MAKE_PARCEL = 10097
633 | SDB_RECV_PARCEL = 10098
634 | DBS_RECV_PARCEL = 10099
635 | SDB_CHANGE_WAREHOUSE_POS = 10100
636 | DBS_CHANGE_WAREHOUSE_POS = 10101
637 | SDB_RETURN_PARCEL = 10102
638 | DBS_RETURN_PARCEL = 10103
639 | SDB_CLEAR_QUEST = 10104
640 | DBS_CLEAR_QUEST = 10105
641 | SDB_CHECK_NEW_GUILD_NAME = 10106
642 | DBS_CHECK_NEW_GUILD_NAME = 10107
643 | SDB_USER_LEARN_SKILL = 10115
644 | DBS_USER_LEARN_SKILL = 10116
645 | SDB_USER_FORGET_SKILL = 10117
646 | DBS_USER_FORGET_SKILL = 10118
647 | SDB_USER_LOAD_INVENTORY = 10119
648 | DBS_USER_LOAD_INVENTORY = 10120
649 | SDB_PEGASUS_FEE = 10121
650 | DBS_PEGASUS_FEE = 10122
651 | SDB_LOAD_TELEPORT_TO_POS_LIST = 10123
652 | DBS_LOAD_TELEPORT_TO_POS_LIST = 10124
653 | SDB_ADD_TELEPORT_TO_POS_LIST = 10125
654 | DBS_ADD_TELEPORT_TO_POS_LIST = 10126
655 | SDB_DELETE_TELEPORT_TO_POS_LIST = 10127
656 | DBS_DELETE_TELEPORT_TO_POS_LIST = 10128
657 | SDB_RENAME_TELEPORT_TO_POS_LIST = 10129
658 | DBS_RENAME_TELEPORT_TO_POS_LIST = 10130
659 | SDB_UPDATE_EXTRA_POINT = 10131
660 | DBS_UPDATE_EXTRA_POINT = 10132
661 | SDB_CONDITIONAL_TELEPORT = 10133
662 | DBS_CONDITIONAL_TELEPORT = 10134
663 | SDB_RETURN_HOME_WITH_SYSRETURN = 10135
664 | DBS_SYSRETURN_POSITION = 10136
665 | SDB_SET_SYSRETURN_POSITION = 10137
666 | SDB_ITEM_STORE = 10138
667 | DBS_ITEM_STORE = 10139
668 | SDB_PAY_WAREHOUSE_COMMISION = 10140
669 | DBS_PAY_WAREHOUSE_COMMISION = 10141
670 | SDB_UPDATE_USER_DATA = 10142
671 | DBS_UPDATE_USER_DATA = 10143
672 | SDB_ITEM_SIMPLE_ATOM = 10144
673 | DBS_ITEM_SIMPLE_ATOM = 10145
674 | SDB_INIT_GUILD = 10146
675 | DBS_INIT_GUILD_GROUP = 10147
676 | DBS_INIT_GUILD_MEMBER = 10148
677 | DBS_INIT_GUILD_SKILLS = 10149
678 | DBS_LOAD_GUILD_COMPLETE = 10150
679 | SDB_CREATE_GUILD2 = 10151
680 | DBS_CREATE_GUILD2 = 10152
681 | SDB_CREATE_SYSTEM_GUILD = 10153
682 | DBS_CREATE_SYSTEM_GUILD = 10154
683 | S_UPDATE_USER_PKDECLARECOUNT2 = 10155
684 | D_UPDATE_USER_PKDECLARECOUNT2 = 10156
685 | SDB_ADD_GUILDMEMBER2 = 10160
686 | DBS_ADD_GUILDMEMBER2 = 10161
687 | SDB_ITEM_TRADE_LOG = 10162
688 | SDB_MAIN_MENU_COMMAND = 10163
689 | DBS_MAIN_MENU_COMMAND = 10164
690 | SDB_CLEAR_WAREHOUSE = 10165
691 | DBS_CLEAR_WAREHOUSE = 10166
692 | SDB_INVENTORY_AUTO_SORT = 10167
693 | DBS_INVENTORY_AUTO_SORT = 10168
694 | SDB_WAREHOUSE_AUTO_SORT = 10169
695 | DBS_WAREHOUSE_AUTO_SORT = 10170
696 | SDB_SEND_CAMP_TELEPORT = 10171
697 | DBS_CLEAR_INVEN = 10172
698 | SDB_USER_CLEAR_ALL_SKILL = 10173
699 | DBS_USER_CLEAR_ALL_SKILL = 10174
700 | SDB_GROUP_DUEL_BET_MONEY = 10175
701 | DBS_GROUP_DUEL_BET_MONEY = 10176
702 | DBS_UPDATE_USER_MONEY = 10177
703 | DBS_UPDATE_USER_INVENTORY = 10178
704 | DBS_VENDINGMACHINE_LOAD2 = 10179
705 | DBS_USER_LOAD_INVENTORY2 = 10180
706 | SDB_UPDATE_GUILD_LEVEL = 10181
707 | DBS_UPDATE_GUILD_LEVEL = 10182
708 | DBS_INIT_GUILD_DATA = 10183
709 | SDB_VENDINGMACHINE_SET = 10184
710 | DBS_VENDINGMACHINE_SET = 10185
711 | SDB_VENDINGMACHINE_BUYSELL = 10186
712 | DBS_VENDINGMACHINE_BUYSELL = 10187
713 | SDB_VENDINGMACHINE_BUY_SET = 10188
714 | DBS_VENDINGMACHINE_BUY_SET = 10189
715 | SDB_VENDINGMACHINE_BUY_EX = 10190
716 | DBS_VENDINGMACHINE_BUY_EX = 10191
717 | SDB_VENDINGMACHINE_CLEAR = 10192
718 | DBS_VENDINGMACHINE_CLEAR = 10193
719 | SDB_LOAD_USER_ACHIEVEMENT = 10194
720 | DBS_LOAD_USER_ACHIEVEMENT = 10195
721 | SDB_UPDATE_USER_ACHIEVEMENT = 10196
722 | DBS_UPDATE_USER_ACHIEVEMENT = 10197
723 | SDB_GROUP_DUEL_BETTING_ITEM = 10198
724 | DBS_GROUP_DUEL_BETTING_ITEM = 10199
725 | SDB_ADD_PVP_USER_LOG = 10200
726 | SDB_ADD_PK_USER_LOG = 10201
727 | SDB_ADD_GROUP_DUEL_USER_LOG = 10202
728 | DBS_UPDATE_SERVER_ACHIEVEMENT = 10203
729 | SDB_ACCOMPLISH_USER_ACHIEVEMENT = 10204
730 | DBS_ACCOMPLISH_USER_ACHIEVEMENT = 10205
731 | SDB_DELETE_USER_ACHIEVEMENT = 10206
732 | DBS_DELETE_USER_ACHIEVEMENT = 10207
733 | SDB_APPLY_TITLE = 10208
734 | DBS_APPLY_TITLE = 10209
735 | DBS_USER_REFRESH_INVENTORY = 10210
736 | SDB_FETCH_THROUGH_ARBITER_CONTRACT = 10211
737 | DBS_FETCH_THROUGH_ARBITER_CONTRACT = 10212
738 | DBS_ASK_THROUGH_ARBITER_CONTRACT = 10213
739 | SDB_ASK_THROUGH_ARBITER_CONTRACT = 10214
740 | SDB_SEND_BEGIN_THROUGH_ARBITER_CONTRACT = 10215
741 | SDB_SEND_END_THROUGH_ARBITER_CONTRACT = 10216
742 | DBS_SEND_END_THROUGH_ARBITER_CONTRACT = 10217
743 | DBS_REPLY_THROUGH_ARBITER_CONTRACT = 10218
744 | SDB_DELETE_PARCEL = 10219
745 | DBS_DELETE_PARCEL = 10220
746 | SDB_EQUIP_ITEM = 10221
747 | DBS_EQUIP_ITEM = 10222
748 | SDB_GROUP_DUEL_RETURN = 10223
749 | DBS_GROUP_DUEL_RETURN = 10224
750 | SDB_TRADE_BROKER_REGISTER_ITEM = 10225
751 | DBS_TRADE_BROKER_REGISTER_ITEM = 10226
752 | SDB_TRADE_BROKER_UNREGISTER_ITEM = 10227
753 | DBS_TRADE_BROKER_UNREGISTER_ITEM = 10228
754 | SDB_TRADE_BROKER_CALC_SOLD_ITEM = 10229
755 | DBS_TRADE_BROKER_CALC_SOLD_ITEM = 10230
756 | SDB_TRADE_BROKER_CALC_BOUGHT_ITEM = 10231
757 | DBS_TRADE_BROKER_CALC_BOUGHT_ITEM = 10232
758 | SDB_TRADE_BROKER_BUY_IT_NOW = 10233
759 | DBS_TRADE_BROKER_BUY_IT_NOW = 10234
760 | SDB_TRADE_BROKER_START_DEAL = 10235
761 | DBS_TRADE_BROKER_START_DEAL = 10236
762 | DBS_TRADE_BROKER_ACCEPT_DEAL = 10237
763 | SDB_TRADE_BROKER_CANCEL_DEAL = 10238
764 | AS_ASK_ADMIN_REQUEST_USERACTION = 10239
765 | SA_ADMIN_REQUEST_USERACTION = 10240
766 | AS_ADMIN_REQUEST_USERACTION = 10241
767 | AS_ADMIN_REQUEST_SEND_INFO = 10242
768 | AS_ADMIN_COMMAND = 10243
769 | DBS_DELETE_QUEST = 10244
770 | DBS_UPDATE_QUEST = 10245
771 | DBS_TRADE_BROKER_CANCEL_DEAL = 10246
772 | SDB_USER_VAPORIZED = 10247
773 | DBS_SIMULATE_ITEM_TOOLTIP = 10248
774 | SDB_SIMULATE_ITEM_TOOLTIP = 10249
775 | DBS_USER_RESTRICTION = 10250
776 | SDB_VISIT_ALL_SECTIONS = 10251
777 | AS_CAMP_TEL_ADDED = 10252
778 | SDB_LOAD_USER_RESTRICTION = 10253
779 | DBS_LOAD_USER_RESTRICTION = 10254
780 | SDB_INCREASE_INVENTORY_SIZE = 10255
781 | DBS_INCREASE_INVENTORY_SIZE = 10256
782 | SDB_REQUEST_SEND_PAPERDOLL = 10257
783 | SDB_REQUEST_SEND_QUESTJOURNAL = 10258
784 | SDB_COUPON_LIST = 10259
785 | DBS_COUPON_LIST = 10260
786 | SDB_USE_COUPON = 10261
787 | DBS_USE_COUPON = 10262
788 | SDB_DELETE_COUPON = 10263
789 | DBS_DELETE_COUPON = 10264
790 | SDB_RIGHT_ITEM_LIST = 10265
791 | DBS_RIGHT_ITEM_LIST = 10266
792 | SDB_USE_RIGHT_ITEM = 10267
793 | DBS_USE_RIGHT_ITEM = 10268
794 | SDB_ASK_CHANGE_CHAR_NAME = 10269
795 | DBS_ASK_CHANGE_CHAR_NAME = 10270
796 | SDB_DO_CHANGE_CHAR_NAME = 10271
797 | DBS_DO_CHANGE_CHAR_NAME = 10272
798 | SDB_ASK_CHANGE_GUILD_NAME = 10273
799 | DBS_ASK_CHANGE_GUILD_NAME = 10274
800 | SDB_DO_CHANGE_GUILD_NAME = 10275
801 | DBS_DO_CHANGE_GUILD_NAME = 10276
802 | SDB_DO_CHANGE_LOOK = 10277
803 | DBS_DO_CHANGE_LOOK = 10278
804 | AS_ADD_TO_FRIEND_LIST = 10279
805 | AS_DESPAWN_PET = 10280
806 | SA_TEST_PACKET = 10281
807 | SDB_VENDINGMACHINE_STOP = 10282
808 | AS_GUILD_JOINED = 10283
809 | SDB_LOAD_DUNGEON_COOL_TIME = 10284
810 | SDB_UPDATE_DUNGEON_RANK_RECORD = 10285
811 | DBS_UPDATE_DUNGEON_RANK_RECORD = 10286
812 | DBS_LOAD_DUNGEON_COOL_TIME = 10287
813 | AS_TRADE_BROKER_ITEM_SOLD = 10288
814 | SDB_ADD_TUTORIAL = 10289
815 | DBS_ADD_TUTORIAL = 10290
816 | SDB_LOAD_TUTORIAL = 10291
817 | DBS_LOAD_TUTORIAL = 10292
818 | SDB_VENDINGMACHINE_CALCULATE_SELLER = 10293
819 | DBS_VENDINGMACHINE_CALCULATE_SELLER = 10294
820 | SDB_VENDINGMACHINE_CALCULATE_BUYER = 10295
821 | DBS_VENDINGMACHINE_CALCULATE_BUYER = 10296
822 | DBS_OPERATOR_TERRITORY_NPC_KILL = 10297
823 | DBS_OPERATOR_CANCEL_TERRITORY_NPC_KILL = 10298
824 | SDB_OPERATOR_TERRITORY_NPC_KILL = 10299
825 | SDB_OPERATOR_TERRITORY_NPC_KILL_CANCEL = 10300
826 | DBS_OPERATOR_TERRITORY_NPCPARTY_RESPAWN = 10301
827 | DBS_OPERATOR_TERRITORY_NPCTEMPLATE_RESPAWN = 10302
828 | SDB_CHANGE_ITEM_EXTERIOR = 10303
829 | DBS_CHANGE_ITEM_EXTERIOR = 10304
830 | SDB_RESTORE_ITEM_EXTERIOR = 10305
831 | DBS_RESTORE_ITEM_EXTERIOR = 10306
832 | SDB_CHANGE_ITEM_COLORING = 10307
833 | DBS_CHANGE_ITEM_COLORING = 10308
834 | SDB_DECREASE_ITEM_COLORING_LEFTTIME = 10309
835 | DBS_DECREASE_ITEM_COLORING_LEFTTIME = 10310
836 | SDB_TURN_ON_WORK_OBJECT = 10311
837 | DBS_TURN_ON_WORK_OBJECT = 10312
838 | SDB_SET_RECIPE_BOOKMARK = 10313
839 | DBS_SET_RECIPE_BOOKMARK = 10314
840 | SDB_CASH_ITEM_LOG = 10315
841 | SDB_USE_CHRONOSCROLL = 10316
842 | DBS_USE_CHRONOSCROLL = 10317
843 | SDB_LOAD_REPUTATION_LIST = 10318
844 | DBS_LOAD_REPUTATION_LIST = 10319
845 | SDB_UPDATE_REPUTATION_INFO = 10320
846 | DBS_UPDATE_REPUTATION_INFO = 10321
847 | SDB_INIT_LIMIT_REMAIN_REPUTATION = 10322
848 | DBS_INIT_LIMIT_REMAIN_REPUTATION = 10323
849 | SDB_LOAD_BATTLE_FIELD_LIST = 10324
850 | DBS_LOAD_BATTLE_FIELD_LIST = 10325
851 | SDB_UPDATE_DAILY_QUEST_COMPLETE_COUNT = 10326
852 | DBS_UPDATE_DAILY_QUEST_COMPLETE_COUNT = 10327
853 | SDB_UPDATE_DAILY_QUEST_SEED = 10328
854 | DBS_UPDATE_DAILY_QUEST_SEED = 10329
855 | SDB_ITEM_POINT_STORE = 10330
856 | DBS_ITEM_POINT_STORE = 10331
857 | SDB_TUTORIAL_END = 10332
858 | DBS_TUTORIAL_END = 10333
859 | SDB_ITEM_UNIDENTIFY = 10334
860 | DBS_ITEM_UNIDENTIFY = 10335
861 | SDB_DELETE_QUEST_COMPLETED = 10336
862 | DBS_DELETE_QUEST_COMPLETED = 10337
863 | SDB_INSERT_FEUDAL_LORD_FLAG = 10338
864 | DBS_INSERT_FEUDAL_LORD_FLAG = 10339
865 | SDB_DECREASE_FEUDAL_LORD_FLAG_LIFE_TIME = 10340
866 | DBS_DECREASE_FEUDAL_LORD_FLAG_LIFE_TIME = 10341
867 | SDB_LOAD_FEUDAL_LORD_FLAG = 10342
868 | DBS_LOAD_FEUDAL_LORD_FLAG = 10343
869 | SDB_POLITICS_POINT_STORE = 10344
870 | DBS_POLITICS_POINT_STORE = 10345
871 | DBS_CHANGE_POLICYPOINT = 10346
872 | SDB_MARK_AS_QUEST_COMPLETED = 10347
873 | DBS_MARK_AS_QUEST_COMPLETED = 10348
874 | SDB_LOAD_REFER_A_FRIEND_LIST = 10349
875 | DBS_LOAD_REFER_A_FRIEND_LIST = 10350
876 | DBS_ADD_REFER_A_FRIEND = 10351
877 | DBS_DELETE_REFER_A_FRIEND = 10352
878 | SDB_LOAD_ACCOUNT_BENEFIT = 10353
879 | DBS_LOAD_ACCOUNT_BENEFIT = 10354
880 | SDB_LOAD_PCBANG_INVEN = 10355
881 | DBS_LOAD_PCBANG_INVEN = 10356
882 | SDB_REQUEST_RESET_PCBANG_INVEN = 10357
883 | DBS_REQUEST_RESET_PCBANG_INVEN = 10358
884 | SDB_REQUEST_USE_PCBANG_INVEN = 10359
885 | DBS_REQUEST_USE_PCBANG_INVEN = 10360
886 | SDB_UPDATE_PCBANG_INVEN_COOLTIME = 10361
887 | DBS_UPDATE_PCBANG_INVEN_COOLTIME = 10362
888 | SDB_UPDATE_UNION_POLICY_POINT = 10363
889 | DBS_UPDATE_UNION_POLICY_POINT = 10364
890 | SDB_LOAD_UNION = 10365
891 | DBS_LOAD_UNION = 10366
892 | DBS_LOAD_UNION_DATA = 10367
893 | DBS_LOAD_UNION_FINISH = 10368
894 | DBS_CHANGE_UNION_TAX_RATE = 10369
895 | DBS_UPDATE_UNION_SEASON_INFO = 10370
896 | SDB_UNION_STATE_UPDATE = 10371
897 | SDB_CHANGE_UNION_POLICY = 10372
898 | DBS_CHANGE_UNION_POLICY = 10373
899 | DBS_CHANGE_UNION_POLICY_FORCE = 10374
900 | DBS_LOAD_UNION_POLICY = 10375
901 | SDB_UNION_UPDATE_TROUBLED_REGION_STATUS = 10376
902 | DBS_UNION_UPDATE_TROUBLED_REGION_STATUS = 10377
903 | SDB_UNION_UPDATE_TROUBLED_REGION_EXTRACTOR_COUNT = 10378
904 | SDB_LOAD_SKILLPERIOD = 10379
905 | DBS_LOAD_SKILLPERIOD = 10380
906 | SDB_UPDATE_REDUCE_SKILLPERIOD = 10381
907 | DBS_UPDATE_REDUCE_SKILLPERIOD = 10382
908 | SDB_CHANGE_ENCHAT_SCROLL_PASSIVE = 10383
909 | DBS_CHANGE_ENCHAT_SCROLL_PASSIVE = 10384
910 | SDB_LOAD_LEARNED_SOCIAL = 10385
911 | DBS_LOAD_LEARNED_SOCIAL = 10386
912 | SDB_USER_LEARN_SOCIAL = 10387
913 | DBS_USER_LEARN_SOCIAL = 10388
914 | SDB_USER_FORGET_SOCIAL = 10389
915 | DBS_USER_FORGET_SOCIAL = 10390
916 | SDB_USER_CLEAR_ALL_SOCIAL = 10391
917 | DBS_USER_CLEAR_ALL_SOCIAL = 10392
918 | SDB_INCREMENT_CHARACTER_SOCKET = 10393
919 | DBS_INCREMENT_CHARACTER_SOCKET = 10394
920 | SDB_INCREMENT_CHARACTER_LEVEL = 10395
921 | DBS_INCREMENT_CHARACTER_LEVEL = 10396
922 | SDB_INCREMENT_CHARACTER_LEVEL_JUMP = 10397
923 | DBS_INCREMENT_CHARACTER_LEVEL_JUMP = 10398
924 | SDB_INCREMENT_CHARACTER_EXP = 10399
925 | DBS_INCREMENT_CHARACTER_EXP = 10400
926 | DBS_INGAMESHOP_CATEGORY_BEGIN = 10401
927 | DBS_INGAMESHOP_CATEGORY_DATA = 10402
928 | DBS_INGAMESHOP_CATEGORY_END = 10403
929 | DBS_INGAMESHOP_PRODUCT_BEGIN = 10404
930 | DBS_INGAMESHOP_PRODUCT_DATA = 10405
931 | DBS_INGAMESHOP_PRODUCT_TAG = 10406
932 | DBS_INGAMESHOP_PRODUCT_ITEMID = 10407
933 | DBS_INGAMESHOP_PRODUCT_SUBPROD = 10408
934 | DBS_INGAMESHOP_PRODUCT_END = 10409
935 | SDB_ASK_CURRENT_HANCOIN_AMOUNT = 10410
936 | SDB_REQUEST_BUY_PRODUCTID = 10411
937 | SDB_SHARED_ACCOUNT_DATA = 10412
938 | DBS_SHARED_ACCOUNT_DATA = 10413
939 | SA_BROADCAST_UNION_STATE_UPDATE = 10414
940 | SA_USER_CHANGE_CLASS_RACE_GENDER = 10415
941 | AS_USER_CHANGE_CLASS_RACE_GENDER = 10416
942 | AS_EVENT_HUNTINGBONUS_ITEM = 10417
943 | SA_EVENT_HUNTINGBONUS_ITEMRESULT = 10418
944 | SDB_ENCHANT_ITEM_BOOST = 10419
945 | DBS_ENCHANT_ITEM_BOOST = 10420
946 | SDB_UPDATE_ITEM_CUSTOMEXITEM = 10421
947 | DBS_UPDATE_ITEM_CUSTOMEXITEM = 10422
948 | AS_EVENT_HUNTINGBONUS = 10423
949 | SA_EVENT_HUNTINGBONUS_ITEMADDED = 10424
950 | SDB_DO_LIMITED_GACHA_WORK = 10425
951 | DBS_DO_LIMITED_GACHA_WORK = 10426
952 | SDB_EXCHANGE_TOKEN_ITEM_TO_POINT = 10427
953 | DBS_EXCHANGE_TOKEN_ITEM_TO_POINT = 10428
954 | SDB_LOAD_TOKEN_EXCHANGE = 10429
955 | DBS_LOAD_TOKEN_EXCHANGE = 10430
956 | SDB_LOAD_LIMITED_DROP_POINT = 10431
957 | DBS_LOAD_LIMITED_DROP_POINT = 10432
958 | SDB_LOAD_MASSTIGE_INFO = 10433
959 | DBS_LOAD_MASSTIGE_INFO = 10434
960 | SDB_SET_TOKEN_POINT_QA = 10435
961 | DBS_SET_TOKEN_POINT_QA = 10436
962 | SDB_RESET_MASSTIGE_STATUS = 10437
963 | DBS_RESET_MASSTIGE_STATUS = 10438
964 | SDB_LOAD_FATIGABILITY_LIST = 10439
965 | DBS_LOAD_FATIGABILITY_LIST = 10440
966 | SDB_NEW_FATIGABILITY = 10441
967 | DBS_NEW_FATIGABILITY = 10442
968 | SDB_UPDATE_FATIGABILITY_POINT = 10443
969 | DBS_UPDATE_FATIGABILITY_POINT = 10444
970 | SDB_LOAD_PROMOTION_LIST = 10445
971 | DBS_LOAD_PROMOTION_LIST = 10446
972 | SDB_UPDATE_PROMOTION = 10447
973 | DBS_UPDATE_PROMOTION = 10448
974 | SDB_DELETE_PROMOTION = 10449
975 | DBS_DELETE_PROMOTION = 10450
976 | SDB_LOAD_PROMOTION_CONDITION_LIST = 10451
977 | DBS_LOAD_PROMOTION_CONDITION_LIST = 10452
978 | SDB_CREATE_PROMOTION_CONDITION = 10453
979 | DBS_CREATE_PROMOTION_CONDITION = 10454
980 | SDB_UPDATE_PROMOTION_CONDITION = 10455
981 | DBS_UPDATE_PROMOTION_CONDITION = 10456
982 | SDB_DELETE_PROMOTION_CONDITION = 10457
983 | DBS_DELETE_PROMOTION_CONDITION = 10458
984 | SDB_ITEM_DECOMPOSITION = 10459
985 | DBS_ITEM_DECOMPOSITION = 10460
986 | SDB_LOAD_PASSIVITY_COOLTIME = 10461
987 | DBS_LOAD_PASSIVITY_COOLTIME = 10462
988 | SDB_UPDATE_PASSIVITY_COOLTIME = 10463
989 | DBS_UPDATE_PASSIVITY_COOLTIME = 10464
990 | SDB_NPC_ARENA_BET = 10465
991 | SDB_CANCEL_NPC_ARENA_BET = 10466
992 | SDB_ITEM_FLOATING_CASTLE_PASTS_STORE = 10467
993 | DBS_ITEM_FLOATING_CASTLE_PASTS_STORE = 10468
994 | SDB_OPEN_FLOATING_CASTLE_PARTS_STORE = 10469
995 | DBS_OPEN_FLOATING_CASTLE_PARTS_STORE = 10470
996 | SDB_COLLECT_USEITEM_IN_FLOATING_CASTLE = 10471
997 | DBS_COLLECT_USEITEM_IN_FLOATING_CASTLE = 10472
998 | SDB_UPDATE_CUSTOMIZING_COMBINE_RESULT = 10473
999 | DBS_UPDATE_CUSTOMIZING_COMBINE_RESULT = 10474
1000 | SDB_UPDATE_HOLD_CHARACTER_STATUS = 10475
1001 | DBS_UPDATE_HOLD_CHARACTER_STATUS = 10476
1002 | SDB_ITEM_AWAKEN = 10477
1003 | DBS_ITEM_AWAKEN = 10478
1004 | SDB_ITEM_UNBIND = 10479
1005 | DBS_ITEM_UNBIND = 10480
1006 | SDB_CHECK_DAILY_ATTENDANCE = 10481
1007 | DBS_CHECK_DAILY_ATTENDANCE = 10482
1008 | SDB_LOAD_USER_DAILY_EVENT = 10483
1009 | DBS_LOAD_USER_DAILY_EVENT = 10484
1010 | SDB_UPDATE_USER_DAILY_EVENT_COUNT = 10485
1011 | DBS_UPDATE_USER_DAILY_EVENT_COUNT = 10486
1012 | SDB_UPDATE_GET_EXTRA_REWARD = 10487
1013 | DBS_UPDATE_GET_EXTRA_REWARD = 10488
1014 | SDB_ADMIN_USER_DAILY_ATTENDANCE = 10489
1015 | DBS_ADMIN_USER_DAILY_ATTENDANCE = 10490
1016 | SDB_UPDATE_CONTENTS_RANKING_SCORE_PRODUCE = 10491
1017 | SDB_UPDATE_CONTENTS_RANKING_SCORE_BATTLEFIELD = 10492
1018 | CP_PING = 19000
1019 | PC_PONG = 19001
1020 | CP_REQUEST_LOGIN = 19002
1021 | PC_REPLY_LOGIN = 19003
1022 | CP_REQUEST_SERVER_LIST = 19004
1023 | PC_REPLY_SERVER_LIST = 19005
1024 | PA_PING = 19200
1025 | AP_PONG = 19201
1026 | AP_REGISTER = 19202
1027 | PA_REGISTERED = 19203
1028 | AP_REQUEST_ENTER_LOBBY = 19204
1029 | PA_REPLY_ENTER_LOBBY = 19205
1030 | C_CHECK_VERSION = 19900
1031 | S_CHECK_VERSION = 19901
1032 | C_REQUEST_WRITE_BOARD = 20012
1033 | C_CURRENT_CHANNEL = 20038
1034 | S_ABNORMALITY_EXTRA = 20042
1035 | S_ASK_TELEPORT = 20089
1036 | S_VOTE_DISMISS_PARTY = 20116
1037 | S_ADD_TO_TEMPER_MATERIAL_EX = 20198
1038 | S_GUILD_ANNOUNCE = 20203
1039 | S_ARENA_FIGHT_ABNORMALITY_END = 20227
1040 | S_VIEW_UNION_INFO = 20228
1041 | C_RECV_PARCEL = 20230
1042 | S_LORD_RANK_INFO = 20242
1043 | S_UNION_STATE_UPDATE = 20245
1044 | S_INSTANT_MOVE = 20302
1045 | C_GET_GUILD_WARE_HISTORY = 20320
1046 | S_SHOW_PEGASUS_MAP = 20324
1047 | S_GUILD_NAME = 20329
1048 | S_VIEW_VM_SETTING_WINDOW = 20330
1049 | S_GET_WARE_ITEM = 20333
1050 | S_ADMIN_DEFAULT_BOOKMARK_LIST = 20357
1051 | S_AERO = 20360
1052 | S_QUEST_INFO = 20390
1053 | S_DEFEND_SUCCESS = 20399
1054 | S_PROMOTION_INFO = 20427
1055 | S_NEW_GOLD_RACE_INFO = 20461
1056 | S_BATTLE_FIELD_ADD_SCORE = 20493
1057 | S_START_CUSTOMIZING_PARTS_SHAPE = 20522
1058 | C_LEAVE_TELEPORTTERRITORY = 20529
1059 | C_TRADE_BROKER_SUGGEST_DEAL = 20532
1060 | S_NPC_OCCUPIER_INFO = 20547
1061 | S_PLAY_SOUND_BYNAME = 20576
1062 | C_POLITICS_POINT_STORE_BUY_ADD_BASKET = 20582
1063 | C_PET_INCUBATOR_TAKEALL = 20661
1064 | S_BAN_PARTY_MEMBER = 20682
1065 | S_LOGIN_ACCOUNT_INFO = 20805
1066 | C_REQUEST_UPDATE_NOTICE = 20911
1067 | C_SERVANT_ABILITY = 21026
1068 | C_ADD_MATERIAL_AWAKEN = 21043
1069 | S_TOKEN_POINT_STATUS = 21069
1070 | S_ITEM_COLORING_BAG = 21114
1071 | C_WHISPER = 21140
1072 | C_CANCEL_TEMPER = 21174
1073 | C_CANCEL_RETURN_TO_LOBBY = 21272
1074 | S_CHANGE_MODE = 21326
1075 | C_UNION_SUMMARY = 21328
1076 | S_KUMAS_BATTLE_FIELD_LOOT_ITEM = 21351
1077 | C_UPDATE_MY_DESCRIPTION = 21372
1078 | C_LORD_ACHIEVEMENT_ACCOMPLISHED_LIST = 21374
1079 | S_AWAKEN_RESULT = 21380
1080 | S_READY_PULL = 21386
1081 | S_SET_ITEM_BIDDING_FLAG = 21444
1082 | S_HOLD_ABNORMALITY_ADD = 21495
1083 | C_REQUEST_USER_PAPERDOLL_INFO_WITH_GAMEID = 21517
1084 | S_WORLD_QUEST_VILLAGER_INFO = 21524
1085 | C_REQUEST_LATEST_UPDATE_NOTIFICATION = 21549
1086 | C_UNBIND_ITEM = 21556
1087 | S_PUT_WARE_ITEM = 21566
1088 | C_COLLECTION_PICKEND = 21725
1089 | S_BETTING_START = 21759
1090 | S_OPEN_RENAME_GUILD_POPUP = 21761
1091 | C_CREATE_GROUP_DUEL = 21811
1092 | C_ADMIN_VANISH_PET = 21818
1093 | S_LORD_POLICY_SET = 21923
1094 | C_TRADE_BROKER_HISTORY_ITEM_LIST_PAGE = 22044
1095 | C_CREATE_USER = 22060
1096 | C_REQUEST_BATTLE_FIELD_PARTY_MARKER_CLEAR = 22142
1097 | S_COMBATLOG_CURRENT_AGGRO_LIST = 22163
1098 | S_LORD_OPEN_REGISTER_WINDOW = 22167
1099 | C_VISIT_NEW_SECTION = 22198
1100 | C_START_VM_BUY = 22223
1101 | C_UNION_SHARE_MONEY_CONFIRM = 22224
1102 | S_GET_EVENT_MATCHING_EXTRA_REWARD = 22238
1103 | S_INGAMESHOP_CATEGORY_DATA = 22281
1104 | S_DESPAWN_SHUTTLE = 22310
1105 | C_RETURN_TO_LOBBY = 22400
1106 | C_REQUEST_UPDATE_INTRODUCE = 22416
1107 | S_MERGE_PARTY_TO_RAID = 22422
1108 | C_UNEQUIP_ITEM = 22432
1109 | S_FESTIVAL_LIST = 22568
1110 | C_BOARD_ITEM_LIST = 22579
1111 | S_UNION_POST_CHANGE_PK_CP = 22602
1112 | C_REQUEST_CANDIDATE_LIST = 22663
1113 | S_NOTIFY_GUILD_WAR_INFO = 22688
1114 | S_REMOVE_SOUND_BYNAME = 22736
1115 | C_CLEAR_SEND_PARCEL = 22758
1116 | S_USER_LOCATION = 22763
1117 | C_UNREGISTER_VM_SELL_ITEM = 22836
1118 | C_GIVE_UP_GUILD_WAR = 22865
1119 | C_START_DECOMPOSE = 22938
1120 | S_BEGIN_THROUGH_ARBITER_CONTRACT = 22950
1121 | S_SPAWN_BONFIRE = 22963
1122 | S_LEAVE_UNION = 23000
1123 | C_START_TARGETED_SKILL = 23015
1124 | S_VIEW_GUILD_WAR = 23128
1125 | C_TRY_LOOT_DROPITEM = 23158
1126 | S_NOTIFY_GUILD_WAR_STATUS_CHANGE = 23165
1127 | S_DESPAWN_BONFIRE = 23190
1128 | S_PLAY_EFFECT = 23209
1129 | S_STORE_SELL_LIST = 23271
1130 | S_SYSTEM_MESSAGE_CUSTOM = 23292
1131 | C_SET_SEND_PARCEL_MONEY = 23296
1132 | C_LORD_CANDIDATE_PLEDGE = 23343
1133 | C_ENTER_BATTLE_FIELD = 23369
1134 | C_CHAT_REPORT = 23471
1135 | S_REIGN_INFO = 23545
1136 | S_UPDATE_VM_SELLBUY_WINDOW = 23561
1137 | S_UNICAST_FLOATING_CASTLE_NAMEPLATE = 23625
1138 | C_ADD_FRIEND = 23628
1139 | C_GET_IN_SHUTTLE = 23666
1140 | C_TRADE_BROKER_REGISTERED_ITEM_LIST = 23680
1141 | S_PREPARE_CHANGE_USER_APPEARANCE = 23717
1142 | S_COMPLETE_EVENT_MATCHING_QUEST = 23759
1143 | S_UNION_CONSUL_AUTHORITY_INFO = 23769
1144 | S_NOTIFY_BATTLE_FIELD_CHAT_BAN = 23840
1145 | S_PARTY_MEMBER_ABNORMAL_DEL = 23862
1146 | C_REQUEST_ARENA_BETTING_INFO = 24099
1147 | S_ENABLE_CHARM_STATUS = 24138
1148 | S_SELECT_CHANNEL = 24225
1149 | S_STAGE_START = 24284
1150 | S_ITEMSYNTHESIZER_REQUEST_DROP_MATERIAL = 24310
1151 | S_TARGET_INFO = 24317
1152 | S_RESULT_BATTLE_FIELD_CHAT_BAN = 24342
1153 | C_REMOVE_BLOCKED_USER = 24391
1154 | S_PROMOTION_SUCCESS = 24434
1155 | S_VOID_GUARD_INFO = 24490
1156 | C_CANCEL_CONTRACT = 24496
1157 | C_MEDAL_STORE_BUY_DEL_BASKET = 24590
1158 | S_BATTLE_FIELD_USER_KILL_EVENT = 24634
1159 | S_UPDATE_PRODUCE = 24636
1160 | S_PLAY_EVENT_SOUND = 24780
1161 | S_SPAWN_PET = 24806
1162 | C_LORD_CHANGE_POLICY = 24926
1163 | C_POLITICS_POINT_STORE_COMMIT = 24934
1164 | S_VERSION_INFO = 25029
1165 | S_CUSTOM_MESSAGE = 25045
1166 | S_GUILD_COMPETITION_BEFORE_LEAGUE_RANK = 25079
1167 | M_PDH_DATA = 25189
1168 | C_PETITION_CHECK_CREATABLE = 25201
1169 | C_JOIN_GROUP_DUEL = 25206
1170 | C_START_DRIVE_AIRSHIP = 25248
1171 | C_PK_DECLARE = 25249
1172 | S_NOTIFY_VM_STATUS = 25371
1173 | C_PDH_QUERY = 25376
1174 | C_VIEW_GUILD_WAR = 25418
1175 | S_FIN_KUMAS_BATTLE_FIELD = 25576
1176 | C_UNION_SHARE_POINT = 25577
1177 | S_VILLAGER_POPUP_DIALOG = 25608
1178 | S_PLAY_TIME = 25659
1179 | S_ANSWER_INTERACTIVE = 25733
1180 | S_PARTY_MEMBER_INTERVAL_POS_UPDATE = 25737
1181 | S_ADD_GUILD_GROUP = 25783
1182 | S_ENCHANT_BOOSTER_REGISTER_ITEM = 25792
1183 | S_CREATURE_CHANGE_HP = 25859
1184 | S_CHECK_TO_READY_PARTY = 25906
1185 | C_ADMIN_GET_USER_INFO_LIST_BY_DISTANCE = 25926
1186 | C_MOUNT_VEHICLE_EX = 25955
1187 | S_BROADCAST_FLOATING_CASTLE_NAMEPLATE = 25970
1188 | C_START_PRODUCE = 25999
1189 | S_SYSTEM_MESSAGE = 26103
1190 | C_ROLLBACK_QUEST = 26123
1191 | C_REQUEST_GUILD_LIST = 26136
1192 | S_MEDAL_STORE_BASKET = 26286
1193 | S_RESULT_MATERIAL_AWAKEN = 26346
1194 | C_REGISTER_PARTY_INFO = 26437
1195 | S_CLEAR_WORLD_QUEST_VILLAGER_INFO = 26491
1196 | C_PREMIUM_COMPOSE_ADD_ITEM = 26508
1197 | S_NPC_AI_EVENT = 26515
1198 | S_TRADE_BOX = 26568
1199 | C_CHECK_EXTRACT = 26573
1200 | C_DIALOG_EVENT = 26633
1201 | S_LOCKON_YOU = 26650
1202 | S_UNION_CHANGE_NOTICE = 26707
1203 | S_UNION_SHARE_MONEY_INFO = 26729
1204 | S_UNION_GET_MYHISTORY = 26763
1205 | S_GROUP_DUEL_RECORD = 26836
1206 | S_DUNGEON_RANK_SEASON_LIST = 26922
1207 | S_LORD_OPEN_CANDIDATE_WINDOW = 26939
1208 | S_PK_POINT = 26958
1209 | C_CHANGE_ITEM_COLORING_POTION = 26965
1210 | S_STAGE_RESULT = 27052
1211 | S_COLLECTION_PROGRESS = 27081
1212 | S_DEL_TRADE_BAG = 27116
1213 | C_GUILD_COMPETITION_INFO = 27165
1214 | C_LEAVE_UNION = 27167
1215 | S_TRADE_BROKER_DEAL_SUGGESTED = 27176
1216 | S_VIEW_BATTLE_FIELD_RANKING = 27178
1217 | C_BATTLE_FIELD_CANCEL_OCCUPATION = 27223
1218 | C_REQUEST_INGAMESTORE_PRODUCT_DETAIL = 27306
1219 | C_PREMIUM_COMPOSE_TRY = 27337
1220 | S_VM_BUY_BASKET_INFO = 27350
1221 | C_LORD_VOTE = 27355
1222 | S_GACHA_CANCEL = 27424
1223 | C_FLOATING_CASTLE_PARTS_STORE_BUY_ADD_BASKET = 27482
1224 | C_REQUEST_GUILD_FLAG_IMAGE_DATA = 27497
1225 | C_ADMIN_CHECK_USERNAME_WITH_GAMEID = 27543
1226 | S_DUEL_START = 27694
1227 | S_GUILD_COMPETITION_CONTENTS_RANK_GUILD = 27695
1228 | S_TUTORIAL_PLAY_FINISHED = 27713
1229 | S_BATTLE_FIELD_PARTY_MARKER = 27944
1230 | S_INVEN = 28031
1231 | C_SERVER_TIME = 28066
1232 | S_SET_RECIPE_BOOKMARK = 28086
1233 | S_PREPARE_WORKOBJECT = 28139
1234 | S_SUGGEST_UNION_POST_PARTY_MATCHING = 28186
1235 | S_CHECK_TO_READY_PARTY_FIN = 28223
1236 | C_SLASH_COMMAND = 28230
1237 | C_UNREGISTER_VM_BUY_ITEM = 28300
1238 | C_BROADCAST_CLIMBING = 28308
1239 | C_STORE_SELL_DEL_BASKET = 28342
1240 | C_UNION_CONSUL_AUTHORITY_INFO = 28354
1241 | S_VIEW_INTER_PARTY_MATCH_DUNGOEN_LIST = 28367
1242 | C_REQUEST_PARTY_MATCH_INFO_PAGE = 28390
1243 | S_DELETE_COUPON = 28421
1244 | C_REQUEST_CONTRACT = 28436
1245 | C_REQUEST_DICE_THROW = 28459
1246 | C_UNION_MYUNION = 28469
1247 | S_GUILD_COMPETITION_SEASON_INDEX = 28500
1248 | S_BAN_PARTY = 28502
1249 | C_SHOW_AWESOMIUMWEB_SHOP = 28512
1250 | C_REPLY_THROUGH_ARBITER_CONTRACT = 28528
1251 | S_DIALOG = 28540
1252 | C_REPLY_TELEPORT_NEAR_TOWN = 28573
1253 | S_VIEW_COMBINE_BATTLE_FIELD_RANKING = 28604
1254 | C_QUERY_COIN = 28701
1255 | C_REQUEST_COUPON_LIST = 28738
1256 | C_REQUEST_BATTLE_FIELD_CHAT_BAN = 28740
1257 | S_TRADE_BROKER_HISTORY_ITEM_LIST = 28813
1258 | S_BATTLE_FIELD_SCORE = 28902
1259 | C_REQUEST_GUILD_WAR_TRACKING_INFO = 28907
1260 | C_ENCHANT_BOOSTER_START = 28972
1261 | S_TRADE_MESSAGE = 28982
1262 | S_INGAME_CHANGE_USER_APPEARANCE_CANCEL = 28986
1263 | C_UNREGISTER_PARTY_INFO = 29036
1264 | S_ARENA_FIGHTER_CHANGE_HP = 29045
1265 | S_CREATURE_LIFE = 29084
1266 | S_PCBANGINVENTORY_DATALIST = 29110
1267 | C_RECOMMEND_GUILD = 29133
1268 | C_DISTRIBUTOR_ANSWER = 29184
1269 | C_LORD_CHANGE_GREETINGS = 29189
1270 | C_PARCEL_REPORT = 29203
1271 | C_SEND_PARCEL = 29223
1272 | S_UNION_CP_STORE_BASKET = 29239
1273 | S_EMPTY_GUILD_WINDOW = 29244
1274 | S_CAN_CREATE_USER = 29295
1275 | S_VISIT_NEW_SECTION = 29347
1276 | S_DUNGEON_TIMER = 29366
1277 | S_EMITTER = 29369
1278 | C_DESTROY_GUILD = 29433
1279 | S_RETURN_TO_LOBBY = 29466
1280 | S_REQUEST_INGAMESTORE_PRODUCT_DETAIL = 29621
1281 | S_CANCEL_PARTY_LOOTING_METHOD_VOTE = 29706
1282 | S_PET_INFO_CHANGE = 29719
1283 | S_UNION_SHARE_POINT = 29720
1284 | C_TRADE_BROKER_HISTORY_ITEM_LIST_SORT = 29840
1285 | S_PETITION_CANCEL = 29855
1286 | S_OPEN_BOARD = 29909
1287 | S_ACTION_STAGE = 29943
1288 | C_GUILD_COMPETITION_RANK = 29948
1289 | S_LOCKON_ARROW = 30022
1290 | C_REQUEST_GUILD_WAR_TELEPORT = 30069
1291 | S_REQUEST_COOLTIME_TO_JOIN_GUILD = 30097
1292 | C_BIND_ITEM_CANCEL = 30120
1293 | C_PET_USE_ORB = 30134
1294 | C_SHOW_ITEM_TOOLTIP = 30138
1295 | C_ADMIN = 30199
1296 | S_MY_CONDITION = 30213
1297 | C_DESPAWN_BUILD_OBJECT = 30280
1298 | S_CHAT = 30384
1299 | S_LOAD_HINT = 30388
1300 | S_MINIGAME_START = 30524
1301 | C_START_CLIMBING = 30545
1302 | C_SOCIAL = 30564
1303 | S_POST_PROCESS = 30577
1304 | S_CHECK_EXTRACT = 30579
1305 | S_PARTY_MEMBER_CHARM_RESET = 30600
1306 | C_ADD_INTER_PARTY_MATCH_POOL = 30656
1307 | C_REPLY_TELEPORT = 30704
1308 | S_WAITING_LIST = 30710
1309 | C_CHANGE_CHANNEL_PASSWORD = 30721
1310 | C_GET_AOI_INFO = 30748
1311 | S_PETITION_FORCE_CREATE = 30887
1312 | S_PING = 30988
1313 | S_SERVER_TIME = 31011
1314 | C_TRADE_BROKER_INPUT_PRICE = 31023
1315 | C_LOGIN_WORLD = 31033
1316 | C_CHECK_GUILD_BATTLE_CHIP = 31043
1317 | C_VIEW_BATTLE_FIELD_RANKING = 31056
1318 | C_BATTLE_FIELD_HELP = 31088
1319 | S_BANISH_GUILD_MEMBER = 31141
1320 | S_ADMIN_WARNING_MESSAGE = 31158
1321 | S_PARTY_MEMBER_CHANGE_STAMINA = 31168
1322 | S_ITEM_RESET_RESULT = 31247
1323 | S_PREMIUM_COMPOSE_ADD_ITEM = 31260
1324 | C_LOGIN_ARBITER = 31313
1325 | S_REQUEST_RENEW_ALL_PARTS_ITEM = 31333
1326 | S_CANNON_BATTLE_FIELD_RESULT = 31350
1327 | C_DEL_INTER_PARTY_MATCH_POOL = 31354
1328 | S_DARK_RIFT_JOIN_LIST = 31370
1329 | C_VIEW_BATTLE_FIELD_RESULT = 31386
1330 | S_RESET_SKILL = 31402
1331 | S_CHANGE_VOICE_USE_QAC = 31409
1332 | S_BYE_PET = 31457
1333 | S_OPEN_FLOATING_CASTLE_STORE = 31531
1334 | C_EXECUTE_TEMPER = 31532
1335 | C_ACCEPT_GUILD_WAR = 31550
1336 | S_START_LEVEL_COMPENSATION = 31608
1337 | S_VM_SELL_BASKET_INFO = 31623
1338 | S_TELEPORT_TO_CAMP = 31644
1339 | S_SEND_PARCEL_TAX = 31645
1340 | S_COMBATLOG_START = 31698
1341 | S_ENABLE_DISABLE_SELLABLE_ITEM_LIST = 31728
1342 | C_TOGGLE_TASK_INFO_WINDOW = 31774
1343 | C_WRITE_BOARD = 31816
1344 | C_LEAVE_PRIVATE_CHANNEL = 31823
1345 | S_PREMIUM_COMPOSE_START = 31840
1346 | S_CURRENT_ELECTION_STATE = 31845
1347 | C_PREMIUM_COMPOSE_RESET = 31866
1348 | S_GUILD_COMPETITION_INFO = 31875
1349 | C_REQUEST_NONDB_ITEM_INFO = 31894
1350 | S_INGAMESHOP_PRODUCT_BEGIN = 31904
1351 | C_UPDATE_FRIEND_INFO = 31907
1352 | C_GROUP_DUEL_RECORD = 31913
1353 | C_SETTLE_UP_BUY_VM = 31916
1354 | C_TRADE_BROKER_CALC_BOUGHT_ITEM = 31937
1355 | S_DAILY_QUEST_COMPLETE_COUNT = 31988
1356 | S_CHANGE_EVENT_MATCHING_STATE = 32084
1357 | S_BATTLE_FIELD_START_OCCUPATION = 32119
1358 | C_CLOSE_VM = 32139
1359 | S_BATTLE_FIELD_RESULT = 32149
1360 | S_PLAYER_CHANGE_ALL_PROF = 32312
1361 | S_SPAWN_GAMBLE_BOX = 32410
1362 | S_SET_GUILDWAR_ACCEPTABLE = 32438
1363 | C_MAKE_MONEY_DEPRECATED = 32464
1364 | S_PET_INFO_CLEAR = 32480
1365 | C_PET_ORB_ATTACH = 32489
1366 | S_DISTRIBUTOR_DATA = 32508
1367 | S_ROUND_PVE_BATTLE_FIELD_RESULT = 32531
1368 | S_CHECK_TO_DECLARE_GUILD_WAR = 32537
1369 | S_DECOMPOSE_REGISTERED_ITEM = 32636
1370 | S_ASK_INTER_PARTY_MAKE = 32680
1371 | C_START_CUSTOMIZING_PARTS_SHAPE = 32716
1372 | S_BATTLE_FIELD_STRONGHOLD_STATE = 32720
1373 | S_RETURN_PARCEL = 32754
1374 | C_UNION_CP_STORE_BUY_ADD_BASKET = 32946
1375 | C_ANSWER_CODE_HASH = 33014
1376 | S_SPAWN_EVENT_SEED = 33023
1377 | S_DESPAWN_GAMBLE_BOX = 33051
1378 | C_INGAME_CHANGE_USER_APPEARANCE_TRY = 33077
1379 | C_PLAYER_LOCATION = 33095
1380 | C_TRADE_BAG_DONE = 33096
1381 | S_VILLAGE_LIST_TO_TELEPORT = 33101
1382 | S_USER_LEVELUP = 33102
1383 | C_REQUEST_TOTAL_GUILD_WAR_DATA = 33149
1384 | S_GUILD_WAR_TRACKING_INFO = 33180
1385 | S_PARCEL_REPORT = 33213
1386 | S_VIEW_INTER_PARTY_MATCH_BATTLEFIELD_LIST = 33215
1387 | C_UPDATE_GUILD_LOGO = 33241
1388 | S_AVAILABLE_SOCIAL_LIST = 33296
1389 | C_NOTIFY_LOCATION_IN_ACTION = 33297
1390 | S_TRADE_BROKER_REGISTERED_ITEM_LIST = 33325
1391 | C_ADD_TO_TEMPER_MATERIAL_EX = 33353
1392 | S_LOAD_TOPO = 33361
1393 | S_START_GUILD_WAR = 33400
1394 | S_UNION_SHARE_MONEY_CONFIRM = 33407
1395 | C_REMOVE_ITEM_FROM_VM_BUY_BASKET = 33424
1396 | C_CHANGE_UNION_MASTERPIECE_SHOP = 33436
1397 | S_ASK_EXPAND_INVEN_SIZE = 33486
1398 | C_START_SKILL = 33525
1399 | S_ADMIN_CUSTOM_BOOKMARK_LIST = 33532
1400 | S_REPLY_GUILD_LIST = 33542
1401 | S_CREST_ASK_DISAPPLY_ALL = 33590
1402 | S_INGAMESHOP_PRODUCT_TAG = 33606
1403 | C_END_MOVIE = 33661
1404 | S_CANCEL_VOTE_DISMISS_PARTY = 33689
1405 | S_LEAVE_PARTY = 33700
1406 | S_CANCEL_PARTY_MATCH_POOL = 33759
1407 | S_COMPLETE_QUEST = 33787
1408 | C_REGISTER_VM_BUY_ITEM = 33833
1409 | S_ADMIN_GET_USERINFO_INVEN = 33838
1410 | S_SPAWN_SHUTTLE = 33850
1411 | S_TRADE_BROKER_CALC_BOUGHT_ITEM = 33856
1412 | S_COLLECTION_PICKSTART = 33892
1413 | S_VIEW_WARE_EX = 33930
1414 | S_ROUND_PVE_CLOSE_SKILL_UI = 33970
1415 | S_PLAYER_CHANGE_UNION_SKILL_COUNT = 34027
1416 | S_TEMPER_MATERIALS = 34047
1417 | C_START_COMBO_INSTANT_SKILL = 34121
1418 | S_SHOW_NPC_TO_MAP = 34144
1419 | S_VIEW_BATTLE_FIELD_RANKING_SERVER_LIST = 34296
1420 | S_LOADING_SCREEN_CONTROL_INFO = 34302
1421 | S_SNOW_EVENT_BATTLE_FIELD_BOARD = 34347
1422 | S_UNION_START_EXILE_COUNT_FROM_LAWLESS_AREA = 34371
1423 | C_GROUP_DUEL_BETTING_MONEY = 34401
1424 | S_GAMBLE_RESULT = 34428
1425 | S_MINIGAME_FAIL = 34430
1426 | S_PLAY_ANIMATION = 34434
1427 | C_GROUP_DUEL_DEL_BETTING_ITEM = 34451
1428 | S_OP_COMMAND = 34523
1429 | S_PLAYER_CHANGE_DRAIN = 34539
1430 | S_OPEN_AWESOMIUM_WEB_URL = 34552
1431 | C_ADMIN_REQUEST_CUSTOM_BOOKMARK = 34614
1432 | C_TRADE_BROKER_DEAL_CONFIRM = 34618
1433 | S_GUILD_EMBLEM = 34630
1434 | C_CHECK_TO_READY_PARTY = 34632
1435 | S_ADMIN_GET_USER_INFO_BY_DBID = 34661
1436 | C_UPDATE_CONTENTS_PLAYTIME = 34703
1437 | C_MEDAL_STORE_COMMIT = 34720
1438 | C_AVAILABLE_EVENT_MATCHING_LIST = 34732
1439 | S_FLOATING_CASTLE_PARTS_STORE_SELL_LIST = 34779
1440 | C_CHECK_TO_RAISE_GUILD_WAR = 34806
1441 | C_EXECUTE_AWAKEN = 34831
1442 | S_END_DRIVE_AIRSHIP = 34841
1443 | C_REQUEST_COOLTIME_TO_JOIN_GUILD = 34881
1444 | S_RESET_CHARM_STATUS = 34883
1445 | C_VIEW_INTER_PARTY_MATCH_DUNGEON_LIST = 34897
1446 | S_PLAYER_CUSTOM_ITEM_SLOT = 34909
1447 | S_DUNGEON_RANK_MESSAGE = 35011
1448 | S_LORD_OPEN_VOTE_WINDOW = 35030
1449 | S_SHOW_PARCEL = 35075
1450 | C_PAY_WAREHOUSE_COMMISION = 35079
1451 | S_CREST_CHANGE_FAIL = 35112
1452 | S_ITEM_DECOMPOSE = 35171
1453 | C_REQUEST_USABLE_CHARACTER_NAME = 35273
1454 | S_ENCHANT_BOOSTER_DROP_ITEM = 35306
1455 | S_SEND_CHANGE_REPUTATION_POINT = 35327
1456 | C_REQUEST_USER_PAPERDOLL_INFO = 35407
1457 | S_PLAYER_CHANGE_NOCTAN_COUNT = 35424
1458 | S_CANNOT_START_SKILL = 35431
1459 | S_FIX_VEHICLE_PROGRESS = 35450
1460 | S_STOP_VM = 35491
1461 | S_PREPARE_INGAME_CHANGE_USER_APPEARANCE = 35518
1462 | S_REQUEST_WRITE_BOARD_RESULT = 35579
1463 | S_BATTLE_FIELD_TEAM_MEMBERS_POS_INFO = 35611
1464 | S_ADMIN_GET_USER_INFO_LIST_BY_DISTANCE = 35636
1465 | S_FIX_VEHICLE_COMPLETE = 35664
1466 | S_DESPAWN_BUILD_OBJECT = 35718
1467 | C_POINT_STORE_COMMIT = 35728
1468 | S_DUNGEON_SUMMON_PARTY = 35731
1469 | S_INGAMESHOP_PRODUCT_SUBPROD = 35788
1470 | S_PLAYER_AVATAR_STAT_UPDATE = 35833
1471 | C_PARTICIPATE_GUILD_COMPETITION = 35838
1472 | C_FACIAL_ATTACHMENT = 35865
1473 | S_HOLD_ABNORMALITY_REMOVE = 35874
1474 | C_DEL_FROM_TEMPER_MATERIAL = 36012
1475 | S_SUGGEST_DARK_RIFT_PARTY_MATCHING = 36152
1476 | S_PK_TAG = 36167
1477 | S_PLAY_MAGNETIC = 36168
1478 | S_GUILD_HISTORY = 36169
1479 | C_GAMBLE_TRY = 36213
1480 | C_SETTLE_UP_SELL_VM = 36295
1481 | S_REQUEST_UPDATE_CUSTOM_USER_CUSTOMIZING = 36307
1482 | S_CANCEL_DELETE_USER = 36314
1483 | S_BATTLE_FIELD_MAP_ALARM = 36317
1484 | S_RELEASE_FROM_PRISON = 36322
1485 | C_TRADE_BROKER_CLOSE = 36327
1486 | C_PARTY_APPLICATION_DENIED = 36355
1487 | C_CHECK_USERNAME = 36380
1488 | C_SUGGEST_UNION_POST_PARTY_MATCHING = 36391
1489 | S_USER_ITEMLEVEL_INFO = 36442
1490 | S_NOTIFY_QUEST_RESTART = 36490
1491 | S_DEL_CRYSTAL_COMBINE_MATERIAL = 36557
1492 | S_UPDATE_GUILD_FLAG = 36608
1493 | S_PK_END = 36700
1494 | S_TRADE_BROKER_DEAL_INFO_UPDATE = 36721
1495 | C_NOTIFY_SPIRIT_LOCATION_IN_ACTION = 36773
1496 | S_REQUEST_FLOATING_CASTLE_PARTS_COOL_TIME = 36895
1497 | S_ADMIN_HOLD_CHARACTER = 36931
1498 | S_RESULT_INGAME_CHANGE_USER_APPEARANCE = 36970
1499 | S_CLEAR_QUEST_INFO = 36999
1500 | S_ARTISAN_RECIPE_LIST = 37023
1501 | C_SELECT_USER = 37034
1502 | C_GET_OUT_SHUTTLE = 37093
1503 | S_LIST_PARCEL = 37104
1504 | C_UNION_MYUNION_CONSUL_SKILL_LIST = 37152
1505 | C_REQUEST_TOKEN_TARGET_ITEM = 37154
1506 | S_ABNORMALITY_FAIL = 37181
1507 | S_SEND_PARCEL = 37183
1508 | C_BUY_INGAMESTORE_TCATPRODUCT = 37225
1509 | C_CRYSTAL_COMBINE_EXECUTE = 37246
1510 | C_GROUP_DUEL_BETTING = 37322
1511 | S_LOAD_CLIENT_ACCOUNT_SETTING = 37366
1512 | S_BATTLE_FIELD_CHANGE_NPC_HP_EVENT = 37370
1513 | S_CHECK_GUILD_BATTLE_CHIP = 37386
1514 | S_CANNON_BATTLE_FIELD_GUARDTOWER_STATUS = 37401
1515 | S_CAMERA_SHAKE = 37453
1516 | S_WATCHED_MOVIES = 37483
1517 | S_CHANGE_DESTPOS_PROJECTILE = 37514
1518 | C_COMPLETE_QUEST = 37555
1519 | S_ADD_NEW_EVENT_MATCHING_QUEST = 37582
1520 | S_ADD_GUILD_MEMBER = 37620
1521 | S_POSITION_SWAP = 37675
1522 | C_ENCHANT_BOOSTER_DROP_ITEM = 37682
1523 | C_OP_COMMAND = 37685
1524 | S_SYS_PARTY_INFO = 37722
1525 | C_REQUEST_GAMESTAT_PING = 37742
1526 | C_SUGGEST_DARK_RIFT_PARTY_MATCHING = 37781
1527 | S_SPAWN_SERVANT = 37790
1528 | C_VIEW_MY_GUILD_WAR = 37799
1529 | S_PARTY_MEMBER_LIST = 37810
1530 | S_EVENT_INFO = 37812
1531 | S_MEDAL_STORE_SELL_LIST = 37826
1532 | C_TRADE_BROKER_UNREGISTER_ITEM = 37862
1533 | S_JOIN_UNION = 37897
1534 | C_DEL_TRADE_BAG = 37936
1535 | S_END_USER_PROJECTILE = 38004
1536 | C_PET_INCUBATOR_PUT = 38043
1537 | C_ENTER_DUNGEON = 38048
1538 | S_DUEL_TAG = 38076
1539 | S_GUILD_MEMBER_LIST = 38085
1540 | C_SELECT_CHANNEL = 38087
1541 | C_UPDATE_GUILD_FLAG = 38115
1542 | S_PK_DECLARE = 38124
1543 | S_SPAWN_DARK_RIFT_CLOUD = 38139
1544 | S_MOUNT_VEHICLE_EX = 38163
1545 | S_SERVANT_ABILITY = 38176
1546 | S_NOTIFY_CHANGE_CLASS_AND_ELITE = 38217
1547 | S_FATIGABILITY_POINT = 38247
1548 | C_UNIDENTIFY_EXECUTE = 38274
1549 | S_REPLY_NONDB_ITEM_INFO = 38292
1550 | C_BIND_ITEM_BEGIN_PROGRESS = 38314
1551 | S_BATTLE_FIELD_POINT_STORE_BASKET = 38339
1552 | C_END_RESTORE_CUSTOMIZING_PARTS_SHAPE = 38350
1553 | S_PET_MANAGER_SHOW = 38504
1554 | S_CHAPTERHOUSE_QUEST_LIST = 38509
1555 | C_EQUIP_ITEM_SET = 38529
1556 | S_CANCEL_PARTY_MEMBER_BAN = 38535
1557 | C_PREMIUM_COMPOSE_CANCEL = 38545
1558 | S_DARK_RIFT_QUEST_INFO = 38619
1559 | C_BUY_INGAMESTORE_MONEYPRODUCT = 38660
1560 | C_DUNGEON_SUMMON_PARTY = 38669
1561 | S_CANNOT_USE_CHAT_CHANNEL = 38697
1562 | S_PLAYER_CHANGE_STAMINA = 38785
1563 | C_ITEMSYNTHESIZER_REQUEST_CANCEL = 38829
1564 | C_PET_UNEQUIP = 38924
1565 | S_TRADE_BROKER_BUY_IT_NOW = 38933
1566 | C_GROUP_DUEL_ADD_BETTING_ITEM = 38945
1567 | S_DESPAWN_PROJECTILE = 38946
1568 | C_ITEM_COLORING_ADD_ITEM = 38992
1569 | S_BOSS_BATTLE_INFO = 39018
1570 | S_DARK_RIFT_DESPAWN_WORLD_NOTI = 39081
1571 | C_REQUEST_PARTY_MATCH_LINK = 39085
1572 | S_CREATE_USER = 39117
1573 | S_VEHICLE_EX_ARROW = 39140
1574 | S_START_COOLTIME_ITEM = 39192
1575 | C_TRADE_BROKER_REJECT_SUGGEST = 39227
1576 | C_TRY_ITEM_BIDDING = 39234
1577 | S_SHOW_CREST_LEARN = 39259
1578 | C_RESTORE_CUSTOMIZING_PARTS_SHAPE = 39292
1579 | C_SHOW_STYLE = 39326
1580 | C_PROMOTION_START = 39353
1581 | S_BATTLE_FIELD_JACKPOT_EVENT_START = 39376
1582 | S_PETITION_CHECK_SURVEYABLE = 39412
1583 | S_INIT_STRONGHOLD_OCCUPATION_BATTLE_FIELD = 39481
1584 | C_ADMIN_KILL_NPC = 39490
1585 | S_CREATE_PRIVATE_CHANNEL = 39527
1586 | C_CHECK_EVENT_MATCHING_LIST_CHECKBOX = 39539
1587 | S_ADD_UNION_POST_COMMAND_MARKER = 39564
1588 | S_ARTISAN_SKILL_LIST = 39599
1589 | C_REJECT_CONTRACT = 39620
1590 | S_ITEM_UNIDENTIFY_RESULT = 39632
1591 | S_GUILD_COMPETITION_LEAGUE_RANK = 39634
1592 | S_UNION_POST_BATTLE_RESULT = 39717
1593 | C_CREST_DISAPPLY_ALL = 39728
1594 | S_UPDATE_ACHIEVEMENT_PROGRESS = 39747
1595 | S_BATTLE_FIELD_NPC_KILL_EVENT = 39802
1596 | S_VIEW_WARE = 39844
1597 | S_RECEIVE_TOKEN_TARGET_ITEM = 39885
1598 | S_CHANGE_UNION_MASTERPIECE_SHOP = 39888
1599 | C_RECOMMEND_USER_GUILD = 39937
1600 | S_PET_INCUBATOR_INFO_CHANGE = 39943
1601 | S_CHANGE_LOOT_ITEM_AMOUNT = 39961
1602 | S_ROUND_PVE_SCORE = 39982
1603 | C_SET_RECIPE_BOOKMARK = 40015
1604 | C_TRADE_BROKER_DEAL_PRICE_UPDATE = 40034
1605 | S_OPEN_GUARD_INFO_WINDOW = 40099
1606 | C_LORD_GUARD_INFO = 40128
1607 | S_PREPARE_DONE_WORKOBJECT = 40129
1608 | C_TEL_CAMP = 40134
1609 | S_SOCIAL_FORGET = 40162
1610 | S_RESTORE_CUSTOMIZING_PARTS_SHAPE = 40241
1611 | C_REQUEST_GUILD_INFO_BEFORE_APPLY_GUILD = 40305
1612 | S_LIST_CHANNEL = 40357
1613 | C_LIST_CHANNEL = 40382
1614 | S_INIT_CANNON_BATTLE_FIELD = 40395
1615 | S_AVAILABLE_EVENT_MATCHING_LIST = 40404
1616 | S_MY_PARTY_MATCH_INFO = 40481
1617 | S_ADD_BLOCKED_USER = 40502
1618 | S_OBTAIN_TOKEN_ITEM = 40519
1619 | S_START_VM_SELL = 40524
1620 | S_UNEQUIP_ITEM = 40556
1621 | C_DUEL_CANCEL = 40611
1622 | S_DESTROY_GUILD = 40619
1623 | C_GUILD_COMPETITION_CONTENTS_RANK = 40649
1624 | C_REGIST_CUSTOMIZING_PARTS_SHAPE_ITEM = 40689
1625 | C_STORE_BUY_ADD_BASKET = 40726
1626 | C_PUT_INTO_PRISON = 40730
1627 | S_NPC_LOCATION = 40767
1628 | S_UNION_SUMMARY = 40789
1629 | S_FIN_STRONGHOLD_OCCUPATION_BATTLE_FIELD = 40802
1630 | S_GAMBLE_END = 40856
1631 | S_END_PEGASUS = 40870
1632 | C_KICK_CHANNEL_MEMBER = 40923
1633 | S_INITIALIZE_AWESOMIUM = 40931
1634 | S_EVENT_QUEST_SUMMARY = 40955
1635 | C_CANCEL_REVIVE = 41046
1636 | S_DELETE_NPC_FROM_MAP = 41068
1637 | C_UNION_COMPETITION = 41111
1638 | S_UNBIND_ITEM_RESULT = 41169
1639 | S_NPC_SCALE = 41211
1640 | C_COMMIT_INGAME_CHANGE_USER_APPEARANCE = 41250
1641 | S_NPC_MENU_SELECT = 41257
1642 | C_GET_GUILD_HISTORY = 41260
1643 | C_STORE_SELL_ADD_BASKET = 41262
1644 | S_CHANGE_SERVANT_NAME = 41283
1645 | C_DEL_CRYSTAL_COMBINE_MATERIAL = 41299
1646 | S_MINIGAME_RANK_END_POINT = 41320
1647 | C_INVENTORY_AUTO_SORT = 41338
1648 | C_CHANGE_UNION_POLICY = 41420
1649 | C_TRADE_BROKER_WAITING_ITEM_LIST_PAGE = 41466
1650 | S_INGAMESHOP_PRODUCT_DATA = 41467
1651 | C_REQUEST_RENAME_GUILD = 41469
1652 | S_VOTE_RESET_ALL_DUNGEON = 41475
1653 | C_PING = 41476
1654 | S_BATTLE_FIELD_STRONGHOLD_NONE_STATE = 41492
1655 | S_TRADE_BAG_CLOSE = 41533
1656 | S_RESULT_USABLE_CHARACTER_NAME = 41534
1657 | S_RENAME_ITEMSTRING_START = 41546
1658 | S_GROUND_EFFECT = 41547
1659 | S_REMOVE_GUILD_GROUP = 41585
1660 | C_REQUEST_FLOATING_CASTLE_PARTS_COOL_TIME = 41604
1661 | C_SHOW_PARCEL_MESSAGE = 41610
1662 | C_ITEMSYNTHESIZER_REQUEST_START = 41619
1663 | S_STORE_COMMIT = 41654
1664 | S_PET_ATTACKED = 41655
1665 | S_PETITION_COMPLETE = 41673
1666 | S_OPEN_CREST_WINDOW = 41682
1667 | S_RESULT_BIDDING_DICE_THROW = 41740
1668 | C_DUNGEON_RANK_RECORD_LIST = 41774
1669 | S_CONTENTS_TIMER = 41808
1670 | S_UNION_POLICY_INFO = 41810
1671 | C_BAN_FROM_GROUP_DUEL = 41812
1672 | C_BLOCK_USER = 41813
1673 | S_ASK_BANNING_PARTY_MEMBER = 41823
1674 | C_ADMIN_CHAT_BAN = 41845
1675 | S_ENCHANT_SCROLL_RESULT = 41857
1676 | C_UPDATE_GUILD_PROMOTION = 41893
1677 | C_TRADE_BROKER_REGISTER_ITEM = 41900
1678 | S_COLLECTION_PICKEND = 41906
1679 | C_JOIN_UNION = 41940
1680 | C_VEHICLE_EX_ARROW_HIT = 41945
1681 | C_SELECT_EVENT_MATCHING = 41954
1682 | S_COMBATLOG_COMBAT_ENGAGED_MONSTER_LIST = 41959
1683 | S_NOTIFY_BATTLE_FIELD_NPC_DESPAWN = 41962
1684 | S_POINT_STORE_SELL_LIST = 41972
1685 | S_DUNGEON_RANK_RECORD_LIST = 41975
1686 | C_DECOMPOSITION_ITEM = 41987
1687 | S_REPLY_RET_VILLAGE_INFO = 42011
1688 | S_VIEW_BATTLE_FIELD_RESULT = 42042
1689 | C_GAMBLE_CHANGE_BET_ITEM = 42043
1690 | C_CHANGE_GUILDGROUP = 42079
1691 | S_SEND_CHANGE_REPUTATION_EXP = 42106
1692 | C_RENAME_TELEPORT_TO_POS_LIST = 42126
1693 | S_TOTAL_GUILD_WAR_DATA = 42130
1694 | C_START_VM_SELL = 42171
1695 | S_DARK_RIFT_RESERVE_MAP_MARKER_WORLD_NOTI = 42236
1696 | C_UNION_POLITICAL_INFO = 42238
1697 | S_BROCAST_GUILD_FLAG = 42300
1698 | C_UNREGIST_CUSTOMIZING_PARTS_SHAPE_ITEM = 42301
1699 | S_MATERIAL_PARAM_CHANGE = 42313
1700 | S_SKILL_PERIOD = 42341
1701 | S_MOVE_SHUTTLE = 42344
1702 | S_OPEN_DECLARE_WINDOW = 42351
1703 | S_REWRITE_ITEM_STRING = 42384
1704 | C_BATTLE_FIELD_POINT_STORE_BUY_ADD_BASKET = 42388
1705 | S_UPDATE_GUILD_MEMBER = 42391
1706 | S_END_RESTORE_CUSTOMIZING_PARTS_SHAPE = 42444
1707 | C_ADD_ITEM_TO_VM_BUY_BASKET = 42452
1708 | S_PARTY_MEMBER_CHANGE_MP = 42486
1709 | C_CONFIRM_UPDATE_NOTIFICATION = 42510
1710 | C_SHOW_TRADE_ITEM = 42523
1711 | C_ROUND_PVE_SKILL_SELECT = 42542
1712 | S_NPC_CHANGE_MESH = 42552
1713 | S_LORD_VOTE_CANDIDATE_LIST = 42597
1714 | S_BATTLE_FIELD_CANCEL_OCCUPATION = 42646
1715 | S_START_USER_PROJECTILE = 42660
1716 | S_DUNGEON_CLEAR_COUNT_LIST = 42665
1717 | S_USER_AIM = 42690
1718 | C_MEDAL_STORE_BUY_ADD_BASKET = 42699
1719 | C_SET_SEND_PARCEL_ITEM = 42745
1720 | C_SHOW_PETMANAGER = 42800
1721 | C_BATTLE_FIELD_POINT_STORE_BUY_DEL_BASKET = 42812
1722 | C_ADD_ITEM_TO_VM_SELL_BASKET = 42844
1723 | C_ACCEPT_CONTRACT = 42856
1724 | C_VIEW_WARE = 42895
1725 | S_PLAYER_CHANGE_MP = 42924
1726 | S_EXTRACT_REGISTERED_ITEM = 42951
1727 | S_VIEW_MY_GUILD_WAR = 42958
1728 | C_FLOATING_CASTLE_PARTS_STORE_COMMIT = 42960
1729 | S_SOCIAL_CANCEL = 42984
1730 | C_MAKE_ITEM_DEPRECATED = 42997
1731 | C_CANCEL_CHANGE_USER_APPEARANCE = 43012
1732 | S_SPAWN_COLLECTION = 43079
1733 | S_SOCIAL_LEARN_RESULT = 43099
1734 | C_DEL_FROM_AWAKEN = 43177
1735 | S_CHANGE_CHARACTER = 43212
1736 | S_PARTY_INFO = 43220
1737 | S_GAMBLE_BEGIN = 43288
1738 | S_GUILD_LEVELUP = 43292
1739 | S_TRADE_BAG_DONE = 43294
1740 | S_PLAYER_CHANGE_EP = 43347
1741 | C_REPLY_TELEPORT_WALK_THROUGH = 43365
1742 | C_DELETE_FRIEND = 43378
1743 | C_APPLY_TITLE = 43426
1744 | C_CUSTOM_USER_CUSTOMIZING = 43429
1745 | S_ARENA_OPTIMIZATION = 43461
1746 | C_REQUEST_PERF = 43470
1747 | S_PET_DURABILITY_CHANGE = 43484
1748 | C_CHANGE_EQUIP_PRESET = 43505
1749 | C_CHECK_UNIDENTIFY_ITEMS = 43518
1750 | S_BATTLE_FIELD_ENTRANCE_INFO = 43522
1751 | S_USER_BLOCK_LIST = 43604
1752 | S_PUT_INTO_PRISON = 43674
1753 | S_PLAYER_AUTOPILOT = 43675
1754 | S_GUILD_COMPETITION_CONTENTS_RANK_BATTLE_FIELD = 43695
1755 | C_BUY_VILLAGER_BUFF = 43927
1756 | S_CREATURE_ROTATE = 43935
1757 | C_PETITION_FEEDBACK = 43948
1758 | C_CANCEL_EXIT = 43969
1759 | S_WORK_WORKOBJECT = 43993
1760 | C_CHECK_TO_DECLARE_GUILD_WAR = 44019
1761 | S_SET_NEW_TERA_USER = 44046
1762 | C_CANCEL_SELECT_CHANNEL = 44054
1763 | S_DIALOG_CLOSE = 44119
1764 | S_DUNGEON_RANK_END_POINT = 44124
1765 | S_PROMOTION_PROCESS = 44135
1766 | M_PONG = 44211
1767 | S_CRYSTAL_COMBINE_RESULT = 44239
1768 | C_PARTY_MATCH_WINDOW_CLOSED = 44266
1769 | S_GUARDTOWER_ATTACK_ALARM = 44281
1770 | S_TRADE_BROKER_BOUGHT_ITEM_LIST = 44283
1771 | S_START_ACTION_SCRIPT = 44325
1772 | S_QA_SET_ADMIN_LEVEL = 44343
1773 | C_PCBANGINVENTORY_USE_SLOT = 44379
1774 | S_UNICAST_FLOATING_CASTLE_INFO = 44385
1775 | S_FRIEND_LIST = 44395
1776 | S_AWESOMIUM_DEBUG_MODE = 44419
1777 | S_FLOATING_CASTLE_PARTS_STORE_BASKET = 44439
1778 | S_END_FIX_VEHICLE = 44440
1779 | C_ITEM_COLORING_SET_COLOR = 44442
1780 | S_BOARD_ITEM_LIST = 44448
1781 | S_START_CHANGE_USER_APPEARANCE = 44457
1782 | S_DARK_RIFT_CLEAR_MAP_MARKER_WORLD_NOTI = 44472
1783 | C_SPAWN_BUILD_OBJECT = 44473
1784 | C_DELETE_USER = 44509
1785 | S_PRIVATE_CHAT = 44556
1786 | C_PREPARE_WORKOBJECT = 44606
1787 | C_EXTEND_PARTY = 44609
1788 | S_END_THROUGH_ARBITER_CONTRACT = 44619
1789 | C_STR_EVALUATE_LIST = 44628
1790 | C_REMOVE_GUILDGROUP = 44670
1791 | C_LORD_REGISTER = 44718
1792 | S_MOUNT_VEHICLE = 44724
1793 | S_CAN_LOCKON_TARGET = 44744
1794 | S_PETITION_CHAT_BEGIN = 44756
1795 | S_SELECT_EVENT_MATCHING = 44767
1796 | S_SHOW_TEMPER_WINDOW = 44768
1797 | C_MAIN_MENU_COMMAND = 44814
1798 | C_EXIT = 44860
1799 | S_INSTANCE_ARROW = 44873
1800 | S_TRANSFER_KUMAS_BATTLE_FIELD_TREASURE = 44941
1801 | S_PARTY_MEMBER_ABNORMAL_ADD = 45002
1802 | S_CANCEL_CONTRACT = 45070
1803 | S_PARTY_MEMBER_QUEST_DATA = 45100
1804 | C_DELETE_PARCEL = 45101
1805 | C_REMOVE_ITEM_FROM_VM_SELL_BASKET = 45111
1806 | S_CHAT_REPORT = 45116
1807 | S_GUILD_WAR_PENALTY_INFO = 45139
1808 | C_SHOW_TRADE_LOG = 45141
1809 | S_PARTY_MEMBER_CHANGE_HP = 45152
1810 | C_USE_COUPON = 45165
1811 | C_SHOW_INVEN = 45197
1812 | S_TRADE_BROKER_HIGHEST_ITEM_LEVEL = 45205
1813 | S_END_CUSTOMIZING_PARTS_SHAPE = 45238
1814 | S_CUSTOMIZING_PARTS_SHAPE_ITEM_LIST = 45241
1815 | S_INSTANT_DASH = 45255
1816 | C_CHANGE_USER_NAME = 45303
1817 | C_ACCEPT_GUILD_APPLY = 45309
1818 | C_REUQUEST_JOINED_CHANNEL_LIST = 45325
1819 | S_SYSTEM_MESSAGE_LOOT_ITEM = 45339
1820 | C_BATTLE_FIELD_MAP_ALARM = 45364
1821 | S_SPAWN_WORKOBJECT = 45378
1822 | S_COUPON_LIST = 45387
1823 | S_CLEAR_ALL_HOLDED_ABNORMALITY = 45463
1824 | S_TIMEOVER_CONTRACT = 45523
1825 | C_TRADE_BROKER_BOUGHT_ITEM_LIST = 45524
1826 | S_SET_AWESOMIUM_WEB_URL = 45545
1827 | S_NEED_WAREHOUSE_COMMISION = 45546
1828 | C_VIEW_INTER_PARTY_MATCH_BATTLEFIELD_LIST = 45575
1829 | S_PLAYER_STAT_UPDATE = 45601
1830 | S_POST_PROCESS_MATERIAL = 45651
1831 | S_HANCOIN_AMOUNT = 45659
1832 | S_DESPAWN_NPC = 45731
1833 | C_SHOW_QUEST_INFO_DIALOG = 45752
1834 | S_DESPAWN_DOOR = 45763
1835 | C_MERGE_PARTY_TO_RAID = 45772
1836 | C_ADD_CRYSTAL_COMBINE_MATERIAL = 45787
1837 | S_UPDATE_VM_STATUS = 45811
1838 | S_GROUP_DUEL_FIN = 45820
1839 | C_DISMISS_PARTY = 45829
1840 | S_COMBATLOG_ADD_VALUE = 45834
1841 | C_BANISH_GUILD_MEMBER = 45844
1842 | S_DESPAWN_DARK_RIFT_CLOUD = 45853
1843 | S_ASK_BIDDING_RARE_ITEM = 45855
1844 | S_FEARMOVE_END = 45883
1845 | S_QUEST_VILLAGER_INFO = 45923
1846 | S_END_GUILD_WAR = 45937
1847 | C_DIALOG = 45973
1848 | S_SHOW_REVIVE_UI = 45978
1849 | S_RESPONSE_PONG = 45996
1850 | S_GROUP_DUEL_INIT = 46029
1851 | S_VISITED_SECTION_LIST = 46055
1852 | S_FIN_CANNON_BATTLE_FIELD = 46083
1853 | C_PREVIEW_ITEM = 46120
1854 | S_ITEM_CUSTOM_STRING = 46160
1855 | C_UNION_GET_MYHISTORY = 46211
1856 | C_USER_REPORT = 46250
1857 | C_SET_GUILDGROUP_AUTHORITY = 46318
1858 | S_PARCEL_READ_RECV_STATUS = 46347
1859 | S_ADD_INTER_PARTY_MATCH_POOL = 46388
1860 | C_ADMIN_REQUEST_USERINFO = 46398
1861 | C_REQUEST_MY_PARTY_MATCH_INFO = 46425
1862 | S_END_LEVEL_COMPENSATION = 46432
1863 | S_SKILL_LEARN_LIST = 46462
1864 | S_DONE_TEL_CAMP = 46478
1865 | S_LOGIN = 46511
1866 | S_FEARMOVE_STAGE = 46518
1867 | S_TRADE_ACCEPT = 46545
1868 | S_UNION_STATE_INFO = 46549
1869 | S_NPCGUILD_LIST = 46567
1870 | S_BATTLE_FIELD_STATE = 46606
1871 | C_UNION_CHANGE_TAXRATE = 46618
1872 | S_BONFIRE_CHARM_BURNED = 46667
1873 | C_LEAVE_GUILD = 46691
1874 | S_POINT_STORE_BASKET = 46721
1875 | S_UNION_COMPETITION = 46750
1876 | S_LOAD_DUNGEON_SOUND_HINT = 46773
1877 | S_USER_EFFECT = 46789
1878 | S_ENCHANT_BOOSTER_STATUS = 46793
1879 | S_GET_AOI_INFO = 46832
1880 | S_PREPARE_EXIT = 46837
1881 | C_LIST_PARCEL = 46861
1882 | C_BATTLE_FIELD_REWARD = 46873
1883 | S_CANCEL_PREPARE_CHANGE_USER_APPEARANCE = 46876
1884 | S_USER_PAPERDOLL_INFO = 46889
1885 | C_GACHA_CANCEL = 46891
1886 | C_POINT_STORE_BUY_DEL_BASKET = 46897
1887 | C_SKILL_LEARN_LIST = 46915
1888 | S_PET_INCUBATOR_PROGRESS = 46934
1889 | C_MAIN_MENU_COMMAND_EXEC = 46956
1890 | C_UNMOUNT_VEHICLE_EX = 46967
1891 | C_LORD_REGISTER_INFO = 46969
1892 | C_PARTY_LOOTING_METHOD_VOTE = 46985
1893 | S_UNION_START_SKILL = 47028
1894 | S_TRADE_BROKER_WAITING_ITEM_LIST = 47086
1895 | S_KNOCK_BACK = 47110
1896 | C_COMMIT_CHANGE_USER_APPEARANCE = 47118
1897 | C_COMBATLOG_USER_INFO_RESET = 47280
1898 | S_UPDATE_GUILD_GROUP = 47304
1899 | C_TRADE_BROKER_CALC_SOLD_ITEM = 47329
1900 | C_CANCEL_FIX_VEHICLE = 47345
1901 | S_TRADE_BROKER_CALC_NOTIFY = 47347
1902 | C_UNION_CP_STORE_COMMIT = 47426
1903 | C_POLITICS_POINT_STORE_BUY_DEL_BASKET = 47473
1904 | S_START_CHAT_BAN_INFINITY = 47519
1905 | C_USE_RIGHT_ITEM = 47537
1906 | S_ADD_CHARM_STATUS = 47595
1907 | C_GAMBLE_STOP = 47633
1908 | C_END_ITEM_BIDDING = 47674
1909 | C_PET_EQUIP = 47680
1910 | S_ITEM_IDENTIFY_RESULT = 47700
1911 | S_ADMIN_NOTICE = 47706
1912 | C_REQUEST_BATTLE_FIELD_PARTY_MARKER = 47739
1913 | S_LEAVE_GUILD = 47742
1914 | S_CHANGE_GUILD_CHIEF = 47791
1915 | C_FINDNAME = 47796
1916 | C_APPLY_GUILD = 47823
1917 | S_CHECK_TO_RAISE_GUILD_WAR = 47835
1918 | S_SET_WORKOBJECT = 47864
1919 | S_UPDATE_QUEST = 47883
1920 | S_MAIN_MENU_COMMAND = 47888
1921 | C_PARCEL_READ_RECV_STATUS = 47900
1922 | S_DELETE_PARCEL = 47918
1923 | S_SEND_USER_PLAY_TIME = 47942
1924 | C_REGISTER_VM_SELL_ITEM = 47965
1925 | S_START_PRODUCE = 47969
1926 | C_REQUEST_USER_ITEMLEVEL_INFO = 47977
1927 | S_LEAVE_PRIVATE_CHANNEL = 47986
1928 | S_COMBATLOG_USER_INFO = 48012
1929 | S_FACIAL_ATTACHMENT_BROADCAST = 48038
1930 | S_GROUP_DUEL_CURRENT_BETTING_ITEM = 48048
1931 | S_IMAGE_DATA = 48083
1932 | S_ABNORMALITY_RESIST = 48111
1933 | S_POLITICS_POINT_STORE_BASKET = 48113
1934 | C_USER_AIM = 48168
1935 | C_ADMIN_REQUEST_DEFAULT_BOOKMARK = 48171
1936 | S_BATTLE_FIELD_POINT_STORE_SELL_LIST = 48175
1937 | S_DUEL_TIME = 48193
1938 | S_SYNC_PEGASUS_TIME = 48217
1939 | C_VOTE_RESET_ALL_DUNGEON = 48317
1940 | S_FIN_SNOW_EVENT_BATTLE_FIELD = 48321
1941 | S_BATTLE_FIELD_END_OCCUPATION = 48322
1942 | S_START_INVERSE_CAPTURE = 48331
1943 | S_SKILL_LIST = 48340
1944 | S_NPC_RESPAWN_PLAN_ALARM = 48345
1945 | S_CHECK_USERNAME = 48358
1946 | C_REIGN_INFO = 48377
1947 | S_COUNTDOWN_GROUP_DUEL = 48399
1948 | C_START_SKILL_BY_VEHICLE_EX = 48426
1949 | S_SURVEY_QUESTION = 48453
1950 | S_GUILD_COMPETITION_CONTENTS_RANK_INDIVIDUAL = 48489
1951 | S_DUNGEON_RANK_END_TIME = 48496
1952 | S_GUILD_WARE_HISTORY = 48518
1953 | S_UNMOUNT_VEHICLE_EX = 48531
1954 | C_SET_SEND_PARCEL_TYPE = 48537
1955 | S_SPAWN_USER = 48540
1956 | S_ARENA_FIGHT_ABNORMALITY_BEGIN = 48549
1957 | S_SET_KUMAS_BATTLE_FIELD_TREASURE_SCORE = 48598
1958 | S_USER_CHANGE_NAME = 48601
1959 | S_GUILD_COMPETITION_NEW_MARK = 48631
1960 | S_GUILD_LOG = 48667
1961 | S_ACCOMPLISH_ACHIEVEMENT = 48670
1962 | C_NPCGUILD_LIST = 48671
1963 | C_MERGE_ITEM = 48675
1964 | S_DESPAWN_COLLECTION = 48690
1965 | S_START_ROUND_PVE_ROUND = 48743
1966 | S_ROUND_PVE_SKILL_INVOKE = 48750
1967 | S_CURRENT_CHANNEL = 48770
1968 | S_FAIL_LOOT_NON_OWNERSHIP = 48783
1969 | C_CREATE_GUILDGROUP = 48869
1970 | C_LORD_RANK_INFO = 48873
1971 | C_ITEMSYNTHESIZER_REQUEST_ADD_MATERIAL = 48883
1972 | C_COLLECTION_PICKSTART = 48894
1973 | S_LEAVE_PARTY_MEMBER = 48895
1974 | C_ADMIN_CHECK_USERNAME = 48897
1975 | C_CHANGE_VM_MODE = 48901
1976 | S_EXIT = 48935
1977 | C_EDIT_BLOCKED_USER_MEMO = 48955
1978 | S_SET_VISIBLE = 48967
1979 | C_REQUEST_PARTY_MATCH_INFO = 48977
1980 | C_MOVE_SLOT_IN_GROUP_DUEL = 48992
1981 | S_SNOW_EVENT_BATTLE_FIELD_SPAWN_USER = 49011
1982 | S_BATTLE_FIELD_SEASON_RANKER = 49027
1983 | S_SHOW_PARTY_MATCH_INFO = 49038
1984 | C_EQUIP_ITEM = 49041
1985 | C_ADMIN_REQUEST_USERACTION = 49050
1986 | C_HARDWARE_INFO = 49060
1987 | S_PLAYER_CHANGE_EXP = 49085
1988 | C_REQUEST_CHANNEL_INFO = 49133
1989 | S_ROUND_START = 49151
1990 | S_SHOW_CHANGE_CHARACTER_UI = 49162
1991 | S_REMOVE_EVENT_MATCHING_QUEST = 49198
1992 | C_DEL_ITEM = 49219
1993 | S_INIT_ROUND_PVE_BATTLE_FIELD = 49283
1994 | S_SET_SEND_PARCEL_MONEY = 49284
1995 | C_BATTLE_FIELD_START_OCCUPATION = 49287
1996 | S_CHANGE_RELATION = 49318
1997 | S_INIT_SNOW_EVENT_BATTLE_FIELD = 49326
1998 | C_GROUP_DUEL_CHANGE_REPRESENT = 49382
1999 | S_GACHA_START = 49398
2000 | S_SHOW_HP = 49407
2001 | C_USE_ITEM = 49475
2002 | S_ACTION_END = 49500
2003 | C_RESET_ALL_DUNGEON = 49504
2004 | S_OPEN_GUILD_FLAG_WINDOW = 49573
2005 | S_RESULT_RENAME_GUILD = 49575
2006 | S_LOAD_CLIENT_USER_SETTING = 49576
2007 | S_PARTY_MEMBER_CHARM_ADD = 49603
2008 | S_DESPAWN_WORKOBJECT = 49618
2009 | S_ENEMY_BATTLE_FIELD_COMMANDER_CHANGED = 49642
2010 | S_UNION_MYUNION_CONSUL_SKILL_LIST = 49645
2011 | S_STORE_BASKET = 49696
2012 | C_UNION_CHANGE_NOTICE = 49706
2013 | C_REQUEST_PARTY_INFO = 49720
2014 | S_GHOST = 49842
2015 | C_RELEASE_FROM_PRISON = 49844
2016 | S_POLITICS_POINT_STORE_SELL_LIST = 49848
2017 | S_ADMIN_GET_USERINFO_PAPERDOLL = 49851
2018 | C_VOTE_DISMISS_PARTY = 49864
2019 | C_ADMIN_REMOVE_CUSTOM_BOOKMARK = 49890
2020 | S_PARTY_LOOTING_METHOD_VOTE = 49905
2021 | S_GUILD_APPLY_LIST = 49922
2022 | C_SET_TARGET_INFO = 49950
2023 | C_ADMIN_GM_MAPTELEPORT = 49982
2024 | C_RIDE_PEGASUS = 50105
2025 | C_GACHA_TRY = 50115
2026 | S_PK_DECLARE_COUNT = 50121
2027 | C_PUT_WARE_ITEM = 50171
2028 | S_PARTY_MEMBER_CHARM_DEL = 50179
2029 | S_BROADCAST_FLOATING_CASTLE_INFO = 50216
2030 | S_SNOW_EVENT_BATTLE_FIELD_RESULT = 50222
2031 | S_NOTIFY_TO_FRIENDS_WALK_INTO_SAME_AREA = 50236
2032 | S_APPLY_TITLE = 50276
2033 | S_PARTY_MEMBER_ABNORMAL_REFRESH = 50297
2034 | S_CANCEL_RETURN_TO_LOBBY = 50315
2035 | S_UNION_POLITICAL_INFO = 50379
2036 | C_CANCEL_LOCKON_TARGET = 50397
2037 | C_GUILD_LEVELUP_CHANGE = 50399
2038 | S_STRONGHOLD_OCCUPATION_BATTLE_FIELD_BOARD = 50405
2039 | S_RECV_PARCEL = 50412
2040 | S_GUARD_PK_POLICY = 50457
2041 | C_REVIVE_NOW = 50470
2042 | S_PARTY_NOTIFY_MY_POSITION = 50518
2043 | S_RESPONSE_GAMESTAT_PONG = 50527
2044 | S_GUILD_INFO = 50528
2045 | C_LOAD_TOPO_FIN = 50533
2046 | S_CHANGE_GUILDNAME = 50546
2047 | C_ADMIN_GM_SKILL = 50566
2048 | S_FAIL_CHARM_STATUS = 50579
2049 | C_LEAVE_GROUP_DUEL = 50590
2050 | C_CANCEL_PREPARE_CHANGE_USER_APPEARANCE = 50599
2051 | S_ACCOUNT_BENEFIT_LIST = 50635
2052 | S_START_VM_BUY = 50640
2053 | S_SHOW_DEAD_UI = 50652
2054 | S_ASK_CODE_HASH = 50661
2055 | S_START_COOLTIME_SKILL = 50665
2056 | S_SHOW_ITEM_TOOLTIP = 50682
2057 | S_SKILL_CATEGORY = 50780
2058 | C_CANCEL_QUEST = 50782
2059 | S_CHANGE_PARTY_MANAGER = 50786
2060 | S_DUNGEON_COOL_TIME_LIST = 50820
2061 | S_PET_STOP_ALERT = 50896
2062 | C_POINT_STORE_BUY_ADD_BASKET = 50916
2063 | C_PROMOTION_CANCEL = 50945
2064 | S_ARENA_FIGHT_ABNORMALITY_REFRESH = 50952
2065 | S_OPEN_GUILD_LOGO_WINDOW = 51032
2066 | C_COMPLETE_EXTRA_EVENT = 51034
2067 | S_ANNOUNCE_MESSAGE = 51045
2068 | S_USE_COUPON = 51055
2069 | S_ADMIN_GM_SKILL = 51114
2070 | S_STR_EVALUATE_LIST = 51115
2071 | S_RESULT_ITEM_BIDDING = 51116
2072 | C_PREMIUM_COMPOSE_DEL_ITEM = 51123
2073 | S_SYSTEM_REWARD_MESSAGE = 51130
2074 | S_MODIFY_INTER_PARTY_MATCH_POOL = 51168
2075 | S_DIALOG_EVENT = 51169
2076 | S_ADMIN_GET_USERINFO_SKILL = 51248
2077 | S_UPDATE_FRIEND_INFO = 51254
2078 | S_REQUEST_CHANNEL_INFO = 51325
2079 | S_TRADE_BROKER_REQUEST_DEAL_RESULT = 51345
2080 | C_UNMOUNT_VEHICLE = 51360
2081 | S_BIND_ITEM_END = 51407
2082 | C_SET_POS = 51462
2083 | S_REMAIN_PLAY_TIME = 51536
2084 | C_LORD_VOTE_CANDIDATE_LIST = 51543
2085 | S_SPAWN_NPC = 51593
2086 | S_PREPARE_RETURN_TO_LOBBY = 51597
2087 | C_STORE_COMMIT = 51606
2088 | S_MINIGAME_END = 51609
2089 | C_REQUEST_RIGHT_ITEM_LIST = 51639
2090 | C_REQUEST_ADD_UNION_POST_COMMAND_MARKER = 51699
2091 | S_SHORTCUT_CHANGE = 51750
2092 | S_CANCEL_QUEST_SHARE = 51773
2093 | S_REMOVE_EFFECT = 51809
2094 | S_REMOVE_GUILD_MEMBER = 51811
2095 | S_FREENAMED_STATUS = 51839
2096 | S_ROUND_PVE_BATTLE_FIELD_BOARD = 51871
2097 | S_PK_START = 51893
2098 | S_INSTANT_PULL = 51911
2099 | C_ASK_HANCOIN_AMOUNT = 51932
2100 | C_GAMBLE_GO = 51943
2101 | C_ENTER_TELEPORTTERRITORY = 51958
2102 | C_APPLY_PARTY = 51988
2103 | S_BONFIRE_STATUS = 52003
2104 | C_CHANGE_PARTY_MANAGER = 52027
2105 | S_DEL_INTER_PARTY_MATCH_POOL = 52057
2106 | C_PARTY_NOTIFY_MY_POSITION = 52065
2107 | S_CHECK_NEW_GUILDNAME = 52093
2108 | S_REQUEST_GUILD_FLAG_IMAGE_DATA = 52163
2109 | S_NOTIFY_DISCONNECT_BY_LEVEL_LIMIT = 52179
2110 | C_DELETE_COUPON = 52190
2111 | S_IS_NOT_LORD = 52210
2112 | S_OPEN_VM_SETTING_WINDOW = 52244
2113 | C_VIEW_UNION_INFO = 52247
2114 | S_DEFAULT_ANIM_CHANGE = 52358
2115 | S_ROUND_PVP_BATTLE_FIELD_RESULT = 52400
2116 | S_TRADE_BROKER_SOLD_ITEM_LIST = 52471
2117 | C_DECOMPOSE_REGISTER_ITEM = 52479
2118 | C_RANDOM_PASSIVE_LOCK = 52483
2119 | S_ADMIN_GET_USERINFO_WAREHOUSE = 52492
2120 | S_JOIN_PRIVATE_CHANNEL = 52495
2121 | S_ARENA_START_FIGHT = 52499
2122 | C_CANCEL_DELETE_USER = 52521
2123 | S_ROUND_RESULT = 52582
2124 | S_LOAD_CHAT_SETTING = 52583
2125 | S_SHOW_PARCEL_MESSAGE = 52600
2126 | S_UNION_CP_STORE_SELL_LIST = 52630
2127 | S_USE_RIGHT_ITEM = 52650
2128 | C_TOGGLE_GROUP_DUEL_READY = 52692
2129 | S_CANCEL_EXIT = 52722
2130 | S_CREATE_GUILD_RESULT = 52739
2131 | S_COMPLETED_MISSION_INFO = 52741
2132 | S_PETITION_CREATE = 52755
2133 | S_ONGOING_HUNTING_EVENT_LIST = 52759
2134 | C_UNION_TAX_WITHDRAW = 52772
2135 | S_MY_DESCRIPTION = 52781
2136 | S_SUCCESS_COUNTER = 52825
2137 | S_NPC_TRANSLATIONZ = 52856
2138 | C_SKILL_LEARN_REQUEST = 52999
2139 | S_REQUEST_CONTRACT = 53031
2140 | S_UNION_SPAWN_MY_EXTRACTOR = 53064
2141 | S_BATTLE_FIELD_HELP = 53146
2142 | C_ADD_TRADE_BAG = 53170
2143 | S_SIMPLE_TIP_REPEAT_CHECK = 53175
2144 | C_GET_WARE_ITEM = 53192
2145 | S_DARK_RIFT_PROGRESS_STEP_WORLD_NOTI = 53216
2146 | S_PET_INCUBATOR_SHOW = 53246
2147 | S_LORD_CANDIDATE_LIST = 53274
2148 | S_LOOT_DROPITEM = 53279
2149 | S_CLOSE_VM_SETTING_WINDOW = 53305
2150 | S_INGAMESHOP_PRODUCT_END = 53307
2151 | C_START_FIX_VEHICLE = 53309
2152 | S_CANNON_BATTLE_FIELD_CRASH_DOOR = 53314
2153 | S_LORD_GUARD_INFO = 53342
2154 | C_ADD_TELEPORT_TO_POS_LIST = 53360
2155 | S_ENCHANT_BOOSTER_SUCCESS = 53362
2156 | S_RESULT_USABLE_GUILD_NAME = 53403
2157 | S_CREST_APPLY = 53502
2158 | C_REQUEST_REFRESH_GUILD_DATA = 53525
2159 | S_UPDATE_BIDDING_COUNT = 53623
2160 | S_SELECT_USER = 53626
2161 | C_ENCHANTER_USE = 53628
2162 | C_SET_GUILD_JOIN_ACCEPT = 53666
2163 | S_DARK_RIFT_AVAILABLE_QUEST_USER_COUNT = 53698
2164 | S_BATTLE_FIELD_USER_ASSIST_EVENT = 53718
2165 | C_SWAP_PARTY = 53731
2166 | S_ASK_QUEST_SHARE = 53742
2167 | S_PK_READY = 53773
2168 | S_COUPON_NOTIFY = 53832
2169 | C_FLOATING_CASTLE_PARTS_STORE_BUY_DEL_BASKET = 53865
2170 | C_TRADE_BAG_CLOSE = 53881
2171 | C_CLOSE_SEND_PARCEL = 53944
2172 | C_CREATE_PRIVATE_CHANNEL = 54010
2173 | S_OPEN_CHANGE_CHARACTER_NAME_POPUP = 54042
2174 | C_START_EXTRACT = 54075
2175 | S_ADMIN_PRIVILEGE = 54113
2176 | S_GET_OUT_SHUTTLE = 54159
2177 | C_EXPAND_INVEN_SIZE = 54177
2178 | C_REWRITE_ITEM_STRING = 54179
2179 | S_RANK_MESSAGE = 54197
2180 | S_END_CHAT_BAN = 54238
2181 | S_REMOVE_CHARM_STATUS = 54246
2182 | C_CHECK_CHANGE_GUILDNAME = 54309
2183 | C_DUNGEON_CLEAR_COUNT_LIST = 54317
2184 | S_BATTLE_FIELD_CHAT_BAN_INFO = 54334
2185 | S_TEMPER_RESULT = 54342
2186 | S_DESPAWN_DROPITEM = 54438
2187 | S_STEER_DEBUG_COMMAND = 54471
2188 | S_PETITION_CHAT_END = 54472
2189 | S_SET_GUILD_JOIN_ACCEPT = 54475
2190 | S_GATE_ATTACK_ALARM = 54485
2191 | C_AWESOMIUM_WEB_COUNTING = 54508
2192 | S_PREMIUM_COMPOSE_RESET = 54511
2193 | S_SKILL_FORGET = 54546
2194 | C_REQUEST_COUPON_DATA = 54553
2195 | S_DARK_RIFT_CHANGE_AREA_WORLD_NOTI = 54580
2196 | C_REQUEST_PING = 54605
2197 | C_COMPLETE_DAILY_EVENT = 54630
2198 | S_BATTLE_FIELD_USER_LOAD_INFO = 54649
2199 | C_SET_ITEM_STRING = 54683
2200 | S_CHANGE_PARTY_MEMBER_AUTHORITY = 54695
2201 | S_BATTLE_FIELD_STRONGHOLD_EVENT = 54749
2202 | S_DESPAWN_USER = 54841
2203 | S_SPAWN_PROJECTILE = 54921
2204 | C_WATCHED_MOVIES = 54958
2205 | C_REQUEST_IMAGE_DATA = 55005
2206 | S_SPAWN_DOOR = 55008
2207 | S_F2P_PremiumUser_Permission = 55097
2208 | S_FIN_INTER_PARTY_MATCH = 55111
2209 | C_CHANGE_FRIEND_MEMO = 55139
2210 | S_ITEMSYNTHESIZER_START = 55154
2211 | S_SET_SEND_PARCEL_ITEM = 55159
2212 | S_USER_EXTERNAL_CHANGE = 55226
2213 | S_GROUP_NPC_LOCATION = 55296
2214 | S_ABNORMALITY_END = 55317
2215 | S_QUEST_BALLOON = 55321
2216 | S_SET_ITEM_STRING = 55381
2217 | C_LORD_CANDIDATE_LIST = 55387
2218 | S_HIDE_HP = 55396
2219 | S_MINIGAME_WAIT = 55409
2220 | S_PARTY_MEMBER_BUFF_UPDATE = 55451
2221 | S_USER_SITUATION = 55474
2222 | S_ITEM_EXTRACT = 55475
2223 | S_DUNGEON_RANK_RECORDER = 55492
2224 | S_STRONGHOLD_OCCUPATION_BATTLE_FIELD_STRONGHOLD_INFO = 55600
2225 | S_PARTY_LOOTING_METHOD = 55610
2226 | S_PREMIUM_COMPOSE_DEL_ITEM = 55615
2227 | S_BONFIRE_CHARM_ADDED = 55647
2228 | S_REQUEST_GUILD_INFO_BEFORE_APPLY_GUILD = 55679
2229 | C_ITEMSYNTHESIZER_REQUEST_DROP_MATERIAL = 55724
2230 | C_PETITION_CHECK_SURVEYABLE = 55728
2231 | C_UNION_PRE_CONSUL_LIST = 55746
2232 | S_LORD_CANDIDATE_PLEDGE = 55784
2233 | S_SKILL_CHASE_EFFECT_TARGET = 55788
2234 | S_PLAY_SOUND = 55826
2235 | S_SOCIAL = 55887
2236 | S_COMPLETE_LOOP_QUEST = 55899
2237 | C_DUNGEON_COOL_TIME_LIST = 55975
2238 | S_VILLAGER_BUFF_INFO = 55985
2239 | S_DECOMPOSITION_ITEM_RESULT = 56086
2240 | S_INGAMESHOP_CATEGORY_BEGIN = 56160
2241 | S_INGAME_CHANGE_USER_APPEARANCE_START = 56184
2242 | S_SET_POS = 56185
2243 | C_TELEPORT_TO_VILLAGE = 56192
2244 | C_UNION_CP_STORE_BUY_DEL_BASKET = 56210
2245 | S_ABNORMALITY_REFRESH = 56212
2246 | C_TRADE_BROKER_SOLD_ITEM_LIST = 56274
2247 | S_PREPARE_SELECT_CHANNEL = 56295
2248 | C_HIT_USER_PROJECTILE = 56368
2249 | C_PRESS_SKILL = 56417
2250 | S_ACCOUNT_PACKAGE_LIST = 56431
2251 | S_PARTY_MEMBER_CHARM_ENABLE = 56552
2252 | S_REWARDNPC_SPAWN_ALARM = 56608
2253 | C_REQUEST_GUILD_LIST_PAGE = 56711
2254 | C_VIEW_BATTLE_FIELD_RANKING_SERVER_LIST = 56820
2255 | S_CHANGE_USER_NAME_RESULT = 56846
2256 | C_CHANGE_SERVANT_NAME = 56855
2257 | S_LORD_ACHIEVEMENT_ACCOMPLISHED_LIST = 56910
2258 | S_TASK_INFO_GUARD = 56916
2259 | S_PARTY_MEMBER_STAT_UPDATE = 57096
2260 | C_RETURN_PARCEL = 57100
2261 | S_RESULT_CHANGE_CHARACTER_NAME = 57134
2262 | C_CHANGE_GROUP_DUEL_SETTING = 57144
2263 | S_LOAD_ACHIEVEMENT_LIST = 57150
2264 | C_ANS_QUEST_SHARE = 57177
2265 | S_VISIT_NEW_TEL_CAMP = 57181
2266 | S_PARTICIPATE_GUILD_COMPETITION = 57276
2267 | S_ABNORMALITY_PC_SCALE_UP = 57286
2268 | S_UNION_CHANGE_TAXRATE = 57305
2269 | C_PET_INCUBATOR_START = 57316
2270 | C_LORD_CALC_TAX = 57333
2271 | C_TRADE_BROKER_HIGHEST_ITEM_LEVEL = 57355
2272 | S_DUNGEON_STATUS = 57360
2273 | C_REQUEST_SHARE_QUEST = 57367
2274 | S_BOSS_GAGE_INFO = 57401
2275 | C_PARTY_MARKER = 57405
2276 | S_RANK_POINT_STATUS = 57414
2277 | S_REJECT_CONTRACT = 57433
2278 | S_RANDOM_PASSIVE_LOCK = 57439
2279 | S_UPDATE_PARTY_MEMBER_QUEST_DATA = 57500
2280 | S_UNION_TAX_WITHDRAW_RESULT = 57537
2281 | S_USER_APPEARANCE_CHANGE = 57549
2282 | S_START_COMMANDER_SKILL = 57567
2283 | S_DESPAWN_PET = 57587
2284 | C_REQUEST_CHANGE_CHARACTER_NAME = 57648
2285 | S_LOGOUT_PARTY_MEMBER = 57652
2286 | C_ENCHANT_BOOSTER_REGISTER_ITEM = 57672
2287 | S_MASSTIGE_STATUS = 57687
2288 | S_UNION_PRE_CONSUL_LIST = 57693
2289 | S_START_CLIMBING = 57699
2290 | S_SPAWN_BUILD_OBJECT = 57721
2291 | S_NPC_TARGET_USER = 57735
2292 | S_UNMOUNT_VEHICLE = 57756
2293 | S_ACCEPT_CONTRACT = 57771
2294 | S_SHOW_AWESOMIUMWEB_SHOP = 57775
2295 | S_USER_STATUS = 57877
2296 | S_DUEL_END = 57884
2297 | C_NOTIMELINE_SKILL = 57896
2298 | C_VEHICLEEX_LOCATION = 57972
2299 | S_COMPLETE_VOTE = 57973
2300 | C_DECOMPOSE_UNREGISTER_ITEM = 58044
2301 | C_PROMOTION_INFO = 58062
2302 | S_ARENA_END_FIGHT = 58097
2303 | S_EACH_SKILL_RESULT = 58158
2304 | S_GET_IN_SHUTTLE = 58192
2305 | C_UNION_CHANGE_POLICYINFO = 58201
2306 | C_PLAY_EXECUTE_TEMPER = 58220
2307 | C_CHANGE_GUILD_CHIEF = 58245
2308 | C_ADMIN_HOLD_CHARACTER = 58248
2309 | C_STOP_VM = 58294
2310 | S_PETITION_CHAT_GM_MESSAGE = 58295
2311 | S_EQUIP_ITEM = 58318
2312 | S_FINDNAME = 58449
2313 | S_SEND_ROUND_PVE_SKILL_LIST = 58572
2314 | C_CHANGE_CHARACTER = 58598
2315 | C_TELEPORT_TO_POS = 58600
2316 | S_ITEMSYNTHESIZER_ADD_MATERIAL = 58606
2317 | C_PARTY_LOOTING_METHOD = 58607
2318 | S_INGAMESHOP_PRODUCT_ITEMID = 58631
2319 | S_UNION_COLLECTED_EXTRACTOR_POS = 58641
2320 | C_CHANGE_PARTY_MEMBER_AUTHORITY = 58655
2321 | C_SEND_UI_LOG = 58683
2322 | C_PET_ORB_DELETE = 58724
2323 | S_INVEN_CHANGEDSLOT = 58735
2324 | S_REPLY_REQUEST_CONTRACT = 58795
2325 | C_CHANGE_GUILDNAME = 58813
2326 | C_PET_REPAIR = 58825
2327 | S_ARENA_RESULT = 58905
2328 | S_START_UNION_POST_ACTION_SCRIPT = 58944
2329 | C_LEAVE_PARTY = 58950
2330 | C_INGAME_CHANGE_USER_APPEARANCE_CANCEL = 59015
2331 | S_SPAWN_ME = 59156
2332 | C_REQUEST_USABLE_GUILD_NAME = 59195
2333 | S_REMOVE_BLOCKED_USER = 59210
2334 | S_UPDATE_NPCGUILD = 59258
2335 | S_UNION_SHARE_MONEY = 59277
2336 | C_REQUEST_ITEM_COLORING_VALUE = 59330
2337 | C_REPLY_INTER_PARTY_MAKE = 59353
2338 | S_UNION_POST_BATTLE_INFO = 59421
2339 | S_VOTE_HISTORY = 59465
2340 | C_SAVE_CLIENT_USER_SETTING = 59474
2341 | S_IS_LORD = 59519
2342 | S_START_PEGASUS = 59520
2343 | S_TRADE_BROKER_SUGGEST_DEAL = 59534
2344 | S_UPDATE_VM_SETTING_WINDOW = 59585
2345 | C_SAVE_CLIENT_ACCOUNT_SETTING = 59631
2346 | C_NPC_CONTACT = 59670
2347 | C_END_CUSTOMIZING_PARTS_SHAPE = 59688
2348 | C_REQUEST_ACHIEVEMENT_LIST = 59707
2349 | C_CHECK_NEW_GUILDNAME = 59719
2350 | C_GET_USER_LIST = 59730
2351 | C_ADMIN_LOBBY = 59734
2352 | C_ASK_INTERACTIVE = 59753
2353 | S_ROUND_PVP_BATTLE_FIELD_BOARD = 59777
2354 | S_QUEST_EVENT_MESSAGE = 59780
2355 | S_UPDATE_EVENT_SEED_STATE = 59901
2356 | C_PETITION_CREATE = 59972
2357 | C_UNION_START_SKILL = 59977
2358 | S_ROUND_PVE_OPEN_SKILL_UI = 60119
2359 | C_STORE_BUY_DEL_BASKET = 60164
2360 | C_START_COMMANDER_SKILL = 60200
2361 | S_FIN_ROUND_PVE_BATTLE_FIELD = 60221
2362 | C_MOVE_WARE_POS = 60235
2363 | S_BOSS_GAGE_STACK_INFO = 60240
2364 | S_RESULT_EVENT_SEED = 60249
2365 | S_ADMIN_GET_USERINFO_QUEST = 60291
2366 | S_START_DRIVE_AIRSHIP = 60352
2367 | S_BROCAST_UPDATE_GUILD_FLAG = 60368
2368 | S_START_CHAT_BAN = 60379
2369 | S_COUPON_DATA = 60395
2370 | S_END_CHANGE_USER_APPEARANCE = 60425
2371 | S_ADMIN_CHECK_USERNAME = 60436
2372 | S_CANCEL_SELECT_CHANNEL = 60452
2373 | S_DESPAWN_SERVANT = 60454
2374 | S_FIN_ROUND_PVE_ROUND = 60462
2375 | C_UNION_SHARE_MONEY = 60633
2376 | S_KUMAS_BATTLE_FIELD_RESULT = 60636
2377 | C_RAISE_GUILD_WAR = 60672
2378 | C_ADMIN_REQUEST_CHAT_BAN = 60737
2379 | S_CONTROL_DOOR = 60748
2380 | C_REQUEST_GUILD_LIST_SORT = 60783
2381 | S_CHECK_CHANGE_GUILDNAME = 60875
2382 | C_PETITION_COMPLETE_CONFIRM = 60928
2383 | S_MATERIAL_CHANGE = 60952
2384 | S_ADD_TRADE_BAG = 60977
2385 | C_ANSWER_BANNING_PARTY_MEMBER = 61033
2386 | S_CANCEL_VOTE_RESET_ALL_DUNGEON = 61063
2387 | S_PREMIUM_COMPOSE_UI_INFO = 61113
2388 | C_SURVEY_ANSWER = 61159
2389 | S_PLAY_MOVIE = 61162
2390 | C_CREST_APPLY = 61169
2391 | C_SIMPLE_TIP_REPEAT_CHECK = 61175
2392 | S_NPC_SITUATION = 61258
2393 | C_PLAY_TIME = 61288
2394 | S_DUNGEON_NEWBIE = 61305
2395 | C_CHECK_TO_OPEN_DECLARE_WINDOW = 61317
2396 | C_LORD_TAX_SET = 61319
2397 | S_DESPAWN_EVENT_SEED = 61322
2398 | S_DELETE_FRIEND = 61342
2399 | C_TRADE_BROKER_HISTORY_ITEM_LIST_NEW = 61461
2400 | S_BETTING_INFO = 61462
2401 | C_SHOW_ITEM_TOOLTIP_EX = 61564
2402 | S_ADMIN_DELETE_QUEST = 61572
2403 | C_GUARD_PK_POLICY = 61578
2404 | S_PETITION_INFO = 61590
2405 | S_MUTE = 61636
2406 | S_PRODUCE_CRITICAL = 61673
2407 | S_USER_ITEM_EQUIP_CHANGER = 61677
2408 | S_VIRTUAL_LATENCY = 61725
2409 | C_TOGGLE_GROUP_DUEL_SLOT = 61734
2410 | S_UNION_PK = 61748
2411 | C_CAN_LOCKON_TARGET = 61787
2412 | S_START_FIX_VEHICLE = 61808
2413 | S_CANNOT_EQUIP_SAMEKIND = 61855
2414 | S_INIT_KUMAS_BATTLE_FIELD = 61859
2415 | C_PROMOTION_RESET = 61861
2416 | C_MERGE_ITEM_EXECUTE = 61871
2417 | S_PARTY_MATCH_LINK = 61874
2418 | C_DELETE_TELEPORT_TO_POS_LIST = 61888
2419 | S_SKILL_LEARN_RESULT = 61995
2420 | C_JOIN_PRIVATE_CHANNEL = 62047
2421 | C_PETITION_CANCEL = 62091
2422 | S_LORD_TAX_SET = 62111
2423 | S_WHISPER = 62140
2424 | S_NPC_STATUS = 62184
2425 | S_FEUDAL_LORD_FLAG_INFO = 62226
2426 | S_ABNORMALITY_BEGIN = 62249
2427 | S_PARTY_MARKER = 62285
2428 | S_GACHA_END = 62291
2429 | S_SYSTEM_MESSAGE_LOOT_SPECIAL_ITEM = 62321
2430 | S_REQUEST_JOINED_CHANNEL_LIST = 62334
2431 | S_MOVE_DISTANCE_DELTA = 62344
2432 | S_TRADE_BROKER_CALC_SOLD_ITEM = 62352
2433 | S_DELETE_USER = 62356
2434 | S_TOGGLE_TASK_INFO_WINDOW = 62395
2435 | C_TELEPORT_TO_CAMP = 62404
2436 | C_GAMBLE_CANCEL = 62422
2437 | S_MY_GUILD_INFO = 62461
2438 | S_SEND_QUEST_ITEM_INFO = 62516
2439 | C_ADMIN_ADD_CUSTOM_BOOKMARK = 62532
2440 | S_CANNON_BATTLE_FIELD_STRONGHOLD_INFO = 62593
2441 | C_TRADE_BROKER_BUY_IT_NOW = 62650
2442 | S_CREST_MESSAGE = 62664
2443 | C_REQUEST_RENEW_ALL_PARTS_ITEM = 62706
2444 | C_DUNGEON_RANK_SEASON_LIST = 62718
2445 | S_ADD_FRIEND = 62752
2446 | S_UNIDENTIFY_EXECUTE = 62781
2447 | C_EXTRACT_REGISTER_ITEM = 62786
2448 | S_ITEMSYNTHESIZER_RESULT = 62819
2449 | C_REQUEST_UNION_POST_BATTLE_RESULT = 62822
2450 | S_BROADCAST_CLIMBING = 62847
2451 | C_CHAT = 62897
2452 | S_BATTLE_FIELD_PARTY_MARKER_CLEAR = 62913
2453 | C_EXTRACT_UNREGISTER_ITEM = 62916
2454 | C_BATTLE_FIELD_BOARD_REQUEST = 62956
2455 | S_LORD_REGISTER_INFO = 63009
2456 | C_BATTLE_FIELD_POINT_STORE_COMMIT = 63024
2457 | S_EQUIP_ITEM_SET = 63035
2458 | S_ACTIVATE_BATTLE_FIELD_CHAT_BAN = 63065
2459 | S_CANNON_BATTLE_FIELD_BOARD = 63072
2460 | S_USE_CHRONOSCROLL_RESULT = 63185
2461 | C_ADMIN_SPAWN_NPC = 63207
2462 | S_NOTIFY_BATTLE_FIELD_NPC_SPAWN = 63214
2463 | S_CHECK_UNIDENTIFY_ITEMS = 63218
2464 | C_SAVE_CHAT_SETTING = 63234
2465 | S_GAMBLE_CHANGE_BET_ITEM = 63257
2466 | C_SET_GUILDWAR_ACCEPTABLE = 63265
2467 | S_FIN_ROUND_PVP_BATTLE_FIELD = 63278
2468 | S_SHOW_ARTISAN_MENU = 63288
2469 | S_UNION_MYUNION = 63327
2470 | S_INGAMESHOP_CATEGORY_END = 63390
2471 | S_SWITCH_INFO = 63392
2472 | S_PREMIUM_COMPOSE_RESULT = 63395
2473 | C_UPDATE_GUILD_TITLE = 63404
2474 | S_ADD_CRYSTAL_COMBINE_MATERIAL = 63417
2475 | C_END_CLIMBING = 63431
2476 | C_REQUEST_GUILD_WAR_PENALTY_INFO = 63483
2477 | C_CREST_APPLY_LIST = 63496
2478 | S_GRANT_SKILL = 63517
2479 | C_CHANGE_MODE = 63541
2480 | S_SPAWN_DROPITEM = 63599
2481 | S_LIST_PARCEL_EX = 63612
2482 | S_RESULT_ITEM_COLORING = 63623
2483 | C_ADMIN_GM_TELEPORT = 63643
2484 | S_INTEREST_INFO = 63727
2485 | S_PARTY_MEMBER_INFO = 63739
2486 | S_UNION_TAX_WITHDRAW_INFO = 63740
2487 | C_PONG = 63741
2488 | S_DUNGEON_CLEAR = 63747
2489 | S_PREVIEW_ITEM = 63750
2490 | S_CHANGE_PK_INFO = 63770
2491 | C_DECLARE_GUILD_WAR = 63778
2492 | C_REQUEST_ROUND_PVE_SKILL_LIST = 63780
2493 | C_CHECK_TO_READY_PARTY_ANSWER = 63802
2494 | S_PETITION_CHECK_CREATABLE = 63887
2495 | S_ABNORMALITY_DAMAGE_ABSORB = 63980
2496 | C_PETITION_CHAT_USER_MESSAGE = 64031
2497 | C_START_INSTANCE_SKILL = 64053
2498 | S_UPDATE_KUMAS_BATTLE_FIELD_TREASURE_INFO = 64113
2499 | C_REMOVE_COLORING_POTION = 64167
2500 | S_PLAYER_CHANGE_PROF = 64190
2501 | C_ITEM_COLORING_REMOVE_ITEM = 64236
2502 | C_CAN_CREATE_USER = 64257
2503 | S_CREST_INFO = 64260
2504 | S_KUMAS_BATTLE_FIELD_BOARD = 64270
2505 | C_VOTE_HISTORY = 64272
2506 | S_PARTY_MEMBER_ABNORMAL_CLEAR = 64339
2507 | C_TRADE_BROKER_WAITING_ITEM_LIST_NEW = 64368
2508 | C_VIEW_COMBINE_BATTLE_FIELD_RANKING = 64374
2509 | S_DELETE_QUEST = 64426
2510 | S_SHOW_CANDIDATE_LIST = 64450
2511 | S_UNION_CHANGE = 64464
2512 | C_PET_INCUBATOR_GET = 64469
2513 | S_INIT_ROUND_PVP_BATTLE_FIELD = 64504
2514 | C_COMMIT_VM_TRADE = 64515
2515 | S_LOGIN_ARBITER = 64538
2516 | S_OPEN_VM_SELLBUY_WINDOW = 64608
2517 | S_OTHER_USER_APPLY_PARTY = 64609
2518 | S_UNION_ATTACKED_FORCE_STONE_POS = 64659
2519 | C_BIND_ITEM_EXECUTE = 64731
2520 | C_ADMIN_GET_USER_INFO_BY_DBID = 64738
2521 | S_RIGHT_ITEM_LIST = 64749
2522 | C_SET_VISIBLE_RANGE = 64804
2523 | C_REQUEST_RET_VILLAGE_INFO = 64842
2524 | S_SKILL_ATTENTION_TARGET = 64843
2525 | S_BUY_INGAMESTORE_MONEYPRODUCT = 64844
2526 | S_SHOW_TRADE_ITEM = 64854
2527 | S_SKILL_TARGETING_AREA = 64926
2528 | C_BETTING_TRY = 65031
2529 | S_DARK_RIFT_SPAWN_WORLD_NOTI = 65032
2530 | C_TRADE_BROKER_WAITING_ITEM_LIST_SORT = 65043
2531 | C_ADMIN_WARNING_MESSAGE = 65049
2532 | S_LOAD_TELEPORT_TO_POS_LIST = 65080
2533 | S_USER_REPORT = 65120
2534 | S_GET_USER_LIST = 65147
2535 | C_CANCEL_SKILL = 65171
2536 | C_BAN_PARTY_MEMBER = 65181
2537 | S_UNION_SHARE_POINT_INFO = 65212
2538 | S_CHANGE_SERVANT_ENERGY = 65216
2539 | C_GUILD_APPLY_LIST = 65257
2540 | S_EMITTER_SET_Z = 65312
2541 | S_TRADE_BROKER_INPUT_PRICE = 65320
2542 | S_BIND_ITEM_BEGIN = 65327
2543 | S_WELCOME_PET_OWNER = 65414
2544 | C_CANCEL_PENDING = 65445
2545 | C_MOVE_INVEN_POS = 65450
2546 | S_CHANGE_NAME_STRING = 65451
2547 | S_SHOW_TRADE_LOG = 65484
2548 | S_ANNOUNCE_UPDATE_NOTIFICATION = 65491
2549 | S_UPDATE_GAMBLE_BOX_STATE = 65519
2550 | C_ADMIN_REMOVE_NPC = 65520
2551 |
--------------------------------------------------------------------------------