Пример #1
0
        static object PerformMemberwiseClone(ref object o)
        {
            var ins = new UnityEngine.NetworkMessageInfo();

            ins = (UnityEngine.NetworkMessageInfo)o;
            return(ins);
        }
Пример #2
0
        static void WriteBackInstance(CSHotFix.Runtime.Enviorment.AppDomain __domain, StackObject *ptr_of_this_method, IList <object> __mStack, ref UnityEngine.NetworkMessageInfo instance_of_this_method)
        {
            ptr_of_this_method = ILIntepreter.GetObjectAndResolveReference(ptr_of_this_method);
            switch (ptr_of_this_method->ObjectType)
            {
            case ObjectTypes.Object:
            {
                __mStack[ptr_of_this_method->Value] = instance_of_this_method;
            }
            break;

            case ObjectTypes.FieldReference:
            {
                var ___obj = __mStack[ptr_of_this_method->Value];
                if (___obj is ILTypeInstance)
                {
                    ((ILTypeInstance)___obj)[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    var t = __domain.GetType(___obj.GetType()) as CLRType;
                    t.SetFieldValue(ptr_of_this_method->ValueLow, ref ___obj, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.StaticFieldReference:
            {
                var t = __domain.GetType(ptr_of_this_method->Value);
                if (t is ILType)
                {
                    ((ILType)t).StaticInstance[ptr_of_this_method->ValueLow] = instance_of_this_method;
                }
                else
                {
                    ((CLRType)t).SetStaticFieldValue(ptr_of_this_method->ValueLow, instance_of_this_method);
                }
            }
            break;

            case ObjectTypes.ArrayReference:
            {
                var instance_of_arrayReference = __mStack[ptr_of_this_method->Value] as UnityEngine.NetworkMessageInfo[];
                instance_of_arrayReference[ptr_of_this_method->ValueLow] = instance_of_this_method;
            }
            break;
            }
        }
Пример #3
0
        public void OnHitTagBubble(Distance::Events.ReverseTag.HitTagBubble.Data data, UnityEngine.NetworkMessageInfo info)
        {
            Log.Debug("OnHitTagBubble!");
            if (IsTagBubbleLocked())
            {
                Log.Debug("Bubble locked!");
                return;
            }

            var playerToTag = GetModePlayers().Find((player) => player.UnityPlayer == info.sender);

            // GetModePlayers().Find((player) => player.Index == data.index_);
            if (playerToTag == null)
            {
                Log.Debug($"Player {data.index_} : {info.sender.guid} does not exist!");
                return;
            }

            Log.Debug("Tagging!");

            TagPlayer(playerToTag);
        }
Пример #4
0
 public void RPCChatMessage(string message, UnityEngine.NetworkMessageInfo info)
 {
     messages_.Add(new Message(message, playerManager_.GetNoirNetworkPlayer(info.sender).name, false));
     EventManager.callOnNetEvent(Events.Net.NEW_MESSAGE);
 }