Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- public bool AddSkill(short skillVNum)
- {
- Skill skillinfo = ServerManager.GetSkill(skillVNum);
- if (skillinfo == null)
- {
- Session.SendPacket(GenerateSay(Language.Instance.GetMessageFromKey("SKILL_DOES_NOT_EXIST"), 11));
- return false;
- }
- if (skillinfo.SkillVNum < 200)
- {
- if (Skills.GetAllItems()
- .Any(s => skillinfo.CastId == s.Skill.CastId && s.Skill.SkillVNum < 200 && s.Skill.UpgradeSkill > skillinfo.UpgradeSkill))
- {
- // Character already has a better passive skill of the same type.
- return false;
- }
- foreach (CharacterSkill skill in Skills.GetAllItems().Where(s => skillinfo.CastId == s.Skill.CastId && s.Skill.SkillVNum < 200))
- {
- Skills.Remove(skill.SkillVNum);
- }
- }
- else
- {
- if (Skills.ContainsKey(skillVNum))
- {
- Session.SendPacket(GenerateSay(Language.Instance.GetMessageFromKey("SKILL_ALREADY_EXIST"), 11));
- return false;
- }
- if (skillinfo.UpgradeSkill != 0)
- {
- CharacterSkill oldupgrade = Skills.FirstOrDefault(s =>
- s.Skill.UpgradeSkill == skillinfo.UpgradeSkill
- && s.Skill.UpgradeType == skillinfo.UpgradeType && s.Skill.UpgradeSkill != 0);
- if (oldupgrade != null)
- {
- Skills.Remove(oldupgrade.SkillVNum);
- }
- }
- }
- Skills[skillVNum] = new CharacterSkill
- {
- SkillVNum = skillVNum,
- CharacterId = CharacterId
- };
- Session.SendPackets(GenerateQuicklist());
- Session.SendPacket(UserInterfaceHelper.GenerateMsg(Language.Instance.GetMessageFromKey("SKILL_LEARNED"), 0));
- return true;
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement