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(); }
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; } }
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)); } }
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); }
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; }
public IPacketHandler GetHandler(RecvOps opcode) { short recvOpCode = (short)opcode; return GetHandler(recvOpCode); }
protected void AddHandler(RecvOps operationCode, PacketHandler handler) { mProcessor.Add(operationCode, handler); }
public static void Remove(RecvOps opcode) { m_handlers[(short)opcode] = null; }
public static IPacketHandler Get(RecvOps opcode) { return m_handlers[(short)opcode]; }
public static void Add(RecvOps opcode, IPacketHandler handler) { m_handlers[(short)opcode] = handler; }
public void Add(RecvOps operationCode, PacketHandler handler) { mHandlers[(short)operationCode] = handler; mCount++; }