/// <summary> /// Sends duel position, in 5 seconds duel will start. /// </summary> private void SendReady(IWorldClient client, float x, float z) { using var packet = new Packet(PacketType.DUEL_READY); packet.Write(x); packet.Write(z); client.SendPacket(packet); }
internal void SendPortalTeleportNotAllowed(IWorldClient client, PortalTeleportNotAllowedReason reason) { using var packet = new Packet(PacketType.CHARACTER_ENTERED_PORTAL); packet.Write(false); // success packet.Write((byte)reason); client.SendPacket(packet); }
private void SendStartTrade(IWorldClient client, int characterId) { using var packet = new Packet(PacketType.DUEL_TRADE); packet.Write(characterId); packet.WriteByte(0); // ? client.SendPacket(packet); }
/// <summary> /// Adds money to trade. /// </summary> private void SendAddedMoneyToTrade(IWorldClient client, byte senderType, uint tradeMoney) { using var packet = new Packet(PacketType.DUEL_TRADE_ADD_MONEY); packet.Write(senderType); packet.Write(tradeMoney); client.SendPacket(packet); }
/// <summary> /// Cancels duel. /// </summary> /// <param name="cancelReason">player is too far away; player was attacked etc.</param> private void SendDuelCancel(IWorldClient client, DuelCancelReason cancelReason, int playerId) { using var packet = new Packet(PacketType.DUEL_CANCEL); packet.Write((byte)cancelReason); packet.Write(playerId); client.SendPacket(packet); }
/// <summary> /// "Ok" button change in trade window. /// </summary> private void SendDuelApprove(IWorldClient client, byte senderType, bool isDuelDeclined) { using var packet = new Packet(PacketType.DUEL_TRADE_OK); packet.Write(senderType); packet.Write(isDuelDeclined); client.SendPacket(packet); }
/// <summary> /// Removes item from trade. /// </summary> private void SendRemovedItemFromTrade(IWorldClient client, byte slotInTradeWindow, byte senderType) { using var packet = new Packet(PacketType.DUEL_TRADE_REMOVE_ITEM); packet.Write(senderType); packet.Write(slotInTradeWindow); client.SendPacket(packet); }
internal void SendCharacterPartyChanged(IWorldClient client, int characterId, PartyMemberType type) { using var packet = new Packet(PacketType.MAP_PARTY_SET); packet.Write(characterId); packet.Write((byte)type); client.SendPacket(packet); }
internal void SendShapeUpdate(IWorldClient client, Character sender) { using var packet = new Packet(PacketType.CHARACTER_SHAPE_UPDATE); packet.Write(sender.Id); packet.Write((byte)sender.Shape); client.SendPacket(packet); }
/// <summary> /// Send duel approval request. /// </summary> private void SendWaitingDuel(IWorldClient client, int duelStarterId, int duelOpponentId) { using var packet = new Packet(PacketType.DUEL_REQUEST); packet.Write(duelStarterId); packet.Write(duelOpponentId); client.SendPacket(packet); }
internal void SendObeliskBroken(IWorldClient client, Obelisk obelisk) { using var packet = new Packet(PacketType.OBELISK_CHANGE); packet.Write(obelisk.Id); packet.Write((byte)obelisk.ObeliskCountry); client.SendPacket(packet); }
internal void SendItemDoesNotBelong(IWorldClient client) { using var packet = new Packet(PacketType.ADD_ITEM); packet.WriteByte(0); packet.WriteByte(0); // Item doesn't belong to player. client.SendPacket(packet); }
internal void SendFullInventory(IWorldClient client) { using var packet = new Packet(PacketType.ADD_ITEM); packet.WriteByte(0); packet.WriteByte(1); // Inventory is full. client.SendPacket(packet); }
/// <summary> /// Sends duel response. /// </summary> private void SendDuelResponse(IWorldClient client, DuelResponse response, int characterId) { using var packet = new Packet(PacketType.DUEL_RESPONSE); packet.Write((byte)response); packet.Write(characterId); client.SendPacket(packet); }
internal void SendMobRecover(IWorldClient client, IKillable sender) { using var packet = new Packet(PacketType.MOB_RECOVER); packet.Write(sender.Id); packet.Write(sender.CurrentHP); client.SendPacket(packet); }
internal void SendCharacterMotion(IWorldClient client, int characterId, Motion motion) { using var packet = new Packet(PacketType.CHARACTER_MOTION); packet.Write(characterId); packet.WriteByte((byte)motion); client.SendPacket(packet); }
internal void SendUseVehicle(IWorldClient client, bool success, bool status) { using var packet = new Packet(PacketType.USE_VEHICLE); packet.Write(success); packet.Write(status); client.SendPacket(packet); }
internal void SendAddGem(IWorldClient client, bool success, Item gem, Item destinationItem, byte gemSlot, uint gold, Item saveItem, Item hammer) { using var packet = new Packet(PacketType.GEM_ADD); packet.Write(success); packet.Write(gem.Bag); packet.Write(gem.Slot); packet.Write(gem.Count); packet.Write(destinationItem.Bag); packet.Write(destinationItem.Slot); packet.Write(gemSlot); packet.Write(gem.TypeId); packet.WriteByte(0); // unknown, old eps: byBag packet.WriteByte(0); // unknown, old eps: bySlot packet.WriteByte(0); // unknown, old eps: byTypeID; maybe in new ep TypeId is int? packet.Write(gold); if (hammer is null) { packet.WriteByte(0); packet.WriteByte(0); } else { packet.Write(hammer.Bag); packet.Write(hammer.Slot); } client.SendPacket(packet); }
internal void SendFriendOnline(IWorldClient client, int id, bool isOnline) { using var packet = new Packet(PacketType.FRIEND_ONLINE); packet.Write(id); packet.Write(isOnline); client.SendPacket(packet); }
internal void SendQuestStarted(IWorldClient client, ushort questId, int npcId) { using var packet = new Packet(PacketType.QUEST_START); packet.Write(npcId); packet.Write(questId); client.SendPacket(packet); }
internal void SendRemoveGem(IWorldClient client, bool success, Item item, byte gemPosition, List <Item> savedGems, uint gold) { using var packet = new Packet(PacketType.GEM_REMOVE); packet.Write(success); packet.Write(item.Bag); packet.Write(item.Slot); packet.Write(gemPosition); for (var i = 0; i < 6; i++) { if (savedGems[i] is null) { packet.WriteByte(0); // bag } else { packet.Write(savedGems[i].Bag); } } for (var i = 0; i < 6; i++) { if (savedGems[i] is null) { packet.WriteByte(0); // slot } else { packet.Write(savedGems[i].Slot); } } for (var i = 0; i < 6; i++) // NB! in old eps this value was byte. { if (savedGems[i] is null) { packet.Write(0); // type id } else { packet.Write((int)savedGems[i].TypeId); } } for (var i = 0; i < 6; i++) { if (savedGems[i] is null) { packet.WriteByte(0); // count } else { packet.Write(savedGems[i].Count); } } packet.Write(gold); client.SendPacket(packet); }
internal void SendGemRemovePossibility(IWorldClient client, double rate, int gold) { using var packet = new Packet(PacketType.GEM_REMOVE_POSSIBILITY); packet.WriteByte(1); // TODO: unknown, maybe bool, that we can link? packet.Write(rate); packet.Write(gold); client.SendPacket(packet); }
protected override void SendRemoveBuff(IWorldClient client, int senderId, ushort skillId, byte skillLevel) { using var packet = new Packet(PacketType.PARTY_REMOVED_BUFF); packet.Write(senderId); packet.Write(skillId); packet.Write(skillLevel); client.SendPacket(packet); }
private void SendMemberGetItem(IWorldClient client, int characterId, Item item) { using var packet = new Packet(PacketType.PARTY_MEMBER_GET_ITEM); packet.Write(characterId); packet.Write(item.Type); packet.Write(item.TypeId); client.SendPacket(packet); }
internal void Send_Max_HP(IWorldClient client, int id, int value) { using var packet = new Packet(PacketType.CHARACTER_MAX_HITPOINTS); packet.Write(id); packet.WriteByte(0); // 0 means max hp type. packet.Write(value); client.SendPacket(packet); }
protected override void Send_Single_Max_HP_SP_MP(IWorldClient client, int id, int value, byte type) { using var packet = new Packet(PacketType.PARTY_SET_MAX); packet.Write(id); packet.Write(type); packet.Write(value); client.SendPacket(packet); }
internal void SendQuestCountUpdate(IWorldClient client, ushort questId, byte index, byte count) { using var packet = new Packet(PacketType.QUEST_UPDATE_COUNT); packet.Write(questId); packet.Write(index); packet.Write(count); client.SendPacket(packet); }
internal void SendFriendAdded(IWorldClient client, Character friend) { using var packet = new Packet(PacketType.FRIEND_ADD); packet.Write(friend.Id); packet.Write((byte)friend.Class); packet.WriteString(friend.Name); client.SendPacket(packet); }
internal void SendCharacterKilled(IWorldClient client, Character character, IKiller killer) { using var packet = new Packet(PacketType.CHARACTER_DEATH); packet.Write(character.Id); packet.WriteByte(1); // killer type. 1 - another player. packet.Write(killer.Id); client.SendPacket(packet); }
internal void SendMobDead(IWorldClient client, IKillable sender, IKiller killer) { using var packet = new Packet(PacketType.MOB_DEATH); packet.Write(sender.Id); packet.WriteByte(1); // killer type. Always 1, since only player can kill the mob. packet.Write(killer.Id); client.SendPacket(packet); }