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

Dragon Quest Church System

Iniciado por LoboShow, 04/12/2012 às 17:31

Dragon Quest Church System

Compativel com: RMVX
Compatibilidade : ?
Facilidade de uso: ?
Lag gerado: ?

[box class=titlebg]
Para que serve o script
[/box]
Faz com que o jogador possa ressucitar membros ao estilo Dragon Quest!
Para utilizar crie um evento com um chamar script!
$scene = DQCS_Command.new
Abra o Editor de scripts e o cole o script abaixo antes do script "Main"

[box class=titlebg]
Script
[/box]
#==============================================================================
# * Dragon Quest Church System
#------------------------------------------------------------------------------
#  Por: xXDarkDragonxx
#  Ultima Actualización: 1/24/08
#  Tradução:NaRuToMaKeR
#
# 
#------------------------------------------------------------------------------
# *   Utilidade:
#      Faz o comando de Dragon Quest de igreja.
#     
#==============================================================================

class DQCS_Command

#==============================================================================
# * Parte Editavel
#==============================================================================
 
# Defina o custo para reviver um parceiro.
REVIVE_COST = 200

# Defina o custo para curar um aliado de algum status.
BLESSING_COST = 50

# Defina pelo ID do status que o aliado ficara depois da cura.
BLESSING_STATE = 9

#==============================================================================
# * Fim da parte editavel
#==============================================================================

def initialize(menu_index = 0)
  @menu_index = menu_index
end

def main
 
  @spriteset = Spriteset_Map.new
 
  @gold_window = Window_Gold.new(383, 0) # Janela de dinheiro
  @gold_window.back_opacity = 180
  @gold_window.update 
 
  @heroes = []
  for i in 0...$game_party.members.size
    @heroes << $game_party.members[i].name
  end
   
  @heroes_command = Window_Command.new(140, @heroes) # Comandos principais
  @heroes_command.back_opacity = 180
  @heroes_command.x = 83
  @heroes_command.y = 0 
  @heroes_command.visible = false
  @heroes_command.active = false   
  @heroes_command.index = 0
 
  @heroes_bendicion = Blessing_Command.new # 'Comandos' de benção.
  @heroes_bendicion.back_opacity = 180
  #@heroes_bendicion.x = 180
  #@heroes_bendicion.y = 64 
  @heroes_bendicion.visible = false
  @heroes_bendicion.active = false   
  @heroes_bendicion.index = 0

  @dead_heroes = @heroes
 
  #============================================================
  # * Creando los comandos
  # Confesión = Guardar la Partida
  # Resurreción = Revivir un aliado fallecido en combate
  # Bendición = Librar de una maldición a un personaje
  #============================================================
  s1 = "Confessar"
  s2 = "Ressucitar"
  s3 = "Benção"
  s4 = "Nada"
  @command_window = Window_Command.new(160, [s1, s2, s3, s4])
  @command_window.back_opacity = 180
  @command_window.x = 223
  @command_window.y = 0
  @command_window.index = @menu_index
 
   if $game_party.gold < REVIVE_COST # Se não tiver Quantia definida...
     @command_window.draw_item(1, false) # Desabilitar o comando ressucitar.
     @revive_disable = true
    else
     @revive_disable = false
   end
 
   if $game_party.gold < BLESSING_COST # Se não tiver quantia definida para benção...
     @command_window.draw_item(2, false) # Desabilitar comando benção.
     @bendicion_disable = true
    else
     @bendicion_disable = false
   end   
 
   if $game_system.save_disabled # Si los permisos de Save son desabilitados...
     @command_window.draw_item(0, false) # Desabilitar comando confessar.
   end
   
  Graphics.transition
  loop do
   Graphics.update
   Input.update
   update
   if $scene != self
    break
   end
 end

 Graphics.freeze
 @gold_window.dispose        # 'Apagar' janela de dinheiro
 @command_window.dispose     # 'Apagar' Janela de comandos
 @heroes_command.dispose     # 'Apagar' janela de Ressureição (comandos)
 @heroes_bendicion.dispose   # 'Apagar' janela de Benção (comandos)
 @spriteset.dispose
end


#--------------------------------------------------------------------------
# * Frame Update
#--------------------------------------------------------------------------
def update

 @heroes_command.update
 @heroes_bendicion.update
 @command_window.update
 @gold_window.update

#============================================================
# * Ressureição
#============================================================

 if $game_party.gold < REVIVE_COST
   @command_window.draw_item(1, false)
   @revive_disable = true
  else
   @revive_disable = false
 end 

   for i in 0...$game_party.members.size
    if $game_party.members[i].hp != 0   
        @dead_heroes[i] = nil
      end       
    end

$game_party.members.each do |actor|
  if actor.hp == 0   
     @heroes_command.draw_item(actor.index, false)
  end
end     

#============================================================
# * Benção
#============================================================

 if $game_party.gold < BLESSING_COST
   @command_window.draw_item(2, false)
   @bendicion_disable = true
 else
   @bendicion_disable = false
 end 

 if @heroes_command.active
    update_revive
    return
  end 

 if @heroes_bendicion.active
    update_bendicion
    return
  end 
 
 if @command_window.active
    update_command
    return
  end
end

#--------------------------------------------------------------------------
# * Update revive janela de  Comando
#--------------------------------------------------------------------------   
def update_revive 
 
  if Input.trigger?(Input::B)
      @heroes_command.visible = false
      @heroes_command.active = false   
      @command_window.active = true       
    return
  end
     
  if Input.trigger?(Input::C)
    if $game_party.members[@heroes_command.index].hp == 0
       $game_party.lose_gold(REVIVE_COST)
       Sound.play_shop
       @gold_window.refresh
       $game_party.members[@heroes_command.index].recover_all
       @heroes_command.draw_item(@heroes_command.index, Color.new(255, 255, 255, 255))
      return
    else
      Sound.play_buzzer
   end
  end
end

#--------------------------------------------------------------------------
# * Update benção janela de comando
#--------------------------------------------------------------------------   
def update_bendicion 
 
  if Input.trigger?(Input::B)
      @heroes_bendicion.visible = false
      @heroes_bendicion.active = false   
      @command_window.active = true       
    return
  end
     
  if Input.trigger?(Input::C)
      Sound.play_buzzer if $game_party.gold < BLESSING_COST
      Sound.play_buzzer if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == false
      return unless $game_party.gold >= BLESSING_COST
       if @heroes_bendicion.cursed_actors[@heroes_bendicion.index] == true
         $game_party.lose_gold(BLESSING_COST)
         Sound.play_shop
         @gold_window.refresh
         $game_party.members[@heroes_bendicion.index].remove_state(BLESSING_STATE)
         @heroes_bendicion.verify_use
         @heroes_bendicion.refresh
        return
       end     
     end   
     return
   end

#--------------------------------------------------------------------------
# * Update janela de comando
#-------------------------------------------------------------------------- 
def update_command   
  if Input.trigger?(Input::B)
    Sound.play_cancel
    $scene = Scene_Map.new
    return
  end
 
  if Input.trigger?(Input::C)
    if $game_party.members.size == 0 and @command_window.index < 4
      Sound.play_buzzer
      return
    end

    case @command_window.index
    when 0  # Confesión
      if $game_system.save_disabled
        Sound.play_buzzer
        return
      end
      Sound.play_decision
      $scene = Scene_File.new(true, false, false)
     
    #when 1  # Divinación
      #$game_system.se_play($data_system.cancel_se)
     
    when 1  # Ressureição
     if @revive_disable != true
      Sound.play_decision
      @heroes_command.visible = true
      @heroes_command.active = true   
      @command_window.active = false
     return       
    else
    # Play buzzer SE
    Sound.play_buzzer       
    return
   end
 
    when 2  # Benção
     if @bendicion_disable != true
      Sound.play_decision
      @heroes_bendicion.visible = true
      @heroes_bendicion.active = true   
      @command_window.active = false
     return       
    else
    # Play buzzer SE
    Sound.play_buzzer     
    return
   end
 
    when 3  # Nada
      Sound.play_decision
      $scene = Scene_Map.new
    end
    return
  end
end


#==============================================================================
# * Blessing Command Window
#------------------------------------------------------------------------------
#  Janela que mostra os herois para o comando de benção
#==============================================================================

class Blessing_Command < Window_Selectable

#--------------------------------------------------------------------------
# * Public Instance Variables
#--------------------------------------------------------------------------

attr_accessor   :cursed_actors             # Variable flag for cursed actors

#--------------------------------------------------------------------------
# * Inicialização de Objetos
#-------------------------------------------------------------------------- 
def initialize

  super(83, 0, 140, $game_party.members.size * 32)
  @item_max = $game_party.members.size
  @item_count = $game_party.members.size
  self.height = @item_count * 32
  @column_max = 1
  self.contents = Bitmap.new(width - 32, [height - 32, row_max * WLH].max)
  self.back_opacity = 180
  self.index = 0
  # Cursed state
  @cursed_state = BLESSING_STATE
  # Cursed actors array
  @cursed_actors = []
  refresh
end

#--------------------------------------------------------------------------
# * Verifica se o héroi pode ser usado
#--------------------------------------------------------------------------
def verify_use
  $game_party.members.each {|x| @cursed_actors << x.state?(@cursed_state)}   
  return 
end 
#--------------------------------------------------------------------------
# * Atualiza
#--------------------------------------------------------------------------
def refresh
 
  @cursed_actors.clear
  self.contents.clear
  verify_use

  for i in 0...$game_party.members.size     
   @actor = $game_party.members[i] 
    x = 8
    y = i * 24
    self.contents.font.color = (@cursed_actors[i] == true ? disabled_color : normal_color)
    self.contents.draw_text(x, y, 140, 24, @actor.name)   
  end       
 end
end
end


[box class=titlebg]
Créditos e Avisos
[/box]
Criador : xXDarkDragonxx
Traduzidor por : NaRuToMaKeR

Nem todos jogaram dragon quest :3
Poderia explicar o que exatamente faz por favor? Ou mesmo como acontece no dragon quest.
To Die Is To Find Out If Humanity Ever Conquers Death

  O fato é que eu também nunca joguei esse... hahaha.  Enfim, só o que sei é as funções dele:
- A função "Confessar" é para salvar o jogo.
- A função "Ressucitar" Revive alguém do grupo.
- A função "Benção" serve para mudar o status de alguém para o definido no script.

  Acredito que seja assim: no jogo você entrava na Igreja e nela tinha as funções acima (curar, ressucitar e salvar o game).  Quase um "cristal" de Final Fantasy.  Espero que seja isso. =x
  Essas funções, de fato, podem ser feitas perfeitamente por eventos, creio eu, mas sabe coméné, o tanto de gente preguiçosa no mundo. xD

Então é interessante, gostei do sistema. Acho que é bem fácil de fazer por eventos, mas scripts deixam tudo mais prático.
To Die Is To Find Out If Humanity Ever Conquers Death