Beispiel #1
0
 /// <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);
 }
Beispiel #2
0
 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);
 }
Beispiel #3
0
 private void SendStartTrade(IWorldClient client, int characterId)
 {
     using var packet = new Packet(PacketType.DUEL_TRADE);
     packet.Write(characterId);
     packet.WriteByte(0); // ?
     client.SendPacket(packet);
 }
Beispiel #4
0
 /// <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);
 }
Beispiel #5
0
 /// <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);
 }
Beispiel #6
0
 /// <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);
 }
Beispiel #7
0
 /// <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);
 }
Beispiel #8
0
 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);
 }
Beispiel #9
0
 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);
 }
Beispiel #10
0
 /// <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);
 }
Beispiel #11
0
 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);
 }
Beispiel #12
0
 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);
 }
Beispiel #13
0
 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);
 }
Beispiel #14
0
 /// <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);
 }
Beispiel #15
0
 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);
 }
Beispiel #16
0
 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);
 }
Beispiel #17
0
 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);
 }
Beispiel #18
0
        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);
        }
Beispiel #19
0
 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);
 }
Beispiel #20
0
 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);
 }
Beispiel #21
0
        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);
        }
Beispiel #22
0
 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);
 }
Beispiel #23
0
 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);
 }
Beispiel #24
0
 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);
 }
Beispiel #25
0
 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);
 }
Beispiel #26
0
 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);
 }
Beispiel #27
0
 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);
 }
Beispiel #28
0
 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);
 }
Beispiel #29
0
 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);
 }
Beispiel #30
0
 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);
 }