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); } } }
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); } }