public void Refresh() { ServantLeaderCmpt loader = GameUI.Instance.mMainPlayer.GetCmpt <ServantLeaderCmpt>(); if (loader != leaderCmpt) { if (leaderCmpt != null) { leaderCmpt.changeEventor.Unsubscribe(ServentChange); } leaderCmpt = loader; leaderCmpt.changeEventor.Subscribe(ServentChange); //playerPackageCmpt = GameUI.Instance.mMainPlayer.GetCmpt<PlayerPackageCmpt>(); } GetServentCmpt(); ReflashSkill(); RefreshNpcAbnormal(); if (npcCmpt == null) { return; } if (equipmentCmpt != null) { UpdateEquipAndTex(); } if (packageCmpt != null) { Reflashpackage(); } }
public NpcCmpt GetNeedReviveServant() { ServantLeaderCmpt leader = GameUI.Instance.mMainPlayer.GetCmpt <ServantLeaderCmpt>(); NpcCmpt mNpc = leader.GetServant((int)mCurrentIndex); if (mNpc == null) { return(null); } if (mNpc.Alive.isDead) { return(mNpc); } return(null); }
public static bool SetFollower(this PeEntity entity, bool bFlag, int index = -1) { ServantLeaderCmpt masterCmpt = PeCreature.Instance.mainPlayer.GetCmpt <ServantLeaderCmpt>(); NpcCmpt npcCmpt = entity.NpcCmpt; if (!bFlag) { return(masterCmpt.RemoveServant(npcCmpt)); } else { //set floower succeed talk entity.NpcCmpt.AddTalkInfo(ENpcTalkType.Conscribe_succeed, ENpcSpeakType.TopHead); if (index == -1) { return(masterCmpt.AddServant(npcCmpt)); } return(masterCmpt.AddServant(npcCmpt, index)); } }
void OnSetBtn() { if (!m_Cancel) {// add/replace follower if (HandlePerson != null) { if (m_Replace) { // follower if (PeGameMgr.IsMulti) { if (m_CurNpc != null) { ServantLeaderCmpt masterCmpt = PeCreature.Instance.mainPlayer.GetCmpt <ServantLeaderCmpt>(); NpcCmpt npcCmpt = m_CurNpc.GetComponent <NpcCmpt>(); if (masterCmpt == npcCmpt.Master) { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.RequestDismissNpc(m_CurNpc.Id); PlayerNetwork.RequestNpcRecruit(HandlePerson.ID); } } else { //--to do: log } } } else { if (m_CurNpc != null) { m_CurNpc.SetFollower(false); } HandlePerson.FollowMe(m_HeroIndex); } } else { //check if can add person if (PeGameMgr.IsMulti) { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.RequestNpcRecruit(HandlePerson.ID); } } else { HandlePerson.FollowMe(m_HeroIndex); } } } } else {// remove follower if (m_CurNpc != null) { if (PeGameMgr.IsMulti) { if (null != PlayerNetwork.mainPlayer) { PlayerNetwork.RequestDismissNpc(m_CurNpc.Id); } } else { m_CurNpc.SetFollower(false); } } } }
Vector3 GetMasterPosition(ServantLeaderCmpt leader) { return(leader.GetComponent <PeTrans>().position); }