Ejemplo n.º 1
0
        public void Execute(IRocketPlayer player, string[] parameters)
        {
            if (parameters.Length == 0)
            {
                UnturnedChat.Say(player, Skills.Instance.Translate("command_skill_help"));
                return;
            }

            if (parameters.Length < 2 || parameters.Length > 3)
            {
                UnturnedChat.Say(player, Skills.Instance.Translate("invalid_parameters"), UnityEngine.Color.red);
                return;
            }

            UnturnedPlayer target;
            int            offset = 0;

            if (parameters.Length == 2)
            {
                if (player is ConsolePlayer)
                {
                    UnturnedChat.Say(player, Skills.Instance.Translate("console_must_specify_player"), UnityEngine.Color.red);
                    return;
                }

                target = (UnturnedPlayer)player;
            }
            else
            {
                if (!player.HasPermission("skills.skill.other"))
                {
                    UnturnedChat.Say(player, Skills.Instance.Translate("no_permission"), UnityEngine.Color.red);
                    return;
                }

                target = UnturnedPlayer.FromName(parameters[0]);
                if (target == null)
                {
                    UnturnedChat.Say(player, Skills.Instance.Translate("player_not_found"), UnityEngine.Color.red);
                    return;
                }
                offset++;
            }

            UnturnedSkill skill = Skills.GetSkill(parameters[0 + offset]);

            if (skill == null)
            {
                UnturnedChat.Say(player, Skills.Instance.Translate("unknown_skill"), UnityEngine.Color.red);
                return;
            }

            byte level;

            if (parameters[1 + offset].ToLower() == "max")
            {
                level = Skills.GetMaxLevel(skill);
            }
            else if (!byte.TryParse(parameters[1 + offset], out level))
            {
                UnturnedChat.Say(player, Skills.Instance.Translate("invalid_level"), UnityEngine.Color.red);
                return;
            }

            Skills.SetSkill(target, skill, level);
            UnturnedChat.Say(player, Skills.Instance.Translate("skill_success"));
        }