Esempio n. 1
0
        public void OnPacket(RecvOps opCode, CInPacket p, Character c)
        {
            if (c.Stats.nHP <= 0)
            {
                return;
            }

            var dwID = p.Decode4();
            var item = this[dwID];

            if (item is null)
            {
                return;
            }

            switch (opCode)
            {
            case RecvOps.CP_ReactorHit:
                item.Hit(c, p);
                break;

            case RecvOps.CP_ReactorTouch:
                item.Touch(c, p);
                break;
            }
            var provider = ServerApp.Container.Resolve <ScriptManager>();
            var script   = provider.GetReactorScript
                               (item.sName, item, c.Socket, opCode == RecvOps.CP_ReactorHit);

            script.Execute();
        }
Esempio n. 2
0
        public void OnPetPacket(RecvOps opCode, CInPacket p)
        {
            switch (opCode)
            {
            case RecvOps.CP_PetDropPickUpRequest:

                break;

            case RecvOps.CP_PetInteractionRequest:

                break;

            case RecvOps.CP_UserActivatePetRequest:

                break;

            case RecvOps.CP_UserDestroyPetItemRequest:

                break;

            default:
                var liPetLockerSN = p.Decode8();

                var item = Pets.FirstOrDefault(pet => pet.liPetLockerSN == liPetLockerSN);

                if (item is null)
                {
                    return;
                }

                switch (opCode)
                {
                case RecvOps.CP_PetMove:
                    item.Move(p);
                    break;

                case RecvOps.CP_PetStatChangeItemUseRequest:                                 //  CPet::OnNameChanged(v4, iPacket);
                    break;

                case RecvOps.CP_PetUpdateExceptionListRequest:
                    break;

                case RecvOps.CP_PetAction:
                case RecvOps.CP_PetActionCommand:

                    var tick    = p.Decode4();
                    var nType   = p.Decode1();
                    var nAction = p.Decode1();
                    var sMsg    = p.DecodeString();                                  // rebroadcasting this is bad practice

                    Parent.Field.Broadcast(item.PetActionCommand((PetActType)nType, nAction, true, true), Parent);

                    break;
                }
                break;
            }
        }
Esempio n. 3
0
 void RegisterHandler(RecvOps opcode, IPacketHandler handler)
 {
     short op = (short)opcode;
     try
     {
         handlers[op] = handler;
     }
     catch (Exception)
     {
         Console.WriteLine("Error registering packet handler " + Enum.GetName(typeof(RecvOps), op));
     }
 }
Esempio n. 4
0
 public static bool FilterRecvOpCode(RecvOps recvOp)
 {
     switch (recvOp)
     {
     case RecvOps.CP_ClientDumpLog:
     case RecvOps.CP_ExceptionLog:
     case RecvOps.CP_UserMove:
     case RecvOps.CP_MobMove:
     case RecvOps.CP_UserEmotion:
         return(true);
     }
     return(false);
 }
Esempio n. 5
0
 public IPacketHandler GetHandler(RecvOps opcode)
 {
     short op = (short)opcode;
     try
     {
         if (op > handlers.Length)
             return null;
         IPacketHandler handler = handlers[op];
         if (handler != null)
             return handler;
     }
     catch (NullReferenceException)
     {
         //    Logger.Write(Logger.LogTypes.Exception, "NRE{0}", nre);
     }
     catch (Exception)
     {
         //Logger.Write(Logger.LogTypes.Exception, "uh oh {0}", e);
     }
     return null;
 }
Esempio n. 6
0
 public IPacketHandler GetHandler(RecvOps opcode)
 {
     short recvOpCode = (short)opcode;
     return GetHandler(recvOpCode);
 }
Esempio n. 7
0
 protected void AddHandler(RecvOps operationCode, PacketHandler handler)
 {
     mProcessor.Add(operationCode, handler);
 }
Esempio n. 8
0
 public static void Remove(RecvOps opcode)
 {
     m_handlers[(short)opcode] = null;
 }
Esempio n. 9
0
 public static IPacketHandler Get(RecvOps opcode)
 {
     return m_handlers[(short)opcode];
 }
Esempio n. 10
0
 public static void Add(RecvOps opcode, IPacketHandler handler)
 {
     m_handlers[(short)opcode] = handler;
 }
Esempio n. 11
0
 public void Add(RecvOps operationCode, PacketHandler handler)
 {
     mHandlers[(short)operationCode] = handler;
     mCount++;
 }