internal static void Execute(object msg, User user) { Msg_CR_PickUpNpc pickUpNpcMsg = msg as Msg_CR_PickUpNpc; if (null != pickUpNpcMsg) { UserInfo userInfo = user.Info; if (null != userInfo) { Scene scene = user.OwnRoom.GetActiveScene(); if (null != scene) { NpcInfo npc = scene.SceneContext.GetCharacterInfoById(pickUpNpcMsg.npc_id) as NpcInfo; if (null != npc && npc.OwnerId == userInfo.GetId()) { npc.NeedDelete = true; DropOutInfo info = npc.GetAiStateInfo().AiDatas.GetData <DropOutInfo>(); if (null != info) { userInfo.Money += info.Value; } } } } } }
internal void SyncPickUpNpc(CharacterInfo character) { Msg_CR_PickUpNpc msg = new Msg_CR_PickUpNpc(); msg.npc_id = character.GetId(); SendMessage(msg); }