示例#1
0
        public override void Handle(GameSession session, PacketReader packet)
        {
            byte function = packet.ReadByte();

            switch (function)
            {
            case 0:
                long rodItemUid = packet.ReadLong();     // Testing RodItemId: 32000055
                session.Send(PacketWriter.Of(SendOp.FISHING).WriteHexString("04 00 08 00 00 00 0C F7 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0B F8 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0E F6 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0D F7 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0C F8 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0F F6 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0E F7 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00 0D F8 10 00 81 96 98 00 19 00 00 00 98 3A 00 00 01 00"));
                //session.Send(GuideObjectPacket.Bracket(session.FieldPlayer));
                session.Send(FishingPacket.Start(rodItemUid));
                break;

            case 1:
                session.Send(FishingPacket.Stop());
                //session.Send(GuideObjectPacket.Remove(session.FieldPlayer));
                break;

            case 8:     // Complete Fishing
                // When fishing manually, 0 = success minigame, 1 = no minigame
                // When auto-fishing, it seems to send 0, gets back failed fishing response
                // Then it sends 1 and gets back 0x04 response before restarting fishing again
                bool completed = packet.ReadBool();     // Completed without minigame
                // Give fish!
                session.Send(FishingPacket.CatchFish(10000001, 100, true));
                break;

            case 10:     // Failed minigame
                break;
            }
        }
示例#2
0
 private static void HandleStop(GameSession session)
 {
     session.Send(FishingPacket.Stop());
     session.FieldManager.BroadcastPacket(GuideObjectPacket.Remove(session.Player.Guide));
     session.FieldManager.RemoveGuide(session.Player.Guide);
     session.Player.Guide = null; // remove guide from player
 }