Beispiel #1
0
 void RegisterScriptPacketHandler(Type type)
 {
     MethodInfo[] methods = type.GetMethods(BindingFlags.NonPublic | BindingFlags.Public | BindingFlags.Instance | BindingFlags.Static);
     foreach (MethodInfo method in methods)
     {
         ScriptPacketHandler[] attribs = (ScriptPacketHandler[])method.GetCustomAttributes(typeof(ScriptPacketHandler), true);
         if (attribs.Length == 0)
         {
             continue;
         }
         if (method.IsStatic)
         {
             foreach (ScriptPacketHandler attrib in attribs)
             {
                 ScriptPacketDelegate spd = (ScriptPacketDelegate)Delegate.CreateDelegate(typeof(ScriptPacketDelegate), method);
                 RegisterScriptPacketHandler(attrib.MsgID, spd);
             }
         }
         else
         {
             object obj = GetHandlerObject(type);
             foreach (ScriptPacketHandler attrib in attribs)
             {
                 ScriptPacketDelegate spd = (ScriptPacketDelegate)Delegate.CreateDelegate(typeof(ScriptPacketDelegate), obj, method.Name);
                 RegisterScriptPacketHandler(attrib.MsgID, spd);
             }
         }
     }
 }
Beispiel #2
0
        internal void OnScriptMessage(int msgID, BinReader data)
        {
            ScriptPacketDelegate handler = (ScriptPacketDelegate)m_scriptPacketHandlers[msgID];

            if (handler != null)
            {
                handler(msgID, data);
            }
        }
Beispiel #3
0
 public void RegisterScriptPacketHandler(int msgID, ScriptPacketDelegate spd)
 {
     if (m_scriptPacketHandlers.Contains(msgID))
     {
         ScriptPacketDelegate dele = (ScriptPacketDelegate)m_scriptPacketHandlers[msgID];
         m_scriptPacketHandlers[msgID] = dele + spd;
     }
     else
     {
         m_scriptPacketHandlers[msgID] = spd;
     }
 }
 internal void OnScriptMessage(int msgID, BinReader data)
 {
     try {
         ScriptPacketDelegate handler = (ScriptPacketDelegate)m_scriptPacketHandlers[msgID];
         if (handler != null)
         {
             handler(msgID, data);
         }
     } catch (Exception exp) {
         DebugLogger.Log("", exp);
     }
 }
Beispiel #5
0
        public void UnregisterScriptPacketHandler(int msgID, ScriptPacketDelegate spd)
        {
            ScriptPacketDelegate dele = (ScriptPacketDelegate)m_scriptPacketHandlers[msgID];

            m_scriptPacketHandlers[msgID] = dele - spd;
        }