void HandleReverse(int itemid ,byte select, int objectlocationid)
{
try
{
//Remove loc // add loc to case 7
if (Character.Position.Walking) StopMovementTimer();
if (Character.Action.PickUping) return;
if (Character.Stall.Stallactive) return;
Character.Information.Scroll = true;
StopTimers();
switch (select)
{
//Move to return point
case 2:
Send(Packet.StatePack(Character.Information.UniqueID, 0x0B, 0x01, false));
StartScrollTimer(1000);
SavePlayerReturn();
break;
//Move to last recall point
case 3:
MsSQL ms = new MsSQL("SELECT * FROM character_rev WHERE charname='" + Character.Information.Name + "'");
using (SqlDataReader reader = ms.Read())
{
while (reader.Read())
{
byte xSec = reader.GetByte(2);
byte ySec = reader.GetByte(3);
float x = reader.GetInt32(4);
float z = reader.GetInt32(6);
float y = reader.GetInt32(5);
BuffAllClose();
DeSpawnMe();
ObjectDeSpawnCheck();
client.Send(Packet.TeleportOtherStart());
//Set state
this.Character.InGame = false;
Character.Position.xSec = xSec;
Character.Position.ySec = ySec;
Character.Position.x = x;
Character.Position.z = z;
Character.Position.y = y;
client.Send(Packet.TeleportImage(xSec, ySec));
Character.Teleport = true;
Timer.Scroll = null;
Character.Information.Scroll = false;
}
}
ms.Close();
break;
//Teleport to map location
case 7:
BuffAllClose();
ObjectDeSpawnCheck();
DeSpawnMe();
client.Send(Packet.TeleportOtherStart());
Character.Position.xSec = Data.ReverseData[objectlocationid].xSec;
Character.Position.ySec = Data.ReverseData[objectlocationid].ySec;
Character.Position.x = (float)Data.ReverseData[objectlocationid].x;
Character.Position.z = (float)Data.ReverseData[objectlocationid].z;
Character.Position.y = (float)Data.ReverseData[objectlocationid].y;
//Set state
this.Character.InGame = false;
client.Send(Packet.TeleportImage(Data.ReverseData[objectlocationid].xSec, Data.ReverseData[objectlocationid].ySec));
Character.Teleport = true;
Timer.Scroll = null;
Character.Information.Scroll = false;
break;
}
}
catch (Exception ex)
{
Systems.Debugger.Write(ex);
}
}