terraria-source-code/Terraria/messageBuffer.cs
TheVamp 0462173018 Version 1.2.0.3.1
Decompiled with IlSpy
Fixes Source Code
2013-10-12 11:25:17 +02:00

3060 lines
144 KiB
C#

using Microsoft.Xna.Framework;
using System;
using System.Text;
namespace Terraria
{
public class messageBuffer
{
public const int readBufferMax = 65535;
public const int writeBufferMax = 65535;
public bool broadcast;
public byte[] readBuffer = new byte[65535];
public byte[] writeBuffer = new byte[65535];
public bool writeLocked;
public int messageLength;
public int totalData;
public int whoAmI;
public int spamCount;
public int maxSpam;
public bool checkBytes;
public void Reset()
{
this.writeBuffer = new byte[65535];
this.writeLocked = false;
this.messageLength = 0;
this.totalData = 0;
this.spamCount = 0;
this.broadcast = false;
this.checkBytes = false;
}
public void GetData(int start, int length)
{
if (this.whoAmI < 256)
{
Netplay.serverSock[this.whoAmI].timeOut = 0;
}
else
{
Netplay.clientSock.timeOut = 0;
}
int num = start + 1;
byte b = this.readBuffer[start];
Main.rxMsg++;
Main.rxData += length;
Main.rxMsgType[(int)b]++;
Main.rxDataType[(int)b] += length;
if (Main.netMode == 1 && Netplay.clientSock.statusMax > 0)
{
Netplay.clientSock.statusCount++;
}
if (Main.verboseNetplay)
{
for (int i = start; i < start + length; i++)
{
}
for (int j = start; j < start + length; j++)
{
byte arg_CD_0 = this.readBuffer[j];
}
}
if (Main.netMode == 2 && b != 38 && Netplay.serverSock[this.whoAmI].state == -1)
{
NetMessage.SendData(2, this.whoAmI, -1, Lang.mp[1], 0, 0f, 0f, 0f, 0);
return;
}
if (Main.netMode == 2 && Netplay.serverSock[this.whoAmI].state < 10 && b > 12 && b != 16 && b != 42 && b != 50 && b != 38 && b != 68)
{
NetMessage.BootPlayer(this.whoAmI, Lang.mp[2]);
}
if (b == 1 && Main.netMode == 2)
{
if (Main.dedServ && Netplay.CheckBan(Netplay.serverSock[this.whoAmI].tcpClient.Client.RemoteEndPoint.ToString()))
{
NetMessage.SendData(2, this.whoAmI, -1, Lang.mp[3], 0, 0f, 0f, 0f, 0);
return;
}
if (Netplay.serverSock[this.whoAmI].state == 0)
{
string @string = Encoding.UTF8.GetString(this.readBuffer, start + 1, length - 1);
if (!(@string == "Terraria" + Main.curRelease))
{
NetMessage.SendData(2, this.whoAmI, -1, Lang.mp[4], 0, 0f, 0f, 0f, 0);
return;
}
if (Netplay.password == null || Netplay.password == "")
{
Netplay.serverSock[this.whoAmI].state = 1;
NetMessage.SendData(3, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
return;
}
Netplay.serverSock[this.whoAmI].state = -1;
NetMessage.SendData(37, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 2 && Main.netMode == 1)
{
Netplay.disconnect = true;
Main.statusText = Encoding.UTF8.GetString(this.readBuffer, start + 1, length - 1);
return;
}
if (b == 3 && Main.netMode == 1)
{
if (Netplay.clientSock.state == 1)
{
Netplay.clientSock.state = 2;
}
int num2 = (int)this.readBuffer[start + 1];
if (num2 != Main.myPlayer)
{
Main.player[num2] = (Player)Main.player[Main.myPlayer].Clone();
Main.player[Main.myPlayer] = new Player();
Main.player[num2].whoAmi = num2;
Main.myPlayer = num2;
}
NetMessage.SendData(4, -1, -1, Main.player[Main.myPlayer].name, Main.myPlayer, 0f, 0f, 0f, 0);
NetMessage.SendData(68, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0);
NetMessage.SendData(16, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0);
NetMessage.SendData(42, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0);
NetMessage.SendData(50, -1, -1, "", Main.myPlayer, 0f, 0f, 0f, 0);
for (int k = 0; k < 59; k++)
{
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].inventory[k].name, Main.myPlayer, (float)k, (float)Main.player[Main.myPlayer].inventory[k].prefix, 0f, 0);
}
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[0].name, Main.myPlayer, 59f, (float)Main.player[Main.myPlayer].armor[0].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[1].name, Main.myPlayer, 60f, (float)Main.player[Main.myPlayer].armor[1].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[2].name, Main.myPlayer, 61f, (float)Main.player[Main.myPlayer].armor[2].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[3].name, Main.myPlayer, 62f, (float)Main.player[Main.myPlayer].armor[3].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[4].name, Main.myPlayer, 63f, (float)Main.player[Main.myPlayer].armor[4].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[5].name, Main.myPlayer, 64f, (float)Main.player[Main.myPlayer].armor[5].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[6].name, Main.myPlayer, 65f, (float)Main.player[Main.myPlayer].armor[6].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[7].name, Main.myPlayer, 66f, (float)Main.player[Main.myPlayer].armor[7].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[8].name, Main.myPlayer, 67f, (float)Main.player[Main.myPlayer].armor[8].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[9].name, Main.myPlayer, 68f, (float)Main.player[Main.myPlayer].armor[9].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].armor[10].name, Main.myPlayer, 69f, (float)Main.player[Main.myPlayer].armor[10].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].dye[0].name, Main.myPlayer, 70f, (float)Main.player[Main.myPlayer].dye[0].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].dye[1].name, Main.myPlayer, 71f, (float)Main.player[Main.myPlayer].dye[1].prefix, 0f, 0);
NetMessage.SendData(5, -1, -1, Main.player[Main.myPlayer].dye[2].name, Main.myPlayer, 72f, (float)Main.player[Main.myPlayer].dye[2].prefix, 0f, 0);
NetMessage.SendData(6, -1, -1, "", 0, 0f, 0f, 0f, 0);
if (Netplay.clientSock.state == 2)
{
Netplay.clientSock.state = 3;
return;
}
}
else
{
if (b == 4)
{
bool flag = false;
int num3 = (int)this.readBuffer[start + 1];
if (Main.netMode == 2)
{
num3 = this.whoAmI;
}
if (num3 == Main.myPlayer && !Main.ServerSideCharacter)
{
return;
}
int num4 = (int)this.readBuffer[start + 2];
if (num4 >= 51)
{
num4 = 0;
}
Main.player[num3].hair = num4;
Main.player[num3].whoAmi = num3;
num += 2;
byte b2 = this.readBuffer[num];
num++;
if (b2 == 1)
{
Main.player[num3].male = true;
}
else
{
Main.player[num3].male = false;
}
Main.player[num3].hairColor.R = this.readBuffer[num];
num++;
Main.player[num3].hairColor.G = this.readBuffer[num];
num++;
Main.player[num3].hairColor.B = this.readBuffer[num];
num++;
Main.player[num3].skinColor.R = this.readBuffer[num];
num++;
Main.player[num3].skinColor.G = this.readBuffer[num];
num++;
Main.player[num3].skinColor.B = this.readBuffer[num];
num++;
Main.player[num3].eyeColor.R = this.readBuffer[num];
num++;
Main.player[num3].eyeColor.G = this.readBuffer[num];
num++;
Main.player[num3].eyeColor.B = this.readBuffer[num];
num++;
Main.player[num3].shirtColor.R = this.readBuffer[num];
num++;
Main.player[num3].shirtColor.G = this.readBuffer[num];
num++;
Main.player[num3].shirtColor.B = this.readBuffer[num];
num++;
Main.player[num3].underShirtColor.R = this.readBuffer[num];
num++;
Main.player[num3].underShirtColor.G = this.readBuffer[num];
num++;
Main.player[num3].underShirtColor.B = this.readBuffer[num];
num++;
Main.player[num3].pantsColor.R = this.readBuffer[num];
num++;
Main.player[num3].pantsColor.G = this.readBuffer[num];
num++;
Main.player[num3].pantsColor.B = this.readBuffer[num];
num++;
Main.player[num3].shoeColor.R = this.readBuffer[num];
num++;
Main.player[num3].shoeColor.G = this.readBuffer[num];
num++;
Main.player[num3].shoeColor.B = this.readBuffer[num];
num++;
byte difficulty = this.readBuffer[num];
Main.player[num3].difficulty = difficulty;
num++;
string text = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
text = text.Trim();
Main.player[num3].name = text.Trim();
if (Main.netMode == 2)
{
if (Netplay.serverSock[this.whoAmI].state < 10)
{
for (int l = 0; l < 255; l++)
{
if (l != num3 && text == Main.player[l].name && Netplay.serverSock[l].active)
{
flag = true;
}
}
}
if (flag)
{
NetMessage.SendData(2, this.whoAmI, -1, text + " " + Lang.mp[5], 0, 0f, 0f, 0f, 0);
return;
}
if (text.Length > Player.nameLen)
{
NetMessage.SendData(2, this.whoAmI, -1, "Name is too long.", 0, 0f, 0f, 0f, 0);
return;
}
if (text == "")
{
NetMessage.SendData(2, this.whoAmI, -1, "Empty name.", 0, 0f, 0f, 0f, 0);
return;
}
Netplay.serverSock[this.whoAmI].oldName = text;
Netplay.serverSock[this.whoAmI].name = text;
NetMessage.SendData(4, -1, this.whoAmI, text, num3, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 5)
{
int num5 = (int)this.readBuffer[start + 1];
if (Main.netMode == 2)
{
num5 = this.whoAmI;
}
if (num5 == Main.myPlayer && !Main.ServerSideCharacter)
{
return;
}
lock (Main.player[num5])
{
int num6 = (int)this.readBuffer[start + 2];
int stack = (int)BitConverter.ToInt16(this.readBuffer, start + 3);
byte b3 = this.readBuffer[start + 5];
int type = (int)BitConverter.ToInt16(this.readBuffer, start + 6);
if (num6 < 59)
{
Main.player[num5].inventory[num6] = new Item();
Main.player[num5].inventory[num6].netDefaults(type);
Main.player[num5].inventory[num6].stack = stack;
Main.player[num5].inventory[num6].Prefix((int)b3);
}
else
{
if (num6 >= 70 && num6 <= 72)
{
int num7 = num6 - 58 - 12;
Main.player[num5].dye[num7] = new Item();
Main.player[num5].dye[num7].netDefaults(type);
Main.player[num5].dye[num7].stack = stack;
Main.player[num5].dye[num7].Prefix((int)b3);
}
else
{
Main.player[num5].armor[num6 - 58 - 1] = new Item();
Main.player[num5].armor[num6 - 58 - 1].netDefaults(type);
Main.player[num5].armor[num6 - 58 - 1].stack = stack;
Main.player[num5].armor[num6 - 58 - 1].Prefix((int)b3);
}
}
if (Main.netMode == 2 && num5 == this.whoAmI)
{
NetMessage.SendData(5, -1, this.whoAmI, "", num5, (float)num6, (float)b3, 0f, 0);
}
return;
}
}
if (b == 6)
{
if (Main.netMode == 2)
{
if (Netplay.serverSock[this.whoAmI].state == 1)
{
Netplay.serverSock[this.whoAmI].state = 2;
}
NetMessage.SendData(7, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 7)
{
if (Main.netMode == 1)
{
Main.time = (double)BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.dayTime = false;
if (this.readBuffer[num] == 1)
{
Main.dayTime = true;
}
num++;
Main.moonPhase = (int)this.readBuffer[num];
num++;
int num8 = (int)this.readBuffer[num];
num++;
int num9 = (int)this.readBuffer[num];
num++;
if (num8 == 1)
{
Main.bloodMoon = true;
}
else
{
Main.bloodMoon = false;
}
if (num9 == 1)
{
Main.eclipse = true;
}
else
{
Main.eclipse = false;
}
Main.maxTilesX = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.maxTilesY = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.spawnTileX = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.spawnTileY = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.worldSurface = (double)BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.rockLayer = (double)BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.worldID = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.moonType = (int)this.readBuffer[num];
num++;
Main.treeX[0] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.treeX[1] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.treeX[2] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.treeStyle[0] = (int)this.readBuffer[num];
num++;
Main.treeStyle[1] = (int)this.readBuffer[num];
num++;
Main.treeStyle[2] = (int)this.readBuffer[num];
num++;
Main.treeStyle[3] = (int)this.readBuffer[num];
num++;
Main.caveBackX[0] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.caveBackX[1] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.caveBackX[2] = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.caveBackStyle[0] = (int)this.readBuffer[num];
num++;
Main.caveBackStyle[1] = (int)this.readBuffer[num];
num++;
Main.caveBackStyle[2] = (int)this.readBuffer[num];
num++;
Main.caveBackStyle[3] = (int)this.readBuffer[num];
num++;
byte style = this.readBuffer[num];
num++;
byte style2 = this.readBuffer[num];
num++;
byte style3 = this.readBuffer[num];
num++;
byte style4 = this.readBuffer[num];
num++;
byte style5 = this.readBuffer[num];
num++;
byte style6 = this.readBuffer[num];
num++;
byte style7 = this.readBuffer[num];
num++;
byte style8 = this.readBuffer[num];
num++;
WorldGen.setBG(0, (int)style);
WorldGen.setBG(1, (int)style2);
WorldGen.setBG(2, (int)style3);
WorldGen.setBG(3, (int)style4);
WorldGen.setBG(4, (int)style5);
WorldGen.setBG(5, (int)style6);
WorldGen.setBG(6, (int)style7);
WorldGen.setBG(7, (int)style8);
Main.iceBackStyle = (int)this.readBuffer[num];
num++;
Main.jungleBackStyle = (int)this.readBuffer[num];
num++;
Main.hellBackStyle = (int)this.readBuffer[num];
num++;
Main.windSpeedSet = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
Main.numClouds = (int)this.readBuffer[num];
num++;
byte b4 = this.readBuffer[num];
num++;
byte b5 = this.readBuffer[num];
num++;
float num10 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
Main.maxRaining = num10;
if (num10 > 0f)
{
Main.raining = true;
}
else
{
Main.raining = false;
}
bool flag3 = false;
bool crimson = false;
if ((b4 & 1) == 1)
{
WorldGen.shadowOrbSmashed = true;
}
if ((b4 & 2) == 2)
{
NPC.downedBoss1 = true;
}
if ((b4 & 4) == 4)
{
NPC.downedBoss2 = true;
}
if ((b4 & 8) == 8)
{
NPC.downedBoss3 = true;
}
if ((b4 & 16) == 16)
{
Main.hardMode = true;
}
if ((b4 & 32) == 32)
{
NPC.downedClown = true;
}
if ((b4 & 64) == 64)
{
Main.ServerSideCharacter = true;
}
if ((b4 & 128) == 128)
{
NPC.downedPlantBoss = true;
}
if ((b5 & 1) == 1)
{
NPC.downedMechBoss1 = true;
}
if ((b5 & 2) == 2)
{
NPC.downedMechBoss2 = true;
}
if ((b5 & 4) == 4)
{
NPC.downedMechBoss3 = true;
}
if ((b5 & 8) == 8)
{
NPC.downedMechBossAny = true;
}
if ((b5 & 16) == 16)
{
flag3 = true;
}
if ((b5 & 32) == 32)
{
crimson = true;
}
if (flag3)
{
Main.cloudBGActive = 1f;
}
if (!flag3)
{
Main.cloudBGActive = 0f;
}
WorldGen.crimson = crimson;
Main.worldName = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
if (Netplay.clientSock.state == 3)
{
Netplay.clientSock.state = 4;
return;
}
}
}
else
{
if (b == 8)
{
if (Main.netMode == 2)
{
int num11 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num12 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
bool flag4 = true;
if (num11 == -1 || num12 == -1)
{
flag4 = false;
}
else
{
if (num11 < 10 || num11 > Main.maxTilesX - 10)
{
flag4 = false;
}
else
{
if (num12 < 10 || num12 > Main.maxTilesY - 10)
{
flag4 = false;
}
}
}
int num13 = 1350;
if (flag4)
{
num13 *= 2;
}
if (Netplay.serverSock[this.whoAmI].state == 2)
{
Netplay.serverSock[this.whoAmI].state = 3;
}
NetMessage.SendData(9, this.whoAmI, -1, Lang.inter[44], num13, 0f, 0f, 0f, 0);
Netplay.serverSock[this.whoAmI].statusText2 = "is receiving tile data";
Netplay.serverSock[this.whoAmI].statusMax += num13;
int sectionX = Netplay.GetSectionX(Main.spawnTileX);
int sectionY = Netplay.GetSectionY(Main.spawnTileY);
for (int m = sectionX - 2; m < sectionX + 3; m++)
{
for (int n = sectionY - 1; n < sectionY + 2; n++)
{
NetMessage.SendSection(this.whoAmI, m, n);
}
}
if (flag4)
{
num11 = Netplay.GetSectionX(num11);
num12 = Netplay.GetSectionY(num12);
for (int num14 = num11 - 2; num14 < num11 + 3; num14++)
{
for (int num15 = num12 - 1; num15 < num12 + 2; num15++)
{
NetMessage.SendSection(this.whoAmI, num14, num15);
}
}
NetMessage.SendData(11, this.whoAmI, -1, "", num11 - 2, (float)(num12 - 1), (float)(num11 + 2), (float)(num12 + 1), 0);
}
NetMessage.SendData(11, this.whoAmI, -1, "", sectionX - 2, (float)(sectionY - 1), (float)(sectionX + 2), (float)(sectionY + 1), 0);
for (int num16 = 0; num16 < 400; num16++)
{
if (Main.item[num16].active)
{
NetMessage.SendData(21, this.whoAmI, -1, "", num16, 0f, 0f, 0f, 0);
NetMessage.SendData(22, this.whoAmI, -1, "", num16, 0f, 0f, 0f, 0);
}
}
for (int num17 = 0; num17 < 200; num17++)
{
if (Main.npc[num17].active)
{
NetMessage.SendData(23, this.whoAmI, -1, "", num17, 0f, 0f, 0f, 0);
}
}
for (int num18 = 0; num18 < 1000; num18++)
{
if (Main.projectile[num18].active && (Main.projPet[Main.projectile[num18].type] || Main.projectile[num18].netImportant))
{
NetMessage.SendData(27, this.whoAmI, -1, "", num18, 0f, 0f, 0f, 0);
}
}
NetMessage.SendData(49, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
NetMessage.SendData(57, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 17, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 18, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 19, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 20, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 22, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 38, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 54, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 107, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 108, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 124, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 160, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 178, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 207, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 208, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 209, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 227, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 228, 0f, 0f, 0f, 0);
NetMessage.SendData(56, this.whoAmI, -1, "", 229, 0f, 0f, 0f, 0);
NetMessage.SendData(7, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 9)
{
if (Main.netMode == 1)
{
int num19 = BitConverter.ToInt32(this.readBuffer, start + 1);
string string2 = Encoding.UTF8.GetString(this.readBuffer, start + 5, length - 5);
Netplay.clientSock.statusMax += num19;
Netplay.clientSock.statusText = string2;
return;
}
}
else
{
if (b == 10 && Main.netMode == 1)
{
short num20 = BitConverter.ToInt16(this.readBuffer, start + 1);
int num21 = BitConverter.ToInt32(this.readBuffer, start + 3);
int num22 = BitConverter.ToInt32(this.readBuffer, start + 7);
num = start + 11;
for (int num23 = num21; num23 < num21 + (int)num20; num23++)
{
if (Main.tile[num23, num22] == null)
{
Main.tile[num23, num22] = new Tile();
}
byte b6 = this.readBuffer[num];
num++;
byte b7 = this.readBuffer[num];
num++;
bool flag5 = Main.tile[num23, num22].active();
if ((b6 & 1) == 1)
{
Main.tile[num23, num22].active(true);
}
else
{
Main.tile[num23, num22].active(false);
}
byte arg_1BFD_0 = (byte)(b6 & 2);
if ((b6 & 4) == 4)
{
Main.tile[num23, num22].wall = 1;
}
else
{
Main.tile[num23, num22].wall = 0;
}
if ((b6 & 8) == 8)
{
Main.tile[num23, num22].liquid = 1;
}
else
{
Main.tile[num23, num22].liquid = 0;
}
if ((b6 & 16) == 16)
{
Main.tile[num23, num22].wire(true);
}
else
{
Main.tile[num23, num22].wire(false);
}
if ((b6 & 32) == 32)
{
Main.tile[num23, num22].halfBrick(true);
}
else
{
Main.tile[num23, num22].halfBrick(false);
}
if ((b6 & 64) == 64)
{
Main.tile[num23, num22].actuator(true);
}
else
{
Main.tile[num23, num22].actuator(false);
}
if ((b6 & 128) == 128)
{
Main.tile[num23, num22].inActive(true);
}
else
{
Main.tile[num23, num22].inActive(false);
}
if ((b7 & 1) == 1)
{
Main.tile[num23, num22].wire2(true);
}
else
{
Main.tile[num23, num22].wire2(false);
}
if ((b7 & 2) == 2)
{
Main.tile[num23, num22].wire3(true);
}
else
{
Main.tile[num23, num22].wire3(false);
}
if ((b7 & 4) == 4)
{
Main.tile[num23, num22].color(this.readBuffer[num]);
num++;
}
else
{
Main.tile[num23, num22].color(0);
}
if ((b7 & 8) == 8)
{
Main.tile[num23, num22].wallColor(this.readBuffer[num]);
num++;
}
else
{
Main.tile[num23, num22].wallColor(0);
}
if (Main.tile[num23, num22].active())
{
int type2 = (int)Main.tile[num23, num22].type;
Main.tile[num23, num22].type = this.readBuffer[num];
num++;
if (Main.tileFrameImportant[(int)Main.tile[num23, num22].type])
{
Main.tile[num23, num22].frameX = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
Main.tile[num23, num22].frameY = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
}
else
{
if (!flag5 || (int)Main.tile[num23, num22].type != type2)
{
Main.tile[num23, num22].frameX = -1;
Main.tile[num23, num22].frameY = -1;
}
}
byte b8 = 0;
if ((b7 & 16) == 16)
{
b8 += 1;
}
if ((b7 & 32) == 32)
{
b8 += 2;
}
Main.tile[num23, num22].slope(b8);
}
if (Main.tile[num23, num22].wall > 0)
{
Main.tile[num23, num22].wall = this.readBuffer[num];
num++;
}
if (Main.tile[num23, num22].liquid > 0)
{
Main.tile[num23, num22].liquid = this.readBuffer[num];
num++;
byte liquidType = this.readBuffer[num];
num++;
Main.tile[num23, num22].liquidType((int)liquidType);
}
short num24 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int num25 = num23;
while (num24 > 0)
{
num25++;
num24 -= 1;
if (Main.tile[num25, num22] == null)
{
Main.tile[num25, num22] = new Tile();
}
Main.tile[num25, num22].active(Main.tile[num23, num22].active());
Main.tile[num25, num22].type = Main.tile[num23, num22].type;
Main.tile[num25, num22].wall = Main.tile[num23, num22].wall;
Main.tile[num25, num22].wire(Main.tile[num23, num22].wire());
if (Main.tileFrameImportant[(int)Main.tile[num25, num22].type])
{
Main.tile[num25, num22].frameX = Main.tile[num23, num22].frameX;
Main.tile[num25, num22].frameY = Main.tile[num23, num22].frameY;
}
else
{
Main.tile[num25, num22].frameX = -1;
Main.tile[num25, num22].frameY = -1;
}
Main.tile[num25, num22].liquid = Main.tile[num23, num22].liquid;
Main.tile[num25, num22].liquidType((int)Main.tile[num23, num22].liquidType());
Main.tile[num25, num22].halfBrick(Main.tile[num23, num22].halfBrick());
Main.tile[num25, num22].slope(Main.tile[num23, num22].slope());
Main.tile[num25, num22].actuator(Main.tile[num23, num22].actuator());
Main.tile[num25, num22].inActive(Main.tile[num23, num22].inActive());
Main.tile[num25, num22].wire2(Main.tile[num23, num22].wire2());
Main.tile[num25, num22].wire3(Main.tile[num23, num22].wire3());
Main.tile[num25, num22].color(Main.tile[num23, num22].color());
Main.tile[num25, num22].wallColor(Main.tile[num23, num22].wallColor());
}
num23 = num25;
}
if (Main.netMode == 2)
{
NetMessage.SendData((int)b, -1, this.whoAmI, "", (int)num20, (float)num21, (float)num22, 0f, 0);
return;
}
}
else
{
if (b == 11)
{
if (Main.netMode == 1)
{
int startX = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 4;
int startY = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 4;
int endX = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 4;
int endY = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 4;
WorldGen.SectionTileFrame(startX, startY, endX, endY);
return;
}
}
else
{
if (b == 12)
{
int num26 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num26 = this.whoAmI;
}
num++;
Main.player[num26].SpawnX = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.player[num26].SpawnY = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
Main.player[num26].Spawn();
if (Main.netMode == 2 && Netplay.serverSock[this.whoAmI].state >= 3)
{
if (Netplay.serverSock[this.whoAmI].state == 3)
{
Netplay.serverSock[this.whoAmI].state = 10;
NetMessage.greetPlayer(this.whoAmI);
NetMessage.buffer[this.whoAmI].broadcast = true;
NetMessage.syncPlayers();
NetMessage.SendData(12, -1, this.whoAmI, "", this.whoAmI, 0f, 0f, 0f, 0);
return;
}
NetMessage.SendData(12, -1, this.whoAmI, "", this.whoAmI, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 13)
{
int num27 = (int)this.readBuffer[num];
if (num27 == Main.myPlayer && !Main.ServerSideCharacter)
{
return;
}
if (Main.netMode == 1)
{
bool arg_24C7_0 = Main.player[num27].active;
}
if (Main.netMode == 2)
{
num27 = this.whoAmI;
}
num++;
int num28 = (int)this.readBuffer[num];
num++;
int selectedItem = (int)this.readBuffer[num];
num++;
float x = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float num29 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float x2 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
byte b9 = this.readBuffer[num];
num++;
Main.player[num27].selectedItem = selectedItem;
Main.player[num27].position.X = x;
Main.player[num27].position.Y = num29;
Main.player[num27].velocity.X = x2;
Main.player[num27].velocity.Y = y;
Main.player[num27].oldVelocity = Main.player[num27].velocity;
Main.player[num27].fallStart = (int)(num29 / 16f);
Main.player[num27].controlUp = false;
Main.player[num27].controlDown = false;
Main.player[num27].controlLeft = false;
Main.player[num27].controlRight = false;
Main.player[num27].controlJump = false;
Main.player[num27].controlUseItem = false;
Main.player[num27].direction = -1;
if ((num28 & 1) == 1)
{
Main.player[num27].controlUp = true;
}
if ((num28 & 2) == 2)
{
Main.player[num27].controlDown = true;
}
if ((num28 & 4) == 4)
{
Main.player[num27].controlLeft = true;
}
if ((num28 & 8) == 8)
{
Main.player[num27].controlRight = true;
}
if ((num28 & 16) == 16)
{
Main.player[num27].controlJump = true;
}
if ((num28 & 32) == 32)
{
Main.player[num27].controlUseItem = true;
}
if ((num28 & 64) == 64)
{
Main.player[num27].direction = 1;
}
if ((b9 & 1) == 1)
{
Main.player[num27].pulley = true;
if ((b9 & 2) == 2)
{
Main.player[num27].pulleyDir = 2;
}
else
{
Main.player[num27].pulleyDir = 1;
}
}
else
{
Main.player[num27].pulley = false;
}
if (Main.netMode == 2 && Netplay.serverSock[this.whoAmI].state == 10)
{
NetMessage.SendData(13, -1, this.whoAmI, "", num27, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 14)
{
if (Main.netMode == 1)
{
int num30 = (int)this.readBuffer[num];
num++;
int num31 = (int)this.readBuffer[num];
if (num31 == 1)
{
if (!Main.player[num30].active)
{
Main.player[num30] = new Player();
}
Main.player[num30].active = true;
return;
}
Main.player[num30].active = false;
return;
}
}
else
{
if (b == 15)
{
if (Main.netMode == 2)
{
return;
}
}
else
{
if (b == 16)
{
int num32 = (int)this.readBuffer[num];
num++;
if (num32 == Main.myPlayer && !Main.ServerSideCharacter)
{
return;
}
int statLife = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int num33 = (int)BitConverter.ToInt16(this.readBuffer, num);
if (Main.netMode == 2)
{
num32 = this.whoAmI;
}
Main.player[num32].statLife = statLife;
if (num33 < 100)
{
num33 = 100;
}
Main.player[num32].statLifeMax = num33;
if (Main.player[num32].statLife <= 0)
{
Main.player[num32].dead = true;
}
if (Main.netMode == 2)
{
NetMessage.SendData(16, -1, this.whoAmI, "", num32, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 17)
{
byte b10 = this.readBuffer[num];
num++;
int num34 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num35 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
byte b11 = this.readBuffer[num];
num++;
int num36 = (int)this.readBuffer[num];
bool flag6 = false;
if (b11 == 1)
{
flag6 = true;
}
if (Main.tile[num34, num35] == null)
{
Main.tile[num34, num35] = new Tile();
}
if (Main.netMode == 2)
{
if (!flag6)
{
if (b10 == 0 || b10 == 2 || b10 == 4)
{
Netplay.serverSock[this.whoAmI].spamDelBlock += 1f;
}
else
{
if (b10 == 1 || b10 == 3)
{
Netplay.serverSock[this.whoAmI].spamAddBlock += 1f;
}
}
}
if (!Netplay.serverSock[this.whoAmI].tileSection[Netplay.GetSectionX(num34), Netplay.GetSectionY(num35)])
{
flag6 = true;
}
}
if (b10 == 0)
{
WorldGen.KillTile(num34, num35, flag6, false, false);
}
else
{
if (b10 == 1)
{
WorldGen.PlaceTile(num34, num35, (int)b11, false, true, -1, num36);
}
else
{
if (b10 == 2)
{
WorldGen.KillWall(num34, num35, flag6);
}
else
{
if (b10 == 3)
{
WorldGen.PlaceWall(num34, num35, (int)b11, false);
}
else
{
if (b10 == 4)
{
WorldGen.KillTile(num34, num35, flag6, false, true);
}
else
{
if (b10 == 5)
{
WorldGen.PlaceWire(num34, num35);
}
else
{
if (b10 == 6)
{
WorldGen.KillWire(num34, num35);
}
else
{
if (b10 == 7)
{
WorldGen.PoundTile(num34, num35);
}
else
{
if (b10 == 8)
{
WorldGen.PlaceActuator(num34, num35);
}
else
{
if (b10 == 9)
{
WorldGen.KillActuator(num34, num35);
}
else
{
if (b10 == 10)
{
WorldGen.PlaceWire2(num34, num35);
}
else
{
if (b10 == 11)
{
WorldGen.KillWire2(num34, num35);
}
else
{
if (b10 == 12)
{
WorldGen.PlaceWire3(num34, num35);
}
else
{
if (b10 == 13)
{
WorldGen.KillWire3(num34, num35);
}
else
{
if (b10 == 14)
{
WorldGen.SlopeTile(num34, num35, (int)b11);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
if (Main.netMode == 2)
{
NetMessage.SendData(17, -1, this.whoAmI, "", (int)b10, (float)num34, (float)num35, (float)b11, num36);
if (b10 == 1 && b11 == 53)
{
NetMessage.SendTileSquare(-1, num34, num35, 1);
return;
}
}
}
else
{
if (b == 18)
{
if (Main.netMode == 1)
{
byte b12 = this.readBuffer[num];
num++;
int num37 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
short sunModY = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
short moonModY = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
if (b12 == 1)
{
Main.dayTime = true;
}
else
{
Main.dayTime = false;
}
Main.time = (double)num37;
Main.sunModY = sunModY;
Main.moonModY = moonModY;
if (Main.netMode == 2)
{
NetMessage.SendData(18, -1, this.whoAmI, "", 0, 0f, 0f, 0f, 0);
return;
}
}
}
else
{
if (b == 19)
{
byte b13 = this.readBuffer[num];
num++;
int num38 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num39 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num40 = (int)this.readBuffer[num];
int direction = 0;
if (num40 == 0)
{
direction = -1;
}
if (b13 == 0)
{
WorldGen.OpenDoor(num38, num39, direction);
}
else
{
if (b13 == 1)
{
WorldGen.CloseDoor(num38, num39, true);
}
}
if (Main.netMode == 2)
{
NetMessage.SendData(19, -1, this.whoAmI, "", (int)b13, (float)num38, (float)num39, (float)num40, 0);
return;
}
}
else
{
if (b == 20)
{
short num41 = BitConverter.ToInt16(this.readBuffer, start + 1);
int num42 = BitConverter.ToInt32(this.readBuffer, start + 3);
int num43 = BitConverter.ToInt32(this.readBuffer, start + 7);
num = start + 11;
for (int num44 = num42; num44 < num42 + (int)num41; num44++)
{
for (int num45 = num43; num45 < num43 + (int)num41; num45++)
{
if (Main.tile[num44, num45] == null)
{
Main.tile[num44, num45] = new Tile();
}
byte b14 = this.readBuffer[num];
num++;
byte b15 = this.readBuffer[num];
num++;
bool flag7 = Main.tile[num44, num45].active();
if ((b14 & 1) == 1)
{
Main.tile[num44, num45].active(true);
}
else
{
Main.tile[num44, num45].active(false);
}
if ((b14 & 4) == 4)
{
Main.tile[num44, num45].wall = 1;
}
else
{
Main.tile[num44, num45].wall = 0;
}
bool flag8 = false;
if ((b14 & 8) == 8)
{
flag8 = true;
}
if (Main.netMode != 2)
{
if (flag8)
{
Main.tile[num44, num45].liquid = 1;
}
else
{
Main.tile[num44, num45].liquid = 0;
}
}
if ((b14 & 16) == 16)
{
Main.tile[num44, num45].wire(true);
}
else
{
Main.tile[num44, num45].wire(false);
}
if ((b14 & 32) == 32)
{
Main.tile[num44, num45].halfBrick(true);
}
else
{
Main.tile[num44, num45].halfBrick(false);
}
if ((b14 & 64) == 64)
{
Main.tile[num44, num45].actuator(true);
}
else
{
Main.tile[num44, num45].actuator(false);
}
if ((b14 & 128) == 128)
{
Main.tile[num44, num45].inActive(true);
}
else
{
Main.tile[num44, num45].inActive(false);
}
if ((b15 & 1) == 1)
{
Main.tile[num44, num45].wire2(true);
}
else
{
Main.tile[num44, num45].wire2(false);
}
if ((b15 & 2) == 2)
{
Main.tile[num44, num45].wire3(true);
}
else
{
Main.tile[num44, num45].wire3(false);
}
if ((b15 & 4) == 4)
{
Main.tile[num44, num45].color(this.readBuffer[num]);
num++;
}
if ((b15 & 8) == 8)
{
Main.tile[num44, num45].wallColor(this.readBuffer[num]);
num++;
}
if (Main.tile[num44, num45].active())
{
int type3 = (int)Main.tile[num44, num45].type;
Main.tile[num44, num45].type = this.readBuffer[num];
num++;
if (Main.tileFrameImportant[(int)Main.tile[num44, num45].type])
{
Main.tile[num44, num45].frameX = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
Main.tile[num44, num45].frameY = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
}
else
{
if (!flag7 || (int)Main.tile[num44, num45].type != type3)
{
Main.tile[num44, num45].frameX = -1;
Main.tile[num44, num45].frameY = -1;
}
}
byte b16 = 0;
if ((b15 & 16) == 16)
{
b16 += 1;
}
if ((b15 & 32) == 32)
{
b16 += 2;
}
Main.tile[num44, num45].slope(b16);
}
if (Main.tile[num44, num45].wall > 0)
{
Main.tile[num44, num45].wall = this.readBuffer[num];
num++;
}
if (flag8)
{
Main.tile[num44, num45].liquid = this.readBuffer[num];
num++;
byte liquidType2 = this.readBuffer[num];
num++;
Main.tile[num44, num45].liquidType((int)liquidType2);
}
}
}
WorldGen.RangeFrame(num42, num43, num42 + (int)num41, num43 + (int)num41);
if (Main.netMode == 2)
{
NetMessage.SendData((int)b, -1, this.whoAmI, "", (int)num41, (float)num42, (float)num43, 0f, 0);
return;
}
}
else
{
if (b == 21)
{
short num46 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
float num47 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float num48 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float x3 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y2 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
short stack2 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte pre = this.readBuffer[num];
num++;
byte b17 = this.readBuffer[num];
num++;
short num49 = BitConverter.ToInt16(this.readBuffer, num);
if (Main.netMode == 1)
{
if (num49 == 0)
{
Main.item[(int)num46].active = false;
return;
}
Main.item[(int)num46].netDefaults((int)num49);
Main.item[(int)num46].Prefix((int)pre);
Main.item[(int)num46].stack = (int)stack2;
Main.item[(int)num46].position.X = num47;
Main.item[(int)num46].position.Y = num48;
Main.item[(int)num46].velocity.X = x3;
Main.item[(int)num46].velocity.Y = y2;
Main.item[(int)num46].active = true;
Main.item[(int)num46].wet = Collision.WetCollision(Main.item[(int)num46].position, Main.item[(int)num46].width, Main.item[(int)num46].height);
return;
}
else
{
if (num49 == 0)
{
if (num46 < 400)
{
Main.item[(int)num46].active = false;
NetMessage.SendData(21, -1, -1, "", (int)num46, 0f, 0f, 0f, 0);
return;
}
}
else
{
bool flag9 = false;
if (num46 == 400)
{
flag9 = true;
}
if (flag9)
{
Item item = new Item();
item.netDefaults((int)num49);
num46 = (short)Item.NewItem((int)num47, (int)num48, item.width, item.height, item.type, (int)stack2, true, 0, false);
}
Main.item[(int)num46].netDefaults((int)num49);
Main.item[(int)num46].Prefix((int)pre);
Main.item[(int)num46].stack = (int)stack2;
Main.item[(int)num46].position.X = num47;
Main.item[(int)num46].position.Y = num48;
Main.item[(int)num46].velocity.X = x3;
Main.item[(int)num46].velocity.Y = y2;
Main.item[(int)num46].active = true;
Main.item[(int)num46].owner = Main.myPlayer;
if (flag9)
{
NetMessage.SendData(21, -1, -1, "", (int)num46, 0f, 0f, 0f, 0);
if (b17 == 0)
{
Main.item[(int)num46].ownIgnore = this.whoAmI;
Main.item[(int)num46].ownTime = 100;
}
Main.item[(int)num46].FindOwner((int)num46);
return;
}
NetMessage.SendData(21, -1, this.whoAmI, "", (int)num46, 0f, 0f, 0f, 0);
return;
}
}
}
else
{
if (b == 22)
{
short num50 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b18 = this.readBuffer[num];
if (Main.netMode == 2 && Main.item[(int)num50].owner != this.whoAmI)
{
return;
}
Main.item[(int)num50].owner = (int)b18;
if ((int)b18 == Main.myPlayer)
{
Main.item[(int)num50].keepTime = 15;
}
else
{
Main.item[(int)num50].keepTime = 0;
}
if (Main.netMode == 2)
{
Main.item[(int)num50].owner = 255;
Main.item[(int)num50].keepTime = 15;
NetMessage.SendData(22, -1, -1, "", (int)num50, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 23 && Main.netMode == 1)
{
short num51 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
float x4 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y3 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float x5 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y4 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
int target = (int)this.readBuffer[num];
num++;
byte b19 = this.readBuffer[num];
num++;
int direction2 = -1;
int directionY = -1;
if ((b19 & 1) == 1)
{
direction2 = 1;
}
if ((b19 & 2) == 2)
{
directionY = 1;
}
bool[] array = new bool[4];
if ((b19 & 4) == 4)
{
array[3] = true;
}
if ((b19 & 8) == 8)
{
array[2] = true;
}
if ((b19 & 16) == 16)
{
array[1] = true;
}
if ((b19 & 32) == 32)
{
array[0] = true;
}
int spriteDirection = -1;
if ((b19 & 64) == 64)
{
spriteDirection = 1;
}
int num52 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
float[] array2 = new float[NPC.maxAI];
for (int num53 = 0; num53 < NPC.maxAI; num53++)
{
if (array[num53])
{
array2[num53] = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
}
else
{
array2[num53] = 0f;
}
}
int num54 = (int)BitConverter.ToInt16(this.readBuffer, num);
int num55 = -1;
if (!Main.npc[(int)num51].active || Main.npc[(int)num51].netID != num54)
{
if (Main.npc[(int)num51].active)
{
num55 = Main.npc[(int)num51].type;
}
Main.npc[(int)num51].active = true;
Main.npc[(int)num51].netDefaults(num54);
}
Main.npc[(int)num51].position.X = x4;
Main.npc[(int)num51].position.Y = y3;
Main.npc[(int)num51].velocity.X = x5;
Main.npc[(int)num51].velocity.Y = y4;
Main.npc[(int)num51].target = target;
Main.npc[(int)num51].direction = direction2;
Main.npc[(int)num51].directionY = directionY;
Main.npc[(int)num51].spriteDirection = spriteDirection;
Main.npc[(int)num51].life = num52;
if (num52 <= 0)
{
Main.npc[(int)num51].active = false;
}
for (int num56 = 0; num56 < NPC.maxAI; num56++)
{
Main.npc[(int)num51].ai[num56] = array2[num56];
}
if (num55 > -1 && num55 != Main.npc[(int)num51].type)
{
Main.npc[(int)num51].xForm(num55, Main.npc[(int)num51].type);
}
if (num54 == 262)
{
NPC.plantBoss = (int)num51;
}
if (num54 == 245)
{
NPC.golemBoss = (int)num51;
return;
}
}
else
{
if (b == 24)
{
short num57 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b20 = this.readBuffer[num];
if (Main.netMode == 2)
{
b20 = (byte)this.whoAmI;
}
Main.npc[(int)num57].StrikeNPC(Main.player[(int)b20].inventory[Main.player[(int)b20].selectedItem].damage, Main.player[(int)b20].inventory[Main.player[(int)b20].selectedItem].knockBack, Main.player[(int)b20].direction, false, false);
if (Main.netMode == 2)
{
NetMessage.SendData(24, -1, this.whoAmI, "", (int)num57, (float)b20, 0f, 0f, 0);
NetMessage.SendData(23, -1, -1, "", (int)num57, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 25)
{
int num58 = (int)this.readBuffer[start + 1];
if (Main.netMode == 2)
{
num58 = this.whoAmI;
}
byte b21 = this.readBuffer[start + 2];
byte b22 = this.readBuffer[start + 3];
byte b23 = this.readBuffer[start + 4];
if (Main.netMode == 2)
{
b21 = 255;
b22 = 255;
b23 = 255;
}
string string3 = Encoding.UTF8.GetString(this.readBuffer, start + 5, length - 5);
if (Main.netMode == 1)
{
string newText = string3;
if (num58 < 255)
{
newText = "<" + Main.player[num58].name + "> " + string3;
Main.player[num58].chatText = string3;
Main.player[num58].chatShowTime = Main.chatLength / 2;
}
Main.NewText(newText, b21, b22, b23, false);
return;
}
if (Main.netMode == 2)
{
string text2 = string3.ToLower();
if (text2 == Lang.mp[6] || text2 == Lang.mp[21])
{
string text3 = "";
for (int num59 = 0; num59 < 255; num59++)
{
if (Main.player[num59].active)
{
if (text3 == "")
{
text3 += Main.player[num59].name;
}
else
{
text3 = text3 + ", " + Main.player[num59].name;
}
}
}
NetMessage.SendData(25, this.whoAmI, -1, Lang.mp[7] + " " + text3 + ".", 255, 255f, 240f, 20f, 0);
return;
}
if (text2.Length >= 4 && text2.Substring(0, 4) == "/me ")
{
NetMessage.SendData(25, -1, -1, "*" + Main.player[this.whoAmI].name + " " + string3.Substring(4), 255, 200f, 100f, 0f, 0);
return;
}
if (text2 == Lang.mp[8])
{
NetMessage.SendData(25, -1, -1, string.Concat(new object[]
{
"*",
Main.player[this.whoAmI].name,
" ",
Lang.mp[9],
" ",
Main.rand.Next(1, 101)
}), 255, 255f, 240f, 20f, 0);
return;
}
if (text2.Length >= 3 && text2.Substring(0, 3) == "/p ")
{
if (Main.player[this.whoAmI].team != 0)
{
for (int num60 = 0; num60 < 255; num60++)
{
if (Main.player[num60].team == Main.player[this.whoAmI].team)
{
NetMessage.SendData(25, num60, -1, string3.Substring(3), num58, (float)Main.teamColor[Main.player[this.whoAmI].team].R, (float)Main.teamColor[Main.player[this.whoAmI].team].G, (float)Main.teamColor[Main.player[this.whoAmI].team].B, 0);
}
}
return;
}
NetMessage.SendData(25, this.whoAmI, -1, Lang.mp[10], 255, 255f, 240f, 20f, 0);
return;
}
else
{
if (Main.player[this.whoAmI].difficulty == 2)
{
b21 = Main.hcColor.R;
b22 = Main.hcColor.G;
b23 = Main.hcColor.B;
}
else
{
if (Main.player[this.whoAmI].difficulty == 1)
{
b21 = Main.mcColor.R;
b22 = Main.mcColor.G;
b23 = Main.mcColor.B;
}
}
NetMessage.SendData(25, -1, -1, string3, num58, (float)b21, (float)b22, (float)b23, 0);
if (Main.dedServ)
{
Console.WriteLine("<" + Main.player[this.whoAmI].name + "> " + string3);
return;
}
}
}
}
else
{
if (b == 26)
{
byte b24 = this.readBuffer[num];
if (Main.netMode == 2 && this.whoAmI != (int)b24 && (!Main.player[(int)b24].hostile || !Main.player[this.whoAmI].hostile))
{
return;
}
num++;
int num61 = (int)(this.readBuffer[num] - 1);
num++;
short num62 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b25 = this.readBuffer[num];
num++;
bool pvp = false;
byte b26 = this.readBuffer[num];
num++;
bool crit = false;
string string4 = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
if (b25 != 0)
{
pvp = true;
}
if (b26 != 0)
{
crit = true;
}
Main.player[(int)b24].Hurt((int)num62, num61, pvp, true, string4, crit);
if (Main.netMode == 2)
{
NetMessage.SendData(26, -1, this.whoAmI, string4, (int)b24, (float)num61, (float)num62, (float)b25, (int)b26);
return;
}
}
else
{
if (b == 27)
{
short num63 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
float x6 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y5 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float x7 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float y6 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
float knockBack = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
short damage = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b27 = this.readBuffer[num];
num++;
short num64 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
float[] array3 = new float[Projectile.maxAI];
if (Main.netMode == 2)
{
b27 = (byte)this.whoAmI;
if (Main.projHostile[(int)num64])
{
return;
}
}
for (int num65 = 0; num65 < Projectile.maxAI; num65++)
{
array3[num65] = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
}
int num66 = 1000;
for (int num67 = 0; num67 < 1000; num67++)
{
if (Main.projectile[num67].owner == (int)b27 && Main.projectile[num67].identity == (int)num63 && Main.projectile[num67].active)
{
num66 = num67;
break;
}
}
if (num66 == 1000)
{
for (int num68 = 0; num68 < 1000; num68++)
{
if (!Main.projectile[num68].active)
{
num66 = num68;
break;
}
}
}
if (!Main.projectile[num66].active || Main.projectile[num66].type != (int)num64)
{
Main.projectile[num66].SetDefaults((int)num64);
if (Main.netMode == 2)
{
Netplay.serverSock[this.whoAmI].spamProjectile += 1f;
}
}
Main.projectile[num66].identity = (int)num63;
Main.projectile[num66].position.X = x6;
Main.projectile[num66].position.Y = y5;
Main.projectile[num66].velocity.X = x7;
Main.projectile[num66].velocity.Y = y6;
Main.projectile[num66].damage = (int)damage;
Main.projectile[num66].type = (int)num64;
Main.projectile[num66].owner = (int)b27;
Main.projectile[num66].knockBack = knockBack;
for (int num69 = 0; num69 < Projectile.maxAI; num69++)
{
Main.projectile[num66].ai[num69] = array3[num69];
}
if (Main.netMode == 2)
{
NetMessage.SendData(27, -1, this.whoAmI, "", num66, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 28)
{
short num70 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
short num71 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
float num72 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
int num73 = (int)(this.readBuffer[num] - 1);
num++;
int num74 = (int)this.readBuffer[num];
if (num71 >= 0)
{
if (num74 == 1)
{
Main.npc[(int)num70].StrikeNPC((int)num71, num72, num73, true, false);
}
else
{
Main.npc[(int)num70].StrikeNPC((int)num71, num72, num73, false, false);
}
}
else
{
Main.npc[(int)num70].life = 0;
Main.npc[(int)num70].HitEffect(0, 10.0);
Main.npc[(int)num70].active = false;
}
if (Main.netMode == 2)
{
if (Main.npc[(int)num70].life <= 0)
{
NetMessage.SendData(28, -1, this.whoAmI, "", (int)num70, (float)num71, num72, (float)num73, num74);
NetMessage.SendData(23, -1, -1, "", (int)num70, 0f, 0f, 0f, 0);
return;
}
NetMessage.SendData(28, -1, this.whoAmI, "", (int)num70, (float)num71, num72, (float)num73, num74);
Main.npc[(int)num70].netUpdate = true;
return;
}
}
else
{
if (b == 29)
{
short num75 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b28 = this.readBuffer[num];
if (Main.netMode == 2)
{
b28 = (byte)this.whoAmI;
}
for (int num76 = 0; num76 < 1000; num76++)
{
if (Main.projectile[num76].owner == (int)b28 && Main.projectile[num76].identity == (int)num75 && Main.projectile[num76].active)
{
Main.projectile[num76].Kill();
break;
}
}
if (Main.netMode == 2)
{
NetMessage.SendData(29, -1, this.whoAmI, "", (int)num75, (float)b28, 0f, 0f, 0);
return;
}
}
else
{
if (b == 30)
{
byte b29 = this.readBuffer[num];
if (Main.netMode == 2)
{
b29 = (byte)this.whoAmI;
}
num++;
byte b30 = this.readBuffer[num];
if (b30 == 1)
{
Main.player[(int)b29].hostile = true;
}
else
{
Main.player[(int)b29].hostile = false;
}
if (Main.netMode == 2)
{
NetMessage.SendData(30, -1, this.whoAmI, "", (int)b29, 0f, 0f, 0f, 0);
string str = " " + Lang.mp[11];
if (b30 == 0)
{
str = " " + Lang.mp[12];
}
NetMessage.SendData(25, -1, -1, Main.player[(int)b29].name + str, 255, (float)Main.teamColor[Main.player[(int)b29].team].R, (float)Main.teamColor[Main.player[(int)b29].team].G, (float)Main.teamColor[Main.player[(int)b29].team].B, 0);
return;
}
}
else
{
if (b == 31)
{
if (Main.netMode == 2)
{
int x8 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int y7 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num77 = Chest.FindChest(x8, y7);
if (num77 > -1 && Chest.UsingChest(num77) == -1)
{
for (int num78 = 0; num78 < Chest.maxItems; num78++)
{
NetMessage.SendData(32, this.whoAmI, -1, "", num77, (float)num78, 0f, 0f, 0);
}
NetMessage.SendData(33, this.whoAmI, -1, "", num77, 0f, 0f, 0f, 0);
Main.player[this.whoAmI].chest = num77;
return;
}
}
}
else
{
if (b == 32)
{
int num79 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int num80 = (int)this.readBuffer[num];
num++;
int stack3 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int pre2 = (int)this.readBuffer[num];
num++;
int type4 = (int)BitConverter.ToInt16(this.readBuffer, num);
if (Main.chest[num79] == null)
{
Main.chest[num79] = new Chest();
}
if (Main.chest[num79].item[num80] == null)
{
Main.chest[num79].item[num80] = new Item();
}
Main.chest[num79].item[num80].netDefaults(type4);
Main.chest[num79].item[num80].Prefix(pre2);
Main.chest[num79].item[num80].stack = stack3;
return;
}
if (b == 33)
{
int num81 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int chestX = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int chestY = BitConverter.ToInt32(this.readBuffer, num);
if (Main.netMode == 1)
{
if (Main.player[Main.myPlayer].chest == -1)
{
Main.playerInventory = true;
Main.PlaySound(10, -1, -1, 1);
}
else
{
if (Main.player[Main.myPlayer].chest != num81 && num81 != -1)
{
Main.playerInventory = true;
Main.PlaySound(12, -1, -1, 1);
}
else
{
if (Main.player[Main.myPlayer].chest != -1 && num81 == -1)
{
Main.PlaySound(11, -1, -1, 1);
}
}
}
Main.player[Main.myPlayer].chest = num81;
Main.player[Main.myPlayer].chestX = chestX;
Main.player[Main.myPlayer].chestY = chestY;
return;
}
Main.player[this.whoAmI].chest = num81;
return;
}
else
{
if (b == 34)
{
if (Main.netMode == 2)
{
int num82 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num83 = BitConverter.ToInt32(this.readBuffer, num);
if (Main.tile[num82, num83].type == 21)
{
WorldGen.KillTile(num82, num83, false, false, false);
if (!Main.tile[num82, num83].active())
{
NetMessage.SendData(17, -1, -1, "", 0, (float)num82, (float)num83, 0f, 0);
return;
}
}
}
}
else
{
if (b == 35)
{
int num84 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num84 = this.whoAmI;
}
num++;
int num85 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
if (num84 != Main.myPlayer || Main.ServerSideCharacter)
{
Main.player[num84].HealEffect(num85, true);
}
if (Main.netMode == 2)
{
NetMessage.SendData(35, -1, this.whoAmI, "", num84, (float)num85, 0f, 0f, 0);
return;
}
}
else
{
if (b == 36)
{
int num86 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num86 = this.whoAmI;
}
num++;
byte b31 = this.readBuffer[num];
num++;
if ((b31 & 1) == 1)
{
Main.player[num86].zoneEvil = true;
}
else
{
Main.player[num86].zoneEvil = false;
}
if ((b31 & 2) == 2)
{
Main.player[num86].zoneMeteor = true;
}
else
{
Main.player[num86].zoneMeteor = false;
}
if ((b31 & 4) == 4)
{
Main.player[num86].zoneDungeon = true;
}
else
{
Main.player[num86].zoneDungeon = false;
}
if ((b31 & 8) == 8)
{
Main.player[num86].zoneJungle = true;
}
else
{
Main.player[num86].zoneJungle = false;
}
if ((b31 & 16) == 16)
{
Main.player[num86].zoneHoly = true;
}
else
{
Main.player[num86].zoneHoly = false;
}
if ((b31 & 32) == 32)
{
Main.player[num86].zoneSnow = true;
}
else
{
Main.player[num86].zoneSnow = false;
}
if ((b31 & 64) == 64)
{
Main.player[num86].zoneBlood = true;
}
else
{
Main.player[num86].zoneBlood = false;
}
if ((b31 & 128) == 128)
{
Main.player[num86].zoneCandle = true;
}
else
{
Main.player[num86].zoneCandle = false;
}
if (Main.netMode == 2)
{
NetMessage.SendData(36, -1, this.whoAmI, "", num86, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 37)
{
if (Main.netMode == 1)
{
if (Main.autoPass)
{
NetMessage.SendData(38, -1, -1, Netplay.password, 0, 0f, 0f, 0f, 0);
Main.autoPass = false;
return;
}
Netplay.password = "";
Main.menuMode = 31;
return;
}
}
else
{
if (b == 38)
{
if (Main.netMode == 2)
{
string string5 = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
if (string5 == Netplay.password)
{
Netplay.serverSock[this.whoAmI].state = 1;
NetMessage.SendData(3, this.whoAmI, -1, "", 0, 0f, 0f, 0f, 0);
return;
}
NetMessage.SendData(2, this.whoAmI, -1, Lang.mp[1], 0, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 39 && Main.netMode == 1)
{
short num87 = BitConverter.ToInt16(this.readBuffer, num);
Main.item[(int)num87].owner = 255;
NetMessage.SendData(22, -1, -1, "", (int)num87, 0f, 0f, 0f, 0);
return;
}
if (b == 40)
{
byte b32 = this.readBuffer[num];
if (Main.netMode == 2)
{
b32 = (byte)this.whoAmI;
}
num++;
int talkNPC = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
Main.player[(int)b32].talkNPC = talkNPC;
if (Main.netMode == 2)
{
NetMessage.SendData(40, -1, this.whoAmI, "", (int)b32, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 41)
{
byte b33 = this.readBuffer[num];
if (Main.netMode == 2)
{
b33 = (byte)this.whoAmI;
}
num++;
float itemRotation = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
int itemAnimation = (int)BitConverter.ToInt16(this.readBuffer, num);
Main.player[(int)b33].itemRotation = itemRotation;
Main.player[(int)b33].itemAnimation = itemAnimation;
Main.player[(int)b33].channel = Main.player[(int)b33].inventory[Main.player[(int)b33].selectedItem].channel;
if (Main.netMode == 2)
{
NetMessage.SendData(41, -1, this.whoAmI, "", (int)b33, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 42)
{
int num88 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num88 = this.whoAmI;
}
num++;
int statMana = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int statManaMax = (int)BitConverter.ToInt16(this.readBuffer, num);
if (Main.netMode == 2)
{
num88 = this.whoAmI;
}
else
{
if (Main.myPlayer == num88 && !Main.ServerSideCharacter)
{
return;
}
}
Main.player[num88].statMana = statMana;
Main.player[num88].statManaMax = statManaMax;
if (Main.netMode == 2)
{
NetMessage.SendData(42, -1, this.whoAmI, "", num88, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 43)
{
int num89 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num89 = this.whoAmI;
}
num++;
int num90 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
if (num89 != Main.myPlayer)
{
Main.player[num89].ManaEffect(num90);
}
if (Main.netMode == 2)
{
NetMessage.SendData(43, -1, this.whoAmI, "", num89, (float)num90, 0f, 0f, 0);
return;
}
}
else
{
if (b == 44)
{
byte b34 = this.readBuffer[num];
if ((int)b34 == Main.myPlayer)
{
return;
}
if (Main.netMode == 2)
{
b34 = (byte)this.whoAmI;
}
num++;
int num91 = (int)(this.readBuffer[num] - 1);
num++;
short num92 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b35 = this.readBuffer[num];
num++;
string string6 = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
bool pvp2 = false;
if (b35 != 0)
{
pvp2 = true;
}
Main.player[(int)b34].KillMe((double)num92, num91, pvp2, string6);
if (Main.netMode == 2)
{
NetMessage.SendData(44, -1, this.whoAmI, string6, (int)b34, (float)num91, (float)num92, (float)b35, 0);
return;
}
}
else
{
if (b == 45)
{
int num93 = (int)this.readBuffer[num];
if (Main.netMode == 2)
{
num93 = this.whoAmI;
}
num++;
int num94 = (int)this.readBuffer[num];
num++;
int team = Main.player[num93].team;
Main.player[num93].team = num94;
if (Main.netMode == 2)
{
NetMessage.SendData(45, -1, this.whoAmI, "", num93, 0f, 0f, 0f, 0);
string str2 = "";
if (num94 == 0)
{
str2 = " " + Lang.mp[13];
}
else
{
if (num94 == 1)
{
str2 = " " + Lang.mp[14];
}
else
{
if (num94 == 2)
{
str2 = " " + Lang.mp[15];
}
else
{
if (num94 == 3)
{
str2 = " " + Lang.mp[16];
}
else
{
if (num94 == 4)
{
str2 = " " + Lang.mp[17];
}
}
}
}
}
for (int num95 = 0; num95 < 255; num95++)
{
if (num95 == this.whoAmI || (team > 0 && Main.player[num95].team == team) || (num94 > 0 && Main.player[num95].team == num94))
{
NetMessage.SendData(25, num95, -1, Main.player[num93].name + str2, 255, (float)Main.teamColor[num94].R, (float)Main.teamColor[num94].G, (float)Main.teamColor[num94].B, 0);
}
}
return;
}
}
else
{
if (b == 46)
{
if (Main.netMode == 2)
{
int i2 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int j2 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num96 = Sign.ReadSign(i2, j2);
if (num96 >= 0)
{
NetMessage.SendData(47, this.whoAmI, -1, "", num96, 0f, 0f, 0f, 0);
return;
}
}
}
else
{
if (b == 47)
{
int num97 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
int x9 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int y8 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
string string7 = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
Main.sign[num97] = new Sign();
Main.sign[num97].x = x9;
Main.sign[num97].y = y8;
Sign.TextSign(num97, string7);
if (Main.netMode == 1 && Main.sign[num97] != null && num97 != Main.player[Main.myPlayer].sign)
{
Main.playerInventory = false;
Main.player[Main.myPlayer].talkNPC = -1;
Main.editSign = false;
Main.PlaySound(10, -1, -1, 1);
Main.player[Main.myPlayer].sign = num97;
Main.npcChatText = Main.sign[num97].text;
return;
}
}
else
{
if (b == 48)
{
int num98 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num99 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
byte liquid = this.readBuffer[num];
num++;
byte liquidType3 = this.readBuffer[num];
num++;
if (Main.netMode == 2 && Netplay.spamCheck)
{
int num100 = this.whoAmI;
int num101 = (int)(Main.player[num100].position.X + (float)(Main.player[num100].width / 2));
int num102 = (int)(Main.player[num100].position.Y + (float)(Main.player[num100].height / 2));
int num103 = 10;
int num104 = num101 - num103;
int num105 = num101 + num103;
int num106 = num102 - num103;
int num107 = num102 + num103;
if (num101 < num104 || num101 > num105 || num102 < num106 || num102 > num107)
{
NetMessage.BootPlayer(this.whoAmI, "Cheating attempt detected: Liquid spam");
return;
}
}
if (Main.tile[num98, num99] == null)
{
Main.tile[num98, num99] = new Tile();
}
lock (Main.tile[num98, num99])
{
Main.tile[num98, num99].liquid = liquid;
Main.tile[num98, num99].liquidType((int)liquidType3);
if (Main.netMode == 2)
{
WorldGen.SquareTileFrame(num98, num99, true);
}
return;
}
}
if (b == 49)
{
if (Netplay.clientSock.state == 6)
{
Netplay.clientSock.state = 10;
Main.player[Main.myPlayer].Spawn();
return;
}
}
else
{
if (b == 50)
{
int num108 = (int)this.readBuffer[num];
num++;
if (Main.netMode == 2)
{
num108 = this.whoAmI;
}
else
{
if (num108 == Main.myPlayer && !Main.ServerSideCharacter)
{
return;
}
}
for (int num109 = 0; num109 < 10; num109++)
{
Main.player[num108].buffType[num109] = (int)this.readBuffer[num];
if (Main.player[num108].buffType[num109] > 0)
{
Main.player[num108].buffTime[num109] = 60;
}
else
{
Main.player[num108].buffTime[num109] = 0;
}
num++;
}
if (Main.netMode == 2)
{
NetMessage.SendData(50, -1, this.whoAmI, "", num108, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 51)
{
byte b36 = this.readBuffer[num];
num++;
byte b37 = this.readBuffer[num];
if (b37 == 1)
{
NPC.SpawnSkeletron();
return;
}
if (b37 == 2)
{
if (Main.netMode != 2)
{
Main.PlaySound(2, (int)Main.player[(int)b36].position.X, (int)Main.player[(int)b36].position.Y, 1);
return;
}
if (Main.netMode == 2)
{
NetMessage.SendData(51, -1, this.whoAmI, "", (int)b36, (float)b37, 0f, 0f, 0);
return;
}
}
}
else
{
if (b == 52)
{
byte number = this.readBuffer[num];
num++;
byte b38 = this.readBuffer[num];
num++;
int num110 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num111 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
if (b38 == 1)
{
Chest.Unlock(num110, num111);
if (Main.netMode == 2)
{
NetMessage.SendData(52, -1, this.whoAmI, "", (int)number, (float)b38, (float)num110, (float)num111, 0);
NetMessage.SendTileSquare(-1, num110, num111, 2);
}
}
if (b38 == 2)
{
WorldGen.UnlockDoor(num110, num111);
if (Main.netMode == 2)
{
NetMessage.SendData(52, -1, this.whoAmI, "", (int)number, (float)b38, (float)num110, (float)num111, 0);
NetMessage.SendTileSquare(-1, num110, num111, 2);
return;
}
}
}
else
{
if (b == 53)
{
short num112 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte type5 = this.readBuffer[num];
num++;
short time = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
Main.npc[(int)num112].AddBuff((int)type5, (int)time, true);
if (Main.netMode == 2)
{
NetMessage.SendData(54, -1, -1, "", (int)num112, 0f, 0f, 0f, 0);
return;
}
}
else
{
if (b == 54)
{
if (Main.netMode == 1)
{
short num113 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
for (int num114 = 0; num114 < 5; num114++)
{
Main.npc[(int)num113].buffType[num114] = (int)this.readBuffer[num];
num++;
Main.npc[(int)num113].buffTime[num114] = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
}
return;
}
}
else
{
if (b == 55)
{
byte b39 = this.readBuffer[num];
num++;
byte b40 = this.readBuffer[num];
num++;
short num115 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
if (Main.netMode == 2 && (int)b39 != this.whoAmI && !Main.pvpBuff[(int)b40])
{
return;
}
if (Main.netMode == 1 && (int)b39 == Main.myPlayer)
{
Main.player[(int)b39].AddBuff((int)b40, (int)num115, true);
return;
}
if (Main.netMode == 2)
{
NetMessage.SendData(55, (int)b39, -1, "", (int)b39, (float)b40, (float)num115, 0f, 0);
return;
}
}
else
{
if (b == 56)
{
if (Main.netMode == 1)
{
short num116 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
string string8 = Encoding.UTF8.GetString(this.readBuffer, num, length - num + start);
Main.chrName[(int)num116] = string8;
return;
}
}
else
{
if (b == 57)
{
if (Main.netMode == 1)
{
WorldGen.tGood = this.readBuffer[num];
num++;
WorldGen.tEvil = this.readBuffer[num];
return;
}
}
else
{
if (b == 58)
{
byte b41 = this.readBuffer[num];
if (Main.netMode == 2)
{
b41 = (byte)this.whoAmI;
}
num++;
float num117 = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
if (Main.netMode == 2)
{
NetMessage.SendData(58, -1, this.whoAmI, "", this.whoAmI, num117, 0f, 0f, 0);
return;
}
Main.harpNote = num117;
int style9 = 26;
if (Main.player[(int)b41].inventory[Main.player[(int)b41].selectedItem].type == 507)
{
style9 = 35;
}
Main.PlaySound(2, (int)Main.player[(int)b41].position.X, (int)Main.player[(int)b41].position.Y, style9);
return;
}
else
{
if (b == 59)
{
int num118 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num119 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
WorldGen.hitSwitch(num118, num119);
if (Main.netMode == 2)
{
NetMessage.SendData(59, -1, this.whoAmI, "", num118, (float)num119, 0f, 0f, 0);
return;
}
}
else
{
if (b == 60)
{
short num120 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
short num121 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
short num122 = BitConverter.ToInt16(this.readBuffer, num);
num += 2;
byte b42 = this.readBuffer[num];
num++;
bool homeless = false;
if (b42 == 1)
{
homeless = true;
}
if (Main.netMode == 1)
{
Main.npc[(int)num120].homeless = homeless;
Main.npc[(int)num120].homeTileX = (int)num121;
Main.npc[(int)num120].homeTileY = (int)num122;
return;
}
if (b42 == 0)
{
WorldGen.kickOut((int)num120);
return;
}
WorldGen.moveRoom((int)num121, (int)num122, (int)num120);
return;
}
else
{
if (b == 61)
{
int plr = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num123 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
if (Main.netMode == 2)
{
if (num123 == 4 || num123 == 13 || num123 == 50 || num123 == 125 || num123 == 126 || num123 == 134 || num123 == 127 || num123 == 128 || num123 == 222 || num123 == 245 || num123 == 266)
{
bool flag11 = true;
for (int num124 = 0; num124 < 200; num124++)
{
if (Main.npc[num124].active && Main.npc[num124].type == num123)
{
flag11 = false;
}
}
if (flag11)
{
NPC.SpawnOnPlayer(plr, num123);
return;
}
}
else
{
if (num123 < 0)
{
int num125 = -1;
if (num123 == -1)
{
num125 = 1;
}
if (num123 == -2)
{
num125 = 2;
}
if (num123 == -3)
{
num125 = 3;
}
if (num125 > 0 && Main.invasionType == 0)
{
Main.invasionDelay = 0;
Main.StartInvasion(num125);
return;
}
}
}
}
}
else
{
if (b == 62)
{
int num126 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num127 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
if (Main.netMode == 2)
{
num126 = this.whoAmI;
}
if (num127 == 1)
{
Main.player[num126].NinjaDodge();
}
if (num127 == 2)
{
Main.player[num126].ShadowDodge();
}
if (Main.netMode == 2)
{
NetMessage.SendData(62, -1, this.whoAmI, "", num126, (float)num127, 0f, 0f, 0);
return;
}
}
else
{
if (b == 63)
{
int num128 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num129 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
byte b43 = this.readBuffer[num];
WorldGen.paintTile(num128, num129, b43, false);
if (Main.netMode == 2)
{
NetMessage.SendData(63, -1, this.whoAmI, "", num128, (float)num129, (float)b43, 0f, 0);
return;
}
}
else
{
if (b == 64)
{
int num130 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
int num131 = BitConverter.ToInt32(this.readBuffer, num);
num += 4;
byte b44 = this.readBuffer[num];
WorldGen.paintWall(num130, num131, b44, false);
if (Main.netMode == 2)
{
NetMessage.SendData(64, -1, this.whoAmI, "", num130, (float)num131, (float)b44, 0f, 0);
return;
}
}
else
{
if (b == 65)
{
byte b45 = this.readBuffer[num];
num++;
short num132 = BitConverter.ToInt16(this.readBuffer, num);
if (Main.netMode == 2)
{
num132 = (short)this.whoAmI;
}
num += 2;
Vector2 newPos;
newPos.X = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
newPos.Y = BitConverter.ToSingle(this.readBuffer, num);
num += 4;
int num133 = 0;
int num134 = 0;
if ((b45 & 1) == 1)
{
num133++;
}
if ((b45 & 2) == 2)
{
num133 += 2;
}
if ((b45 & 4) == 4)
{
num134++;
}
if ((b45 & 8) == 8)
{
num134++;
}
if (num133 == 0)
{
Main.player[(int)num132].Teleport(newPos, num134);
}
else
{
if (num133 == 1)
{
Main.npc[(int)num132].Teleport(newPos, num134);
}
}
if (Main.netMode == 2 && num133 == 0)
{
NetMessage.SendData(65, -1, this.whoAmI, "", 0, (float)num132, newPos.X, newPos.Y, num134);
return;
}
}
else
{
if (b == 66)
{
int num135 = (int)this.readBuffer[num];
num++;
int num136 = (int)BitConverter.ToInt16(this.readBuffer, num);
num += 2;
if (num136 > 0)
{
Main.player[num135].statLife += num136;
if (Main.player[num135].statLife > Main.player[num135].statLifeMax)
{
Main.player[num135].statLife = Main.player[num135].statLifeMax;
}
Main.player[num135].HealEffect(num136, false);
if (Main.netMode == 2)
{
NetMessage.SendData(66, -1, this.whoAmI, "", num135, (float)num136, 0f, 0f, 0);
return;
}
}
}
else
{
if (b == 67)
{
return;
}
if (b == 68)
{
Encoding.UTF8.GetString(this.readBuffer, start + 1, length - 1);
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}
}