O TEMA DO FÓRUM ESTÁ EM MANUTENÇÃO. FEEDBACKS AQUI: ACESSAR

[TSDA] Habilidades com Níveis

Iniciado por thiago_d_d, 18/12/2012 às 22:23

18/12/2012 às 22:23 Última edição: 20/01/2017 às 10:07 por King Gerar


Script de Habilidades com Níveis


[info float=left border=#6587E4]
Informações:
--------------------------------------------------
.
• Autor: thiago_d_d
• Versão: 1.0
• Incompatibilidade: Pouca
• Lag gerado: Desprezível
• Customizável: Sim
• Requer Recursos Extras: Não
[/info][box class=catbg2]
Resumo
[/box][box class=catbg4]Com esse script, as habilidades dos heróis passarão a ter níveis(que possuem a mesma funcionalidade dos níveis dos heróis), o que significa que eles irão ficando mais fortes conforme a experiência.É possível configurar o nível máximo, assim como a quantidade de níveis que sobe na habilidade com a experiência que o herói ganha.[/box]


[box class=catbg2]
Instalação e configuração
[/box]
Para instalar, cole o seguinte script acima de Main. Não se esqueça de ler as instruções contidas no script:
#==============================================================
# * MRM - Comunidade RPG Maker!
#   www.mundorpgmaker.com
# * GRM - Comunidade RPG Maker!
#   www.galaxiarpgmaker.com.br
#
# [TSDA] Habilidades com Níveis
#   --> Versão 1.0
# Última atualização: 11/12/2010
# ----Créditos
#     thiago_d_d - por fazer o script
#
#--------------------------------------------------------------
# * Características
#--------------------------------------------------------------
# + Adiciona um sistema de habilidades com níveis.Isso
#   quer dizer que as habilidades agora terão níveis
#   e vão ficando mais fortes,conforme o herói que possui
#   a habilidade também sobe de nível.
#
#--------------------------------------------------------------
# * Instalação
#--------------------------------------------------------------
# Cole esse script acima de Main.
#
#--------------------------------------------------------------
# * Configuração
#--------------------------------------------------------------
# Mude a linha na qual está escrito HABILITY_LEVEL_MAX para
# mudar o nível máximo das habilidades.
# Mude a linha na qual está escrito LEVEL_UP para
# para indicar o máximo de níveis que as habilidades podem
# subir por vez.
#
# OPCIONAL:
# Quando a habilidade sobe de nível,ela fica mais poderosa.
# É possível mudar esse poder que a habilidade ganha quando
# sobe de nível.Para mudar isso,ache a linha na qual
# está escrito BASE_UP,e mude esse valo. Quanto maior ele
# for,menor esse poder ganho. Quanto menor ele for,maior esse
# poder ganho. O indicado para esse valor é um número entre 500
# e 1250.
#==============================================================
module TSDA
  HABILITY_LEVEL_MAX = 99
  BASE_UP = 750
  LEVEL_UP = 5
end
#--------------------------------------------------------------
class Game_Actor
  alias old_initialize_ac initialize
  def initialize(actor_id)
    @skill_levels = []
    old_initialize_ac(actor_id)
  end
  #------------------------------------------------------------
  alias old_learn_skill learn_skill
  def learn_skill(skill_id)
    if skill_id > 0 and not skill_learn?(skill_id)
      @skill_levels.push(0)
    end
    old_learn_skill(skill_id)
  end
  #------------------------------------------------------------
  alias old_forget_skill forget_skill
  def forget_skill(skill_id)
    if @skills.include?(skill_id)
      id = @skills.index(skill_id)
      @skill_levels.delete_at(id)
    end
    old_forget_skill(skill_id)
  end
  #------------------------------------------------------------
  alias old_exp exp=
  def exp=(exp)
    level = @level
    old_exp(exp)
    level_number = @level - level
    if level_number > 0
      if @skills.size > 0
        while level_number > 0
          level_number -= 1
          for i in 0...@skill_levels.size
            if @skill_levels[i] < TSDA::HABILITY_LEVEL_MAX
              @skill_levels[i] += rand(TSDA::LEVEL_UP) + 1
            end
          end
        end
      end
    end
  end
  #------------------------------------------------------------
  def skill_level(skill_id)
    id = @skills.index(skill_id)
    return @skill_levels[id]
  end
end
#--------------------------------------------------------------
class Game_Battler
  alias old_skill_effect skill_effect
  def skill_effect(user,skill)
    result = old_skill_effect(user,skill)
    unless result.is_a?(Integer)
      return result
    end
    unless self.damage.is_a?(String) && !user.is_a?(Game_Actor)
      power = skill.power
      n = user.skill_level(skill.id)
      rate = 20
      rate += (user.str * skill.str_f / 100)
      rate += (user.dex * skill.dex_f / 100)
      rate += (user.agi * skill.agi_f / 100)
      rate += (user.int * skill.int_f / 100)
      if self.damage < 0
        self.damage -= power * n * rate / TSDA::BASE_UP
      elsif self.damage > 0
        self.damage += power * n * rate / TSDA::BASE_UP
      end
    end
    return result
  end
end
#--------------------------------------------------------------
class Window_Skill
  def draw_item(index)
    skill = @data[index]
    if @actor.skill_can_use?(skill.id)
      self.contents.font.color = normal_color
    else
      self.contents.font.color = disabled_color
    end
    x = 4 + index % 2 * (288 + 32)
    y = index / 2 * 32
    rect = Rect.new(x, y, self.width / @column_max - 32, 32)
    self.contents.fill_rect(rect, Color.new(0, 0, 0, 0))
    bitmap = RPG::Cache.icon(skill.icon_name)
    opacity = self.contents.font.color == normal_color ?
    255 : 128
    self.contents.blt(x, y + 4, bitmap, Rect.new(0, 0, 24, 24),
    opacity)
    self.contents.draw_text(x + 28, y, 204, 32, skill.name, 0)
    self.contents.draw_text(x + 232, y, 48, 32,
    "Lv:" + @actor.skill_level(skill.id).to_s,2)
    self.contents.draw_text(x + 180, y, 48, 32,
    skill.sp_cost.to_s, 2)
  end
end



[box class=catbg2]
Demo e Imagens
[/box]
Não há necessidade de Demo. Não há efeitos visuais perceptíveis.


[box class=catbg2]
Créditos
[/box]

  • thiago_d_d por fazer o script

oh eu fiz algo semelhante no Ace, e foi um dos scripts que eu mais curti :3, tipo ele dá uma dinâmica muito show no game, e você fez um para o RMXP :D, para quem curte adicionar coisas no sist de batalha é muito bom!

 Cara muito legal vi muitos dos seus scripts que e sobre Habilidades, agora uma pergunta ela funciona com NetPlay? Com o NP Master 4.0.6.
[box class=information]
Dean, Programador Geral ;)
[/box]
[box class=information]
Contato: Skype:matucarvalho e Facebook
[/box]

Citação de: Raizen online 19/12/2012 às 11:23
oh eu fiz algo semelhante no Ace, e foi um dos scripts que eu mais curti :3, tipo ele dá uma dinâmica muito show no game, e você fez um para o RMXP :D, para quem curte adicionar coisas no sist de batalha é muito bom!
Eu já havia visto esse seu script (acho que até comentei no tópico) e, realmente, a proposta é a mesma.
Citação de: Dean online 19/12/2012 às 12:26
Cara muito legal vi muitos dos seus scripts que e sobre Habilidades, agora uma pergunta ela funciona com NetPlay? Com o NP Master 4.0.6.
Não tenho certeza, mas acho que sim.