public static void SendAttackDamage(MapObject from, ushort objectID, ushort damage, bool crit, uint hpleft, ushort counter) { using (var packet = new Packet(SH9Type.AttackDamage)) { packet.WriteUShort(from.MapObjectID); packet.WriteUShort(objectID); packet.WriteBool(crit); packet.WriteUShort(damage); packet.WriteUInt(hpleft); packet.WriteUShort(counter); packet.WriteByte(4); packet.WriteByte(100); from.MapSector.Broadcast(packet); } }
public static void SendSkillNoVictim(MapObject user, ushort animid) { // 9 82 | [75 70] [32 29] [00] using (var packet = new Packet(SH9Type.SkillAnimationTarget)) { packet.WriteUShort(animid); packet.WriteUShort(user.MapObjectID); packet.WriteBool(false); user.MapSector.Broadcast(packet); } }
public static void SendStatsUpdate(MapObject pObject, ZoneClient to, bool selectedby) { using (var packet = new Packet(SH9Type.StatUpdate)) { packet.WriteBool(selectedby); packet.WriteUShort(pObject.MapObjectID); if (pObject is ZoneCharacter) { ((ZoneCharacter)pObject).WriteUpdateStats(packet); } else { ((Mob)pObject).WriteUpdateStats(packet); } to.SendPacket(packet); } }
public static void SendSkill(MapObject user, ushort animid, ushort victimid, uint damage, uint newhp, ushort counter, byte special1 = 0x10, byte special2 = 0x00) { // 9 82 | [E5 3F] [8A 27] [01] [8A 27] [10 00] [09 00 00 00] [5E 00 00 00] [A7 4C] // 9 82 | [9A 35] [8A 27] [01] [C2 05] [10 00] [0A 00 00 00] [1D 01 00 00] [73 37] // 9 82 | [43 3C] [42 15] [01] [AC 4C] [01 01] [7A 02 00 00] [00 00 00 00] [35 09] // 9 82 | [0E 39] [42 15] [01] [00 4A] [21 01] [1C 03 00 00] [00 00 00 00] [8C 0E] using (var packet = new Packet(SH9Type.SkillAnimationTarget)) { packet.WriteUShort(animid); packet.WriteUShort(user.MapObjectID); packet.WriteBool(true); packet.WriteUShort(victimid); packet.WriteByte(special1); packet.WriteByte(special2); packet.WriteUInt(damage); packet.WriteUInt(newhp); packet.WriteUShort(counter); user.MapSector.Broadcast(packet); } }
private static void AllowFiles(LoginClient pClient, bool pIsOk) { using (Packet pack = new Packet(SH3Type.FilecheckAllow)) { pack.WriteBool(pIsOk); pClient.SendPacket(pack); } }
public static void SendShortcuts(WorldClient client) { using (var packet = new Packet(SH28Type.LoadShortCuts)) { byte[] data = client.Character.Character.Shortcuts; bool hasData = data != null; packet.WriteBool(hasData); packet.WriteBytes(hasData ? data : new byte[] { 0 }); client.SendPacket(packet); } }
public static void SendQuickbarState(WorldClient client) { using (var packet = new Packet(SH28Type.LoadQuickBarState)) { byte[] data = client.Character.Character.QuickBarState; bool hasData = data != null; packet.WriteBool(hasData); packet.WriteBytes(hasData ? data : new byte[] { 0 }); client.SendPacket(packet); } }
public void WriteCharacterDisplay(Packet packet) { packet.WriteUShort(MapObjectID); packet.WriteString(Name, 16); packet.WriteInt(Position.X); packet.WriteInt(Position.Y); packet.WriteByte(Rotation); // Rotation packet.WriteByte((byte)State); // Player State (1,2 - Player, 3 - Dead, 4 - Resting, 5 - Vendor, 6 - On Mount) packet.WriteByte((byte)Job); if (State != PlayerState.Resting && State != PlayerState.Vendor && this.House == null) { WriteLook(packet); WriteEquipment(packet); } else { this.House.WritePacket(packet); } WriteRefinement(packet); packet.WriteUShort(0xffff); // Mount Handle packet.WriteUShort(0xffff); packet.WriteByte(0xff); // Emote (0xff = nothing) packet.WriteUShort(0xffff); packet.WriteShort(0); packet.WriteUShort(0); // Mob ID (title = 10) packet.Fill(53, 0); // Buff Bits? Something like that packet.WriteInt(character.GuildID.HasValue ? character.GuildID.Value : 0); // Guild ID packet.WriteByte(0x02); // UNK (0x02) packet.WriteBool(false); // In Guild Academy (0 - No, 1 - Yes) packet.WriteBool(true); // Pet AutoPickup (0 - Off, 1 - On) packet.WriteByte(this.Level); }