From 5f4b7055c4730448fd7b2b3d69b9f870e023355c Mon Sep 17 00:00:00 2001 From: Major- Date: Sun, 23 Feb 2014 22:48:55 +0000 Subject: [PATCH] Make current skill level updating optional when using ::level. --- data/plugins/cmd-skill/skill.rb | 25 +++++++++++++++++-------- 1 file changed, 17 insertions(+), 8 deletions(-) diff --git a/data/plugins/cmd-skill/skill.rb b/data/plugins/cmd-skill/skill.rb index 18e13ac8..c84f5938 100644 --- a/data/plugins/cmd-skill/skill.rb +++ b/data/plugins/cmd-skill/skill.rb @@ -2,6 +2,7 @@ require 'java' java_import 'org.apollo.game.model.SkillSet' java_import 'org.apollo.game.model.Skill' +# Maximises the player's skill set. on :command, :max, RIGHTS_ADMIN do |player, command| skills = player.skill_set (0...skills.size).each do |skill| @@ -9,24 +10,32 @@ on :command, :max, RIGHTS_ADMIN do |player, command| end end +# Levels the specified skill to the specified level, optionally updating the current level as well. on :command, :level, RIGHTS_ADMIN do |player, command| args = command.arguments - unless args.length == 2 and (0..20).include? (skill = args[0].to_i) and (1..99).include? (level = args[1].to_i) - player.send_message("Invalid syntax - ::level [skill id] [level]") + unless (2..3).include?(args.length) && (0..20).include?(skill_id = args[0].to_i) && (1..99).include?(level = args[1].to_i) + player.send_message("Invalid syntax - ::level [skill-id] [level]") return end - + experience = SkillSet.experience_for_level(level) - player.skill_set.set_skill(skill, Skill.new(experience, level, level)) + current = level + + if args.length == 3 && args[2].to_s == "old" + skill = player.skill_set.skill(skill_id) + current = skill.current_level + end + + player.skill_set.set_skill(skill_id, Skill.new(experience, current, level)) end +# Adds the specified amount of experience to the specified skill. on :command, :xp, RIGHTS_ADMIN do |player, command| args = command.arguments - unless args.length == 2 and (0..20).include? (skill = args[0].to_i) - player.send_message("Invalid syntax - ::xp [skill id] [experience]") + unless args.length == 2 && (0..20).include?(skill_id = args[0].to_i) && (experience = args[1].to_i) >= 0 + player.send_message("Invalid syntax - ::xp [skill-id] [experience]") return end - experience = args[1].to_i - player.skill_set.add_experience(skill, experience) + player.skill_set.add_experience(skill_id, experience) end \ No newline at end of file