public NpcMgr GetNpcMgr(NpcActionStatus npcActionStatus) { NpcMgr npcMgr = null; m_npcMgrDict.TryGetValue(npcActionStatus, out npcMgr); return(npcMgr); }
protected override void Process() { if (NpcMgr.HasChanges) { string npc_filename = Paths.GetNPCData(); setStatus("Saving NPC Data...", false); BackupHelper.Create(npc_filename); NpcMgr.Save(npc_filename, npc_Progress); } // if (ItemMgr.HasChanges) { string item_filename = Paths.GetItemData(); setStatus("Saving Item Data...", false); BackupHelper.Create(item_filename); ItemMgr.Save(item_filename, item_Progress); } // if (ScriptMgr.HasChanges) { string ai_filename = Paths.GetAIData(); setStatus("Compiling AI Scripts...", true); BackupHelper.Create(ai_filename); is_compiled = false; CompilerResult = ScriptMgr.Compile(ai_Progress); } }
/// <summary> /// 玩家断链接 /// </summary> public override void OnMessage(NetPeer peer, NetDataReader reader) { var npcId = peer.ConnectId; var npcView = NpcMgr.GetNpc(npcId); NpcMgr.RemoveNpc(npcId); var npcs = NpcMgr.mNpcs.Where(r => r.Key != npcId); if (npcs.Count() > 0) { var dw = new NetDataWriter(); dw.Put((ushort)Protocal.Disconnect); dw.Put(npcId); foreach (var de in npcs) { var mPeer = de.Value.mPeer; if (mPeer != null && mPeer.ConnectionState == ConnectionState.Connected) { mPeer.Send(dw, DeliveryMethod.ReliableOrdered); } } } }
//lz-2016.08.15 增加基地NPC召回按钮 void OnCallBtn(GameObject go) { if (null != m_RefNpc && null != m_RefNpc.NPC) { //m_RefNpc.NPC ECsNpcState state; if (!NpcMgr.CallBackColonyNpcToPlayer(m_RefNpc.NPC, out state)) { switch (state) { case ECsNpcState.None: break; case ECsNpcState.Working: CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(PELocalization.GetString(82201077), m_RefNpc.FullName)); break; case ECsNpcState.InMission: CSUI_MainWndCtrl.ShowStatusBar(CSUtils.GetNoFormatString(PELocalization.GetString(82201078), m_RefNpc.FullName)); break; case ECsNpcState.OutOfRadiu: CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(82201079)); break; } } else { CSUI_MainWndCtrl.ShowStatusBar(PELocalization.GetString(82201080)); } } }
public void RemoveNpcAction(NpcActionStatus npcActionStatus, int npcId) { NpcMgr npcMgr = GetNpcMgr(npcActionStatus); if (npcMgr == null) { return; } npcMgr.RemoveNpcAction(npcId); }
public int GetNpcCount(NpcActionStatus npcActionStatus) { NpcMgr npcMgr = GetNpcMgr(npcActionStatus); if (npcMgr == null) { return(0); } return(npcMgr.Count); }
public Transform GetNpcParentTransform(NpcActionStatus npcActionStatus) { NpcMgr npcMgr = GetNpcMgr(npcActionStatus); if (npcMgr == null) { return(null); } return(npcMgr.NpcParentTransform); }
protected override void InitOnceInfo() { base.InitOnceInfo(); m_RedHeartPickRecord = gameObject.AddComponent <RedHeartPickRecord>(); m_NpcMgr = Global.gApp.gSystemMgr.GetNpcMgr(); m_EnemyTypeCount = m_EnemyPath.Length; m_ShowNode = GameObject.Find("binansuo_03"); m_ControllerNode = m_ShowNode.transform.Find("ControllerNode").gameObject; m_ControllerNode.SetActive(true); m_FightNode = m_ControllerNode.transform.Find("FightNode"); m_FightNode.gameObject.SetActive(true); m_MainCamera = Camera.main; Global.gApp.gGameAdapter.AdaptCamera(ref m_MainCamera); m_NoTaskNpcBornNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/Dynamic"); m_TaskNpcBronNode = m_ControllerNode.transform.Find("FightNode/NPCBornNode/Static"); m_NpcNode = m_ControllerNode.transform.Find("FightNode/NpcNode"); m_DrstrangeIconBtn.button.onClick.AddListener(OpenWeaponRaiseUi); m_RecycleIconBtn.button.onClick.AddListener(OpenMatBg); Transform adFollowNode = m_ControllerNode.transform.Find("FightNode/AdNode"); AdIconBtn.button.onClick.AddListener(RespondBillboardClick); AdIcon.gameObject.GetComponent <FollowNode>().SetFloowNode(adFollowNode); m_NameBg.button.onClick.AddListener(OpenDetail); m_ResourceBtn.button.onClick.AddListener(OpenResourceDetail); m_OldWamonIconBtn.button.onClick.AddListener(OpenCampTaskDetails); m_Buff.button.onClick.AddListener(OpenCampBuff); m_BadgeIconBtn.button.onClick.AddListener(OpenBadge); //检测npc是否离开 m_NpcMgr.NpcLeave(); //获取营地点位配置list var campsitePoints = m_FightNode.GetComponentsInChildren <CampsiteNpcPoint>(true); for (int i = 0; i < campsitePoints.Length; i++) { var point = campsitePoints[i]; int linkDataIndex = point.PointId - 1; if (CampsiteMgr.singleton.HasPoint(linkDataIndex)) { point.SetValid(linkDataIndex); } else { point.SetInvalid(); } } DelayCallBack delayCallBack = gameObject.AddComponent <DelayCallBack>(); delayCallBack.SetCallTimes(9999999); delayCallBack.SetAction(FreshDropRedHeartData, 30, true); }
public void AddNpcMgr(NpcMgr npcMgr) { if (npcMgr == null) { return; } if (m_npcMgrDict.ContainsKey(npcMgr.NpcActionStatus) == false) { m_npcMgrDict.Add(npcMgr.NpcActionStatus, npcMgr); } }
public SystemMgr() { m_WeaponMgr = new WeaponMgr(); m_AttrMgr = new BaseAttrMgr(); m_PassMgr = new PassMgr(); m_QuestMgr = new QuestMgr(); m_MiscMgr = new MiscMgr(); m_SkillMgr = new SkillMgr(); m_NewbieGuideMgr = new NewbieGuideMgr(); m_NpcMgr = new NpcMgr(); m_CampGuidMgr = new CampGuidMgr(); }
void CheckMoveNPCByName(string msg) { string[] subStr = msg.Split(','); if (subStr.Length > 1 && subStr[1].Contains("come here")) { PeEntity entity = EntityMgr.Instance.Get(subStr[0]); if (null != entity) { NpcMgr.CallBackNpcToMainPlayer(entity); } } }
private void InitCampBuff() { NpcMgr npcMgr = Global.gApp.gSystemMgr.GetNpcMgr(); CampIncAtkA = npcMgr.GetBuffParam(BuffType.buff_atkNpc.ToString())[0] - 1; CampIncAtkB = npcMgr.GetBuffParam(BuffType.buff_atk.ToString())[0] - 1;; CampIncAtkSpeed = npcMgr.GetBuffParam(BuffType.buff_fireSpeed.ToString())[0] - 1;; CampSecondWpnIncAtk = npcMgr.GetBuffParam(BuffType.buff_second.ToString())[0] - 1;; CampPetIncAtk = npcMgr.GetBuffParam(BuffType.buff_robot.ToString())[0] - 1; CampCritExplodDamageParam = npcMgr.GetBuffParam(BuffType.buff_critBoom.ToString())[0] / 100.0f; CampCritFiredBuffDamageParam = npcMgr.GetBuffParam(BuffType.buff_critIgnition.ToString())[0] / 100.0f; CampKillARate = npcMgr.GetBuffParam(BuffType.buff_Beheading.ToString())[0];; CampKillBRate = npcMgr.GetBuffParam(BuffType.buff_seckill.ToString())[0];; }
public void SyncNpcInfo() { var enumerator = m_npcMgrDict.GetEnumerator(); while (enumerator.MoveNext()) { NpcMgr mgr = enumerator.Current.Value; if (mgr != null) { mgr.SyncNpcInfo(); } } enumerator.Dispose(); }
public void AddNpcAction(NpcAction npcAction) { if (System.Object.ReferenceEquals(npcAction, null)) { return; } NpcMgr npcMgr = GetNpcMgr(npcAction.NpcActionStatus); if (System.Object.ReferenceEquals(npcMgr, null)) { return; } npcMgr.AddNpcAction(npcAction); }
private static void VVV(Station station, Transform stationTrans, System.UInt16 stationIndex) { NpcMgr npcMgr = null; int npcActionStatusCount = stationTrans.childCount; for (int i = 0; i < npcActionStatusCount; ++i) { npcMgr = new NpcMgr(); Transform npcActionStatusTrans = stationTrans.GetChild(i); NpcActionStatus npcActionStatus = (NpcActionStatus)System.Enum.Parse(typeof(NpcActionStatus), npcActionStatusTrans.gameObject.name); npcMgr.NpcActionStatus = npcActionStatus; npcMgr.NpcParentTransform = npcActionStatusTrans; station.AddNpcMgr(npcMgr); NNN(npcMgr, npcActionStatusTrans, stationIndex); } }
private static void NNN(NpcMgr npcMgr, Transform npcActionStatusTrans, System.UInt16 stationIndex) { int npcCount = npcActionStatusTrans.childCount; for (int i = 0; i < npcCount; ++i) { Transform npcTrans = npcActionStatusTrans.GetChild(i); NpcAction npcAction = npcTrans.GetComponent <NpcAction> (); if (npcAction == null) { continue; } // int npcId = Interlocked.Increment(ref StationEngine.StartNpcId); //原子操作 // npcAction.NpcId = npcId; npcAction.StationIndex = stationIndex; npcMgr.AddNpcAction(npcAction); } }
public override void OnMessage(NetPeer peer, NetDataReader reader) { var npcid = reader.GetLong(); reader.GetBytes(_readDirtyFlags, 1); var npcView = NpcMgr.GetNpc(npcid); if (npcView != null) { if ((0x1 & _readDirtyFlags[0]) != 0) { npcView.position = reader.GetVector3(); } if ((0x2 & _readDirtyFlags[0]) != 0) { npcView.rotation = reader.GetQuaternion(); } } base.IntactTransterMessage(peer, reader); }
//同步Npc信息 public void SyncNpcInfo(PlayerActor[] stationPlayerActor) { NpcMgr mgr = m_npcMgrDict[NpcActionStatus.EnterStationTrainUp_NpcActionStatus]; if (mgr != null) { mgr.SyncNpcInfo(stationPlayerActor[0]); } mgr = m_npcMgrDict[NpcActionStatus.EnterStationTrainDown_NpcActionStatus]; if (mgr != null) { mgr.SyncNpcInfo(stationPlayerActor[1]); } mgr = m_npcMgrDict[NpcActionStatus.ExitStationTrainUp_NpcActionStatus]; if (mgr != null) { mgr.SyncNpcInfo(stationPlayerActor[2]); } mgr = m_npcMgrDict[NpcActionStatus.ExitStationTrainDown_NpcActionStatus]; if (mgr != null) { mgr.SyncNpcInfo(stationPlayerActor[3]); } }
public override void OnMessage(NetPeer peer, NetDataReader reader) { var npcid = peer.ConnectId; var list = ConfigMgr.HeroSpawnPoints.Values.ToList(); var index = AppUtil.Random(0, list.Count); var spawnPos = list[index]; var npcView = new NPCView(npcid, NpcType.Player); npcView.mPeer = peer; npcView.position = spawnPos; Log.Warn("ReqUserInfoHandler Player:> " + npcid + " SpwanPos:> " + spawnPos); var dw = new NetDataWriter(); FillInfo(ref dw, Protocal.RetNewPlayer, npcView); var npcs = NpcMgr.mNpcs; foreach (var de in npcs) { var mPeer = de.Value.mPeer; if (mPeer != null && mPeer.ConnectionState == ConnectionState.Connected) { mPeer.Send(dw, DeliveryMethod.ReliableOrdered); } } //------------------------------------------------------------------------------------ FillInfo(ref dw, Protocal.ReqUserInfo, npcView); peer.Send(dw, DeliveryMethod.ReliableOrdered); ///添加到NPC管理器 NpcMgr.AddNpc(npcid, npcView); }
public NpcItemStrategy(NpcMgr mgr) { this.mgr = mgr; }
protected override void Process() { string npc_filename = Paths.GetNPCData(); string item_filename = Paths.GetItemData(); string ai_filename = Paths.GetAIData(); string geo_filename = Paths.GetNpcPositionData(); // LoadedNPC = false; LoadedItem = false; LoadedAI = false; LoadedGeo = false; LoadedAll = false; LoadedAny = false; // if (cancelPending) { return; } if (File.Exists(npc_filename)) { setStatus("Loading NPC Data...", false); NpcMgr.Load(npc_filename, npc_Progress); LoadedNPC = true; LoadedAny = true; } // if (cancelPending) { return; } if (File.Exists(item_filename)) { setStatus("Loading Item Data...", false); ItemMgr.Load(item_filename, item_Progress); LoadedItem = true; LoadedAny = true; } // if (cancelPending) { return; } if (File.Exists(ai_filename)) { setStatus("Loading AI Scripts...", false); ScriptParser parser = new ScriptParser(); parser.OnProgress += ai_Progress; parser.Load(ai_filename); ScriptMgr.Header = parser.Header; ScriptMgr.Items = parser.Items; LoadedAI = true; LoadedAny = true; } // if (cancelPending) { return; } if (File.Exists(geo_filename)) { setStatus("Loading NPC Position Data...", false); GeoMgr.Load(geo_filename, geo_Progress); LoadedGeo = true; LoadedAny = true; } // LoadedAll = (LoadedNPC && LoadedItem && LoadedAI && LoadedGeo); }