Ejemplo n.º 1
0
        internal static void Execute(object msg, User user)
        {
            LogSys.Log(LOG_TYPE.DEBUG, "----got summon npc msg!!");
            Msg_CRC_SummonNpc target_msg = msg as Msg_CRC_SummonNpc;

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

            if (userInfo != null)
            {
                Scene scene = user.OwnRoom.GetActiveScene();
                if (scene != null)
                {
                    scene.OnSummonNpc(target_msg);
                }
            }
        }
Ejemplo n.º 2
0
        internal void OnSummonNpc(Msg_CRC_SummonNpc msg)
        {
            CharacterInfo char_Info = SceneContext.GetCharacterInfoById(msg.summon_owner_id);

            if (null == char_Info)
            {
                return;
            }
            Data_Unit data = new Data_Unit();

            data.m_IsEnable = true;
            NpcInfo npc = SummonNpc(msg.npc_id, msg.summon_owner_id, msg.owner_skillid,
                                    msg.link_id, msg.model_prefab, msg.skill_id, msg.ai_id, msg.follow_dead,
                                    msg.pos_x, msg.pos_y, msg.pos_z, msg.ai_params);

            if (npc != null)
            {
                npc.OwnerId  = char_Info.OwnerId;
                msg.npc_id   = npc.GetId();
                msg.owner_id = char_Info.OwnerId;
                NotifyAllUser(msg);
            }
        }