Exemplo n.º 1
0
        internal static void Execute(object msg, User user)
        {
            Msg_CRC_InteractObject ctrlObj = msg as Msg_CRC_InteractObject;

            if (ctrlObj == null)
            {
                return;
            }
            UserInfo userInfo = user.Info;

            if (userInfo == null)
            {
                LogSys.Log(LOG_TYPE.ERROR, "charactor {0} not exist", user.RoleId);
                return;
            }
            Scene scene = user.OwnRoom.GetActiveScene();

            if (null != scene)
            {
                NpcInfo receiver = scene.NpcManager.GetNpcInfo(ctrlObj.receiver_id);
                if (null != receiver)
                {
                }
            }
        }
Exemplo n.º 2
0
    internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem)
    {
        Msg_CRC_InteractObject _msg = msg as Msg_CRC_InteractObject;

        if (null == _msg)
        {
            return;
        }

        int initiatorId = _msg.initiator_id;
        int receiverId  = _msg.receiver_id;
    }
Exemplo n.º 3
0
    internal static void Execute(object msg, RoomPeer peer)
    {
        Msg_CRC_InteractObject _msg = msg as Msg_CRC_InteractObject;

        if (null == _msg)
        {
            return;
        }
        Msg_CRC_InteractObject bd = _msg;

        bd.initiator_id = peer.RoleId;
        peer.BroadCastMsgToRoom(bd);
    }
Exemplo n.º 4
0
        public bool InteractObject()
        {
            if (m_IsObserver)
            {
                if (m_IsFollowObserver)
                {
                    LinkedListNode <UserInfo> node = null;
                    for (node = UserManager.Users.FirstValue; null != node; node = node.Next)
                    {
                        if (node.Value == m_PlayerSelf)
                        {
                            continue;
                        }
                        if (node.Value.GetId() == m_FollowTargetId)
                        {
                            node = node.Next;
                            break;
                        }
                    }
                    if (null == node)
                    {
                        for (node = UserManager.Users.FirstValue; null != node; node = node.Next)
                        {
                            if (node.Value == m_PlayerSelf)
                            {
                                continue;
                            }
                            else
                            {
                                break;
                            }
                        }
                    }
                    if (null != node)
                    {
                        m_FollowTargetId = node.Value.GetId();
                        GfxSystem.PublishGfxEvent("ge_pvpSelfCombatInfo", "ui", node.Value.GetCombatStatisticInfo());

                        /*if (!node.Value.IsDead())
                         * GfxSystemExt.GfxSystem.Instance.MainCamera.FollowCharacter(m_FollowTargetId, GetCharacterPosition);*/
                    }
                }
                return(true);
            }
            bool sendMsg = false;

            if (null != m_PlayerSelf)
            {
                int initiator = m_PlayerSelf.GetId();
                int receiver  = 0;

                //释放控制为低优先级操作
                if (!sendMsg && null != m_PlayerSelf.ControlledObject)
                {
                    receiver = m_PlayerSelf.ControlledObject.GetId();
                    sendMsg  = true;
                }

                if (sendMsg)
                {
                    Msg_CRC_InteractObject builder = new Msg_CRC_InteractObject();
                    //builder.InitiatorId = initiator;
                    builder.receiver_id = receiver;
                    NetworkSystem.Instance.SendMessage(builder);
                }
            }
            return(sendMsg);
        }