Well, on my 5071 source, I got a lot of things good to go, but now I have one really bad problem. If you jump once, then move at all you get dc'd. No matter what. You jump, then walk, boom dc. I been trying to fix this on my own for a few days, but no success. Here's some snippets of codes that deal with players jumping and walking. Does anyone see anything wrong with it, or do you think it may have something to do with setting location?
Code:
public static void PlayerGroundMovment(GameClient Hero, GroundMovementPacket Packet)
{
Hero.SendScreen(Packet, true);
Hero.Entity.Move(Packet.Direction);
Hero.Screen.Reload(false, null);
if (Hero.Attacking)
Hero.Attacking = false;
}
public static void PlayerJump(GameClient Hero, DataPacket Packet)
{
ushort new_X = (ushort)(Packet.dwParam & 0xFFFF);
ushort new_Y = (ushort)(Packet.dwParam >> 16);
if (Kernel.GetDistance(new_X, new_Y, Hero.Entity.X, Hero.Entity.Y) <= 16)
{
if (Hero.Attacking)
Hero.Attacking = false;
Hero.Entity.Action = ConquerAction.Jump;
Hero.SendScreen(Packet, true);
Hero.Entity.Facing = (ConquerAngle)Packet.wParam3;
Hero.Entity.X = new_X;
Hero.Entity.Y = new_Y;
Hero.Screen.Reload(false, null);
}
else
{
throw new Exception("PacketProcessor::PlayerJump() -> Failed To Assert `Kernel.GetDistance(new_X, new_Y, ClientX, ClientY) <= 16`");
}
}