Here is the the ping packet and function and jump
In Packets/delegates.cs add
Code:
{ 1009, Handles.ItemPing.Handle },
in the Packets/Handles folder add a new file "ItemPing.cs"
Code:
public class ItemPing
{
public unsafe static void Handle(Byte* Data, KinSocket.Connection Client)
{
int Subtype = Data[12];
switch (Subtype)
{
#region Reply to Ping / 27
case 27://Reply to ping
{
Client.Send(Data);
break;
}
#endregion
}
}
}
in Packets/handlers/generaldata.cs add
Code:
case Structures.DataPacket.DataTypes.Jump:
{
ushort new_X = *((ushort*)(Data + 8));
ushort new_Y = *((ushort*)(Data + 10));
int Mapid = (int)Hero.Map;
//check map location here
ushort prev_x = Hero.X;
ushort prev_y = Hero.Y;
Hero.X = new_X;
Hero.Y = new_Y;
Packet->dwParam = Hero.Map;
Packet->wParam1 = Hero.X;
Packet->wParam2 = Hero.Y;
Packet->DataType = Structures.DataPacket.DataTypes.Jump;
Packet->wParam0 = prev_x;
Packet->wParam1 = prev_y;
Client.Send(Packet);
foreach(Struct.NPC Npc in Constants.Npcs.Values)
{
if (Npc.Map == Hero.Map)
{
if (!Calc.CanSee(prev_x, prev_y, Npc.X, Npc.Y))
{
if (Calc.CanSee(Hero.X, Hero.Y, Npc.X, Npc.Y))
{
Client.Send((Byte[])new Structures.NpcSpawnPacket(Npc));
}
}
}
}
break;
}