RPG Maker Brasil
Gostaria de reagir a esta mensagem? Crie uma conta em poucos cliques ou inicie sessão para continuar.

Ir para baixo
thiago_d_d
thiago_d_d
Novato
Novato
Masculino Mensagens : 81
Reputação : 16

[RGSS1]Script de estamina Empty [RGSS1]Script de estamina

Sáb Abr 17, 2010 7:35 am
Introdução
Esse script é um script que fiz por pedido de uma fábrica que tenho em outro fórum,a MRM. Ele adiciona um novo atributo à lista de atributos(HP e MP),que se chama estamina(símbolo ST).É possível utilizar esse novo atributo de várias formas que quiser,inclusive usando como custo de habilidades e Combinando com outros scripts.

Instalação
Cole esse script acima de Main(intruções adicionais estão nele):
Código:
=begin
script de adição do atributo estamina
Comandos(que podem ser chamados pelo evento script):

-----Thiago.change_all_members(valor)
Muda estamina de todos os membros do grupo
somando o valor entre parênteses.Se o valor for
negativo,subtrai estamina

-----Thiago.change_member_st(id,valor)
Muda estamina do herói com a id especificada
somando o valor entre parênteses

-----Thiago.change_enemy_st(numero do inimigo,valor)
Muda estamina do inimigo com o número especificado
somando o valor entra parênteses
Só deve ser chamado no meio da batalha

-----Thiago.change_member_maxst(id,valor)
Muda estamina máxima do herói com a id especificada
somando o valor entre parênteses

-----Thiago.change_enemy_maxst(numero do inimigo,valor)
Muda estamina máxima do inimigo com o número especificado
somando o valor entra parênteses
Só deve ser chamado no meio da batalha

Outras explicações:
Como definir a estamina máxima que um herói ou inimigo possui:
Basta colocar depois de um traço no nome do inimigo ou herói no database
A estamina máxima.Por exemplo:
Fantasma-600
O inimigo Fantasma vai ter estamina máxima inicial de 600

Como definir a estamina gasta por uma habilidade:
Basta colocar depois de um traço no nome habilidade a estamina máxima
Por exemplo:
Chamas-60
Chamas é uma habilidade que gasta 60 de estamina

É isso!
=end
module Thiago
  #Estamina padrão
  #Para quando não for especificada estamina para um
  #Inimigo ou herói
  DEFAULT_STAMINA = 500
  #Abreviação de estamina(como HP,MP)
  STAMINA_NAME = "ST"
  def Thiago.change_all_members(value)
    for i in $game_party.actors
      i.st += value
    end
  end
 
  def Thiago.change_member_st(actor_id,value)
    actor = $game_actors[actor_id]
    actor.st += value
  end
 
  def Thiago.change_member_maxst(actor_id,value)
    actor = $game_actors[actor_id]
    actor.maxst += value
  end
 
  def Thiago.change_enemy_st(member_number,value)
    member = $game_troop.enemies[member_number - 1]
    member.st += value
  end
 
  def Thiago.change_enemy_maxst(member_number,value)
    member = $game_troop.enemies[member_number - 1]
    member.maxst += value
  end
end

class Game_Battler
  attr_reader    :maxst
  attr_reader    :st
  alias :old_initialize_1 :initialize
  def initialize
    old_initialize_1
    @maxst = @st = get_stamina
  end
 
  def st=(new_st)
    if new_st >= 0 && new_st <= @maxst
      @st = new_st
    end
  end
 
  def maxst=(new_maxst)
    if new_maxst > 0
      @maxst = new_maxst
      if @st > @maxst
        @st = @max_st
      end
    end
  end
 
  def get_stamina
    return Thiago::DEFAULT_STAMINA
  end
 
  alias :old_recover_all :recover_all
  def recover_all
    @st = @maxst
    old_recover_all
  end
 
  alias old_skill_can_use? :skill_can_use?
  def skill_can_use?(skill_id)
    if $data_skills[skill_id].st_cost > self.st
      return false
    end
    old_skill_can_use?(skill_id)
  end
end

class Game_Enemy
  alias :old_initialize_2 :initialize
  def initialize(troop_id, member_index)
    old_initialize_2(troop_id,member_index)
    d_name = $data_enemies[@enemy_id].name.clone
    d_name.gsub(/\-([\d]+)/) {""}
    st = $1.to_i
    @maxst = @st = st != 0 ? st : get_stamina
  end
 
  def name
    d_name = $data_enemies[@enemy_id].name.clone
    d_name.gsub!(/\-[\d]+/) {""}
    return d_name
  end
end

class Game_Actor
  def name
    d_name = @name.clone
    d_name.gsub!(/\-[\d]+/) {""}
    return d_name
  end
 
  alias :old_setup :setup
  def setup(actor_id)
    old_setup(actor_id)
    d_name = @name.clone
    d_name.gsub(/\-([\d]+)/) {""}
    st = $1.to_i
    @maxst = @st = st != 0 ? st : get_stamina
  end
end

module RPG
  class Skill
    def name
      d_name = @name.clone
      d_name.gsub!(/\-[\d]+/) {""}
      return d_name
    end
   
    def st_cost
      d_name = @name.clone
      d_name.gsub(/\-([\d]+)/) {""}
      st = $1.to_i
      return st
    end
  end
end

class Scene_Battle
  alias :old_make_skill_action_result :make_skill_action_result
  def make_skill_action_result
    old_make_skill_action_result
    @active_battler.st -= @skill.st_cost
  end
end

class Window_BattleStatus
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      actor = $game_party.actors[i]
      actor_x = i * 160 + 4
      draw_actor_name(actor, actor_x, 0)
      draw_actor_hp(actor, actor_x, 32, 120)
      draw_actor_sp(actor, actor_x, 64, 120)
      draw_actor_st(actor,actor_x,96,120)
      if @level_up_flags[i]
        self.contents.font.color = normal_color
        self.contents.draw_text(actor_x + self.contents.text_size(actor.name).width + 3, 0,
        120, 32, "+Nível!")
      else
        draw_actor_state(actor,
        actor_x + self.contents.text_size(actor.name).width + 3, 0)
      end
    end
  end
end

class Window_MenuStatus
  def refresh
    self.contents.clear
    @item_max = $game_party.actors.size
    for i in 0...$game_party.actors.size
      x = 64
      y = i * 116
      actor = $game_party.actors[i]
      draw_actor_graphic(actor, x - 40, y + 80)
      draw_actor_name(actor, x, y)
      draw_actor_class(actor, x + 144, y)
      draw_actor_level(actor, x, y + 32)
      draw_actor_state(actor, x +
      self.contents.text_size(actor.name).width + 3, y)
      draw_actor_exp(actor, x, y + 64)
      draw_actor_hp(actor, x + 236, y + 32)
      draw_actor_sp(actor, x + 236, y + 64)
      draw_actor_st(actor, x + 90, y + 32)
    end
  end
end

class Window_Status
  def refresh
    self.contents.clear
    draw_actor_graphic(@actor, 40, 112)
    draw_actor_name(@actor, 4, 0)
    draw_actor_class(@actor, 4 + 144, 0)
    draw_actor_level(@actor, 96, 32)
    draw_actor_state(@actor, 320, 12)
    draw_actor_st(@actor,96,64)
    draw_actor_hp(@actor, 96, 112, 172)
    draw_actor_sp(@actor, 96, 144, 172)
    draw_actor_parameter(@actor, 96, 192, 0)
    draw_actor_parameter(@actor, 96, 224, 1)
    draw_actor_parameter(@actor, 96, 256, 2)
    draw_actor_parameter(@actor, 96, 304, 3)
    draw_actor_parameter(@actor, 96, 336, 4)
    draw_actor_parameter(@actor, 96, 368, 5)
    draw_actor_parameter(@actor, 96, 400, 6)
    self.contents.font.color = system_color
    self.contents.draw_text(320, 48, 80, 32, "EXP")
    self.contents.draw_text(320, 80, 80, 32, "Próximo")
    self.contents.font.color = normal_color
    self.contents.draw_text(320 + 80, 48, 84, 32, @actor.exp_s, 2)
    self.contents.draw_text(320 + 80, 80, 84, 32, @actor.next_rest_exp_s, 2)
    self.contents.font.color = system_color
    self.contents.draw_text(320, 160, 96, 32, "Equipamento")
    draw_item_name($data_weapons[@actor.weapon_id], 320 + 16, 208)
    draw_item_name($data_armors[@actor.armor1_id], 320 + 16, 256)
    draw_item_name($data_armors[@actor.armor2_id], 320 + 16, 304)
    draw_item_name($data_armors[@actor.armor3_id], 320 + 16, 352)
    draw_item_name($data_armors[@actor.armor4_id], 320 + 16, 400)
  end
end

class Window_Base
  def draw_actor_st(actor,x,y,width = 144)
    self.contents.font.color = system_color
    self.contents.draw_text(x, y, 32, 32, Thiago::STAMINA_NAME)
    if width - 32 >= 108
      st_x = x + width - 108
      flag = true
    elsif width - 32 >= 48
      st_x = x + width - 48
      flag = false
    end
    self.contents.font.color = actor.st == 0 ? knockout_color :
      actor.st <= actor.maxst / 4 ? crisis_color : normal_color
    self.contents.draw_text(st_x, y, 48, 32, actor.st.to_s, 2)
    # Desenhar MP Max
    if flag
      self.contents.font.color = normal_color
      self.contents.draw_text(st_x + 48, y, 12, 32, "/", 1)
      self.contents.draw_text(st_x + 60, y, 48, 32, actor.maxst.to_s)
    end
  end
end
Demo e screenshot:
Não necessita
Créditos
A mim por fazer sozinho o script XD
PaiN*-*
PaiN*-*
Novo Membro
Novo Membro
Masculino Mensagens : 105
Reputação : 28

[RGSS1]Script de estamina Empty Re: [RGSS1]Script de estamina

Sáb Abr 17, 2010 9:09 am
Que kegak o script... mas a staminaz é gasta qnd vc faz o q?
========================edit====================
axo ja ¬¬.... pergunta idiota ....
vlw por postar...
flw
Ir para o topo
Permissões neste sub-fórum
Não podes responder a tópicos