File-To-XML Parser.
This program parses packets into their own XML file for use with RealmRelay and such.
It currently does not automatically sort Obfuscated packet names, which I may handle later.
It features a simple I/O option, and nothing else really...
It's one class, so here's the source, if you don't know how to run it, you shouldn't be using it.
Example:
UPDATE: Added a lttle servers box that contains a list of all the current servers, it is ripped from the char/list URL.
And here's a screenshot of the UI, heh:

It currently does not automatically sort Obfuscated packet names, which I may handle later.
It features a simple I/O option, and nothing else really...
It's one class, so here's the source, if you don't know how to run it, you shouldn't be using it.
Code
Code:
package toXml;
import java.awt.FileDialog;
import java.awt.Frame;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java****.BufferedReader;
import java****.File;
import java****.FileReader;
import java****.FileWriter;
import java********Exception;
import java****.InputStreamReader;
import java.net.URL;
import java.util.UUID;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JScrollPane;
import javax.swing.JTextArea;
import javax.swing.UIManager;
import javax.swing.UnsupportedLookAndFeelException;
/**
* Made by Cicada on MPGH. - http://www.mpgh.net/forum/member.php?u=2377376
*/
public class ToXML extends JFrame {
public static ToXML instance;
public static JTextArea console;
public static FileDialog input;
public static FileDialog output;
public static File inputFile;
public static File outputFile;
public ToXML() {
setTitle("ToXML - Packet Parser by Cicada - Idea by ZBORNOX"); // Sets the JFrame title.
setSize(600, 400); // Sets the JFrame size.
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE); // Exits the program when the user closes the window.
setLocationRelativeTo(null); // Centers the window, as it is not relative to anything.
setResizable(false); // Makes the window unresizable...
setLayout(null); // Sets the Layout to null for exact component positioning.
getContentPane().setLayout(null); // The same as above for removal of subtle positioning bugs that occur.
}
public static void main(String... args) throws ClassNotFoundException, InstantiationException, IllegalAccessException, UnsupportedLookAndFeelException {
UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); // Removes the nasty looking Java LookAndFeel .
instance = new ToXML(); // Declare an Instance of this newly initialised class.
console = new JTextArea();
console.setEditable(false);
JScrollPane scrollPane = new JScrollPane(console, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
scrollPane.setBounds(5, 5, 350, 362);
instance.getContentPane().add(scrollPane);
console.setText("A small Packet Parser program by Cicada.\nTo start, specify a File to read from,\nThen specify an output folder.\n");
input = new FileDialog(new Frame());
output = new FileDialog(new Frame());
input.setTitle("Choose Input");
output.setTitle("Choose Output");
final JButton chooseInput = new JButton("Select In...");
chooseInput.setBounds(360, 5, 110, 20);
chooseInput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
input.setVisible(true);
try {
inputFile = input.getFiles()[0];
console.append("\nSelected Input File: " + input.getFiles()[0].getName());
} catch (Exception ex) {
}
}
});
instance.getContentPane().add(chooseInput);
final JButton chooseOutput = new JButton("Select Out...");
chooseOutput.setBounds(478, 5, 110, 20);
chooseOutput.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
output.setVisible(true);
try {
outputFile = output.getFiles()[0];
console.append("\nSelected Output File: " + output.getFiles()[0].getName() + "\nWARNING: This will overwrite existing \nfiles.");
} catch (Exception ex) {
}
}
});
instance.getContentPane().add(chooseOutput);
JButton start = new JButton("Start");
sta******tBounds(360, 50, 230, 20);
start.addActionListener(new ActionListener() {
public void actionPerformed(ActionEvent event) {
if (inputFile != null && outputFile != null) {
chooseInput.setEnabled(false);
chooseOutput.setEnabled(false);
console.append("\nReading from Input...");
try {
BufferedReader reader = new BufferedReader(new FileReader(inputFile));
String currentLine;
if (outputFile.exists()) {
if (outputFile.delete()) {
console.append("\nDeleted Target Output file for Saving new.");
} else {
console.append("\nUnable to delete Output File.");
}
}
outputFile.createNewFile();
FileWriter writer = new FileWriter(outputFile);
writer.write("<?xml version=\"1.0\"?>\n<!-- Generated using the Automatic File-To-XML parser by Cicada. -->\n<Packets>\n");
while ((currentLine = reader.readLine()) != null) {
currentLine = currentLine.trim();
if (currentLine.contains("value Integer")) {
String value = currentLine.split("value Integer")[1].split(" end")[0];
Pattern pattern = Pattern.compile("\\(([^)]+)\\)");
Matcher matcher = pattern.matcher(value);
if (matcher.find()) {
value = matcher.group(1);
String packetName = "(" + currentLine.split("slotid")[0].split("trait const")[1].split(",")[2];
matcher = pattern.matcher(packetName);
if (matcher.find()) {
packetName = matcher.group(1);
pattern = Pattern.compile("\\\"([^)]+)\\\"");
matcher = pattern.matcher(packetName);
if (matcher.find()) {
packetName = matcher.group(1);
System.out.println("Packet: " + packetName + ": " + value);
console.append("\nPacket: " + packetName + ": " + value);
System.out.println("Should append to file;");
writer.append(" <Packet id=\"" + packetName + "\" type=\"" + value + "\"/>\n");
}
}
}
}
}
writer.append("</Packets>");
writer.close();
console.append("\nWrote to file successfully.\nOutput directory:\n" + outputFile.getPath());
System.out.println("\nWrote to file successfully.\nOutput directory:\n" + outputFile.getPath());
} catch (IOException ex) {
console.append("Encountered IOException.");
ex.printStackTrace();
}
} else {
console.append("\nERROR: Please select " + (inputFile == null ? (outputFile == null ? "an Input and Output" : "Input") : "an Output") + " file.");
}
}
});
instance.getContentPane().add(start);
JTextArea servers = new JTextArea();
servers.setEditable(false);
servers.setText("Servers: \n");
JScrollPane serverScrollPane = new JScrollPane(servers, JScrollPane.VERTICAL_SCROLLBAR_ALWAYS, JScrollPane.HORIZONTAL_SCROLLBAR_AS_NEEDED);
serverScrollPane.setBounds(360, 75, 230, 292);
instance.getContentPane().add(serverScrollPane);
final String text = readServersURL();
final String[] split = text.split("<Server>");
for (final String str : split) {
if (str.indexOf("</DNS>") != -1) {
servers.append(str.split("</DNS>")[0].replace("</Name><DNS>", ": ").replace("<Name>", "") + "\n");
}
}
instance.setVisible(true); // Sets the window visible, JFrames default this to false.
}
public static String readServersURL() {
try {
URL read = new URL("http://www.realmofthemadgod.com/char/list?guid=" + UUID.randomUUID().toString());
final BufferedReader in = new BufferedReader(new InputStreamReader(read.openStream()));
String inputLine;
while ((inputLine = in.readLine()) != null) {
return inputLine;
}
in.close();
} catch (final Exception e) {
e.printStackTrace();
}
return "Error retrieving XML.";
}
}
Example:
Input
trait const QName(PackageNamespace("", "#0"), "FAILURE") slotid 1 type QName(PackageNamespace("", "#0"), "int") value Integer(0) end
trait const QName(PackageNamespace("", "#0"), "CREATE_SUCCESS") slotid 2 type QName(PackageNamespace("", "#0"), "int") value Integer(15) end
trait const QName(PackageNamespace("", "#0"), "CREATE") slotid 3 type QName(PackageNamespace("", "#0"), "int") value Integer(33) end
trait const QName(PackageNamespace("", "#0"), "PLAYERSHOOT") slotid 4 type QName(PackageNamespace("", "#0"), "int") value Integer(13) end
trait const QName(PackageNamespace("", "#0"), "MOVE") slotid 5 type QName(PackageNamespace("", "#0"), "int") value Integer(17) end
trait const QName(PackageNamespace("", "#0"), "PLAYERTEXT") slotid 6 type QName(PackageNamespace("", "#0"), "int") value Integer(12) end
trait const QName(PackageNamespace("", "#0"), "TEXT") slotid 7 type QName(PackageNamespace("", "#0"), "int") value Integer(49) end
trait const QName(PackageNamespace("", "#0"), "_-06z") slotid 8 type QName(PackageNamespace("", "#0"), "int") value Integer(6) end
trait const QName(PackageNamespace("", "#0"), "DAMAGE") slotid 9 type QName(PackageNamespace("", "#0"), "int") value Integer(9) end
trait const QName(PackageNamespace("", "#0"), "UPDATE") slotid 10 type QName(PackageNamespace("", "#0"), "int") value Integer(86) end
trait const QName(PackageNamespace("", "#0"), "_-0Gv") slotid 11 type QName(PackageNamespace("", "#0"), "int") value Integer(44) end
trait const QName(PackageNamespace("", "#0"), "NOTIFICATION") slotid 12 type QName(PackageNamespace("", "#0"), "int") value Integer(60) end
trait const QName(PackageNamespace("", "#0"), "_-wH") slotid 13 type QName(PackageNamespace("", "#0"), "int") value Integer(65) end
trait const QName(PackageNamespace("", "#0"), "INVSWAP") slotid 14 type QName(PackageNamespace("", "#0"), "int") value Integer(10) end
trait const QName(PackageNamespace("", "#0"), "USEITEM") slotid 15 type QName(PackageNamespace("", "#0"), "int") value Integer(8) end
trait const QName(PackageNamespace("", "#0"), "_-1qX") slotid 16 type QName(PackageNamespace("", "#0"), "int") value Integer(55) end
trait const QName(PackageNamespace("", "#0"), "HELLO") slotid 17 type QName(PackageNamespace("", "#0"), "int") value Integer(20) end
trait const QName(PackageNamespace("", "#0"), "GOTO") slotid 18 type QName(PackageNamespace("", "#0"), "int") value Integer(30) end
trait const QName(PackageNamespace("", "#0"), "INVDROP") slotid 19 type QName(PackageNamespace("", "#0"), "int") value Integer(1) end
trait const QName(PackageNamespace("", "#0"), "INVRESULT") slotid 20 type QName(PackageNamespace("", "#0"), "int") value Integer(91) end
trait const QName(PackageNamespace("", "#0"), "RECONNECT") slotid 21 type QName(PackageNamespace("", "#0"), "int") value Integer(28) end
trait const QName(PackageNamespace("", "#0"), "PING") slotid 22 type QName(PackageNamespace("", "#0"), "int") value Integer(50) end
trait const QName(PackageNamespace("", "#0"), "PONG") slotid 23 type QName(PackageNamespace("", "#0"), "int") value Integer(75) end
trait const QName(PackageNamespace("", "#0"), "MAPINFO") slotid 24 type QName(PackageNamespace("", "#0"), "int") value Integer(61) end
trait const QName(PackageNamespace("", "#0"), "LOAD") slotid 25 type QName(PackageNamespace("", "#0"), "int") value Integer(68) end
trait const QName(PackageNamespace("", "#0"), "PIC") slotid 26 type QName(PackageNamespace("", "#0"), "int") value Integer(4) end
trait const QName(PackageNamespace("", "#0"), "SETCONDITION") slotid 27 type QName(PackageNamespace("", "#0"), "int") value Integer(51) end
trait const QName(PackageNamespace("", "#0"), "TELEPORT") slotid 28 type QName(PackageNamespace("", "#0"), "int") value Integer(59) end
trait const QName(PackageNamespace("", "#0"), "USEPORTAL") slotid 29 type QName(PackageNamespace("", "#0"), "int") value Integer(3) end
trait const QName(PackageNamespace("", "#0"), "DEATH") slotid 30 type QName(PackageNamespace("", "#0"), "int") value Integer(69) end
trait const QName(PackageNamespace("", "#0"), "BUY") slotid 31 type QName(PackageNamespace("", "#0"), "int") value Integer(79) end
trait const QName(PackageNamespace("", "#0"), "BUYRESULT") slotid 32 type QName(PackageNamespace("", "#0"), "int") value Integer(80) end
trait const QName(PackageNamespace("", "#0"), "AOE") slotid 33 type QName(PackageNamespace("", "#0"), "int") value Integer(14) end
trait const QName(PackageNamespace("", "#0"), "GROUNDDAMAGE") slotid 34 type QName(PackageNamespace("", "#0"), "int") value Integer(62) end
trait const QName(PackageNamespace("", "#0"), "PLAYERHIT") slotid 35 type QName(PackageNamespace("", "#0"), "int") value Integer(90) end
trait const QName(PackageNamespace("", "#0"), "ENEMYHIT") slotid 36 type QName(PackageNamespace("", "#0"), "int") value Integer(52) end
trait const QName(PackageNamespace("", "#0"), "AOEACK") slotid 37 type QName(PackageNamespace("", "#0"), "int") value Integer(38) end
trait const QName(PackageNamespace("", "#0"), "SHOOTACK") slotid 38 type QName(PackageNamespace("", "#0"), "int") value Integer(27) end
trait const QName(PackageNamespace("", "#0"), "OTHERHIT") slotid 39 type QName(PackageNamespace("", "#0"), "int") value Integer(77) end
trait const QName(PackageNamespace("", "#0"), "SQUAREHIT") slotid 40 type QName(PackageNamespace("", "#0"), "int") value Integer(67) end
trait const QName(PackageNamespace("", "#0"), "GOTOACK") slotid 41 type QName(PackageNamespace("", "#0"), "int") value Integer(64) end
trait const QName(PackageNamespace("", "#0"), "EDITACCOUNTLIST") slotid 42 type QName(PackageNamespace("", "#0"), "int") value Integer(87) end
trait const QName(PackageNamespace("", "#0"), "ACCOUNTLIST") slotid 43 type QName(PackageNamespace("", "#0"), "int") value Integer(85) end
trait const QName(PackageNamespace("", "#0"), "QUESTOBJID") slotid 44 type QName(PackageNamespace("", "#0"), "int") value Integer(31) end
trait const QName(PackageNamespace("", "#0"), "CHOOSENAME") slotid 45 type QName(PackageNamespace("", "#0"), "int") value Integer(22) end
trait const QName(PackageNamespace("", "#0"), "NAMERESULT") slotid 46 type QName(PackageNamespace("", "#0"), "int") value Integer(25) end
trait const QName(PackageNamespace("", "#0"), "CREATEGUILD") slotid 47 type QName(PackageNamespace("", "#0"), "int") value Integer(48) end
trait const QName(PackageNamespace("", "#0"), "_-19u") slotid 48 type QName(PackageNamespace("", "#0"), "int") value Integer(92) end
trait const QName(PackageNamespace("", "#0"), "GUILDREMOVE") slotid 49 type QName(PackageNamespace("", "#0"), "int") value Integer(78) end
trait const QName(PackageNamespace("", "#0"), "GUILDINVITE") slotid 50 type QName(PackageNamespace("", "#0"), "int") value Integer(36) end
trait const QName(PackageNamespace("", "#0"), "ALLYSHOOT") slotid 51 type QName(PackageNamespace("", "#0"), "int") value Integer(47) end
trait const QName(PackageNamespace("", "#0"), "_-a5") slotid 52 type QName(PackageNamespace("", "#0"), "int") value Integer(11) end
trait const QName(PackageNamespace("", "#0"), "REQUESTTRADE") slotid 53 type QName(PackageNamespace("", "#0"), "int") value Integer(41) end
trait const QName(PackageNamespace("", "#0"), "TRADEREQUESTED") slotid 54 type QName(PackageNamespace("", "#0"), "int") value Integer(53) end
trait const QName(PackageNamespace("", "#0"), "TRADESTART") slotid 55 type QName(PackageNamespace("", "#0"), "int") value Integer(34) end
trait const QName(PackageNamespace("", "#0"), "CHANGETRADE") slotid 56 type QName(PackageNamespace("", "#0"), "int") value Integer(63) end
trait const QName(PackageNamespace("", "#0"), "TRADECHANGED") slotid 57 type QName(PackageNamespace("", "#0"), "int") value Integer(26) end
trait const QName(PackageNamespace("", "#0"), "ACCEPTTRADE") slotid 58 type QName(PackageNamespace("", "#0"), "int") value Integer(76) end
trait const QName(PackageNamespace("", "#0"), "CANCELTRADE") slotid 59 type QName(PackageNamespace("", "#0"), "int") value Integer(88) end
trait const QName(PackageNamespace("", "#0"), "TRADEDONE") slotid 60 type QName(PackageNamespace("", "#0"), "int") value Integer(35) end
trait const QName(PackageNamespace("", "#0"), "TRADEACCEPTED") slotid 61 type QName(PackageNamespace("", "#0"), "int") value Integer(83) end
trait const QName(PackageNamespace("", "#0"), "CLIENTSTAT") slotid 62 type QName(PackageNamespace("", "#0"), "int") value Integer(16) end
trait const QName(PackageNamespace("", "#0"), "CHECKCREDITS") slotid 63 type QName(PackageNamespace("", "#0"), "int") value Integer(93) end
trait const QName(PackageNamespace("", "#0"), "ESCAPE") slotid 64 type QName(PackageNamespace("", "#0"), "int") value Integer(23) end
trait const QName(PackageNamespace("", "#0"), "_-07X") slotid 65 type QName(PackageNamespace("", "#0"), "int") value Integer(37) end
trait const QName(PackageNamespace("", "#0"), "INVITEDTOGUILD") slotid 66 type QName(PackageNamespace("", "#0"), "int") value Integer(84) end
trait const QName(PackageNamespace("", "#0"), "JOINGUILD") slotid 67 type QName(PackageNamespace("", "#0"), "int") value Integer(81) end
trait const QName(PackageNamespace("", "#0"), "CHANGEGUILDRANK") slotid 68 type QName(PackageNamespace("", "#0"), "int") value Integer(39) end
trait const QName(PackageNamespace("", "#0"), "PLAYSOUND") slotid 69 type QName(PackageNamespace("", "#0"), "int") value Integer(74) end
trait const QName(PackageNamespace("", "#0"), "GLOBAL_NOTIFICATION") slotid 70 type QName(PackageNamespace("", "#0"), "int") value Integer(56) end
trait const QName(PackageNamespace("", "#0"), "RESKIN") slotid 71 type QName(PackageNamespace("", "#0"), "int") value Integer(18) end
trait const QName(PackageNamespace("", "#0"), "_-1is") slotid 72 type QName(PackageNamespace("", "#0"), "int") value Integer(19) end
trait const QName(PackageNamespace("", "#0"), "_-1f-") slotid 73 type QName(PackageNamespace("", "#0"), "int") value Integer(21) end
trait const QName(PackageNamespace("", "#0"), "_-1PU") slotid 74 type QName(PackageNamespace("", "#0"), "int") value Integer(40) end
trait const QName(PackageNamespace("", "#0"), "_-0P5") slotid 75 type QName(PackageNamespace("", "#0"), "int") value Integer(66) end
trait const QName(PackageNamespace("", "#0"), "_-0g2") slotid 76 type QName(PackageNamespace("", "#0"), "int") value Integer(42) end
trait const QName(PackageNamespace("", "#0"), "_-1Kk") slotid 77 type QName(PackageNamespace("", "#0"), "int") value Integer(82) end
trait const QName(PackageNamespace("", "#0"), "_-1cS") slotid 78 type QName(PackageNamespace("", "#0"), "int") value Integer(5) end
trait const QName(PackageNamespace("", "#0"), "_-eI") slotid 79 type QName(PackageNamespace("", "#0"), "int") value Integer(46) end
trait const QName(PackageNamespace("", "#0"), "ENTER_ARENA") slotid 80 type QName(PackageNamespace("", "#0"), "int") value Integer(58) end
trait const QName(PackageNamespace("", "#0"), "_-14y") slotid 81 type QName(PackageNamespace("", "#0"), "int") value Integer(57) end
trait const QName(PackageNamespace("", "#0"), "_-e3") slotid 82 type QName(PackageNamespace("", "#0"), "int") value Integer(24) end
trait const QName(PackageNamespace("", "#0"), "_-AX") slotid 83 type QName(PackageNamespace("", "#0"), "int") value Integer(45) end
trait const QName(PackageNamespace("", "#0"), "_-nJ") slotid 84 type QName(PackageNamespace("", "#0"), "int") value Integer(89) end
trait const QName(PackageNamespace("", "#0"), "_-Qo") slotid 85 type QName(PackageNamespace("", "#0"), "int") value Integer(7) end
trait slot QName(PackageNamespace("", "#0"), "_-yL") slotid 86 type QName(PackageNamespace("_-az"), "if ") end
trait const QName(PackageNamespace("", "#0"), "CREATE_SUCCESS") slotid 2 type QName(PackageNamespace("", "#0"), "int") value Integer(15) end
trait const QName(PackageNamespace("", "#0"), "CREATE") slotid 3 type QName(PackageNamespace("", "#0"), "int") value Integer(33) end
trait const QName(PackageNamespace("", "#0"), "PLAYERSHOOT") slotid 4 type QName(PackageNamespace("", "#0"), "int") value Integer(13) end
trait const QName(PackageNamespace("", "#0"), "MOVE") slotid 5 type QName(PackageNamespace("", "#0"), "int") value Integer(17) end
trait const QName(PackageNamespace("", "#0"), "PLAYERTEXT") slotid 6 type QName(PackageNamespace("", "#0"), "int") value Integer(12) end
trait const QName(PackageNamespace("", "#0"), "TEXT") slotid 7 type QName(PackageNamespace("", "#0"), "int") value Integer(49) end
trait const QName(PackageNamespace("", "#0"), "_-06z") slotid 8 type QName(PackageNamespace("", "#0"), "int") value Integer(6) end
trait const QName(PackageNamespace("", "#0"), "DAMAGE") slotid 9 type QName(PackageNamespace("", "#0"), "int") value Integer(9) end
trait const QName(PackageNamespace("", "#0"), "UPDATE") slotid 10 type QName(PackageNamespace("", "#0"), "int") value Integer(86) end
trait const QName(PackageNamespace("", "#0"), "_-0Gv") slotid 11 type QName(PackageNamespace("", "#0"), "int") value Integer(44) end
trait const QName(PackageNamespace("", "#0"), "NOTIFICATION") slotid 12 type QName(PackageNamespace("", "#0"), "int") value Integer(60) end
trait const QName(PackageNamespace("", "#0"), "_-wH") slotid 13 type QName(PackageNamespace("", "#0"), "int") value Integer(65) end
trait const QName(PackageNamespace("", "#0"), "INVSWAP") slotid 14 type QName(PackageNamespace("", "#0"), "int") value Integer(10) end
trait const QName(PackageNamespace("", "#0"), "USEITEM") slotid 15 type QName(PackageNamespace("", "#0"), "int") value Integer(8) end
trait const QName(PackageNamespace("", "#0"), "_-1qX") slotid 16 type QName(PackageNamespace("", "#0"), "int") value Integer(55) end
trait const QName(PackageNamespace("", "#0"), "HELLO") slotid 17 type QName(PackageNamespace("", "#0"), "int") value Integer(20) end
trait const QName(PackageNamespace("", "#0"), "GOTO") slotid 18 type QName(PackageNamespace("", "#0"), "int") value Integer(30) end
trait const QName(PackageNamespace("", "#0"), "INVDROP") slotid 19 type QName(PackageNamespace("", "#0"), "int") value Integer(1) end
trait const QName(PackageNamespace("", "#0"), "INVRESULT") slotid 20 type QName(PackageNamespace("", "#0"), "int") value Integer(91) end
trait const QName(PackageNamespace("", "#0"), "RECONNECT") slotid 21 type QName(PackageNamespace("", "#0"), "int") value Integer(28) end
trait const QName(PackageNamespace("", "#0"), "PING") slotid 22 type QName(PackageNamespace("", "#0"), "int") value Integer(50) end
trait const QName(PackageNamespace("", "#0"), "PONG") slotid 23 type QName(PackageNamespace("", "#0"), "int") value Integer(75) end
trait const QName(PackageNamespace("", "#0"), "MAPINFO") slotid 24 type QName(PackageNamespace("", "#0"), "int") value Integer(61) end
trait const QName(PackageNamespace("", "#0"), "LOAD") slotid 25 type QName(PackageNamespace("", "#0"), "int") value Integer(68) end
trait const QName(PackageNamespace("", "#0"), "PIC") slotid 26 type QName(PackageNamespace("", "#0"), "int") value Integer(4) end
trait const QName(PackageNamespace("", "#0"), "SETCONDITION") slotid 27 type QName(PackageNamespace("", "#0"), "int") value Integer(51) end
trait const QName(PackageNamespace("", "#0"), "TELEPORT") slotid 28 type QName(PackageNamespace("", "#0"), "int") value Integer(59) end
trait const QName(PackageNamespace("", "#0"), "USEPORTAL") slotid 29 type QName(PackageNamespace("", "#0"), "int") value Integer(3) end
trait const QName(PackageNamespace("", "#0"), "DEATH") slotid 30 type QName(PackageNamespace("", "#0"), "int") value Integer(69) end
trait const QName(PackageNamespace("", "#0"), "BUY") slotid 31 type QName(PackageNamespace("", "#0"), "int") value Integer(79) end
trait const QName(PackageNamespace("", "#0"), "BUYRESULT") slotid 32 type QName(PackageNamespace("", "#0"), "int") value Integer(80) end
trait const QName(PackageNamespace("", "#0"), "AOE") slotid 33 type QName(PackageNamespace("", "#0"), "int") value Integer(14) end
trait const QName(PackageNamespace("", "#0"), "GROUNDDAMAGE") slotid 34 type QName(PackageNamespace("", "#0"), "int") value Integer(62) end
trait const QName(PackageNamespace("", "#0"), "PLAYERHIT") slotid 35 type QName(PackageNamespace("", "#0"), "int") value Integer(90) end
trait const QName(PackageNamespace("", "#0"), "ENEMYHIT") slotid 36 type QName(PackageNamespace("", "#0"), "int") value Integer(52) end
trait const QName(PackageNamespace("", "#0"), "AOEACK") slotid 37 type QName(PackageNamespace("", "#0"), "int") value Integer(38) end
trait const QName(PackageNamespace("", "#0"), "SHOOTACK") slotid 38 type QName(PackageNamespace("", "#0"), "int") value Integer(27) end
trait const QName(PackageNamespace("", "#0"), "OTHERHIT") slotid 39 type QName(PackageNamespace("", "#0"), "int") value Integer(77) end
trait const QName(PackageNamespace("", "#0"), "SQUAREHIT") slotid 40 type QName(PackageNamespace("", "#0"), "int") value Integer(67) end
trait const QName(PackageNamespace("", "#0"), "GOTOACK") slotid 41 type QName(PackageNamespace("", "#0"), "int") value Integer(64) end
trait const QName(PackageNamespace("", "#0"), "EDITACCOUNTLIST") slotid 42 type QName(PackageNamespace("", "#0"), "int") value Integer(87) end
trait const QName(PackageNamespace("", "#0"), "ACCOUNTLIST") slotid 43 type QName(PackageNamespace("", "#0"), "int") value Integer(85) end
trait const QName(PackageNamespace("", "#0"), "QUESTOBJID") slotid 44 type QName(PackageNamespace("", "#0"), "int") value Integer(31) end
trait const QName(PackageNamespace("", "#0"), "CHOOSENAME") slotid 45 type QName(PackageNamespace("", "#0"), "int") value Integer(22) end
trait const QName(PackageNamespace("", "#0"), "NAMERESULT") slotid 46 type QName(PackageNamespace("", "#0"), "int") value Integer(25) end
trait const QName(PackageNamespace("", "#0"), "CREATEGUILD") slotid 47 type QName(PackageNamespace("", "#0"), "int") value Integer(48) end
trait const QName(PackageNamespace("", "#0"), "_-19u") slotid 48 type QName(PackageNamespace("", "#0"), "int") value Integer(92) end
trait const QName(PackageNamespace("", "#0"), "GUILDREMOVE") slotid 49 type QName(PackageNamespace("", "#0"), "int") value Integer(78) end
trait const QName(PackageNamespace("", "#0"), "GUILDINVITE") slotid 50 type QName(PackageNamespace("", "#0"), "int") value Integer(36) end
trait const QName(PackageNamespace("", "#0"), "ALLYSHOOT") slotid 51 type QName(PackageNamespace("", "#0"), "int") value Integer(47) end
trait const QName(PackageNamespace("", "#0"), "_-a5") slotid 52 type QName(PackageNamespace("", "#0"), "int") value Integer(11) end
trait const QName(PackageNamespace("", "#0"), "REQUESTTRADE") slotid 53 type QName(PackageNamespace("", "#0"), "int") value Integer(41) end
trait const QName(PackageNamespace("", "#0"), "TRADEREQUESTED") slotid 54 type QName(PackageNamespace("", "#0"), "int") value Integer(53) end
trait const QName(PackageNamespace("", "#0"), "TRADESTART") slotid 55 type QName(PackageNamespace("", "#0"), "int") value Integer(34) end
trait const QName(PackageNamespace("", "#0"), "CHANGETRADE") slotid 56 type QName(PackageNamespace("", "#0"), "int") value Integer(63) end
trait const QName(PackageNamespace("", "#0"), "TRADECHANGED") slotid 57 type QName(PackageNamespace("", "#0"), "int") value Integer(26) end
trait const QName(PackageNamespace("", "#0"), "ACCEPTTRADE") slotid 58 type QName(PackageNamespace("", "#0"), "int") value Integer(76) end
trait const QName(PackageNamespace("", "#0"), "CANCELTRADE") slotid 59 type QName(PackageNamespace("", "#0"), "int") value Integer(88) end
trait const QName(PackageNamespace("", "#0"), "TRADEDONE") slotid 60 type QName(PackageNamespace("", "#0"), "int") value Integer(35) end
trait const QName(PackageNamespace("", "#0"), "TRADEACCEPTED") slotid 61 type QName(PackageNamespace("", "#0"), "int") value Integer(83) end
trait const QName(PackageNamespace("", "#0"), "CLIENTSTAT") slotid 62 type QName(PackageNamespace("", "#0"), "int") value Integer(16) end
trait const QName(PackageNamespace("", "#0"), "CHECKCREDITS") slotid 63 type QName(PackageNamespace("", "#0"), "int") value Integer(93) end
trait const QName(PackageNamespace("", "#0"), "ESCAPE") slotid 64 type QName(PackageNamespace("", "#0"), "int") value Integer(23) end
trait const QName(PackageNamespace("", "#0"), "_-07X") slotid 65 type QName(PackageNamespace("", "#0"), "int") value Integer(37) end
trait const QName(PackageNamespace("", "#0"), "INVITEDTOGUILD") slotid 66 type QName(PackageNamespace("", "#0"), "int") value Integer(84) end
trait const QName(PackageNamespace("", "#0"), "JOINGUILD") slotid 67 type QName(PackageNamespace("", "#0"), "int") value Integer(81) end
trait const QName(PackageNamespace("", "#0"), "CHANGEGUILDRANK") slotid 68 type QName(PackageNamespace("", "#0"), "int") value Integer(39) end
trait const QName(PackageNamespace("", "#0"), "PLAYSOUND") slotid 69 type QName(PackageNamespace("", "#0"), "int") value Integer(74) end
trait const QName(PackageNamespace("", "#0"), "GLOBAL_NOTIFICATION") slotid 70 type QName(PackageNamespace("", "#0"), "int") value Integer(56) end
trait const QName(PackageNamespace("", "#0"), "RESKIN") slotid 71 type QName(PackageNamespace("", "#0"), "int") value Integer(18) end
trait const QName(PackageNamespace("", "#0"), "_-1is") slotid 72 type QName(PackageNamespace("", "#0"), "int") value Integer(19) end
trait const QName(PackageNamespace("", "#0"), "_-1f-") slotid 73 type QName(PackageNamespace("", "#0"), "int") value Integer(21) end
trait const QName(PackageNamespace("", "#0"), "_-1PU") slotid 74 type QName(PackageNamespace("", "#0"), "int") value Integer(40) end
trait const QName(PackageNamespace("", "#0"), "_-0P5") slotid 75 type QName(PackageNamespace("", "#0"), "int") value Integer(66) end
trait const QName(PackageNamespace("", "#0"), "_-0g2") slotid 76 type QName(PackageNamespace("", "#0"), "int") value Integer(42) end
trait const QName(PackageNamespace("", "#0"), "_-1Kk") slotid 77 type QName(PackageNamespace("", "#0"), "int") value Integer(82) end
trait const QName(PackageNamespace("", "#0"), "_-1cS") slotid 78 type QName(PackageNamespace("", "#0"), "int") value Integer(5) end
trait const QName(PackageNamespace("", "#0"), "_-eI") slotid 79 type QName(PackageNamespace("", "#0"), "int") value Integer(46) end
trait const QName(PackageNamespace("", "#0"), "ENTER_ARENA") slotid 80 type QName(PackageNamespace("", "#0"), "int") value Integer(58) end
trait const QName(PackageNamespace("", "#0"), "_-14y") slotid 81 type QName(PackageNamespace("", "#0"), "int") value Integer(57) end
trait const QName(PackageNamespace("", "#0"), "_-e3") slotid 82 type QName(PackageNamespace("", "#0"), "int") value Integer(24) end
trait const QName(PackageNamespace("", "#0"), "_-AX") slotid 83 type QName(PackageNamespace("", "#0"), "int") value Integer(45) end
trait const QName(PackageNamespace("", "#0"), "_-nJ") slotid 84 type QName(PackageNamespace("", "#0"), "int") value Integer(89) end
trait const QName(PackageNamespace("", "#0"), "_-Qo") slotid 85 type QName(PackageNamespace("", "#0"), "int") value Integer(7) end
trait slot QName(PackageNamespace("", "#0"), "_-yL") slotid 86 type QName(PackageNamespace("_-az"), "if ") end
Output
<?xml version="1.0"?>
<!-- Generated using the Automatic File-To-XML parser by Cicada. -->
<Packets> <Packet id="FAILURE" type="0"/>
<Packet id="CREATE_SUCCESS" type="15"/>
<Packet id="CREATE" type="33"/>
<Packet id="PLAYERSHOOT" type="13"/>
<Packet id="MOVE" type="17"/>
<Packet id="PLAYERTEXT" type="12"/>
<Packet id="TEXT" type="49"/>
<Packet id="_-06z" type="6"/>
<Packet id="DAMAGE" type="9"/>
<Packet id="UPDATE" type="86"/>
<Packet id="_-0Gv" type="44"/>
<Packet id="NOTIFICATION" type="60"/>
<Packet id="_-wH" type="65"/>
<Packet id="INVSWAP" type="10"/>
<Packet id="USEITEM" type="8"/>
<Packet id="_-1qX" type="55"/>
<Packet id="HELLO" type="20"/>
<Packet id="GOTO" type="30"/>
<Packet id="INVDROP" type="1"/>
<Packet id="INVRESULT" type="91"/>
<Packet id="RECONNECT" type="28"/>
<Packet id="PING" type="50"/>
<Packet id="PONG" type="75"/>
<Packet id="MAPINFO" type="61"/>
<Packet id="LOAD" type="68"/>
<Packet id="PIC" type="4"/>
<Packet id="SETCONDITION" type="51"/>
<Packet id="TELEPORT" type="59"/>
<Packet id="USEPORTAL" type="3"/>
<Packet id="DEATH" type="69"/>
<Packet id="BUY" type="79"/>
<Packet id="BUYRESULT" type="80"/>
<Packet id="AOE" type="14"/>
<Packet id="GROUNDDAMAGE" type="62"/>
<Packet id="PLAYERHIT" type="90"/>
<Packet id="ENEMYHIT" type="52"/>
<Packet id="AOEACK" type="38"/>
<Packet id="SHOOTACK" type="27"/>
<Packet id="OTHERHIT" type="77"/>
<Packet id="SQUAREHIT" type="67"/>
<Packet id="GOTOACK" type="64"/>
<Packet id="EDITACCOUNTLIST" type="87"/>
<Packet id="ACCOUNTLIST" type="85"/>
<Packet id="QUESTOBJID" type="31"/>
<Packet id="CHOOSENAME" type="22"/>
<Packet id="NAMERESULT" type="25"/>
<Packet id="CREATEGUILD" type="48"/>
<Packet id="_-19u" type="92"/>
<Packet id="GUILDREMOVE" type="78"/>
<Packet id="GUILDINVITE" type="36"/>
<Packet id="ALLYSHOOT" type="47"/>
<Packet id="_-a5" type="11"/>
<Packet id="REQUESTTRADE" type="41"/>
<Packet id="TRADEREQUESTED" type="53"/>
<Packet id="TRADESTART" type="34"/>
<Packet id="CHANGETRADE" type="63"/>
<Packet id="TRADECHANGED" type="26"/>
<Packet id="ACCEPTTRADE" type="76"/>
<Packet id="CANCELTRADE" type="88"/>
<Packet id="TRADEDONE" type="35"/>
<Packet id="TRADEACCEPTED" type="83"/>
<Packet id="CLIENTSTAT" type="16"/>
<Packet id="CHECKCREDITS" type="93"/>
<Packet id="ESCAPE" type="23"/>
<Packet id="_-07X" type="37"/>
<Packet id="INVITEDTOGUILD" type="84"/>
<Packet id="JOINGUILD" type="81"/>
<Packet id="CHANGEGUILDRANK" type="39"/>
<Packet id="PLAYSOUND" type="74"/>
<Packet id="GLOBAL_NOTIFICATION" type="56"/>
<Packet id="RESKIN" type="18"/>
<Packet id="_-1is" type="19"/>
<Packet id="_-1f-" type="21"/>
<Packet id="_-1PU" type="40"/>
<Packet id="_-0P5" type="66"/>
<Packet id="_-0g2" type="42"/>
<Packet id="_-1Kk" type="82"/>
<Packet id="_-1cS" type="5"/>
<Packet id="_-eI" type="46"/>
<Packet id="ENTER_ARENA" type="58"/>
<Packet id="_-14y" type="57"/>
<Packet id="_-e3" type="24"/>
<Packet id="_-AX" type="45"/>
<Packet id="_-nJ" type="89"/>
<Packet id="_-Qo" type="7"/>
</Packets>
<!-- Generated using the Automatic File-To-XML parser by Cicada. -->
<Packets> <Packet id="FAILURE" type="0"/>
<Packet id="CREATE_SUCCESS" type="15"/>
<Packet id="CREATE" type="33"/>
<Packet id="PLAYERSHOOT" type="13"/>
<Packet id="MOVE" type="17"/>
<Packet id="PLAYERTEXT" type="12"/>
<Packet id="TEXT" type="49"/>
<Packet id="_-06z" type="6"/>
<Packet id="DAMAGE" type="9"/>
<Packet id="UPDATE" type="86"/>
<Packet id="_-0Gv" type="44"/>
<Packet id="NOTIFICATION" type="60"/>
<Packet id="_-wH" type="65"/>
<Packet id="INVSWAP" type="10"/>
<Packet id="USEITEM" type="8"/>
<Packet id="_-1qX" type="55"/>
<Packet id="HELLO" type="20"/>
<Packet id="GOTO" type="30"/>
<Packet id="INVDROP" type="1"/>
<Packet id="INVRESULT" type="91"/>
<Packet id="RECONNECT" type="28"/>
<Packet id="PING" type="50"/>
<Packet id="PONG" type="75"/>
<Packet id="MAPINFO" type="61"/>
<Packet id="LOAD" type="68"/>
<Packet id="PIC" type="4"/>
<Packet id="SETCONDITION" type="51"/>
<Packet id="TELEPORT" type="59"/>
<Packet id="USEPORTAL" type="3"/>
<Packet id="DEATH" type="69"/>
<Packet id="BUY" type="79"/>
<Packet id="BUYRESULT" type="80"/>
<Packet id="AOE" type="14"/>
<Packet id="GROUNDDAMAGE" type="62"/>
<Packet id="PLAYERHIT" type="90"/>
<Packet id="ENEMYHIT" type="52"/>
<Packet id="AOEACK" type="38"/>
<Packet id="SHOOTACK" type="27"/>
<Packet id="OTHERHIT" type="77"/>
<Packet id="SQUAREHIT" type="67"/>
<Packet id="GOTOACK" type="64"/>
<Packet id="EDITACCOUNTLIST" type="87"/>
<Packet id="ACCOUNTLIST" type="85"/>
<Packet id="QUESTOBJID" type="31"/>
<Packet id="CHOOSENAME" type="22"/>
<Packet id="NAMERESULT" type="25"/>
<Packet id="CREATEGUILD" type="48"/>
<Packet id="_-19u" type="92"/>
<Packet id="GUILDREMOVE" type="78"/>
<Packet id="GUILDINVITE" type="36"/>
<Packet id="ALLYSHOOT" type="47"/>
<Packet id="_-a5" type="11"/>
<Packet id="REQUESTTRADE" type="41"/>
<Packet id="TRADEREQUESTED" type="53"/>
<Packet id="TRADESTART" type="34"/>
<Packet id="CHANGETRADE" type="63"/>
<Packet id="TRADECHANGED" type="26"/>
<Packet id="ACCEPTTRADE" type="76"/>
<Packet id="CANCELTRADE" type="88"/>
<Packet id="TRADEDONE" type="35"/>
<Packet id="TRADEACCEPTED" type="83"/>
<Packet id="CLIENTSTAT" type="16"/>
<Packet id="CHECKCREDITS" type="93"/>
<Packet id="ESCAPE" type="23"/>
<Packet id="_-07X" type="37"/>
<Packet id="INVITEDTOGUILD" type="84"/>
<Packet id="JOINGUILD" type="81"/>
<Packet id="CHANGEGUILDRANK" type="39"/>
<Packet id="PLAYSOUND" type="74"/>
<Packet id="GLOBAL_NOTIFICATION" type="56"/>
<Packet id="RESKIN" type="18"/>
<Packet id="_-1is" type="19"/>
<Packet id="_-1f-" type="21"/>
<Packet id="_-1PU" type="40"/>
<Packet id="_-0P5" type="66"/>
<Packet id="_-0g2" type="42"/>
<Packet id="_-1Kk" type="82"/>
<Packet id="_-1cS" type="5"/>
<Packet id="_-eI" type="46"/>
<Packet id="ENTER_ARENA" type="58"/>
<Packet id="_-14y" type="57"/>
<Packet id="_-e3" type="24"/>
<Packet id="_-AX" type="45"/>
<Packet id="_-nJ" type="89"/>
<Packet id="_-Qo" type="7"/>
</Packets>
UPDATE: Added a lttle servers box that contains a list of all the current servers, it is ripped from the char/list URL.
And here's a screenshot of the UI, heh:




