Revert teleport

This commit is contained in:
Deathmax 2011-07-03 01:37:01 +08:00
parent 4a6bacfe98
commit e95ea38d35
2 changed files with 16 additions and 8 deletions

View file

@ -152,6 +152,10 @@ namespace TShockAPI
InitSpawn = false; InitSpawn = false;
Teleporting = true; Teleporting = true;
TeleportCoords = new Vector2(tileX, tileY); TeleportCoords = new Vector2(tileX, tileY);
var spnx = Main.spawnTileX;
var spnY = Main.spawnTileY;
Main.spawnTileX = tileX;
Main.spawnTileY = tileY;
SendData(PacketTypes.WorldInfo); SendData(PacketTypes.WorldInfo);
@ -189,6 +193,8 @@ namespace TShockAPI
} }
} }
Main.spawnTileX = spnx;
Main.spawnTileY = spnY;
Teleporting = false; Teleporting = false;
SendData(PacketTypes.WorldInfo); SendData(PacketTypes.WorldInfo);

View file

@ -440,19 +440,19 @@ namespace TShockAPI
private void OnSendData(SendDataEventArgs e) private void OnSendData(SendDataEventArgs e)
{ {
//TODO - Clean this code up //TODO - Clean this code up
switch (e.MsgID) /*switch (e.MsgID)
{ {
case PacketTypes.WorldInfo: case PacketTypes.WorldInfo:
if (e.remoteClient >= 0 && Players[e.remoteClient] != null && Players[e.remoteClient].Teleporting) if (e.remoteClient >= 0 && Players[e.remoteClient] != null && Players[e.remoteClient].Teleporting)
{ {
var stream = new MemoryStream(); var stream = new MemoryStream(messageBuffer.writeBufferMax);
var writer = new BinaryWriter(stream); var writer = new BinaryWriter(stream);
stream.Position = 4; stream.Position = 4;
writer.Write(BitConverter.GetBytes(7), 0, 1); writer.Write(BitConverter.GetBytes(7), 0, 1);
writer.Write((int)Main.time);
writer.Write(Main.dayTime); writer.Write(Main.dayTime);
writer.Write((byte)Main.moonPhase); writer.Write((byte)Main.moonPhase);
writer.Write(Main.bloodMoon); writer.Write(Main.bloodMoon);
writer.Write((int)Main.time);
writer.Write(Main.maxTilesX); writer.Write(Main.maxTilesX);
writer.Write(Main.maxTilesY); writer.Write(Main.maxTilesY);
writer.Write((int)Players[e.remoteClient].TeleportCoords.X); writer.Write((int)Players[e.remoteClient].TeleportCoords.X);
@ -460,23 +460,25 @@ namespace TShockAPI
writer.Write((int)Main.worldSurface); writer.Write((int)Main.worldSurface);
writer.Write((int)Main.rockLayer); writer.Write((int)Main.rockLayer);
writer.Write(Main.worldID); writer.Write(Main.worldID);
writer.Write(0 + (WorldGen.shadowOrbSmashed ? 1 : 0) + (NPC.downedBoss1 ? 2 : 0) + (NPC.downedBoss2 ? 4 : 0) + (NPC.downedBoss3 ? 8 : 0)); writer.Write((byte)(0 + (WorldGen.shadowOrbSmashed ? 1 : 0) + (NPC.downedBoss1 ? 2 : 0) + (NPC.downedBoss2 ? 4 : 0) + (NPC.downedBoss3 ? 8 : 0)));
writer.Write(Main.worldName); writer.Write(Encoding.ASCII.GetBytes(Main.worldName));
var length = (int)(stream.Position - 5); var length = (int)(stream.Length - 5);
stream.Position = 0; stream.Position = 0;
writer.Write(length); writer.Write(length);
NetMessage.buffer[e.remoteClient].writeBuffer = stream.GetBuffer();
try try
{ {
NetMessage.buffer[e.remoteClient].spamCount++; NetMessage.buffer[e.remoteClient].spamCount++;
Netplay.serverSock[e.remoteClient].networkStream.BeginWrite(stream.GetBuffer(), 0, (int)stream.Length, new AsyncCallback(Netplay.serverSock[e.remoteClient].ServerWriteCallBack), Netplay.serverSock[e.remoteClient].networkStream); Netplay.serverSock[e.remoteClient].networkStream.BeginWrite(NetMessage.buffer[e.remoteClient].writeBuffer, 0, (int)stream.Length, new AsyncCallback(Netplay.serverSock[e.remoteClient].ServerWriteCallBack), Netplay.serverSock[e.remoteClient].networkStream);
} }
catch { } catch { }
NetMessage.buffer[e.remoteClient].writeLocked = false;
e.Handled = true; e.Handled = true;
} }
break; break;
default: default:
break; break;
} }*/
} }
private void OnGreetPlayer(int who, HandledEventArgs e) private void OnGreetPlayer(int who, HandledEventArgs e)