public static MovementInfo RecvStartMoving(Packet p) { p.Skip(2); int charid = p.ReadInt(); short from_x = p.ReadShort(); short from_y = p.ReadShort(); byte from_z = p.ReadByte(); short to_x = p.ReadShort(); short to_y = p.ReadShort(); byte to_z = p.ReadByte(); short direction = p.ReadShort(); MovementInfo mi = new MovementInfo { PacketID = 1, CharacterID = charid, FromX = from_x, FromY = from_y, FromZ = from_z, ToX = to_x, ToY = to_y, ToZ = to_z, Rotation = direction }; return mi; }
public static MovementInfo RecvStopMoving(Packet p) { p.Skip(2); int charid = p.ReadInt(); short from_x = p.ReadShort(); short from_y = p.ReadShort(); byte from_z = p.ReadByte(); MovementInfo mi = new MovementInfo { PacketID = 3, CharacterID = charid, FromX = from_x, FromY = from_y, FromZ = from_z, }; return mi; }
public static byte[] SendStartMoving(MovementInfo mo, byte movingspeed) { Packet p = new Packet(200); p.WriteByte(0); p.WriteInt(mo.CharacterID); p.WriteShort(mo.FromX); p.WriteShort(mo.FromY); p.WriteByte(mo.FromZ); p.WriteShort(mo.ToX); p.WriteShort(mo.ToY); p.WriteByte(mo.ToZ); p.WriteShort(mo.Rotation); p.WriteHexString("00"); p.WriteByte(11 + movingspeed); p.WriteHexString("00"); return p.GetWrittenBuffer(PacketIds.SendStartMoving); }
public static byte[] SendStopMoving(MovementInfo mo) { Packet p = new Packet(200); p.WriteByte(0); p.WriteInt(mo.CharacterID); p.WriteShort(mo.FromX); p.WriteShort(mo.FromY); p.WriteByte(mo.FromZ); p.WriteByte(0); return p.GetWrittenBuffer(PacketIds.SendStopMoving); }
public static byte[] SendMonsterMove(MovementInfo mi) { Packet p = new Packet(200); p.WriteHexString("0A 40 16 00 00 39 05 00 00 03"); p.WriteShort(mi.FromX); p.WriteShort(mi.FromY); p.WriteByte(mi.FromZ); p.WriteShort(mi.ToX); p.WriteShort(mi.ToY); p.WriteByte(mi.ToZ); p.WriteShort(mi.Rotation); p.WriteHexString("15 03 00 00"); return p.GetWrittenBuffer(); }
public static byte[] SendMonsterStop(MovementInfo mi) { Packet p = new Packet(200); p.WriteHexString("0C 40 0D 00 00 39 05 00 00 03"); p.WriteShort(mi.FromX); p.WriteShort(mi.FromY); p.WriteHexString("00 15 03"); return p.GetWrittenBuffer(); }
public ClientMovementInfoEventArgs(MovementInfo MI) { this.mi = MI; }
public override MovementInfo OnMove(Character target) { if (Alive && target.Alive) { if (GetDistance(Position.X, Position.Y, target.Position.X, target.Position.Y) <= AttackRange + 15) { Attacking = true; } MovementInfo move = new MovementInfo(); move.FromX = (short)Position.X; move.FromY = (short)Position.Y; move.FromZ = 0; move.CharacterID = MonsterID; move.ToX = (short)target.Position.X; move.ToY = (short)target.Position.Y; move.ToZ = 0; double rotation = Math.Atan2(move.ToY - move.FromX, move.ToX - move.FromX); rotation = rotation * 180 / Math.PI; move.Rotation = (int)Math.Abs(rotation); return move; } else return base.OnMove(target); }
public static byte[] SendStartMoving(MovementInfo mo, Character ch) { Packet p = new Packet(200); p.WriteByte(0); p.WriteInt(ch.CharacterId); p.WriteShort(mo.FromX); p.WriteShort(mo.FromY); p.WriteByte(mo.FromZ); p.WriteShort(mo.ToX); p.WriteShort(mo.ToY); p.WriteByte(mo.ToZ); p.WriteShort(mo.Rotation); p.WriteHexString("00"); p.WriteByte(11 + ch.MovingSpeed); if (ch.UsingFastMovement()) p.WriteHexString("06"); else p.WriteHexString("00"); return p.GetWrittenBuffer(PacketIds.SendStartMoving); }
public static byte[] SendMonsterStopMoving(BaseEntity ent , MovementInfo mi) { Pet pet = null; Monster m = null; Packet p = new Packet(200); if (ent is Monster) { m = ent as Monster; p.WriteHexString("00"); p.WriteInt(m.MonsterID); p.WriteByte((byte)m.Type); p.WriteShort(mi.FromX); p.WriteShort(mi.FromY); p.WriteHexString("00 14"); p.WriteByte(m.MovementSpeed); } if (ent is Pet) { pet = ent as Pet; p.WriteHexString("00"); p.WriteInt(pet.PetID); p.WriteByte((byte)pet.Type); p.WriteShort(mi.FromX); p.WriteShort(mi.FromY); p.WriteHexString("00 00 03"); } return p.GetWrittenBuffer(PacketIds.SendMonsterStopMoving); }
public static byte[] SendMonsterKeepMoving(BaseEntity ent, MovementInfo mi) { Pet pet = null; Packet p = new Packet(200); if (ent is Pet) { pet = ent as Pet; p.WriteHexString("00"); p.WriteInt(pet.PetID); p.WriteByte((byte)pet.Type); p.WriteShort(mi.FromX); p.WriteShort(mi.FromY); p.WriteByte(mi.FromZ); p.WriteShort(mi.ToX); p.WriteShort(mi.ToY); p.WriteByte(mi.ToZ); p.WriteInt(mi.Rotation); p.WriteHexString("00 00"); } return p.GetWrittenBuffer(PacketIds.SendMonsterKeepMoving); }