rendered paste body//
// Decompiled with: Decompiler.NET, Version=2.0.0.11340, Culture=neutral, PublicKeyToken=null, Version: 2.0.0.11340
// Decompilation Started at: 05.05.2006 15:09:18
// Copyright 2003 - 2004, Jungle Creatures, Inc., All Rights Reserved. http://www.junglecreatures.com/
// Written by Jonathan Pierce, Email: support@junglecreatures.com
//
namespace AOE.Login_Server
{
#region Namespace Import Declarations
using System;
using System.Collections;
using System.Data;
using System.IO;
using System.Text;
#endregion
public class Packet : Base
{
#region Fields
private string m_acName;
private byte[] m_breedBytes;
private int m_breedInt;
private byte[] m_name;
private byte[] m_profBytes;
private int m_profInt;
private byte[] m_zoneBytes;
private int m_zoneInt;
#endregion
#region Constructors
public Packet()
{
this.m_acName = "";
}
#endregion
#region Methods
private string GetString(byte[] data,int startingOffset)
{
StringBuilder sb = new StringBuilder();
byte b;
while ((b = data[startingOffset]) != 0)
{
sb.Append((char)b);
}
return sb.ToString();
}
private string getName(byte[] packet)
{
string string1;
byte[] byteArray1;
int i1;
int i2;
byte[] byteArray2;
byte[] byteArray3;
byte[] byteArray4;
Exception exception1;
string string2;
byte[] byteArray5;
try
{
byteArray5 = new byte[1];
byteArray1 = byteArray5;
i1 = 24;
i2 = 0;
byteArray2 = new byte[1];
byteArray3 = new byte[24];
byteArray2[0] = packet[i1];
while (!byteArray2[0].Equals(byteArray1[0]))
{
byteArray3[i2] = byteArray2[0];
i1++;
i2++;
byteArray2[0] = packet[i1];
}
byteArray4 = new byte[i2];
for (i1 = 0; (i1 < i2); i1++)
{
byteArray4[i1] = byteArray3[i1];
}
string1 = Encoding.ASCII.GetString(byteArray4);
string2 = string1;
}
catch (Exception exception2)
{
exception1 = exception2;
Console.WriteLine(exception1.ToString());
string2 = ((string)null);
}
return string2;
}
public byte[] Type(byte[] data, int x)
{
byte[] byteArray1 = data;
int i1 = x;
if ((x >= 128) && (x < 137))
{
x = 136;
}
DataTable characterDataTable;
using (FileStream characterFile = new FileStream("System\\Player\\Character.xml", FileMode.Open, FileAccess.Read))
{
DataSet characterDataSet = new DataSet();
characterDataSet.ReadXml(characterFile);
characterDataTable = characterDataSet.Tables[0];
}
foreach (DataRow dataRow in characterDataTable.Rows)
{
m_name = Encoding.ASCII.GetBytes(dataRow["Name"].ToString());
m_profInt = int.Parse(dataRow["Prof"].ToString());
m_profBytes = BitConverter.GetBytes(m_profInt);
m_breedInt = int.Parse(dataRow["Breed"].ToString());
m_breedBytes = BitConverter.GetBytes(m_breedInt);
}
DataTable coordsDataTable;
using (FileStream coordsFile = new FileStream("System\\Player\\Coords.xml", FileMode.Open, FileAccess.Read))
{
DataSet coordsDataSet = new DataSet();
coordsDataSet.ReadXml(coordsFile);
coordsDataTable = coordsDataSet.Tables[0];
}
foreach (DataRow dataRow in coordsDataTable.Rows)
{
m_zoneInt = int.Parse(dataRow["ZoneID"].ToString());
m_zoneBytes = BitConverter.GetBytes(m_zoneInt);
}
// why is this never assigned?
byte[] byteArray2 = null;
// response when dataLength = 84
byte[] byteArray3 = new byte[]
{
0xDF, 0xDF, 0, 1, 0, 1, 0, 52, 0, 0, // 10
0, 1, 0, 0, 43, 63, 0, 0, 0, 36, // 20
55, 57, 57, 54, 56, 51, 98, 101, 98, 52, // 30
48, 48, 54, 98, 97, 56, 52, 97, 54, 54, // 40
54, 55, 53, 102, 53, 101, 99, 50, 57, 99, // 50
57, 55 // 52
};
// response when dataLength = 452
byte[] byteArray6 = new byte[]
{
0xDF, 0xDF, 0, 1, 0, 1, 0, 141, 0, 0, // 10
0, 1, 0, 0, 97, 91, 0, 0, 0, 14, // 20
0, 0, 0, 1, 0, 0, 0, 4, 73, 150, // 30
2, 210, 97, 0, 0, 199, 157, 0, 0, 0, // 40
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 50
0, 156, 80, 0, 43, 119, 108, 0, 0, 0, // 60
1, 0, 0, 0, 4, 73, 150, 2, 210, 0, // 70
0, 0, 8, 0, 0, 0, 0, 0, 0, 0, // 80
0, 0, 0, 0, 0, 0, 0, 0, 3, 0, // 90
0, 0, 0, 0, 0, 1, 144, 0, 0, 0, // 100
12, 97, 114, 101, 97, 32, 117, 110, 107, 110, // 110
111, 119, 110, 0, 0, 0, 0, 0, 0, 0, // 120
0, 0, 0, 0, 0, 0, 0, 0, 0, 0, // 130
0, 0, 0, 0, 0, 0, 8, 0, 0, 0, // 140
3, 100, 55, 56 // 144
};
byteArray6[38] = m_zoneBytes[2];
byteArray6[39] = m_zoneBytes[1];
byteArray6[40] = m_zoneBytes[0];
byteArray6[73] = m_name[0];
byteArray6[74] = m_name[1];
byteArray6[75] = m_name[2];
byteArray6[76] = m_name[3];
byteArray6[77] = m_name[4];
byteArray6[78] = m_name[5];
byteArray6[79] = m_name[6];
byteArray6[80] = m_name[7];
byteArray6[84] = m_breedBytes[0];
byteArray6[92] = m_profBytes[0];
// response when dataLength = 28
byte[] byteArray5 = new byte[]
{
0xDF, 0xDF, 0, 1, 0, 1, 0, 38, 0, 0, // 10
0, 1, 0, 0, 97, 91, 0, 0, 0, 23, // 20
73, 150, 2, 210, 127, 0, 0, 1, 29, 77, // 30
111, 90, 13, 82, 85, 45, 117, 22, 56, 46 // 40
};
int i2 = x;
if (i2 <= 84)
{
if (i2 == 28)
{
// dataLength == 28
return byteArray5;
}
else if (i2 != 84)
{
// return null as byteArray2 is never assigned
return byteArray2;
}
else
{
// dataLength == 84
//m_acName = getName(data);
m_acName = GetString(data, 24);
return byteArray3;
}
}
if (i2 != 136)
{
if ((i2 != 194) && (i2 == 452))
{
// dataLength = 452
return byteArray6;
}
else
{
// return null as byteArray2 is never assigned
return byteArray2;
}
}
Create create1 = new Create();
create1.CreateToon(byteArray1, i1);
return byteArray5;
}
#endregion
}
}