public List <PeEntity> GetEntitiesFriendly(Vector3 pos, float radius, int playerID, int protoID, bool isDeath, PeEntity exclude = null) { m_Tmp.Clear(); int n = m_Entities.Count; for (int i = 0; i < n; i++) { PeEntity entity = m_Entities[i]; if (entity == null || (entity.Equals(exclude)) || entity.IsDeath() != isDeath) { continue; } int pid1 = playerID; int pid2 = (int)entity.GetAttribute(AttribType.DefaultPlayerID); if (pid1 == pid2 && (pid1 != 4 || protoID == entity.ProtoID)) { if (PETools.PEUtil.SqrMagnitudeH(entity.position, pos) <= radius * radius) { m_Tmp.Add(m_Entities[i]); } } } return(m_Tmp); }
public bool NearEntityModel(Vector3 pos, float radius, int playerID, bool isDeath, PeEntity exclude = null) { int n = m_Entities.Count; float sqrRadius = radius * radius; for (int i = 0; i < n; i++) { PeEntity entity = m_Entities[i]; if (entity == null || (entity.Equals(exclude)) || !entity.hasView || entity.IsDeath() != isDeath) { continue; } if (NpcRobotDb.Instance != null && entity.Id == NpcRobotDb.Instance.mID) { continue; } int pid = (int)entity.GetAttribute(AttribType.DefaultPlayerID); if (PETools.PEUtil.SqrMagnitudeH(entity.position, pos) <= sqrRadius && ForceSetting.Instance.AllyPlayer(playerID, pid)) { return(true); } } return(false); }
public List <PeEntity> GetEntities(Vector3 pos, float radius, int playerID, bool isDeath, PeEntity exclude = null) { m_Tmp.Clear(); int n = m_Entities.Count; for (int i = 0; i < n; i++) { PeEntity entity = m_Entities[i]; if (entity == null || (entity.Equals(exclude)) || entity.IsDeath() != isDeath) { continue; } int pid = (int)entity.GetAttribute(AttribType.DefaultPlayerID); if ((PETools.PEUtil.SqrMagnitudeH(entity.position, pos) <= radius * radius && ForceSetting.Instance.AllyPlayer(playerID, pid)) || PETools.PEUtil.CanCordialReputation(playerID, pid) ) { m_Tmp.Add(m_Entities[i]); } } return(m_Tmp); }
bool Match(PeEntity entity, Vector3 pos, float radius, int playerID, bool isDeath, PeEntity exclude = null) { if (entity == null || (entity.Equals(exclude)) || entity.IsDeath() != isDeath) { return(false); } int pid = (int)entity.GetAttribute(AttribType.DefaultPlayerID); if (ForceSetting.Instance.AllyPlayer(playerID, pid) && PETools.PEUtil.SqrMagnitudeH(entity.position, pos) <= radius * radius) { return(true); } return(false); }
void OnFollowerEntityDestroy(SkillSystem.SkEntity entity) { if (entity == null || entity.Equals(null)) { return; } PeEntity _peEntity = entity.GetComponent <PeEntity>(); if (_peEntity == null || _peEntity.Equals(null) || _peEntity.NpcCmpt == null || _peEntity.NpcCmpt.Equals(null)) { return; } if (ContainsServant(_peEntity.NpcCmpt)) { RemoveServant(_peEntity.NpcCmpt); } }
bool MatchFriendly(PeEntity entity, Vector3 pos, float radius, int playerID, int prototID, bool isDeath, PeEntity exclude = null) { if (entity == null || (entity.Equals(exclude)) || entity.IsDeath() != isDeath) { return(false); } int pid1 = playerID; int pid2 = (int)entity.GetAttribute(AttribType.DefaultPlayerID); if (pid1 == pid2 && (pid1 != 4 || prototID == entity.ProtoID)) { if (PETools.PEUtil.SqrMagnitudeH(entity.position, pos) <= radius * radius) { return(true); } } return(false); }
private void Update() { if (!SteamManager.Initialized) { return; } if (!m_bRequestedStats) { // Is Steam Loaded? if no, can't get stats, done if (!SteamManager.Initialized) { m_bRequestedStats = true; return; } // If yes, request our stats bool bSuccess = SteamUserStats.RequestCurrentStats(); // This function should only return false if we weren't logged in, and we already checked that. // But handle it being false again anyway, just ask again later. m_bRequestedStats = bSuccess; } if (!m_bStatsValid) { return; } #if UNITY_EDITOR if (ResetAchivements) { ResetAllAchievements(); ResetAllStats(); ResetAchivements = false; } if (Test) { OnGameStateChange(AchivementType); Test = false; } #endif //获取当前玩家entity if (Pathea.PeCreature.Instance != null && Pathea.PeCreature.Instance.mainPlayer != null) { if (!m_Maiplayer || !m_Maiplayer.Equals(Pathea.PeCreature.Instance.mainPlayer)) { m_Maiplayer = Pathea.PeCreature.Instance.mainPlayer; m_playerPkg = (m_Maiplayer.packageCmpt as Pathea.PlayerPackageCmpt); if (m_playerPkg != null) { m_playerPkg.package._playerPak.changeEventor.Subscribe(OnItemChange); } } } if (m_Maiplayer && Pathea.Money.Digital) { if (m_Maiplayer.packageCmpt != null && m_Maiplayer.packageCmpt.money != null && m_Maiplayer.packageCmpt.money.current >= 10000) { //完成成就:富可敌国 OnGameStateChange(Eachievement.Richer); } } // Get info from sources // Evaluate achievements int achedNum = 0; for (int i = 0; i < m_Achievements.Length; i++) { if (m_Achievements[i].m_bAchieved) { achedNum++; continue; } if (m_Stats[(int)m_Achievements[i].m_eAchievementID].IsAccomplish()) { UnlockAchievement(m_Achievements[i]); } } //全部成就完成 if (achedNum == ((int)Eachievement.Max - 2)) { if (!m_Achievements[(int)Eachievement.ALL].m_bAchieved) { UnlockAchievement(m_Achievements[(int)Eachievement.ALL]); } } //Store stats by self if (m_bStoreStats) { //保存更改 bool bSuccess = false;//SteamUserStats.StoreStats(); for (int i = 0; i < m_Achievements.Length; i++) { if (string.IsNullOrEmpty(m_StatNames[(int)m_Achievements[i].m_eStatID])) { continue; } bSuccess = StatsUserPrefs.SaveIntValue(m_StatNames[(int)m_Achievements[i].m_eStatID], m_Stats[(int)m_Achievements[i].m_eAchievementID].m_StatValue); } SteamUserStats.StoreStats(); // If this failed, we never sent anything to the server, try // again later. m_bStoreStats = !bSuccess; } }