示例#1
0
    internal static void Execute(object msg, NetConnection conn, NetworkSystem networkSystem)
    {
        Msg_RC_NpcTarget targetmsg = msg as Msg_RC_NpcTarget;

        if (null == targetmsg)
        {
            return;
        }
        LogSystem.Debug("NpcTarget, npc:{0} target:{1} robot:{2} {3}", targetmsg.npc_id, targetmsg.target_id, networkSystem.Robot.LobbyNetworkSystem.User, LobbyRobot.Robot.GetDateTime());
    }
        private void OnNpcTargetChange(NpcInfo npc)
        {
            Scene scene = npc.SceneContext.CustomData as Scene;

            if (null != scene)
            {
                Msg_RC_NpcTarget npcTargetBuilder = DataSyncUtility.BuildNpcTargetMessage(npc);
                if (null != npcTargetBuilder)
                {
                    scene.NotifyAreaUser(npc, npcTargetBuilder);
                }
            }
        }
示例#3
0
        internal static Msg_RC_NpcTarget BuildNpcTargetMessage(NpcInfo npc)
        {
            Msg_RC_NpcTarget npcFaceTargetBuilder = null;
            NpcAiStateInfo   data = npc.GetAiStateInfo();

            if (null != data && data.Target > 0)
            {
                npcFaceTargetBuilder           = new Msg_RC_NpcTarget();
                npcFaceTargetBuilder.npc_id    = npc.GetId();
                npcFaceTargetBuilder.target_id = data.Target;
            }
            return(npcFaceTargetBuilder);
        }
示例#4
0
        internal static void SyncNpcAiStateToUser(NpcInfo npc, User user)
        {
            Msg_RC_NpcMove   npcMoveBuilder       = BuildNpcMoveMessage(npc);
            Msg_RC_NpcTarget npcFaceTargetBuilder = BuildNpcTargetMessage(npc);

            if (null != npcMoveBuilder)
            {
                user.SendMessage(npcMoveBuilder);
            }
            if (null != npcFaceTargetBuilder)
            {
                user.SendMessage(npcFaceTargetBuilder);
            }
        }
示例#5
0
        private void NpcEnterCampSight(NpcInfo npc, int campid)
        {
            Msg_RC_NpcEnter bder = DataSyncUtility.BuildNpcEnterMessage(npc);

            NotifyCampUsers(campid, bder);
            Msg_RC_SyncProperty propBuilder = DataSyncUtility.BuildSyncPropertyMessage(npc);

            NotifyCampUsers(campid, propBuilder);
            Msg_RC_NpcMove npcMoveBuilder = DataSyncUtility.BuildNpcMoveMessage(npc);

            NotifyCampUsers(campid, npcMoveBuilder);
            Msg_RC_NpcTarget npcFaceTargetBuilder = DataSyncUtility.BuildNpcTargetMessage(npc);

            if (npcFaceTargetBuilder != null)
            {
                NotifyCampUsers(campid, npcFaceTargetBuilder);
            }
        }
示例#6
0
        internal static void SyncNpcAiStateToCaredUsers(NpcInfo npc)
        {
            Scene scene = npc.SceneContext.CustomData as Scene;

            if (null != scene)
            {
                Msg_RC_NpcMove   npcMoveBuilder       = BuildNpcMoveMessage(npc);
                Msg_RC_NpcTarget npcFaceTargetBuilder = BuildNpcTargetMessage(npc);

                if (null != npcMoveBuilder)
                {
                    scene.NotifyAreaUser(npc, npcMoveBuilder, false);
                }
                if (null != npcFaceTargetBuilder)
                {
                    scene.NotifyAreaUser(npc, npcFaceTargetBuilder, false);
                }
            }
        }