Tera.Game.SkillDatabase.GetOrNull C# (CSharp) 메소드

GetOrNull() 공개 메소드

public GetOrNull ( UserEntity user, int skillId ) : UserSkillInfo
user UserEntity
skillId int
리턴 UserSkillInfo
        public UserSkillInfo GetOrNull(UserEntity user, int skillId)
        {
            var raceGenderClass = user.RaceGenderClass;
            foreach (var rgc in raceGenderClass.Fallbacks())
            {
                if (!_userSkilldata.ContainsKey(rgc))
                    continue;

                UserSkillInfo skill;
                if(!_userSkilldata[rgc].TryGetValue(skillId, out skill))
                    continue;

                return skill;
            }
            return null;
        }

Usage Example

예제 #1
0
        public SkillResult(EachSkillResultServerMessage message, EntityTracker entityRegistry, PlayerTracker playerTracker, SkillDatabase skillDatabase)
        {
            Time = message.Time;
            Amount = message.Amount;
            IsCritical = message.IsCritical;
            IsHeal = message.IsHeal;
            SkillId = message.SkillId;

            Source = entityRegistry.GetOrPlaceholder(message.Source);
            Target = entityRegistry.GetOrPlaceholder(message.Target);
            var sourceUser = Source.RootOwner as UserEntity; // Attribute damage dealt by owned entities to the owner
            var targetUser = Target as UserEntity; // But don't attribute damage received by owned entities to the owner

            if (sourceUser != null)
            {
                Skill = skillDatabase.GetOrNull(sourceUser, message.SkillId);
                SourcePlayer = playerTracker.Get(sourceUser.PlayerId);
            }

            if (targetUser != null)
            {
                TargetPlayer = playerTracker.Get(targetUser.PlayerId);
            }
        }
All Usage Examples Of Tera.Game.SkillDatabase::GetOrNull